[
  {
    "path": ".devcontainer/devcontainer.json",
    "content": "{\n    \"name\": \"Go\",\n    \"image\": \"mcr.microsoft.com/devcontainers/go:1.25\",\n    \"customizations\": {\n        \"codespaces\": {\n            \"openFiles\": [\n                \"CODE_OF_CONDUCT.md\",\n                \"CONTRIBUTING.md\",\n                \"README.md\",\n                \"languages.json\"\n            ]\n        },\n        \"vscode\": {\n            \"extensions\": [\"golang.go\"],\n            \"settings\": {\n                \"go.gopath\": \"/go\"\n            }\n        }\n    },\n    \"remoteUser\": \"vscode\"\n}\n"
  },
  {
    "path": ".gitattributes",
    "content": ".sccignore linguist-language=Ignore-List\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n\ngithub: boyter\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the bug**\nA clear and concise description of what the bug is.\n\n**To Reproduce**\n\n1. Tell us how you were using `scc` either as command line or library.\n2. If command line please list the arguments. If library please supply code to demonstrate the issue.\n3. If the issue is a miscount or some such please link or supply a file which demonstrates the issue.\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Desktop (please complete the following information):**\n - OS: [e.g. macOS, Windows, Linux]\n - Version [e.g. 22]\n"
  },
  {
    "path": ".github/workflows/codeql-analysis.yml",
    "content": "name: \"Code scanning - action\"\n\non:\n  push:\n    branches: [master, ]\n  pull_request:\n    # The branches below must be a subset of the branches above\n    branches: [master]\n  schedule:\n    - cron: '0 22 * * 0'\n\njobs:\n  CodeQL-Build:\n\n    runs-on: ubuntu-latest\n\n    steps:\n    - name: Checkout repository\n      uses: actions/checkout@v5\n      with:\n        # We must fetch at least the immediate parents so that if this is\n        # a pull request then we can checkout the head.\n        fetch-depth: 2\n\n    # If this run was triggered by a pull request event, then checkout\n    # the head of the pull request instead of the merge commit.\n    - run: git checkout HEAD\n      if: ${{ github.event_name == 'pull_request' }}\n\n    # Initializes the CodeQL tools for scanning.\n    - name: Initialize CodeQL\n      uses: github/codeql-action/init@v4\n      # Override language selection by uncommenting this and choosing your languages\n      # with:\n      #   languages: go, javascript, csharp, python, cpp, java\n\n    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).\n    # If this step fails, then you should remove it and run the build manually (see below)\n    - name: Autobuild\n      uses: github/codeql-action/autobuild@v4\n\n    # ℹ️ Command-line programs to run using the OS shell.\n    # 📚 https://git.io/JvXDl\n\n    # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines\n    #    and modify them (or add more) to build your code if your project\n    #    uses a compiled language\n\n    #- run: |\n    #   make bootstrap\n    #   make release\n\n    - name: Perform CodeQL Analysis\n      uses: github/codeql-action/analyze@v4\n"
  },
  {
    "path": ".github/workflows/docker-publish.yml",
    "content": "name: Docker\n\n# This workflow uses actions that are not certified by GitHub.\n# They are provided by a third-party and are governed by\n# separate terms of service, privacy policy, and support\n# documentation.\n\non:\n  #schedule:\n  #  - cron: '36 1 * * *'\n  push:\n    branches: [ \"master\" ]\n    # Publish semver tags as releases.\n    tags: [ 'v*.*.*' ]\n  pull_request:\n    branches: [ \"master\" ]\n\nenv:\n  # Use docker.io for Docker Hub if empty\n  REGISTRY: ghcr.io\n  # github.repository as <account>/<repo>\n  IMAGE_NAME: ${{ github.repository }}\n\n\njobs:\n  build:\n\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      packages: write\n      # This is used to complete the identity challenge\n      # with sigstore/fulcio when running outside of PRs.\n      id-token: write\n\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v4\n\n      # Install the cosign tool except on PR\n      # https://github.com/sigstore/cosign-installer\n      - name: Install cosign\n        if: github.event_name != 'pull_request'\n        uses: sigstore/cosign-installer@v3.10.0\n        with:\n          cosign-release: 'v2.6.0'\n\n      # Set up BuildKit Docker container builder to be able to build\n      # multi-platform images and export cache\n      # https://github.com/docker/setup-buildx-action\n      - name: Set up Docker Buildx\n        uses: docker/setup-buildx-action@v3.11.1\n\n      # Login against a Docker registry except on PR\n      # https://github.com/docker/login-action\n      - name: Log into registry ${{ env.REGISTRY }}\n        if: github.event_name != 'pull_request'\n        uses: docker/login-action@v3.6.0\n        with:\n          registry: ${{ env.REGISTRY }}\n          username: ${{ github.actor }}\n          password: ${{ secrets.GITHUB_TOKEN }}\n\n      # Extract metadata (tags, labels) for Docker\n      # https://github.com/docker/metadata-action\n      - name: Extract Docker metadata\n        id: meta\n        uses: docker/metadata-action@v5.8.0\n        with:\n          images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}\n\n      # Build and push Docker image with Buildx (don't push on PR)\n      # https://github.com/docker/build-push-action\n      - name: Build and push Docker image\n        id: build-and-push\n        uses: docker/build-push-action@v6.18.0\n        env:\n          DOCKER_BUILD_RECORD_UPLOAD: false\n        with:\n          context: .\n          platforms: linux/amd64,linux/arm64\n          push: ${{ github.event_name != 'pull_request' }}\n          tags: ${{ steps.meta.outputs.tags }}\n          labels: ${{ steps.meta.outputs.labels }}\n\n      # Sign the resulting Docker image digest except on PRs.\n      # This will only write to the public Rekor transparency log when the Docker\n      # repository is public to avoid leaking data.  If you would like to publish\n      # transparency data even for private images, pass --force to cosign below.\n      # https://github.com/sigstore/cosign\n      - name: Sign the published Docker image\n        if: ${{ github.event_name != 'pull_request' }}\n        env:\n          # https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable\n          TAGS: ${{ steps.meta.outputs.tags }}\n          DIGEST: ${{ steps.build-and-push.outputs.digest }}\n        # This step uses the identity token to provision an ephemeral certificate\n        # against the sigstore community Fulcio instance.\n        run: echo \"${TAGS}\" | xargs -I {} cosign sign --yes {}@${DIGEST}"
  },
  {
    "path": ".github/workflows/go.yml",
    "content": "name: Go\n\non:\n  push:\n    branches: [ master ]\n  pull_request:\n    branches: [ master ]\n\njobs:\n\n  build:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v5\n\n    - name: Set up Go\n      uses: actions/setup-go@v6\n      with:\n        go-version-file: './go.mod'\n\n    - name: Build\n      run: go build -v ./...\n    \n    - name: Windows Build Test\n      run: |\n        GOOS=windows GOARCH=amd64 go build -ldflags=\"-s -w\"\n        GOOS=windows GOARCH=386 go build -ldflags=\"-s -w\"\n        GOOS=windows GOARCH=arm64 go build -ldflags=\"-s -w\"\n    \n    - name: Darwin Build Test\n      run: |\n        GOOS=darwin GOARCH=amd64 go build -ldflags=\"-s -w\"\n        GOOS=darwin GOARCH=arm64 go build -ldflags=\"-s -w\"\n    \n    - name: Linux Build Test\n      run: |\n        GOOS=linux GOARCH=amd64 go build -ldflags=\"-s -w\"\n        GOOS=linux GOARCH=386 go build -ldflags=\"-s -w\"\n        GOOS=linux GOARCH=arm64 go build -ldflags=\"-s -w\"\n        GOOS=linux GOARCH=riscv64 go build -ldflags=\"-s -w\"\n        GOOS=linux GOARCH=loong64 go build -ldflags=\"-s -w\"\n\n    - name: Test\n      run: go test -v ./...\n\n    - name: Test Race\n      run: go test -race -v ./...\n"
  },
  {
    "path": ".gitignore",
    "content": "# Binaries for programs and plugins\n*.exe\n*.dll\n*.so\n*.dylib\n\n# Test binary, build with `go test -c`\n*.test\n\nscc\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\n\n# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736\n.glide/\n\n# IDE\n.idea/\n*.code-workspace\n.vscode/\n\n# Performance tests\nexamples/performance_tests/0\nexamples/performance_tests/1\nexamples/performance_tests/2\nexamples/performance_tests/3\nexamples/performance_tests/4\nexamples/performance_tests/5\nexamples/performance_tests/6\nexamples/performance_tests/7\nexamples/performance_tests/8\n\n# Ignore test\nignored.xml\ngitignorefile.txt\n\n# macOS\n\n.DS_Store\n\ndist/\n"
  },
  {
    "path": ".goreleaser.yml",
    "content": "# This is an example .goreleaser.yml file with some sensible defaults.\n# Make sure to check the documentation at https://goreleaser.com\nbefore:\n  hooks:\n    # You may remove this if you don't use go modules.\n    - go mod tidy\n    # you may remove this if you don't need go generate\n    - go generate ./...\nbuilds:\n  - env:\n      - CGO_ENABLED=0\n    goos:\n      - linux\n      - windows\n      - darwin\n\narchives:\n  - format: tar.gz\n    # this name template makes the OS and Arch compatible with the results of uname.\n    name_template: >-\n      {{ .ProjectName }}_\n      {{- title .Os }}_\n      {{- if eq .Arch \"amd64\" }}x86_64\n      {{- else if eq .Arch \"386\" }}i386\n      {{- else }}{{ .Arch }}{{ end }}\n      {{- if .Arm }}v{{ .Arm }}{{ end }}\n    # use zip for windows archives\n    format_overrides:\n      - goos: windows\n        format: zip\nchecksum:\n  name_template: 'checksums.txt'\nsnapshot:\n  name_template: \"{{ incpatch .Version }}-next\"\nchangelog:\n  sort: asc\n  filters:\n    exclude:\n      - '^docs:'\n      - '^test:'\n\n# The lines beneath this are called `modelines`. See `:help modeline`\n# Feel free to remove those if you don't want/use them.\n# yaml-language-server: $schema=https://goreleaser.com/static/schema.json\n# vim: set ts=2 sw=2 tw=0 fo=cnqoj\n"
  },
  {
    "path": ".ignore",
    "content": "vendor/\nignorefile.txt"
  },
  {
    "path": ".sccignore",
    "content": "examples\n.github\ndist"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "Do as Bill and Ted and be excellent to each other.\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "## How to contribute to sloc cloc and code (scc)\n\n#### **Did you find a bug?**\n\n* **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/boyter/scc/issues).\n\n* If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/boyter/scc/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring.\n\n#### **Did you write a patch that fixes a bug?**\n\n* Open a new GitHub pull request with the patch.\n\n* Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.\n\n* Before submitting, please specify that you explicitly licence your contribution under MIT licence.\n\n\n#### **Always remember**\n\n* Do as Bill and Ted and be excellent to each other.\n\nThanks!\n"
  },
  {
    "path": "Dockerfile",
    "content": "FROM golang:1.25.2-alpine3.22 AS scc-get\n\nENV GOOS=linux \\\nGOARCH=amd64 \\\nCGO_ENABLED=0\n\nARG VERSION=v3.4.0\nCOPY . /scc\nWORKDIR /scc\nRUN go build -ldflags=\"-s -w\" -o /bin/scc\n\nFROM alpine:3.22\nCOPY --from=scc-get /bin/scc /bin/scc\nCMD [\"/bin/scc\"]\n"
  },
  {
    "path": "LANGUAGES.md",
    "content": "```\nABAP (abap)\nABNF (abnf)\nActionScript (as)\nAda (ada,adb,ads,pad)\nAgda (agda)\nAlchemist (crn)\nAlex (x)\nAlgol 68 (a68)\nAlloy (als)\nAmber (ab)\nAndroid Interface Definition Language (aidl)\nApex (apex,trigger)\nAPL (apl,aplf,apln,aplc,dyalog)\nAppleScript (applescript)\nArkTs (ets)\nArturo (art)\nAsciiDoc (adoc)\nASP (asa,asp)\nASP.NET (asax,ascx,asmx,aspx,master,sitemap,webinfo)\nAssembly (s,asm)\nAstro (astro)\nATS (dats,sats,ats,hats)\nAutoconf (in)\nAutoHotKey (ahk)\nAvro (avdl,avpr,avsc)\nAWK (awk)\nbait (bt)\nBASH (bash,bash_login,bash_logout,bash_profile,bashrc,.bash_login,.bash_logout,.bash_profile,.bashrc)\nBasic (bas)\nBatch (bat,btm,cmd)\nBazel (bzl,build.bazel,build,workspace)\nBean (bean,beancount)\nBicep (bicep)\nBitbake (bb,bbappend,bbclass)\nBitbucket Pipeline (bitbucket-pipelines.yml)\nBlade template (blade.php)\nBlueprint (blp)\nBoo (boo)\nBosque (bsq)\nBrainfuck (bf)\nBru (bru)\nBuildStream (bst)\nC (c,ec,pgc)\nC Header (h)\nC Shell (csh,.cshrc)\nC# (cs,csx)\nC++ (cc,cpp,cxx,c++,pcc,ino,ccm,cppm,cxxm,c++m,mxx)\nC++ Header (hh,hpp,hxx,inl,ipp,ixx)\nC3 (c3)\nCabal (cabal)\nCairo (cairo)\nCangjie (cj)\nCap'n Proto (capnp)\nCassius (cassius)\nCeylon (ceylon)\nChapel (chpl)\nCircom (circom)\nClipper (prg,ch)\nClojure (clj,cljc)\nClojureScript (cljs)\nClosure Template (soy)\nCloudFormation (JSON) (json)\nCloudFormation (YAML) (yaml,yml)\nCMake (cmake,cmakelists.txt)\nCOBOL (cob,cbl,ccp,cobol,cpy)\nCodeQL (ql,qll)\nCoffeeScript (coffee)\nCogent (cogent)\nColdFusion (cfm)\nColdFusion CFScript (cfc)\nCoq (v)\nCreole (creole)\nCrystal (cr)\nCSS (css)\nCSV (csv)\nCuda (cu)\nCypher (cypher,cql)\nCython (pyx,pxi,pxd)\nD (d)\nD2 (d2)\nDAML (daml)\nDart (dart)\nDevice Tree (dts,dtsi)\nDhall (dhall)\nDM (dm)\nDocker ignore (.dockerignore)\nDockerfile (dockerfile,dockerfile)\nDocument Type Definition (dtd)\nDOT (dot,gv)\nElixir (ex,exs)\nElixir Template (eex)\nElm (elm)\nEmacs Dev Env (ede)\nEmacs Lisp (el)\nEmiT (emit)\nErlang (erl,hrl)\nExpect (exp)\nExtensible Stylesheet Language Transformations (xslt,xsl)\nF# (fs,fsi,fsx,fsscript)\nF* (fst)\nFactor (factor)\nFennel (fnl)\nFIDL (fidl)\nFish (fish)\nFlow9 (flow)\nForth (4th,forth,fr,frt,fth,f83,fb,fpm,e4,rx,ft)\nFORTRAN Legacy (f,for,ftn,f77,pfo)\nFortran Modern (f03,f08,f90,f95)\nFragment Shader File (fsh)\nFreemarker Template (ftl)\nFSL (fsl)\nFuthark (fut)\nFXML (fxml)\nGame Maker Language (gml)\nGame Maker Project (yyp)\nGDScript (gd)\nGemfile (gemfile)\nGherkin Specification (feature)\ngitignore (.gitignore)\nGleam (gleam)\nGLSL (vert,tesc,tese,geom,frag,comp,glsl)\nGN (gn,gni)\nGo (go)\nGo Template (tmpl,gohtml,gotxt)\nGo+ (gop)\nGodot Scene (tscn)\nGradle (gradle)\nGraphQL (graphql)\nGremlin (gremlin)\nGroovy (groovy,grt,gtpl,gvy)\nGwion (gw)\nHAML (haml)\nHamlet (hamlet)\nHandlebars (hbs,handlebars)\nHappy (y,ly)\nHare (ha)\nHaskell (hs)\nHaxe (hx)\nHCL (hcl)\nHEEx (heex)\nHEX (hex)\nhoon (hoon)\nHTML (html,htm)\nIDL (idl,webidl,widl)\nIdris (idr,lidr)\nignore (.ignore)\nINI (ini)\nIntel HEX (ihex)\nIsabelle (thy)\nJade (jade)\nJAI (jai)\nJanet (janet)\nJava (java)\nJavaScript (js,cjs,mjs)\nJavaServer Pages (jsp)\nJCL (jcl,jcls)\nJenkins Buildfile (jenkinsfile)\nJinja (jinja,j2,jinja2)\njq (jq)\nJSON (json)\nJSON5 (json5)\nJSONC (jsonc)\nJSONL (jsonl)\nJsonnet (jsonnet,libsonnet)\nJSX (jsx)\nJulia (jl)\nJulius (julius)\nJupyter (ipynb,jpynb)\nJust (justfile)\nK (k)\nKorn Shell (ksh,.kshrc)\nKotlin (kt,kts)\nKoto (koto)\nLALRPOP (lalrpop)\nLaTeX (tex)\nLD Script (lds)\nLean (lean,hlean)\nLESS (less)\nLEX (l)\nLicense (license,licence,copying,copying3,unlicense,unlicence,license-apache,licence-apache,license-mit,licence-mit,copyright)\nLisp (lisp,lsp)\nLiveScript (ls)\nLLVM IR (ll)\nLOLCODE (lol,lols)\nLua (lua)\nLuau (luau)\nLucius (lucius)\nLuna (luna)\nm4 (m4)\nMacromedia eXtensible Markup Language (mxml)\nMadlang (mad)\nMakefile (makefile,mak,mk,bp,makefile,gnumakefile)\nMako (mako,mao)\nMarkdown (md,markdown)\nMATLAB (m)\nMax (maxpat)\nMDX (mdx)\nMeson (meson.build,meson_options.txt)\nMetal (metal)\nMLIR (mlir)\nModula3 (m3,mg,ig,i3)\nModule-Definition (def)\nMog (mog)\nMojo (mojo)\nMonkey C (mc)\nMoonbit (mbt)\nMQL Header (mqh)\nMQL4 (mq4)\nMQL5 (mq5)\nMSBuild (csproj,vbproj,fsproj,vcproj,vcxproj,vcxproj.filters,ilproj,myapp,props,rdlc,resx,settings,sln,targets)\nMUMPS (mps)\nMustache (mustache)\nNature (n)\nNial (ndf)\nNim (nim)\nNix (nix)\nNushell (nu)\nnuspec (nuspec)\nObjective C (m)\nObjective C++ (mm)\nOCaml (ml,mli)\nOdin (odin)\nOpalang (opa)\nOpenQASM (qasm)\nOpenTofu (tofu)\nOrg (org)\nOz (oz)\nPascal (pas)\nPatch (patch)\nPerl (pl,plx,pm)\nPhoenix LiveView (heex,leex)\nPHP (php)\nPicat (pi)\nPKGBUILD (pkgbuild)\nPkl (pkl)\nPL/SQL (fnc,pkb,pks,prc,trg,vw)\nPlain Text (text,txt)\nPolly (polly)\nPOML (poml)\nPony (pony)\nPostScript (ps)\nPowershell (ps1,psm1)\nProcessing (pde)\nProlog (p,pro)\nProperties File (properties)\nProtocol Buffers (proto)\nPRQL (prql)\nPSL Assertion (psl)\nPuppet (pp)\nPureScript (purs)\nPython (py,pyw,pyi)\nQ# (qs)\nQCL (qcl)\nQML (qml)\nR (r)\nRacket (rkt)\nRakefile (rake,rakefile)\nRaku (raku,rakumod,rakutest,rakudoc,t)\nRAML (raml,rml)\nRazor (cshtml,razor)\nReasonML (re,rei)\nRebol (reb)\nRedscript (reds)\nReport Definition Language (rdl)\nReScript (res,resi)\nReStructuredText (rst)\nRich Text Format (rtf)\nRobot Framework (robot)\nRuby (rb)\nRuby HTML (rhtml,erb)\nRust (rs)\nSAS (sas)\nSass (sass,scss)\nScala (sc,scala)\nScallop (scl)\nScheme (scm,ss)\nScons (csig,sconstruct,sconscript)\nsed (sed)\nSeed7 (sd7,s7i)\nShell (sh,.tcshrc)\nSieve (sieve)\nSKILL (il)\nSlang (slang)\nSlint (slint)\nSmalltalk (cs.st,pck.st)\nSmarty Template (tpl)\nSnakemake (smk,rules,snakefile)\nSNOBOL (sno)\nSoftbridge Basic (sbl)\nSolidity (sol)\nSPDX (spdx)\nSpecman e (e)\nSpice Netlist (ckt)\nSPL (spl)\nSQL (sql,dml,ddl,dql)\nSRecode Template (srt)\nStan (stan)\nStandard ML (SML) (sml)\nStata (do,ado)\nStylus (styl)\nSvelte (svelte)\nSVG (svg)\nSwift (swift)\nSwig (i)\nSystemd (automount,device,link,mount,path,scope,service,slice,socket,swap,target,timer)\nSystemVerilog (sv,svh)\nTact (tact)\nTaskPaper (taskpaper)\nTCL (tcl)\nTeal (teal)\nTempl (templ)\nTemplateToolkit (tt,tt2)\nTera (tera)\nTerraform (tf,tfvars,tf.json)\nTeX (tex,sty)\nTextile (textile)\nThrift (thrift)\nTL (tl)\nTOML (toml)\nTOON (toon)\nTreetop (treetop,tt)\nTTCN-3 (ttcn,ttcn3,ttcnpp)\nTwig Template (twig)\nTypeScript (ts,tsx,cts,mts)\nTypeScript Typings (d.ts)\nTypeSpec (tsp)\nTypst (typ)\nUnreal Script (uc,uci,upkg)\nUp (up)\nUr/Web (ur,urs)\nUr/Web Project (urp)\nV (v)\nVala (vala)\nVarnish Configuration (vcl)\nVerilog (vg,vh,v)\nVerilog Args File (irunargs,xrunargs)\nVertex Shader File (vsh)\nVHDL (vhd,vhdl)\nVim Script (vim,vimrc,gvimrc,_vimrc,.vimrc,_gvimrc,.gvimrc,vimrc,gvimrc)\nVisual Basic (vb)\nVisual Basic for Applications (cls)\nVue (vue)\nW.I.S.E. Jobfile (fgmj)\nWeb Services Description Language (wsdl)\nWebGPU Shading Language (wgsl)\nwenyan (wy)\nWindows Resource-Definition Script (rc)\nWolfram (nb,wl)\nWren (wren)\nXAML (xaml)\nXcode Config (xcconfig)\nXHTML (xhtml,xhtm,xht)\nXMake (xmake.lua,xpack.lua)\nXML (xml)\nXML Schema (xsd)\nXtend (xtend)\nYAML (yaml,yml)\nYarn (yarn)\nZig (zig)\nZoKrates (zok)\nZsh (zsh,zshenv,zlogin,zlogout,zprofile,zshrc,.zshenv,.zlogin,.zlogout,.zprofile,.zshrc)\n```\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License \n\nCopyright (c) 2021 Ben Boyter\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 (including the next paragraph) 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": "README.md",
    "content": "# Sloc Cloc and Code (scc)\n\n![SCC illustration](./scc.jpg)\n\nA tool similar to cloc, sloccount and tokei. For counting the lines of code, blank lines, comment lines, and physical lines of source code in many programming languages.\n\nGoal is to be the fastest code counter possible, but also perform COCOMO calculation like sloccount, LOCOMO estimation for LLM-based development costs, estimate code complexity similar to cyclomatic complexity calculators and produce unique lines of code or DRYness metrics. In short one tool to rule them all.\n\nAlso it has a very short name which is easy to type `scc`.\n\nIf you don't like sloc cloc and code feel free to use the name `Succinct Code Counter`.\n\n[![Go](https://github.com/boyter/scc/actions/workflows/go.yml/badge.svg)](https://github.com/boyter/scc/actions/workflows/go.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/boyter/scc)](https://goreportcard.com/report/github.com/boyter/scc)\n[![Coverage Status](https://coveralls.io/repos/github/boyter/scc/badge.svg?branch=master)](https://coveralls.io/github/boyter/scc?branch=master)\n[![Scc Count Badge](https://sloc.xyz/github/boyter/scc/)](https://github.com/boyter/scc/)\n![Scc count downloads](https://img.shields.io/github/downloads/boyter/scc/total?label=downloads%20%28GH%29)\n[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go)\n\nLicensed under MIT licence.\n\n## Table of Contents\n\n- [Install](#install)\n- [Background](#background)\n- [Pitch](#pitch)\n- [Usage](#usage)\n- [Complexity Estimates](#complexity-estimates)\n- [Unique Lines of Code (ULOC)](#unique-lines-of-code-uloc)\n- [COCOMO](#cocomo)\n- [LOCOMO](#locomo)\n- [Output Formats](#output-formats)\n- [Performance](#performance)\n- [Development](#development)\n- [MCP Server Mode](#mcp-server-mode)\n- [Adding/Modifying Languages](#addingmodifying-languages)\n- [Issues](#issues)\n- [Badges](#badges)\n- [Language Support](LANGUAGES.md)\n- [Citation](#citation)\n\n### scc for Teams & Enterprise\n\nWhile scc will always be a free and tool for individual developers, companies and businesses, we are exploring an enhanced version designed for teams and businesses. scc Enterprise will build on the core scc engine to provide historical analysis, team-level dashboards, and policy enforcement to help engineering leaders track code health, manage technical debt, and forecast project costs.\n\nWe are currently gathering interest for a private beta. If you want to visualize your codebase's evolution, integrate quality gates into your CI/CD pipeline, and get a big-picture view across all your projects,\nsign up for the early access list [here](https://docs.google.com/forms/d/e/1FAIpQLScIBKy3y2m0rKu89L67qwe26Xyn9Scu0gW-HQX9lC0qEAx9nQ/viewform)\n\n### Install\n\n#### Go Install\n\nYou can install `scc` by using the standard go toolchain.\n\nTo install the latest stable version of scc:\n\n`go install github.com/boyter/scc/v3@latest`\n\nTo install a development version:\n\n`go install github.com/boyter/scc/v3@master`\n\nNote that `scc` needs go version >= 1.25.\n\n#### Snap\n\nA [snap install](https://snapcraft.io/scc) exists thanks to [Ricardo](https://feliciano.tech/).\n\n`$ sudo snap install scc`\n\n*NB* Snap installed applications cannot run outside of `/home` <https://askubuntu.com/questions/930437/permission-denied-error-when-running-apps-installed-as-snap-packages-ubuntu-17> so you may encounter issues if you use snap and attempt to run outside this directory.\n\n#### Homebrew\n\nOr if you have [Homebrew](https://brew.sh/) installed\n\n`$ brew install scc`\n\n#### Fedora\n\nFedora Linux users can use a [COPR repository](https://copr.fedorainfracloud.org/coprs/lihaohong/scc/):\n\n`$ sudo dnf copr enable lihaohong/scc && sudo dnf install scc`\n\n#### MacPorts\n\nOn macOS, you can also install via [MacPorts](https://www.macports.org)\n\n`$ sudo port install scc`\n\n#### Scoop\n\nOr if you are using [Scoop](https://scoop.sh/) on Windows\n\n`$ scoop install scc`\n\n#### Chocolatey\n\nOr if you are using [Chocolatey](https://chocolatey.org/) on Windows\n\n`$ choco install scc`\n\n#### WinGet\n\nOr if you are using [WinGet](https://github.com/microsoft/winget-cli) on Windows\n\n`winget install --id benboyter.scc --source winget`\n\n#### FreeBSD\n\nOn FreeBSD, scc is available as a package\n\n`$ pkg install scc`\n\nOr, if you prefer to build from source, you can use the ports tree\n\n`$ cd /usr/ports/devel/scc && make install clean`\n\n### Run in Docker\n\nGo to the directory you want to run scc from.\n\nRun the command below to run the latest release of scc on your current working directory:\n\n```bash\ndocker run --rm -it -v \"$PWD:/pwd\"  ghcr.io/boyter/scc:master scc /pwd\n```\n\n#### Manual\n\nBinaries for Windows, GNU/Linux and macOS for both i386 and x86_64 machines are available from the [releases](https://github.com/boyter/scc/releases) page.\n\n#### GitLab\n\n<https://about.gitlab.com/blog/2023/02/15/code-counting-in-gitlab/>\n\n#### Other\n\nIf you would like to assist with getting `scc` added into apt/chocolatey/etc... please submit a PR or at least raise an issue with instructions.\n\n### Background\n\nRead all about how it came to be along with performance benchmarks,\n\n- <https://boyter.org/posts/sloc-cloc-code/>\n- <https://boyter.org/posts/why-count-lines-of-code/>\n- <https://boyter.org/posts/sloc-cloc-code-revisited/>\n- <https://boyter.org/posts/sloc-cloc-code-performance/>\n- <https://boyter.org/posts/sloc-cloc-code-performance-update/>\n\nSome reviews of `scc`\n\n- <https://nickmchardy.com/2018/10/counting-lines-of-code-in-koi-cms.html>\n- <https://www.feliciano.tech/blog/determine-source-code-size-and-complexity-with-scc/>\n- <https://metaredux.com/posts/2019/12/13/counting-lines.html>\n\nSetting up `scc` in GitLab\n\n- <https://about.gitlab.com/blog/2023/02/15/code-counting-in-gitlab/>\n\nA talk given at the first GopherCon AU about `scc` (press S to see speaker notes)\n\n- <https://boyter.org/static/gophercon-syd-presentation/>\n- <https://www.youtube.com/watch?v=jd-sjoy3GZo>\n\nFor performance see the [Performance](https://github.com/boyter/scc#performance) section\n\nOther similar projects,\n\n- [SLOCCount](https://www.dwheeler.com/sloccount/) the original sloc counter\n- [cloc](https://github.com/AlDanial/cloc), inspired by SLOCCount; implemented in Perl for portability\n- [gocloc](https://github.com/hhatto/gocloc) a sloc counter in Go inspired by tokei\n- [loc](https://github.com/cgag/loc) rust implementation similar to tokei but often faster\n- [loccount](https://gitlab.com/esr/loccount) Go implementation written and maintained by ESR\n- [polyglot](https://github.com/vmchale/polyglot) ATS sloc counter\n- [tokei](https://github.com/XAMPPRocky/tokei) fast, accurate and written in rust\n- [sloc](https://github.com/flosse/sloc) coffeescript code counter\n- [stto](https://github.com/mainak55512/stto) new Go code counter with a focus on performance\n\nInteresting reading about other code counting projects tokei, loc, polyglot and loccount\n\n- <https://www.reddit.com/r/rust/comments/59bm3t/a_fast_cloc_replacement_in_rust/>\n- <https://www.reddit.com/r/rust/comments/82k9iy/loc_count_lines_of_code_quickly/>\n- <http://blog.vmchale.com/article/polyglot-comparisons>\n- <http://esr.ibiblio.org/?p=8270>\n\nFurther reading about processing files on the disk performance\n\n- <https://blog.burntsushi.net/ripgrep/>\n\nUsing `scc` to process 40 TB of files from GitHub/Bitbucket/GitLab\n\n- <https://boyter.org/posts/an-informal-survey-of-10-million-github-bitbucket-gitlab-projects/>\n\n### Pitch\n\nWhy use `scc`?\n\n- It is very fast and gets faster the more CPU you throw at it\n- Accurate\n- Works very well across multiple platforms without slowdown (Windows, Linux, macOS)\n- Large language support\n- Can ignore duplicate files\n- Has complexity estimations\n- You need to tell the difference between Coq and Verilog in the same directory\n- cloc yaml output support so potentially a drop in replacement for some users\n- Can identify or ignore minified files\n- Able to identify many #! files ADVANCED! <https://github.com/boyter/scc/issues/115>\n- Can ignore large files by lines or bytes\n- Can calculate the ULOC or unique lines of code by file, language or project\n- Supports multiple output formats for integration, CSV, SQL, JSON, HTML and more\n\nWhy not use `scc`?\n\n- You don't like Go for some reason\n- It cannot count D source with different nested multi-line comments correctly <https://github.com/boyter/scc/issues/27>\n\n### Differences\n\nThere are some important differences between `scc` and other tools that are out there. Here are a few important ones for you to consider.\n\nBlank lines inside comments are counted as comments. While the line is technically blank the decision was made that once in a comment everything there should be considered a comment until that comment is ended. As such the following,\n\n```c\n/* blank lines follow\n\n\n*/\n```\n\nWould be counted as 4 lines of comments. This is noticeable when comparing scc's output to other tools on large\nrepositories.\n\n`scc` is able to count verbatim strings correctly. For example in C# the following,\n\n```C#\nprivate const string BasePath = @\"a:\\\";\n// The below is returned to the user as a version\nprivate const string Version = \"1.0.0\";\n```\n\nBecause of the prefixed @ this string ends at the trailing \" by ignoring the escape character \\ and as such should be\ncounted as 2 code lines and 1 comment. Some tools are unable to\ndeal with this and instead count up to the \"1.0.0\" as a string which can cause the middle comment to be counted as\ncode rather than a comment.\n\n`scc` will also tell you the number of bytes it has processed (for most output formats) allowing you to estimate the\ncost of running some static analysis tools.\n\n### Usage\n\nCommand line usage of `scc` is designed to be as simple as possible.\nFull details can be found in `scc --help` or `scc -h`. Note that the below reflects the state of master not a release, as such\nfeatures listed below may be missing from your installation.\n\n```text\nSloc, Cloc and Code. Count lines of code in a directory with complexity estimation.\nVersion 3.5.0 (beta)\nBen Boyter <ben@boyter.org> + Contributors\n\nUsage:\n  scc [flags] [files or directories]\n\nFlags:\n      --avg-wage int                       average wage value used for basic COCOMO calculation (default 56286)\n      --binary                             disable binary file detection\n      --by-file                            display output for every file\n  -m, --character                          calculate max and mean characters per line\n      --ci                                 enable CI output settings where stdout is ASCII\n      --cocomo-project-type string         change COCOMO model type [organic, semi-detached, embedded, \"custom,1,1,1,1\"] (default \"organic\")\n      --count-as string                    count extension as language [e.g. jsp:htm,chead:\"C Header\" maps extension jsp to html and chead to C Header]\n      --count-ignore                       set to allow .gitignore and .ignore files to be counted\n      --currency-symbol string             set currency symbol (default \"$\")\n      --debug                              enable debug output\n      --directory-walker-job-workers int   controls the maximum number of workers which will walk the directory tree (default 8)\n  -a, --dryness                            calculate the DRYness of the project (implies --uloc)\n      --eaf float                          the effort adjustment factor derived from the cost drivers (1.0 if rated nominal) (default 1)\n      --exclude-dir strings                directories to exclude (default [.git,.hg,.svn])\n  -x, --exclude-ext strings                ignore file extensions (overrides include-ext) [comma separated list: e.g. go,java,js]\n  -n, --exclude-file strings               ignore files with matching names (default [package-lock.json,Cargo.lock,yarn.lock,pubspec.lock,Podfile.lock,pnpm-lock.yaml])\n      --file-gc-count int                  number of files to parse before turning the GC on (default 10000)\n      --file-list-queue-size int           the size of the queue of files found and ready to be read into memory (default 8)\n      --file-process-job-workers int       number of goroutine workers that process files collecting stats (default 8)\n      --file-summary-job-queue-size int    the size of the queue used to hold processed file statistics before formatting (default 8)\n  -f, --format string                      set output format [tabular, wide, json, json2, csv, csv-stream, cloc-yaml, html, html-table, sql, sql-insert, openmetrics] (default \"tabular\")\n      --format-multi string                have multiple format output overriding --format [e.g. tabular:stdout,csv:file.csv,json:file.json]\n      --gen                                identify generated files\n      --generated-markers strings          string markers in head of generated files (default [do not edit,<auto-generated />])\n  -h, --help                               help for scc\n  -i, --include-ext strings                limit to file extensions [comma separated list: e.g. go,java,js]\n      --include-symlinks                   if set will count symlink files\n  -l, --languages                          print supported languages and extensions\n      --large-byte-count int               number of bytes a file can contain before being removed from output (default 1000000)\n      --large-line-count int               number of lines a file can contain before being removed from output (default 40000)\n      --locomo                             enable LOCOMO (LLM Output COst MOdel) cost estimation\n      --locomo-config string               LOCOMO power-user config \"tokensPerLine,inputPerLine,complexityWeight,iterations,iterationWeight\"\n      --locomo-cycles float               override estimated LLM iteration cycles (default: calculated from complexity)\n      --locomo-input-price float           LOCOMO cost per 1M input tokens in dollars (overrides preset)\n      --locomo-output-price float          LOCOMO cost per 1M output tokens in dollars (overrides preset)\n      --locomo-preset string               LOCOMO model preset [large, medium, small, local] (default \"medium\")\n      --locomo-review float                human review minutes per line of code for LOCOMO estimate (default 0.01)\n      --locomo-tps float                   LOCOMO output tokens per second (overrides preset)\n      --cost-comparison                    show both COCOMO and LOCOMO estimates side by side\n      --min                                identify minified files\n  -z, --min-gen                            identify minified or generated files\n      --min-gen-line-length int            number of bytes per average line for file to be considered minified or generated (default 255)\n      --mcp                                start as an MCP (Model Context Protocol) server over stdio\n      --no-cocomo                          remove COCOMO calculation output\n  -c, --no-complexity                      skip calculation of code complexity\n  -d, --no-duplicates                      remove duplicate files from stats and output\n      --no-gen                             ignore generated files in output (implies --gen)\n      --no-gitignore                       disables .gitignore file logic\n      --no-gitmodule                       disables .gitmodules file logic\n      --no-hborder                         remove horizontal borders between sections\n      --no-ignore                          disables .ignore file logic\n      --no-large                           ignore files over certain byte and line size set by large-line-count and large-byte-count\n      --no-min                             ignore minified files in output (implies --min)\n      --no-min-gen                         ignore minified or generated files in output (implies --min-gen)\n      --no-scc-ignore                      disables .sccignore file logic\n      --no-size                            remove size calculation output\n  -M, --not-match stringArray              ignore files and directories matching regular expression\n  -o, --output string                      output filename (default stdout)\n      --overhead float                     set the overhead multiplier for corporate overhead (facilities, equipment, accounting, etc.) (default 2.4)\n  -p, --percent                            include percentage values in output\n      --remap-all string                   inspect every file and remap by checking for a string and remapping the language [e.g. \"-*- C++ -*-\":\"C Header\"]\n      --remap-unknown string               inspect files of unknown type and remap by checking for a string and remapping the language [e.g. \"-*- C++ -*-\":\"C Header\"]\n      --size-unit string                   set size unit [si, binary, mixed, xkcd-kb, xkcd-kelly, xkcd-imaginary, xkcd-intel, xkcd-drive, xkcd-bakers] (default \"si\")\n      --sloccount-format                   print a more SLOCCount like COCOMO calculation\n  -s, --sort string                        column to sort by [files, name, lines, blanks, code, comments, complexity] (default \"files\")\n      --sql-project string                 use supplied name as the project identifier for the current run. Only valid with the --format sql or sql-insert option\n  -t, --trace                              enable trace output (not recommended when processing multiple files)\n  -u, --uloc                               calculate the number of unique lines of code (ULOC) for the project\n  -v, --verbose                            verbose output\n      --version                            version for scc\n  -w, --wide                               wider output with additional statistics (implies --complexity)\n```\n\nOutput should look something like the below for the redis project\n\n```text\n$ scc redis \n───────────────────────────────────────────────────────────────────────────────\nLanguage                 Files     Lines   Blanks  Comments     Code Complexity\n───────────────────────────────────────────────────────────────────────────────\nC                          437   267,353   31,103    45,998  190,252     48,269\nJSON                       406    25,392        4         0   25,388          0\nC Header                   288    48,831    5,648    11,302   31,881      3,097\nTCL                        215    66,943    7,330     4,651   54,962      3,816\nShell                       75     1,626      239       343    1,044        185\nPython                      34     4,802      694       498    3,610        621\nMarkdown                    26     4,647    1,226         0    3,421          0\nAutoconf                    22    11,732    1,124     1,420    9,188      1,016\nLua                         20       525       69        71      385         89\nMakefile                    20     1,956      368       170    1,418         85\nYAML                        20     2,696      147        53    2,496          0\nMSBuild                     11     1,995        2         0    1,993        160\nPlain Text                  10     1,773      313         0    1,460          0\nRuby                         9       817       73       105      639        123\nC++                          8       546       85        43      418         43\nHTML                         5     9,658    2,928        12    6,718          0\nLicense                      3        90       17         0       73          0\nCMake                        2       298       49         5      244         12\nCSS                          2       107       16         0       91          0\nSystemd                      2        80        6         0       74          0\nBASH                         1       143       16         5      122         38\nBatch                        1        28        2         0       26          3\nC++ Header                   1         9        1         3        5          0\nExtensible Styleshe…         1        10        0         0       10          0\nJavaScript                   1        31        1         0       30          5\nModule-Definition            1    11,375    2,116         0    9,259        167\nSVG                          1         1        0         0        1          0\nSmarty Template              1        44        1         0       43          5\nm4                           1       951      218        64      669          0\n───────────────────────────────────────────────────────────────────────────────\nTotal                    1,624   464,459   53,796    64,743  345,920     57,734\n───────────────────────────────────────────────────────────────────────────────\nEstimated Cost to Develop (organic) $12,517,562\nEstimated Schedule Effort (organic) 35.93 months\nEstimated People Required (organic) 30.95\n───────────────────────────────────────────────────────────────────────────────\nProcessed 16601962 bytes, 16.602 megabytes (SI)\n───────────────────────────────────────────────────────────────────────────────\n```\n\nNote that you don't have to specify the directory you want to run against. Running `scc` will assume you want to run against the current directory.\n\nYou can also run against multiple files or directories `scc directory1 directory2 file1 file2` with the results aggregated in the output.\n\nSince `scc` writes to standard output, there are many ways to easily share the results. For example, using [netcat](https://manpages.org/nc)\nand [one of many pastebins](https://paste.c-net.org/) gives a public URL:\n\n```bash\n$ scc | nc paste.c-net.org 9999\nhttps://paste.c-net.org/Example\n```\n\n### Ignore Files\n\n`scc` mostly supports .ignore files inside directories that it scans. This is similar to how ripgrep, ag and tokei work. .ignore files are 100% the same as .gitignore files with the same syntax, and as such `scc` will ignore files and directories listed in them. You can add .ignore files to ignore things like vendored dependency checked in files and such. The idea is allowing you to add a file or folder to git and have ignored in the count.\n\nIt also supports its own ignore file `.sccignore` if you want `scc` to ignore things while having ripgrep, ag, tokei and others support them.\n\n### Interesting Use Cases\n\nUsed inside Intel Nemu Hypervisor to track code changes between revisions <https://github.com/intel/nemu/blob/topic/virt-x86/tools/cloc-change.sh#L9>\nAppears to also be used inside both <http://codescoop.com/> <https://pinpoint.com/> <https://github.com/chaoss/grimoirelab-graal>\n\nIt also is used to count code and guess language types in <https://searchcode.com/> which makes it one of the most frequently run code counters in the world.\n\nYou can also hook scc into your gitlab pipeline <https://gitlab.com/guided-explorations/ci-cd-plugin-extensions/ci-cd-plugin-extension-scc>\n\nUsed by the following products and services,\n\n- [GitHub CodeQL](https://github.com/boyter/scc/pull/317) - The CodeQL engine uses `scc` for line counting\n- [JetBrains Qodana](https://github.com/JetBrains/qodana-cli) - The Qodana CLI leverages `scc` as a command-line helper for code analysis\n- [Scaleway](https://twitter.com/Scaleway/status/1488087029476995074?s=20&t=N2-z6O-ISDdDzULg4o4uVQ) - Cloud provider using `scc`\n- [Linux Foundation LFX Insights](https://docs.linuxfoundation.org/lfx/insights/v3-beta-version-current/getting-started/landing-page/cocomo-cost-estimation-simplified) - COCOMO cost estimation\n- [OpenEMS](https://openems.io/)\n\n### Features\n\n`scc` uses a small state machine in order to determine what state the code is when it reaches a newline `\\n`. As such it is aware of and able to count\n\n- Single Line Comments\n- Multi Line Comments\n- Strings\n- Multi Line Strings\n- Blank lines\n\nBecause of this it is able to accurately determine if a comment is in a string or is actually a comment.\n\nIt also attempts to count the complexity of code. This is done by checking for branching operations in the code. For example, each of the following `for if switch while else || && != ==` if encountered in Java would increment that files complexity by one.\n\n### Complexity Estimates\n\nLet's take a minute to discuss the complexity estimate itself.\n\nThe complexity estimate is really just a number that is only comparable to files in the same language. It should not be used to compare languages directly without weighting them. The reason for this is that its calculated by looking for branch and loop statements in the code and incrementing a counter for that file.\n\nBecause some languages don't have loops and instead use recursion they can have a lower complexity count. Does this mean they are less complex? Probably not, but the tool cannot see this because it does not build an AST of the code as it only scans through it.\n\nGenerally though the complexity there is to help estimate between projects written in the same language, or for finding the most complex file in a project `scc --by-file -s complexity` which can be useful when you are estimating on how hard something is to maintain, or when looking for those files that should probably be refactored.\n\nAs for how it works.\n\nIt's my own definition, but tries to be an approximation of cyclomatic complexity <https://en.wikipedia.org/wiki/Cyclomatic_complexity> although done only on a file level.\n\nThe reason it's an approximation is that it's calculated almost for free from a CPU point of view (since its a cheap lookup when counting), whereas a real cyclomatic complexity count would need to parse the code. It gives a reasonable guess in practice though even if it fails to identify recursive methods. The goal was never for it to be exact.\n\nIn short when scc is looking through what it has identified as code if it notices what are usually branch conditions it will increment a counter.\n\nThe conditions it looks for are compiled into the code and you can get an idea for them by looking at the JSON inside the repository. See <https://github.com/boyter/scc/blob/master/languages.json#L3869> for an example of what it's looking at for a file that's Java.\n\nThe increment happens for each of the matching conditions and produces the number you see.\n\n### Unique Lines of Code (ULOC)\n\nULOC stands for Unique Lines of Code and represents the unique lines across languages, files and the project itself. This idea was taken from\n<https://cmcenroe.me/2018/12/14/uloc.html> where the calculation is presented using standard Unix tools `sort -u *.h *.c | wc -l`. This metric is\nthere to assist with the estimation of complexity within the project. Quoting the source\n\n> In my opinion, the number this produces should be a better estimate of the complexity of a project. Compared to SLOC, not only are blank lines discounted, but so are close-brace lines and other repetitive code such as common includes. On the other hand, ULOC counts comments, which require just as much maintenance as the code around them does, while avoiding inflating the result with license headers which appear in every file, for example.\n\nYou can obtain the ULOC by supplying the `-u` or `--uloc` argument to `scc`.\n\nIt has a corresponding metric `DRYness %` which is the percentage of ULOC to CLOC or `DRYness = ULOC / SLOC`. The\nhigher the number the more DRY (don't repeat yourself) the project can be considered. In general a higher value\nhere is a better as it indicates less duplicated code. The DRYness metric was taken from a comment by minimax <https://lobste.rs/s/has9r7/uloc_unique_lines_code>\n\nTo obtain the DRYness metric you can use the `-a` or `--dryness` argument to `scc`, which will implicitly set `--uloc`.\n\nNote that there is a performance penalty when calculating the ULOC metrics which can double the runtime.\n\nRunning the uloc and DRYness calculations against C code a clone of redis produces an output as follows.\n\n```bash\n$ scc -a -i c redis \n───────────────────────────────────────────────────────────────────────────────\nLanguage                 Files     Lines   Blanks  Comments     Code Complexity\n───────────────────────────────────────────────────────────────────────────────\nC                          437   267,353   31,103    45,998  190,252     48,269\n(ULOC)                            149892\n───────────────────────────────────────────────────────────────────────────────\nTotal                      437   267,353   31,103    45,998  190,252     48,269\n───────────────────────────────────────────────────────────────────────────────\nUnique Lines of Code (ULOC)       149892\nDRYness %                           0.56\n───────────────────────────────────────────────────────────────────────────────\nEstimated Cost to Develop (organic) $6,681,762\nEstimated Schedule Effort (organic) 28.31 months\nEstimated People Required (organic) 20.97\n───────────────────────────────────────────────────────────────────────────────\nProcessed 9390815 bytes, 9.391 megabytes (SI)\n───────────────────────────────────────────────────────────────────────────────\n```\n\nFurther reading about the ULOC calculation can be found at <https://boyter.org/posts/sloc-cloc-code-new-metic-uloc/>\n\nInterpreting Dryness,\n\n- 75% (High Density): Very terse, expressive code. Every line counts. (Example: Clojure, Haskell)\n- 60% - 70% (Standard): A healthy balance of logic and structural ceremony. (Example: Java, Python)\n- < 55% (High Boilerplate): High repetition. Likely due to mandatory error handling, auto-generated code, or verbose configuration. (Example: C#, CSS)\n\nSee <https://boyter.org/posts/boilerplate-tax-ranking-popular-languages-by-density/> for more details.\n\n### COCOMO\n\nThe COCOMO statistics displayed at the bottom of any command line run can be configured as needed.\n\n```text\nEstimated Cost to Develop (organic) $664,081\nEstimated Schedule Effort (organic) 11.772217 months\nEstimated People Required (organic) 5.011633\n```\n\nTo change the COCOMO parameters, you can either use one of the default COCOMO models.\n\n```text\nscc --cocomo-project-type organic\nscc --cocomo-project-type semi-detached\nscc --cocomo-project-type embedded\n```\n\nYou can also supply your own parameters if you are familiar with COCOMO as follows,\n\n```text\nscc --cocomo-project-type \"custom,1,1,1,1\"\n```\n\nSee below for details about how the model choices, and the parameters they use.\n\nOrganic – A software project is said to be an organic type if the team size required is adequately small, the\nproblem is well understood and has been solved in the past and also the team members have a nominal experience\nregarding the problem.\n\n`scc --cocomo-project-type \"organic,2.4,1.05,2.5,0.38\"`\n\nSemi-detached – A software project is said to be a Semi-detached type if the vital characteristics such as team-size,\nexperience, knowledge of the various programming environment lie in between that of organic and Embedded.\nThe projects classified as Semi-Detached are comparatively less familiar and difficult to develop compared to\nthe organic ones and require more experience and better guidance and creativity. Eg: Compilers or\ndifferent Embedded Systems can be considered of Semi-Detached type.\n\n`scc --cocomo-project-type \"semi-detached,3.0,1.12,2.5,0.35\"`\n\nEmbedded – A software project with requiring the highest level of complexity, creativity, and experience\nrequirement fall under this category. Such software requires a larger team size than the other two models\nand also the developers need to be sufficiently experienced and creative to develop such complex models.\n\n`scc --cocomo-project-type \"embedded,3.6,1.20,2.5,0.32\"`\n\n### LOCOMO\n\nLOCOMO (LLM Output COst MOdel) estimates the cost to regenerate a codebase using a large language model. It is the LLM-era counterpart to COCOMO — a rough ballpark estimator, not a project planning tool.\n\nNote: LOCOMO was developed as part of `scc` and is not an industry-standard model. Unlike COCOMO, which is based on decades of empirical research by Barry Boehm, LOCOMO is an experimental heuristic designed to give a useful order-of-magnitude estimate for LLM-assisted development costs. Treat its output as a conversation starter, not a definitive answer.\n\n**Important distinction:** LOCOMO estimates the cost to **regenerate** known code — essentially \"given this exact codebase, how much would it cost to have an LLM produce it?\" This is fundamentally different from the cost to **create** something from scratch, which involves exploration, architectural decisions, dead ends, debugging, and iteration that can cost orders of magnitude more. COCOMO estimates the human *creation* cost; LOCOMO estimates the LLM *regeneration* cost. They answer different questions.\n\nLOCOMO is opt-in. Enable it with `--locomo` or use `--cost-comparison` to display both COCOMO and LOCOMO side by side.\n\n```\n$ scc --locomo .\n...\nLOCOMO LLM Cost Estimate (medium)\n  Tokens Required (in/out) 3.0M / 0.7M\n  Cost to Generate $20\n  Estimated Cycles 2.1\n  Generation Time (serial) 3.9 hours\n  Human Review Time 5.9 hours\n  Disclaimer: rough ballpark for regenerating code using a LLM.\n  Does not account for context reuse, test generation, or heavy debugging.\n```\n\n#### How it works\n\nLOCOMO uses SLOC and complexity data that `scc` already computes. The model works per-file and aggregates:\n\n1. **Output tokens** — each line of code maps to ~10 LLM output tokens (configurable).\n2. **Input tokens** — estimated prompting cost, scaled by code complexity. More complex code (higher branch density) requires more detailed prompts. Scales to prevent runaway estimates.\n3. **Iteration factor** — LLMs rarely produce correct code on the first try. A retry multiplier scales with complexity, also scales.\n4. **Dollar cost** — input and output tokens multiplied by per-token pricing.\n5. **Generation time** — total serial output tokens divided by tokens-per-second throughput.\n6. **Human review time** — estimated per-line overhead for planning, review, testing, and integration.\n\n#### Model presets\n\nPresets are tier-based rather than tied to specific models, so they don't go stale as models are retired or renamed. Use `--locomo-preset` to select a tier:\n\n| Preset | Represents | Input $/1M | Output $/1M | TPS |\n|--------|-----------|-----------|-------------|-----|\n| `large` | Frontier models (Opus, GPT-5.3, Gemini 3.1 Pro, etc.) | 10.00 | 30.00 | 30 |\n| `medium` (default) | Balanced models (Sonnet, Gemini Flash, etc.) | 3.00 | 15.00 | 50 |\n| `small` | Fast/cheap models (Haiku, GPT-4o-mini, etc.) | 0.50 | 2.00 | 100 |\n| `local` | Self-hosted models (Llama, Mistral, Qwen etc.) | 0.00 | 0.00 | 15 |\n\nFor `local`, cost is $0 but generation time is still reported to capture the compute/time investment. Preset pricing reflects approximate tier rates as of early 2026 and can be overridden with explicit flags.\n\n```\nscc --locomo --locomo-preset large .\nscc --locomo --locomo-preset local .\n```\n\n#### Overriding preset values\n\nYou can override individual preset values for pricing or throughput:\n\n```\nscc --locomo --locomo-input-price 1.0 --locomo-output-price 5.0 .\nscc --locomo --locomo-tps 100 .\n```\n\n#### Human review time\n\nThe `--locomo-review` flag controls estimated human review minutes per line of code (default: 0.01, i.e. 0.6 seconds per line). This is intentionally optimistic and assumes light oversight.\n\nFor mission-critical, security-sensitive, or complex algorithmic code you should increase this:\n\n```\nscc --locomo --locomo-review 0.05 .\nscc --locomo --locomo-review 0.1 .\n```\n\n#### Power-user configuration\n\nThe five internal model parameters can be overridden with a single comma-separated config string:\n\n```\nscc --locomo --locomo-config \"tokensPerLine,inputPerLine,complexityWeight,iterations,iterationWeight\"\n```\n\nThe defaults are `\"10,20,5,1.5,2\"`. Here is what each parameter controls:\n\n| Position | Name | Default | Description |\n|----------|------|---------|-------------|\n| 1 | tokensPerLine | 10 | Average LLM output tokens per line of code |\n| 2 | inputPerLine | 20 | Base LLM input (prompt) tokens per output line |\n| 3 | complexityWeight | 5 | How much complexity density scales input tokens: `inputFactor = 1 + sqrt(density) * weight` |\n| 4 | iterations | 1.5 | Base iteration/retry cycles before complexity adjustment |\n| 5 | iterationWeight | 2 | How much complexity density adds extra cycles: `cycles = iterations + sqrt(density) * weight` |\n\nThe iteration factor (cycles) scales both input and output tokens — it represents how many generation attempts the LLM needs. Simple code (~0.05 complexity density) produces ~1.9 cycles; complex code (~0.3 density) produces ~2.6 cycles. Use `--locomo-cycles` to override this with a fixed value.\n\nFor example, to model a cheaper/faster LLM that needs fewer tokens but more retries:\n\n```\nscc --locomo --locomo-config \"8,15,3,2.0,1.5\"\n```\n\n#### Comparing COCOMO and LOCOMO\n\nUse `--cost-comparison` to show both estimates side by side. This enables COCOMO (if it was disabled) and LOCOMO together:\n\n```\nscc --cost-comparison .\n```\n\n#### What LOCOMO does not account for\n\nLOCOMO is a rough estimator with known limitations:\n\n- **No context reuse.** Real LLM-assisted development shares context across files. The per-file model overestimates input tokens for large projects with shared patterns.\n- **Boilerplate vs algorithmic code.** A 500-line CRUD controller and a 500-line compression algorithm have very different real costs, but the model only differentiates them via complexity density.\n- **Code that LLMs can't write well.** Complex concurrency, platform-specific edge cases, and security-critical crypto need human authoring, not just review.\n- **No test generation cost.** The model estimates source code generation only, not test suites.\n- **Pricing changes.** LLM pricing drops rapidly. Preset defaults will become stale — use explicit price flags for current estimates.\n\n#### All LOCOMO flags\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `--locomo` | false | Enable LOCOMO output |\n| `--cost-comparison` | false | Show COCOMO + LOCOMO side by side |\n| `--locomo-preset` | medium | Model tier preset for pricing and throughput |\n| `--locomo-input-price` | (preset) | Override: cost per 1M input tokens ($) |\n| `--locomo-output-price` | (preset) | Override: cost per 1M output tokens ($) |\n| `--locomo-tps` | (preset) | Override: output tokens per second |\n| `--locomo-review` | 0.01 | Human review minutes per line of code |\n| `--locomo-cycles` | (calculated) | Override estimated LLM iteration cycles |\n| `--locomo-config` | 10,20,5,1.5,2 | Power-user config: tokensPerLine, inputPerLine, complexityWeight, iterations, iterationWeight |\n\n### Large File Detection\n\nYou can have `scc` exclude large files from the output.\n\nThe option to do so is `--no-large` which by default will exclude files over 1,000,000 bytes or 40,000 lines.\n\nYou can control the size of either value using `--large-byte-count` or `--large-line-count`.\n\nFor example to exclude files over 1,000 lines and 50kb you could use the following,\n\n`scc --no-large --large-byte-count 50000 --large-line-count 1000`\n\n### Minified/Generated File Detection\n\nYou can have `scc` identify and optionally remove files identified as being minified or generated from the output.\n\nYou can do so by enabling the `-z` flag like so `scc -z` which will identify any file with an average line byte size >= 255 (by default) as being minified.\n\nMinified files appear like so in the output.\n\n```text\n$ scc --no-cocomo -z ./examples/minified/jquery-3.1.1.min.js\n───────────────────────────────────────────────────────────────────────────────\nLanguage                 Files     Lines   Blanks  Comments     Code Complexity\n───────────────────────────────────────────────────────────────────────────────\nJavaScript (min)             1         4        0         1        3         17\n───────────────────────────────────────────────────────────────────────────────\nTotal                        1         4        0         1        3         17\n───────────────────────────────────────────────────────────────────────────────\nProcessed 86709 bytes, 0.087 megabytes (SI)\n───────────────────────────────────────────────────────────────────────────────\n```\n\nMinified files are indicated with the text `(min)` after the language name.\n\nGenerated files are indicated with the text `(gen)` after the language name.\n\nYou can control the average line byte size using `--min-gen-line-length` such as `scc -z --min-gen-line-length 1`. Please note you need `-z` as modifying this value does not imply minified detection.\n\nYou can exclude minified files from the count totally using the flag `--no-min-gen`. Files which match the minified check will be excluded from the output.\n\n### Remapping\n\nSome files may not have an extension. They will be checked to see if they are a #! file. If they are then the language will be remapped to the\ncorrect language. Otherwise, it will not process.\n\nHowever, you may have the situation where you want to remap such files based on a string inside it. To do so you can use `--remap-unknown`\n\n```bash\n scc --remap-unknown \"-*- C++ -*-\":\"C Header\"\n```\n\nThe above will inspect any file with no extension looking for the string `-*- C++ -*-` and if found remap the file to be counted using the C Header rules.\nYou can have multiple remap rules if required,\n\n```bash\n scc --remap-unknown \"-*- C++ -*-\":\"C Header\",\"other\":\"Java\"\n```\n\nThere is also the `--remap-all` parameter which will remap all files.\n\nNote that in all cases if the remap rule does not apply normal #! rules will apply.\n\n### Output Formats\n\nBy default `scc` will output to the console. However, you can produce output in other formats if you require.\n\nThe different options are `tabular, wide, json, csv, csv-stream, cloc-yaml, html, html-table, sql, sql-insert, openmetrics`.\n\nNote that you can write `scc` output to disk using the `-o, --output` option. This allows you to specify a file to\nwrite your output to. For example `scc -f html -o output.html` will run `scc` against the current directory, and output\nthe results in html to the file `output.html`.\n\nYou can also write to multiple output files, or multiple types to stdout if you want using the `--format-multi` option. This is\nmost useful when working in CI/CD systems where you want HTML reports as an artifact while also displaying the counts in stdout.\n\n```bash\nscc --format-multi \"tabular:stdout,html:output.html,csv:output.csv\"\n```\n\nThe above will run against the current directory, outputting to standard output the default output, as well as writing\nto output.html and output.csv with the appropriate formats.\n\n#### Tabular\n\nThis is the default output format when scc is run.\n\n#### Wide\n\nWide produces some additional information which is the complexity/lines metric. This can be useful when trying to\nidentify the most complex file inside a project based on the complexity estimate.\n\n#### JSON\n\nJSON produces JSON output. Mostly designed to allow `scc` to feed into other programs.\n\nNote that this format will give you the byte size of every file `scc` reads allowing you to get a breakdown of the\nnumber of bytes processed.\n\n#### CSV\n\nCSV as an option is good for importing into a spreadsheet for analysis.\n\nNote that this format will give you the byte size of every file `scc` reads allowing you to get a breakdown of the\nnumber of bytes processed. Also note that CSV respects `--by-file` and as such will return a summary by default.\n\n#### CSV-Stream\n\ncsv-stream is an option useful for processing very large repositories where you are likely to run into memory issues. It's output format is 100% the same as CSV.\n\nNote that you should not use this with the `format-multi` option as it will always print to standard output, and because of how it works will negate the memory saving it normally gains.\nsavings that this option provides. Note that there is no sort applied with this option.\n\n#### cloc-yaml\n\nIs a drop in replacement for cloc using its yaml output option. This is quite often used for passing into other\nbuild systems and can help with replacing cloc if required.\n\n```text\n$ scc -f cloc-yml processor\n# https://github.com/boyter/scc/\nheader:\n  url: https://github.com/boyter/scc/\n  version: 2.11.0\n  elapsed_seconds: 0.008\n  n_files: 21\n  n_lines: 6562\n  files_per_second: 2625\n  lines_per_second: 820250\nGo:\n  name: Go\n  code: 5186\n  comment: 273\n  blank: 1103\n  nFiles: 21\nSUM:\n  code: 5186\n  comment: 273\n  blank: 1103\n  nFiles: 21\n\n$ cloc --yaml processor\n      21 text files.\n      21 unique files.\n       0 files ignored.\n\n---\n# http://cloc.sourceforge.net\nheader :\n  cloc_url           : http://cloc.sourceforge.net\n  cloc_version       : 1.60\n  elapsed_seconds    : 0.196972846984863\n  n_files            : 21\n  n_lines            : 6562\n  files_per_second   : 106.613679608407\n  lines_per_second   : 33314.2364566841\nGo:\n  nFiles: 21\n  blank: 1137\n  comment: 606\n  code: 4819\nSUM:\n  blank: 1137\n  code: 4819\n  comment: 606\n  nFiles: 21\n```\n\n#### HTML and HTML-TABLE\n\nThe HTML output options produce a minimal html report using a table that is either standalone `html` or as just a table `html-table`\nwhich can be injected into your own HTML pages. The only difference between the two is that the `html` option includes\nhtml head and body tags with minimal styling.\n\nThe markup is designed to allow your own custom styles to be applied. An example report\n[is here to view](SCC-OUTPUT-REPORT.html).\n\nNote that the HTML options follow the command line options, so you can use `scc --by-file -f html` to produce a report with every\nfile and not just the summary.\n\nNote that this format if it has the `--by-file` option will give you the byte size of every file `scc` reads allowing you to get a breakdown of the\nnumber of bytes processed.\n\n#### SQL and SQL-Insert\n\nThe SQL output format \"mostly\" compatible with cloc's SQL output format <https://github.com/AlDanial/cloc#sql->\n\nWhile all queries on the cloc documentation should work as expected, you will not be able to append output from `scc` and `cloc` into the same database. This is because the table format is slightly different\nto account for scc including complexity counts and bytes.\n\nThe difference between `sql` and `sql-insert` is that `sql` will include table creation while the latter will only have the insert commands.\n\nUsage is 100% the same as any other `scc` command but sql output will always contain per file details. You can compute totals yourself using SQL, however COCOMO calculations will appear against the metadata table as the columns `estimated_cost` `estimated_schedule_months` and `estimated_people`.\n\nThe below will run scc against the current directory, name the output as the project scc and then pipe the output to sqlite to put into the database code.db\n\n```bash\nscc --format sql --sql-project scc . | sqlite3 code.db\n```\n\nAssuming you then wanted to append another project\n\n```bash\nscc --format sql-insert --sql-project redis . | sqlite3 code.db\n```\n\nYou could then run SQL against the database,\n\n```bash\nsqlite3 code.db 'select project,file,max(nCode) as nL from t\n                         group by project order by nL desc;'\n```\n\nSee the cloc documentation for more examples.\n\n#### OpenMetrics\n\n[OpenMetrics](https://openmetrics.io/) is a metric reporting format specification extending the Prometheus exposition text format.\n\nThe produced output is natively supported by [Prometheus](https://prometheus.io/) and [GitLab CI](https://docs.gitlab.com/ee/ci/testing/metrics_reports.html)\n\nNote that OpenMetrics respects `--by-file` and as such will return a summary by default.\n\nThe output includes a metadata header containing definitions of the returned metrics:\n\n```text\n# TYPE scc_files count\n# HELP scc_files Number of sourcecode files.\n# TYPE scc_lines count\n# UNIT scc_lines lines\n# HELP scc_lines Number of lines.\n# TYPE scc_code count\n# HELP scc_code Number of lines of actual code.\n# TYPE scc_comments count\n# HELP scc_comments Number of comments.\n# TYPE scc_blanks count\n# HELP scc_blanks Number of blank lines.\n# TYPE scc_complexity count\n# HELP scc_complexity Code complexity.\n# TYPE scc_bytes count\n# UNIT scc_bytes bytes\n# HELP scc_bytes Size in bytes.\n```\n\nThe header is followed by the metric data in either language summary form:\n\n```text\nscc_files{language=\"Go\"} 1\nscc_lines{language=\"Go\"} 1000\nscc_code{language=\"Go\"} 1000\nscc_comments{language=\"Go\"} 1000\nscc_blanks{language=\"Go\"} 1000\nscc_complexity{language=\"Go\"} 1000\nscc_bytes{language=\"Go\"} 1000\n```\n\nor, if `--by-file` is present, in per file form:\n\n```text\nscc_lines{language=\"Go\",file=\"./bbbb.go\"} 1000\nscc_code{language=\"Go\",file=\"./bbbb.go\"} 1000\nscc_comments{language=\"Go\",file=\"./bbbb.go\"} 1000\nscc_blanks{language=\"Go\",file=\"./bbbb.go\"} 1000\nscc_complexity{language=\"Go\",file=\"./bbbb.go\"} 1000\nscc_bytes{language=\"Go\",file=\"./bbbb.go\"} 1000\n```\n\n### Performance\n\nGenerally `scc` will the fastest code counter compared to any I am aware of and have compared against. The below comparisons are taken from the fastest alternative counters. See `Other similar projects` above to see all of the other code counters compared against. It is designed to scale to as many CPU's cores as you can provide.\n\nHowever, if you want greater performance and you have RAM to spare you can disable the garbage collector like the following on Linux `GOGC=-1 scc .` which should speed things up considerably. For some repositories turning off the code complexity calculation via `-c` can reduce runtime as well.\n\nBenchmarks are run on fresh 32 Core CPU Optimised Vultr Ocean Virtual Machine 2026/03/05 all done using [hyperfine](https://github.com/sharkdp/hyperfine).\n\nSee <https://github.com/boyter/scc/blob/master/benchmark.sh> to see how the benchmarks are run.\n\n#### Valkey <https://github.com/valkey-io/valkey>\n\n```shell\nBenchmark 1: scc valkey\n  Time (mean ± σ):      27.7 ms ±   2.1 ms    [User: 175.7 ms, System: 87.0 ms]\n  Range (min … max):    23.1 ms …  32.1 ms    96 runs\n \nBenchmark 2: scc -c valkey\n  Time (mean ± σ):      23.0 ms ±   1.5 ms    [User: 131.7 ms, System: 84.0 ms]\n  Range (min … max):    19.5 ms …  31.4 ms    130 runs\n \nBenchmark 3: tokei valkey\n  Time (mean ± σ):      74.0 ms ±  13.0 ms    [User: 394.2 ms, System: 245.1 ms]\n  Range (min … max):    49.1 ms …  92.5 ms    37 runs\n \nBenchmark 4: polyglot valkey\n  Time (mean ± σ):      41.1 ms ±   1.2 ms    [User: 54.2 ms, System: 103.3 ms]\n  Range (min … max):    37.5 ms …  47.0 ms    69 runs\n \nSummary\n  scc -c valkey ran\n    1.20 ± 0.12 times faster than scc valkey\n    1.78 ± 0.13 times faster than polyglot valkey\n    3.21 ± 0.61 times faster than tokei valkey\n```\n\n#### CPython <https://github.com/python/cpython>\n\n```shell\nBenchmark 1: scc cpython\n  Time (mean ± σ):      80.8 ms ±   2.6 ms    [User: 751.1 ms, System: 265.6 ms]\n  Range (min … max):    75.7 ms …  87.4 ms    36 runs\n \nBenchmark 2: scc -c cpython\n  Time (mean ± σ):      70.5 ms ±   2.4 ms    [User: 592.6 ms, System: 254.7 ms]\n  Range (min … max):    66.2 ms …  77.6 ms    40 runs\n \nBenchmark 3: tokei cpython\n  Time (mean ± σ):     450.2 ms ±  36.1 ms    [User: 1822.0 ms, System: 1246.9 ms]\n  Range (min … max):   378.6 ms … 491.2 ms    10 runs\n \nBenchmark 4: polyglot cpython\n  Time (mean ± σ):     149.9 ms ±   5.8 ms    [User: 199.2 ms, System: 326.2 ms]\n  Range (min … max):   138.3 ms … 164.1 ms    19 runs\n \nSummary\n  scc -c cpython ran\n    1.15 ± 0.05 times faster than scc cpython\n    2.13 ± 0.11 times faster than polyglot cpython\n    6.39 ± 0.56 times faster than tokei cpython\n```\n\n#### Linux Kernel <https://github.com/torvalds/linux>\n\n```shell\nBenchmark 1: scc linux\n  Time (mean ± σ):     907.2 ms ±  17.1 ms    [User: 13764.7 ms, System: 2957.0 ms]\n  Range (min … max):   878.2 ms … 925.0 ms    10 runs\n \nBenchmark 2: scc -c linux\n  Time (mean ± σ):     842.5 ms ±  17.2 ms    [User: 9363.3 ms, System: 2977.0 ms]\n  Range (min … max):   819.4 ms … 874.0 ms    10 runs\n \nBenchmark 3: tokei linux\n  Time (mean ± σ):      1.422 s ±  0.089 s    [User: 13.292 s, System: 9.582 s]\n  Range (min … max):    1.176 s …  1.471 s    10 runs\n \nBenchmark 4: polyglot linux\n  Time (mean ± σ):      1.862 s ±  0.046 s    [User: 3.802 s, System: 3.543 s]\n  Range (min … max):    1.800 s …  1.935 s    10 runs\n \nSummary\n  scc -c linux ran\n    1.08 ± 0.03 times faster than scc linux\n    1.69 ± 0.11 times faster than tokei linux\n    2.21 ± 0.07 times faster than polyglot linux\n```\n\n#### Sourcegraph <https://github.com/SINTEF/sourcegraph.git>\n\nSourcegraph has gone dark since I last ran these benchmarks hence using a clone taken before this occured.\nThe reason for this is to track what appears to be a performance regression in tokei.\n\n```shell\nBenchmark 1: scc sourcegraph\n  Time (mean ± σ):     108.2 ms ±   3.5 ms    [User: 559.4 ms, System: 323.6 ms]\n  Range (min … max):   100.5 ms … 115.9 ms    26 runs\n \nBenchmark 2: scc -c sourcegraph\n  Time (mean ± σ):      99.7 ms ±   4.2 ms    [User: 503.1 ms, System: 316.8 ms]\n  Range (min … max):    91.4 ms … 109.4 ms    29 runs\n \nBenchmark 3: tokei sourcegraph\n  Time (mean ± σ):     21.359 s ±  1.025 s    [User: 57.252 s, System: 411.480 s]\n  Range (min … max):   19.371 s … 22.741 s    10 runs\n \nBenchmark 4: polyglot sourcegraph\n  Time (mean ± σ):     135.1 ms ±   5.0 ms    [User: 198.6 ms, System: 543.7 ms]\n  Range (min … max):   126.0 ms … 144.8 ms    21 runs\n \nSummary\n  scc -c sourcegraph ran\n    1.08 ± 0.06 times faster than scc sourcegraph\n    1.36 ± 0.08 times faster than polyglot sourcegraph\n  214.26 ± 13.64 times faster than tokei sourcegraph\n```\n\nIf you enable duplicate detection expect performance to fall by about 20% in `scc`.\n\nPerformance is tracked for some releases and presented below.\n\n[![scc perfromance on Linux kernel](./performance-over-time.png)]\nThe decrease in performance from the 3.3.0 release was due to accurate .gitignore, .ignore and .gitmodule support.\nCurrent work is focussed on resolving this.\n\n### CI/CD Support\n\nSome CI/CD systems which will remain nameless do not work very well with the box-lines used by `scc`. To support those systems better there is an option `--ci` which will change the default output to ASCII only.\n\n```text\n$ scc --ci main.go\n-------------------------------------------------------------------------------\nLanguage                 Files     Lines   Blanks  Comments     Code Complexity\n-------------------------------------------------------------------------------\nGo                           1       272        7         6      259          4\n-------------------------------------------------------------------------------\nTotal                        1       272        7         6      259          4\n-------------------------------------------------------------------------------\nEstimated Cost to Develop $6,539\nEstimated Schedule Effort 2.268839 months\nEstimated People Required 0.341437\n-------------------------------------------------------------------------------\nProcessed 5674 bytes, 0.006 megabytes (SI)\n-------------------------------------------------------------------------------\n```\n\nThe `--format-multi` option is especially useful in CI/CD where you want to get multiple output formats useful for storage or reporting.\n\n### Development\n\nIf you want to hack away feel free! PR's are accepted. Some things to keep in mind. If you want to change a language definition you need to update `languages.json` and then run `go generate` which will convert it into the `processor/constants.go` file.\n\nFor all other changes ensure you run all tests before submitting. You can do so using `go test ./...`. However, for maximum coverage please run `test-all.sh` which will run `gofmt`, unit tests, race detector and then all of the integration tests. All of those must pass to ensure a stable release.\n\n### API Support\n\nThe core part of `scc` which is the counting engine is exposed publicly to be integrated into other Go applications. See <https://github.com/pinpt/ripsrc> for an example of how to do this.\n\nIt also powers all of the code calculations displayed in <https://searchcode.com/> such as <https://searchcode.com/file/169350674/main.go/> making it one of the more used code counters in the world.\n\nHowever as a quick start consider the following,\n\nNote that you must pass in the number of bytes in the content in order to ensure it is counted!\n\n```go\npackage main\n\nimport (\n  \"fmt\"\n  \"io/ioutil\"\n\n  \"github.com/boyter/scc/v3/processor\"\n)\n\ntype statsProcessor struct{}\n\nfunc (p *statsProcessor) ProcessLine(job *processor.FileJob, currentLine int64, lineType processor.LineType) bool {\n  switch lineType {\n  case processor.LINE_BLANK:\n    fmt.Println(currentLine, \"lineType\", \"BLANK\")\n  case processor.LINE_CODE:\n    fmt.Println(currentLine, \"lineType\", \"CODE\")\n  case processor.LINE_COMMENT:\n    fmt.Println(currentLine, \"lineType\", \"COMMENT\")\n  }\n  return true\n}\n\nfunc main() {\n  bts, _ := ioutil.ReadFile(\"somefile.go\")  \n  t := &statsProcessor{}\n  filejob := &processor.FileJob{\n    Filename: \"test.go\",\n    Language: \"Go\",\n    Content:  bts,\n    Callback: t,\n    Bytes:    int64(len(bts)),\n  }  \n  processor.ProcessConstants() // Required to load the language information and need only be done once\n  processor.CountStats(filejob)\n}\n```\n\n#### Per-Byte Content Classification\n\nFor library consumers who need finer granularity than per-line classification, `scc` supports opt-in per-byte content classification. When enabled, `CountStats` populates a byte slice classifying every byte in the file as code, comment, string, or blank. This is useful for stripping comments from source files, extracting only comments, or building syntax-aware tools without reimplementing language parsing.\n\nTo enable it, set `ClassifyContent: true` on the `FileJob` before calling `CountStats`. When disabled (the default), there is zero performance impact.\n\n```go\npackage main\n\nimport (\n  \"fmt\"\n  \"os\"\n\n  \"github.com/boyter/scc/v3/processor\"\n)\n\nfunc main() {\n  processor.ProcessConstants()\n\n  bts, _ := os.ReadFile(\"main.go\")\n  filejob := &processor.FileJob{\n    Filename:        \"main.go\",\n    Language:        \"Go\",\n    Content:         bts,\n    Bytes:           int64(len(bts)),\n    ClassifyContent: true, // Enable per-byte classification\n  }\n  processor.CountStats(filejob)\n\n  // ContentByteType has one entry per byte with values:\n  //   processor.ByteTypeBlank   (0) - blank lines / leading whitespace\n  //   processor.ByteTypeCode    (1) - code\n  //   processor.ByteTypeComment (2) - comments (including docstrings)\n  //   processor.ByteTypeString  (3) - string literals\n\n  // Example: extract only code, replacing everything else with spaces\n  codeOnly := filejob.FilterContentByType(processor.ByteTypeCode)\n  fmt.Println(string(codeOnly))\n\n  // Example: extract only comments\n  commentsOnly := filejob.FilterContentByType(processor.ByteTypeComment)\n  fmt.Println(string(commentsOnly))\n\n  // Example: keep both code and strings, strip comments\n  noComments := filejob.FilterContentByType(processor.ByteTypeCode, processor.ByteTypeString)\n  fmt.Println(string(noComments))\n}\n```\n\n`FilterContentByType` returns a copy of the content with non-matching bytes replaced by spaces. Newlines are always preserved regardless of type, so the output maintains the same line structure as the original file. It returns `nil` if classification was not enabled.\n\nNote that at syntax marker boundaries (e.g., `//`, `/*`, `\"`), the first byte of the marker may be classified as the preceding state. This is a 1-byte approximation that is acceptable for content filtering use cases.\n\n### MCP Server Mode\n\n`scc` can run as an [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server over stdio, allowing LLM tools like Claude Desktop, Claude Code, Cursor, and others to use it as a code analysis tool.\n\n```shell\nscc --mcp\n```\n\n#### Claude Code Configuration\n\nRun in your terminal for the current project:\n\n```shell\nclaude mcp add scc -- scc --mcp\n```\n\nOr globally for all projects:\n\n```shell\nclaude mcp add scc --scope user -- scc --mcp\n```\n\nAlternatively, add to your `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"scc\": {\n      \"command\": \"scc\",\n      \"args\": [\"--mcp\"]\n    }\n  }\n}\n```\n\n#### Claude Desktop Configuration\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"scc\": {\n      \"command\": \"/path/to/scc\",\n      \"args\": [\"--mcp\"]\n    }\n  }\n}\n```\n\n#### Exposed Tools\n\nThe MCP server exposes one tool:\n\n**`analyze`** — Count lines of code, comments, blanks and estimate complexity for a project directory or file.\n\n| Parameter | Type | Required | Description |\n|---|---|---|---|\n| `path` | string | no | Directory or file path to analyze. Defaults to current directory. |\n| `sort` | string | no | Column to sort by: `files`, `name`, `lines`, `blanks`, `code`, `comments`, `complexity`, `bytes`. Default: `files`. |\n| `by_file` | boolean | no | If true, return per-file results instead of per-language summary. |\n| `include_ext` | string | no | Comma-separated file extensions to include (e.g. `go,java,js`). |\n| `exclude_ext` | string | no | Comma-separated file extensions to exclude (e.g. `json,xml`). |\n| `no_duplicates` | boolean | no | Remove duplicate files from stats. |\n| `no_min_gen` | boolean | no | Ignore minified or generated files. |\n| `locomo` | boolean | no | Include LOCOMO (LLM cost) estimation in results. |\n| `locomo_preset` | string | no | LOCOMO model preset: `large`, `medium`, `small`, `local`. Default: `medium`. |\n\nResults are returned as JSON with per-language breakdown (files, lines, code, comments, blanks, complexity, bytes), totals, and COCOMO cost/schedule estimates. When `locomo` is enabled, LOCOMO estimates (token counts, cost, generation time, review hours) are also included.\n\n### Adding/Modifying Languages\n\nTo add or modify a language you will need to edit the `languages.json` file in the root of the project, and then run `go generate` to build it into the application. You can then `go install` or `go build` as normal to produce the binary with your modifications.\n\n### Issues\n\nIts possible that you may see the counts vary between runs. This usually means one of two things. Either something is changing or locking the files under scc, or that you are hitting ulimit restrictions. To change the ulimit see the following links.\n\n- <https://superuser.com/questions/261023/how-to-change-default-ulimit-values-in-mac-os-x-10-6#306555>\n- <https://unix.stackexchange.com/questions/108174/how-to-persistently-control-maximum-system-resource-consumption-on-mac/221988#221988>\n- <https://access.redhat.com/solutions/61334>\n- <https://serverfault.com/questions/356962/where-are-the-default-ulimit-values-set-linux-centos>\n- <https://www.tecmint.com/increase-set-open-file-limits-in-linux/>\n\nTo help identify this issue run scc like so `scc -v .` and look for the message `too many open files` in the output. If it is there you can rectify it by setting your ulimit to a higher value.\n\n### Low Memory\n\nIf you are running `scc` in a low memory environment < 512 MB of RAM you may need to set `--file-gc-count` to a lower value such as `0` to force the garbage collector to be on at all times.\n\nA sign that this is required will be `scc` crashing with panic errors.\n\n### Tests\n\nscc is pretty well tested with many unit, integration and benchmarks to ensure that it is fast and complete.\n\n### Package\n\nPackaging as of version v3.1.0 is done through <https://goreleaser.com/>\n\n### Containers\n\nNote if you plan to run `scc` in Alpine containers you will need to build with CGO_ENABLED=0.\n\nSee the below Dockerfile as an example on how to achieve this based on this issue <https://github.com/boyter/scc/issues/208>\n\n```Dockerfile\nFROM golang as scc-get\n\nENV GOOS=linux \\\nGOARCH=amd64 \\\nCGO_ENABLED=0\n\nARG VERSION\nRUN git clone --branch $VERSION --depth 1 https://github.com/boyter/scc\nWORKDIR /go/scc\nRUN go build -ldflags=\"-s -w\"\n\nFROM alpine\nCOPY --from=scc-get /go/scc/scc /bin/\nENTRYPOINT [\"scc\"]\n```\n\n### Badges\n\nYou can use `scc` to provide badges on your github/bitbucket/gitlab/sr.ht open repositories. For example, [![Scc Count Badge](https://sloc.xyz/github/boyter/scc/)](https://github.com/boyter/scc/)\n The format to do so is,\n\n<https://sloc.xyz/PROVIDER/USER/REPO>\n\nAn example of the badge for `scc` is included below, and is used on this page.\n\n```Markdown\n[![Scc Count Badge](https://sloc.xyz/github/boyter/scc/)](https://github.com/boyter/scc/)\n```\n\nBy default the badge will show the repo's lines count. You can also specify for it to show a different category, by using the `?category=` query string.\n\nValid values include `code, blanks, lines, comments, cocomo, effort` and examples of the appearance are included below.\n\n[![Scc Count Badge](https://sloc.xyz/github/boyter/scc/?category=code)](https://github.com/boyter/scc/)\n[![Scc Count Badge](https://sloc.xyz/github/boyter/scc/?category=blanks)](https://github.com/boyter/scc/)\n[![Scc Count Badge](https://sloc.xyz/github/boyter/scc/?category=lines)](https://github.com/boyter/scc/)\n[![Scc Count Badge](https://sloc.xyz/github/boyter/scc/?category=comments)](https://github.com/boyter/scc/)\n[![Scc Count Badge](https://sloc.xyz/github/boyter/scc/?category=cocomo)](https://github.com/boyter/scc/)\n[![Scc Count Badge](https://sloc.xyz/github/boyter/scc/?category=effort)](https://github.com/boyter/scc/)\n\nFor `cocomo` you can also set the `avg-wage` value similar to `scc` itself. For example,\n\n<https://sloc.xyz/github/boyter/scc/?category=cocomo&avg-wage=1>\n<https://sloc.xyz/github/boyter/scc/?category=cocomo&avg-wage=100000>\n\nNote that the avg-wage value must be a positive integer otherwise it will revert back to the default value of 56286.\n\nYou can also configure the look and feel of the badge using the following parameters,\n\n- ?lower=true will lower the title text, so \"Total lines\" would be \"total lines\"\n\nThe below can control the colours of shadows, fonts and badges. Colors can be specified as either hex codes or named colors (similar to shields.io):\n\n- ?font-color=fff\n- ?font-shadow-color=010101\n- ?top-shadow-accent-color=bbb\n- ?title-bg-color=555\n- ?badge-bg-color=4c1\n\n##### Named Colors\n\nFor convenience, you can use named colors instead of hex codes. The following named colors are supported:\n\n**Shields.io colors:** `brightgreen`, `green`, `yellowgreen`, `yellow`, `orange`, `red`, `blue`, `lightgrey`, `blueviolet`\n\n**Semantic aliases:** `success`, `important`, `critical`, `informational`, `inactive`\n\n**CSS colors:** `white`, `black`, `silver`, `gray`, `maroon`, `purple`, `fuchsia`, `lime`, `olive`, `navy`, `teal`, `aqua`, `cyan`, `magenta`, `pink`, `coral`, `salmon`, `gold`, `khaki`, `violet`, `indigo`, `crimson`, `turquoise`, `tan`, `brown`, and many more standard CSS color names.\n\nFor example, instead of `?badge-bg-color=007ec6` you can use `?badge-bg-color=blue`.\n\nAn example of using some of these parameters to produce an admittedly ugly result\n\n[![Scc Count Badge](https://sloc.xyz/github/boyter/scc?font-color=ff0000&badge-bg-color=0000ff&lower=true)](https://github.com/boyter/scc/)\n\nAn example using named colors for as a slightly nicer result\n\n[![Scc Count Badge](https://sloc.xyz/github/boyter/scc?title-bg-color=navy&badge-bg-color=blue&font-color=white)](https://github.com/boyter/scc/)\n\n*NB* it may not work for VERY large repositories (has been tested on Apache hadoop/spark without issue).\n\nYou can find the source code for badges in the repository at <https://github.com/boyter/scc/blob/master/cmd/badges/main.go>\n\n#### A example for each supported provider\n\n- Github - <https://sloc.xyz/github/boyter/scc/>\n- sr.ht - <https://sloc.xyz/sr.ht/~nektro/magnolia-desktop/>\n- Bitbucket - <https://sloc.xyz/bitbucket/boyter/decodingcaptchas>\n- Gitlab - <https://sloc.xyz/gitlab/esr/loccount>\n\n### Languages\n\nList of supported languages. The master version of `scc` supports 322 languages at last count. Note that this is always assumed that you built from master, and it might trail behind what is actually supported. To see what your version of `scc` supports run `scc --languages`\n\n[Click here to view all languages supported by master](LANGUAGES.md)\n\n### Citation\n\nPlease use the following bibtex entry to cite scc in a publication:\n\n<pre>\n@software{scc,\n  author       = {Ben Boyter},\n  title        = {scc: v3.5.0},\n  month        = ...,\n  year         = ...,\n  publisher    = {...},\n  version      = {v3.5.0},\n  doi          = {...},\n  url          = {...}\n}\n</pre>\n\nYou may need to check the release page <https://github.com/boyter/scc/releases> to find the correct year and month for the release you are using.\n\n### Release Checklist\n\n- Update version\n- Push code with release number\n- Tag off\n- Release via goreleaser\n- Update dockerfile\n"
  },
  {
    "path": "SCC-OUTPUT-REPORT.html",
    "content": "<html lang=\"en\"><head><meta charset=\"utf-8\" /><title>scc html output</title><style>table { border-collapse: collapse; }td, th { border: 1px solid #999; padding: 0.5rem; text-align: left;}</style></head><body><table id=\"scc-table\">\n\t<thead><tr>\n\t\t<th>Language</th>\n\t\t<th>Files</th>\n\t\t<th>Lines</th>\n\t\t<th>Blank</th>\n\t\t<th>Comment</th>\n\t\t<th>Code</th>\n\t\t<th>Complexity</th>\n\t\t<th>Bytes</th>\n\t\t<th>Uloc</th>\n\t</tr></thead>\n\t<tbody><tr>\n\t\t<th>Go</th>\n\t\t<th>32</th>\n\t\t<th>26344</th>\n\t\t<th>1679</th>\n\t\t<th>584</th>\n\t\t<th>24081</th>\n\t\t<th>1856</th>\n\t\t<th>530745</th>\n\t\t<th>7733</th>\n\t</tr><tr>\n\t\t<td>processor/constants.go</td>\n\t\t<td></td>\n\t\t<td>14075</td>\n\t\t<td>1</td>\n\t\t<td>2</td>\n\t\t<td>14072</td>\n\t\t<td>0</td>\n\t\t<td>220906</td>\n\t\t<td>2160</td>\n\t</tr><tr>\n\t\t<td>processor/workers_test.go</td>\n\t\t<td></td>\n\t\t<td>1914</td>\n\t\t<td>338</td>\n\t\t<td>64</td>\n\t\t<td>1512</td>\n\t\t<td>369</td>\n\t\t<td>41856</td>\n\t\t<td>672</td>\n\t</tr><tr>\n\t\t<td>processor/formatters_test.go</td>\n\t\t<td></td>\n\t\t<td>1835</td>\n\t\t<td>166</td>\n\t\t<td>4</td>\n\t\t<td>1665</td>\n\t\t<td>181</td>\n\t\t<td>43740</td>\n\t\t<td>501</td>\n\t</tr><tr>\n\t\t<td>processor/formatters.go</td>\n\t\t<td></td>\n\t\t<td>1559</td>\n\t\t<td>207</td>\n\t\t<td>32</td>\n\t\t<td>1320</td>\n\t\t<td>167</td>\n\t\t<td>47400</td>\n\t\t<td>833</td>\n\t</tr><tr>\n\t\t<td>processor/workers.go</td>\n\t\t<td></td>\n\t\t<td>872</td>\n\t\t<td>128</td>\n\t\t<td>92</td>\n\t\t<td>652</td>\n\t\t<td>217</td>\n\t\t<td>26349</td>\n\t\t<td>507</td>\n\t</tr><tr>\n\t\t<td>processor/processor.go</td>\n\t\t<td></td>\n\t\t<td>704</td>\n\t\t<td>151</td>\n\t\t<td>123</td>\n\t\t<td>430</td>\n\t\t<td>85</td>\n\t\t<td>20885</td>\n\t\t<td>469</td>\n\t</tr><tr>\n\t\t<td>main_test.go</td>\n\t\t<td></td>\n\t\t<td>694</td>\n\t\t<td>54</td>\n\t\t<td>15</td>\n\t\t<td>625</td>\n\t\t<td>179</td>\n\t\t<td>16612</td>\n\t\t<td>390</td>\n\t</tr><tr>\n\t\t<td>cmd/badges/main.go</td>\n\t\t<td></td>\n\t\t<td>615</td>\n\t\t<td>82</td>\n\t\t<td>30</td>\n\t\t<td>503</td>\n\t\t<td>73</td>\n\t\t<td>17363</td>\n\t\t<td>437</td>\n\t</tr><tr>\n\t\t<td>main.go</td>\n\t\t<td></td>\n\t\t<td>542</td>\n\t\t<td>17</td>\n\t\t<td>10</td>\n\t\t<td>515</td>\n\t\t<td>24</td>\n\t\t<td>13082</td>\n\t\t<td>339</td>\n\t</tr><tr>\n\t\t<td>processor/detector_test.go</td>\n\t\t<td></td>\n\t\t<td>420</td>\n\t\t<td>94</td>\n\t\t<td>3</td>\n\t\t<td>323</td>\n\t\t<td>109</td>\n\t\t<td>7784</td>\n\t\t<td>162</td>\n\t</tr><tr>\n\t\t<td>cmd/badges/main_test.go</td>\n\t\t<td></td>\n\t\t<td>304</td>\n\t\t<td>8</td>\n\t\t<td>9</td>\n\t\t<td>287</td>\n\t\t<td>13</td>\n\t\t<td>7909</td>\n\t\t<td>177</td>\n\t</tr><tr>\n\t\t<td>processor/locomo_test.go</td>\n\t\t<td></td>\n\t\t<td>272</td>\n\t\t<td>37</td>\n\t\t<td>18</td>\n\t\t<td>217</td>\n\t\t<td>68</td>\n\t\t<td>7503</td>\n\t\t<td>131</td>\n\t</tr><tr>\n\t\t<td>processor/workers_tokei_test.go</td>\n\t\t<td></td>\n\t\t<td>249</td>\n\t\t<td>37</td>\n\t\t<td>2</td>\n\t\t<td>210</td>\n\t\t<td>40</td>\n\t\t<td>4027</td>\n\t\t<td>125</td>\n\t</tr><tr>\n\t\t<td>processor/structs.go</td>\n\t\t<td></td>\n\t\t<td>238</td>\n\t\t<td>25</td>\n\t\t<td>24</td>\n\t\t<td>189</td>\n\t\t<td>25</td>\n\t\t<td>7196</td>\n\t\t<td>167</td>\n\t</tr><tr>\n\t\t<td>processor/detector.go</td>\n\t\t<td></td>\n\t\t<td>232</td>\n\t\t<td>42</td>\n\t\t<td>33</td>\n\t\t<td>157</td>\n\t\t<td>54</td>\n\t\t<td>6304</td>\n\t\t<td>152</td>\n\t</tr><tr>\n\t\t<td>processor/file_test.go</td>\n\t\t<td></td>\n\t\t<td>213</td>\n\t\t<td>50</td>\n\t\t<td>1</td>\n\t\t<td>162</td>\n\t\t<td>37</td>\n\t\t<td>4585</td>\n\t\t<td>97</td>\n\t</tr><tr>\n\t\t<td>processor/workers_regression_test.go</td>\n\t\t<td></td>\n\t\t<td>212</td>\n\t\t<td>42</td>\n\t\t<td>5</td>\n\t\t<td>165</td>\n\t\t<td>42</td>\n\t\t<td>4015</td>\n\t\t<td>105</td>\n\t</tr><tr>\n\t\t<td>processor/similar_flags_test.go</td>\n\t\t<td></td>\n\t\t<td>176</td>\n\t\t<td>5</td>\n\t\t<td>1</td>\n\t\t<td>170</td>\n\t\t<td>5</td>\n\t\t<td>3105</td>\n\t\t<td>78</td>\n\t</tr><tr>\n\t\t<td>processor/locomo.go</td>\n\t\t<td></td>\n\t\t<td>160</td>\n\t\t<td>25</td>\n\t\t<td>22</td>\n\t\t<td>113</td>\n\t\t<td>17</td>\n\t\t<td>5311</td>\n\t\t<td>117</td>\n\t</tr><tr>\n\t\t<td>processor/file.go</td>\n\t\t<td></td>\n\t\t<td>153</td>\n\t\t<td>23</td>\n\t\t<td>16</td>\n\t\t<td>114</td>\n\t\t<td>43</td>\n\t\t<td>3527</td>\n\t\t<td>94</td>\n\t</tr><tr>\n\t\t<td>processor/processor_test.go</td>\n\t\t<td></td>\n\t\t<td>151</td>\n\t\t<td>36</td>\n\t\t<td>1</td>\n\t\t<td>114</td>\n\t\t<td>21</td>\n\t\t<td>2573</td>\n\t\t<td>66</td>\n\t</tr><tr>\n\t\t<td>processor/structs_test.go</td>\n\t\t<td></td>\n\t\t<td>145</td>\n\t\t<td>14</td>\n\t\t<td>1</td>\n\t\t<td>130</td>\n\t\t<td>16</td>\n\t\t<td>3323</td>\n\t\t<td>96</td>\n\t</tr><tr>\n\t\t<td>processor/trace_test.go</td>\n\t\t<td></td>\n\t\t<td>117</td>\n\t\t<td>13</td>\n\t\t<td>0</td>\n\t\t<td>104</td>\n\t\t<td>15</td>\n\t\t<td>2771</td>\n\t\t<td>80</td>\n\t</tr><tr>\n\t\t<td>processor/trace.go</td>\n\t\t<td></td>\n\t\t<td>96</td>\n\t\t<td>15</td>\n\t\t<td>8</td>\n\t\t<td>73</td>\n\t\t<td>9</td>\n\t\t<td>1957</td>\n\t\t<td>58</td>\n\t</tr><tr>\n\t\t<td>scripts/include.go</td>\n\t\t<td></td>\n\t\t<td>92</td>\n\t\t<td>19</td>\n\t\t<td>5</td>\n\t\t<td>68</td>\n\t\t<td>19</td>\n\t\t<td>2140</td>\n\t\t<td>64</td>\n\t</tr><tr>\n\t\t<td>processor/similar_flags.go</td>\n\t\t<td></td>\n\t\t<td>89</td>\n\t\t<td>9</td>\n\t\t<td>14</td>\n\t\t<td>66</td>\n\t\t<td>11</td>\n\t\t<td>2400</td>\n\t\t<td>67</td>\n\t</tr><tr>\n\t\t<td>processor/filereader.go</td>\n\t\t<td></td>\n\t\t<td>54</td>\n\t\t<td>10</td>\n\t\t<td>10</td>\n\t\t<td>34</td>\n\t\t<td>5</td>\n\t\t<td>1353</td>\n\t\t<td>39</td>\n\t</tr><tr>\n\t\t<td>processor/cocomo.go</td>\n\t\t<td></td>\n\t\t<td>43</td>\n\t\t<td>6</td>\n\t\t<td>18</td>\n\t\t<td>19</td>\n\t\t<td>0</td>\n\t\t<td>2209</td>\n\t\t<td>35</td>\n\t</tr><tr>\n\t\t<td>processor/bloom.go</td>\n\t\t<td></td>\n\t\t<td>37</td>\n\t\t<td>7</td>\n\t\t<td>12</td>\n\t\t<td>18</td>\n\t\t<td>2</td>\n\t\t<td>1062</td>\n\t\t<td>29</td>\n\t</tr><tr>\n\t\t<td>processor/cocomo_test.go</td>\n\t\t<td></td>\n\t\t<td>37</td>\n\t\t<td>8</td>\n\t\t<td>4</td>\n\t\t<td>25</td>\n\t\t<td>6</td>\n\t\t<td>686</td>\n\t\t<td>23</td>\n\t</tr><tr>\n\t\t<td>processor/helpers_test.go</td>\n\t\t<td></td>\n\t\t<td>26</td>\n\t\t<td>6</td>\n\t\t<td>1</td>\n\t\t<td>19</td>\n\t\t<td>4</td>\n\t\t<td>434</td>\n\t\t<td>18</td>\n\t</tr><tr>\n\t\t<td>processor/helpers.go</td>\n\t\t<td></td>\n\t\t<td>18</td>\n\t\t<td>4</td>\n\t\t<td>4</td>\n\t\t<td>10</td>\n\t\t<td>0</td>\n\t\t<td>378</td>\n\t\t<td>14</td>\n\t</tr></tbody>\n\t<tfoot><tr>\n\t\t<th>Total</th>\n\t\t<th>32</th>\n\t\t<th>26344</th>\n\t\t<th>1679</th>\n\t\t<th>584</th>\n\t\t<th>24081</th>\n\t\t<th>1856</th>\n\t\t<th>530745</th>\n\t\t<th>7733</th>\n\t</tr>\n\t<tr>\n\t\t<th colspan=\"9\">Estimated Cost to Develop (organic) $762,699<br>Estimated Schedule Effort (organic) 12.41 months<br>Estimated People Required (organic) 5.46<br></th>\n\t</tr></tfoot>\n\t</table></body></html>\n"
  },
  {
    "path": "benchmark.sh",
    "content": "#!/bin/bash\n\n# Assumes we need to install everything from scratch on a box for benchmarking\n# Also assumes we have copied the ./examples/performance_tests/create_performance_test.py file to where this is run\n\napt update\napt install --assume-yes build-essential unzip tmux htop\n\nrm ./*.zip\nrm ./*.gz\n\ninstall_scc_zip() {\n    local version=$1\n    local url=$2\n    wget \"$url\"\n    local file=$(basename \"$url\")\n    unzip \"$file\"\n    mv scc /usr/local/bin/scc${version}\n    rm \"$file\"\n}\n\ninstall_scc_tar() {\n    local version=$1\n    local url=$2\n    wget \"$url\"\n    local file=$(basename \"$url\")\n    tar zxvf \"$file\"\n    mv scc /usr/local/bin/scc${version}\n    rm \"$file\"\n}\n\n# v1.x zip releases\nZIP_VERSIONS=(\n    \"1.0.0 https://github.com/boyter/scc/releases/download/v1.0.0/scc-1.0.0-x86_64-unknown-linux.zip\"\n    \"1.1.0 https://github.com/boyter/scc/releases/download/v1.1.0/scc-1.1.0-x86_64-unknown-linux.zip\"\n    \"1.2.0 https://github.com/boyter/scc/releases/download/v1.2.0/scc-1.2.0-x86_64-unknown-linux.zip\"\n    \"1.3.0 https://github.com/boyter/scc/releases/download/untagged-928286b8064e2cf6dd35/scc-1.3.0-x86_64-unknown-linux.zip\"\n    \"1.4.0 https://github.com/boyter/scc/releases/download/v1.4.0/scc-1.4.0-x86_64-unknown-linux.zip\"\n    \"1.5.0 https://github.com/boyter/scc/releases/download/v1.5.0/scc-1.5.0-x86_64-unknown-linux.zip\"\n    \"1.6.0 https://github.com/boyter/scc/releases/download/v1.6.0/scc-1.6.0-x86_64-unknown-linux.zip\"\n    \"1.7.0 https://github.com/boyter/scc/releases/download/v1.7.0/scc-1.7.0-x86_64-unknown-linux.zip\"\n    \"1.8.0 https://github.com/boyter/scc/releases/download/v1.8.0/scc-1.8.0-x86_64-unknown-linux.zip\"\n    \"1.9.0 https://github.com/boyter/scc/releases/download/v1.9.0/scc-1.9.0-x86_64-unknown-linux.zip\"\n    \"1.10.0 https://github.com/boyter/scc/releases/download/v1.10.0/scc-1.0.0-x86_64-unknown-linux.zip\"\n    \"1.11.0 https://github.com/boyter/scc/releases/download/v1.11.0/scc-1.11.0-x86_64-unknown-linux.zip\"\n    \"1.12.0 https://github.com/boyter/scc/releases/download/v1.12.0/scc-1.12.0-x86_64-unknown-linux.zip\"\n    \"1.12.1 https://github.com/boyter/scc/releases/download/v1.12.1/scc-1.12.1-x86_64-unknown-linux.zip\"\n)\n\n# v2.x zip releases\nZIP_VERSIONS+=(\n    \"2.0.0 https://github.com/boyter/scc/releases/download/v2.0.0/scc-2.0.0-x86_64-unknown-linux.zip\"\n    \"2.1.0 https://github.com/boyter/scc/releases/download/v2.1.0/scc-2.1.0-x86_64-unknown-linux.zip\"\n    \"2.2.0 https://github.com/boyter/scc/releases/download/v2.2.0/scc-2.2.0-x86_64-unknown-linux.zip\"\n    \"2.3.0 https://github.com/boyter/scc/releases/download/v2.3.0/scc-2.3.0-x86_64-unknown-linux.zip\"\n    \"2.4.0 https://github.com/boyter/scc/releases/download/v2.4.0/scc-2.4.0-x86_64-unknown-linux.zip\"\n    \"2.5.0 https://github.com/boyter/scc/releases/download/v2.5.0/scc-2.5.0-x86_64-unknown-linux.zip\"\n    \"2.6.0 https://github.com/boyter/scc/releases/download/v2.6.0/scc-2.6.0-x86_64-unknown-linux.zip\"\n    \"2.7.0 https://github.com/boyter/scc/releases/download/v2.7.0/scc-2.7.0-x86_64-unknown-linux.zip\"\n    \"2.8.0 https://github.com/boyter/scc/releases/download/v2.8.0/scc-2.8.0-x86_64-unknown-linux.zip\"\n    \"2.9.0 https://github.com/boyter/scc/releases/download/v2.9.0/scc-2.9.0-x86_64-unknown-linux.zip\"\n    \"2.9.1 https://github.com/boyter/scc/releases/download/v2.9.1/scc-2.9.1-x86_64-unknown-linux.zip\"\n    \"2.10.0 https://github.com/boyter/scc/releases/download/v2.10.0/scc-2.10.0-x86_64-unknown-linux.zip\"\n    \"2.11.0 https://github.com/boyter/scc/releases/download/v2.11.0/scc-2.11.0-x86_64-unknown-linux.zip\"\n    \"2.12.0 https://github.com/boyter/scc/releases/download/v2.12.0/scc-2.12.0-x86_64-unknown-linux.zip\"\n    \"2.13.0 https://github.com/boyter/scc/releases/download/v2.13.0/scc-2.13.0-x86_64-unknown-linux.zip\"\n)\n\n# v3.0.0 is a zip\nZIP_VERSIONS+=(\n    \"3.0.0 https://github.com/boyter/scc/releases/download/v3.0.0/scc-3.0.0-x86_64-unknown-linux.zip\"\n)\n\n# v3.1.0 has a versioned tar name\nTAR_VERSIONS=(\n    \"3.1.0 https://github.com/boyter/scc/releases/download/v3.1.0/scc_3.1.0_Linux_x86_64.tar.gz\"\n)\n\n# v3.2.0+ use the generic tar name\nGENERIC_TAR_VERSIONS=(3.2.0 3.3.0 3.3.2 3.3.3 3.3.4 3.4.0 3.5.0 3.6.0 3.7.0)\n\n# Install all zip versions\nfor entry in \"${ZIP_VERSIONS[@]}\"; do\n    version=${entry%% *}\n    url=${entry#* }\n    install_scc_zip \"$version\" \"$url\"\ndone\n\n# Install versioned tar\nfor entry in \"${TAR_VERSIONS[@]}\"; do\n    version=${entry%% *}\n    url=${entry#* }\n    install_scc_tar \"$version\" \"$url\"\ndone\n\n# Install generic-named tar versions\nfor version in \"${GENERIC_TAR_VERSIONS[@]}\"; do\n    install_scc_tar \"$version\" \"https://github.com/boyter/scc/releases/download/v${version}/scc_Linux_x86_64.tar.gz\"\ndone\n\n# Make the latest version available as just 'scc'\ncp /usr/local/bin/scc${GENERIC_TAR_VERSIONS[-1]} /usr/local/bin/scc\n\n# Collect all scc version names for hyperfine\nALL_VERSIONS=()\nfor entry in \"${ZIP_VERSIONS[@]}\"; do\n    ALL_VERSIONS+=(\"${entry%% *}\")\ndone\nfor entry in \"${TAR_VERSIONS[@]}\"; do\n    ALL_VERSIONS+=(\"${entry%% *}\")\ndone\nfor v in \"${GENERIC_TAR_VERSIONS[@]}\"; do\n    ALL_VERSIONS+=(\"$v\")\ndone\n\nbuild_hyperfine_args() {\n    local target=$1\n    local args=()\n    for v in \"${ALL_VERSIONS[@]}\"; do\n        args+=(\"scc${v} ${target}\")\n    done\n    printf \"'%s' \" \"${args[@]}\"\n}\n\n# Now setup comparison applications starting with hyperfine which we compare against\n\nwget https://github.com/sharkdp/hyperfine/releases/download/v1.18.0/hyperfine-v1.18.0-x86_64-unknown-linux-musl.tar.gz\ntar zxvf hyperfine-v1.18.0-x86_64-unknown-linux-musl.tar.gz\nmv hyperfine-v1.18.0-x86_64-unknown-linux-musl/hyperfine /usr/local/bin/hyperfine\nchmod +x /usr/local/bin/hyperfine\n\n# Now the comparison applications\n\nwget https://github.com/XAMPPRocky/tokei/releases/download/v12.1.2/tokei-x86_64-unknown-linux-musl.tar.gz\ntar zxvf tokei-x86_64-unknown-linux-musl.tar.gz\nchmod +x ./tokei\nmv ./tokei /usr/local/bin/\n\nwget https://github.com/vmchale/polyglot/releases/download/0.5.29/poly-x86_64-unknown-linux-gcc-9\nmv poly-x86_64-unknown-linux-gcc-9 /usr/local/bin/polyglot\nchmod +x /usr/local/bin/polyglot\n\n# Now setup all of the benchmarks\n\n# Clone the stuff we want to test\nrm -rf valkey\nrm -rf cpython\nrm -rf linux\nrm -rf sourcegraph\n\ngit clone --depth=1 https://github.com/valkey-io/valkey.git\ngit clone --depth=1 https://github.com/python/cpython.git\ngit clone --depth=1 https://github.com/torvalds/linux.git\ngit clone --depth=1 https://github.com/SINTEF/sourcegraph.git\n\necho \"Running regression benchmark\"\neval hyperfine --export-json benchmark_regression.json $(build_hyperfine_args linux) > benchmark_regression.txt\n\necho \"Generating chart\"\npython3 benchmark_to_chart.py benchmark_regression.json \"scc performance linux kernel\" > benchmark_chart.html\n\n# Benchmark against everything\necho \"Running valkey benchmark\"\nhyperfine 'scc valkey' 'scc -c valkey' 'tokei valkey' 'polyglot valkey' > benchmark_valkey.txt\n\necho \"Running cpython benchmark\"\nhyperfine 'scc cpython' 'scc -c cpython' 'tokei cpython' 'polyglot cpython' > benchmark_cpython.txt\n\necho \"Running sourcegraph benchmark\"\nhyperfine 'scc sourcegraph' 'scc -c sourcegraph' 'tokei sourcegraph' 'polyglot sourcegraph' > benchmark_sourcegraph.txt\n\necho \"Running linux benchmark\"\nhyperfine 'scc linux' 'scc -c linux' 'tokei linux' 'polyglot linux' > benchmark_linux.txt\n\necho \"All done!\"\n"
  },
  {
    "path": "benchmark_to_chart.py",
    "content": "#!/usr/bin/env python3\n\"\"\"Convert hyperfine JSON output from benchmark.sh into a Google Charts HTML page.\"\"\"\n\nimport json\nimport re\nimport sys\n\n\ndef extract_version(command):\n    \"\"\"Extract version from a command like 'scc3.4.0 linux'.\"\"\"\n    m = re.match(r'scc(\\d+\\.\\d+\\.\\d+)', command)\n    return m.group(1) if m else command\n\n\ndef main():\n    if len(sys.argv) < 2:\n        print(f\"Usage: {sys.argv[0]} benchmark_regression.json [title]\")\n        sys.exit(1)\n\n    json_file = sys.argv[1]\n    title = sys.argv[2] if len(sys.argv) > 2 else \"scc performance linux kernel\"\n\n    with open(json_file) as f:\n        data = json.load(f)\n\n    rows = []\n    for result in data[\"results\"]:\n        version = extract_version(result[\"command\"])\n        mean = result[\"mean\"]\n        rows.append(f\"          ['{version}', {mean:.3f}]\")\n\n    chart_data = \",\\n\".join(rows)\n\n    html = f\"\"\"<!DOCTYPE html>\n<html>\n<head>\n  <script type=\"text/javascript\" src=\"https://www.gstatic.com/charts/loader.js\"></script>\n  <script type=\"text/javascript\">\n    google.charts.load('current', {{'packages':['corechart']}});\n    google.charts.setOnLoadCallback(drawChart);\n\n    function drawChart() {{\n      var data = google.visualization.arrayToDataTable([\n        ['Version', 'Runtime (seconds)'],\n{chart_data}\n      ]);\n\n      var options = {{\n        title: '{title}',\n        curveType: 'function',\n        legend: {{ position: 'bottom' }}\n      }};\n\n      var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));\n      chart.draw(data, options);\n    }}\n  </script>\n</head>\n<body>\n  <div id=\"curve_chart\" style=\"width: 900px; height: 500px\"></div>\n</body>\n</html>\n\"\"\"\n\n    print(html)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "examples/complexity/complexity.cpp",
    "content": "// 4 Complexity\n#include <iostream>\n\nint main()\n{\n    int i = 0;\n    while(1) {\n        std::cin >> i;\n        if(i == 0) {\n            return 0;\n        }\n        switch(i) {\n        case 1:\n            std::cout << \"one\\n\";\n            break;\n        case 2:\n            std::cout << \"two\\n\";\n            break;\n        case 3:\n            std::cout << \"three\\n\";\n        default:\n            std::cout << \"try again\\n\";\n        }\n    }\n}\n"
  },
  {
    "path": "examples/complexity/complexity.java",
    "content": "printf(\" /* \");\nfor (i = 0; i < 100; i++) {\n    a += i;\n}\nprintf(\" */ \");"
  },
  {
    "path": "examples/countas/test.jsp",
    "content": "this should be counted as HTML using countas rules"
  },
  {
    "path": "examples/countas/test.new",
    "content": "this should be counted as java using the countas rules"
  },
  {
    "path": "examples/duplicates/1.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/10.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/11.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/12.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/13.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/14.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/15.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/16.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/17.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/18.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/19.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/2.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/20.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/3.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/4.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/5.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/6.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/7.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/8.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/duplicates/9.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/generated/test.cs",
    "content": "// <auto-generated />\r\n/*\r\n\tBlamLib: .NET SDK for the Blam Engine\r\n\r\n\tSee license\\BlamLib\\BlamLib for specific license information\r\n*/\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\n\r\nnamespace BlamLib.CheApe\r\n{\r\n\t/// <summary>\r\n\t/// CheApe project file interface\r\n\t/// </summary>\r\n\t[IO.Class((int)IO.TagGroups.Enumerated.CheApeProject, 1)]\r\n\tpublic sealed class Project : IO.FileManageable, IDisposable\r\n\t{\r\n\t\t#region Interface\r\n\t\t/// <summary>\r\n\t\t/// Game specific implementation interface for CheApe projects\r\n\t\t/// </summary>\r\n\t\tpublic interface Interface\r\n\t\t{\r\n\t\t\t/// <summary>\r\n\t\t\t/// Create a new project file and object\r\n\t\t\t/// </summary>\r\n\t\t\t/// <param name=\"file\">Path to the project file</param>\r\n\t\t\t/// <returns>Read to use Project object</returns>\r\n\t\t\tProject Create(string file);\r\n\t\t\t/// <summary>\r\n\t\t\t/// Open an existing project file\r\n\t\t\t/// </summary>\r\n\t\t\t/// <param name=\"file\">Path to the project file</param>\r\n\t\t\t/// <returns>Project using data loaded from <paramref name=\"file\"/></returns>\r\n\t\t\tProject Open(string file);\r\n\t\t\t/// <summary>\r\n\t\t\t/// Save an existing project\r\n\t\t\t/// </summary>\r\n\t\t\t/// <param name=\"save_as\">If not null, then it saves the project to this file and updates the project settings</param>\r\n\t\t\t/// <param name=\"project\">Project object in question</param>\r\n\t\t\tvoid Save(string save_as, Project project);\r\n\t\t\t/// <summary>\r\n\t\t\t/// Close an existing project\r\n\t\t\t/// </summary>\r\n\t\t\t/// <param name=\"save\">Should we save the project data before closing?</param>\r\n\t\t\t/// <param name=\"project\">Project object in question</param>\r\n\t\t\tvoid Close(bool save, Project project);\r\n\t\t};\r\n\r\n\t\tpublic static Interface GetInterface(BlamVersion v)\r\n\t\t{\r\n\t\t\tif ((v & BlamVersion.Halo1) != 0) return new Blam.Halo1.CheApe.Project.Interface();\r\n#if !NO_HALO2\r\n\t\t\telse if ((v & BlamVersion.Halo2) != 0) return new Blam.Halo2.CheApe.Project.Interface();\r\n#endif\r\n\r\n\t\t\tthrow new Debug.Exceptions.UnreachableException(v);\r\n\t\t}\r\n\t\t#endregion\r\n\r\n\t\tinternal ProjectState OwnerState = null;\r\n\r\n\t\tinternal Project(BlamVersion v, string file_name)\r\n\t\t{\r\n\t\t\tengine = v;\r\n\t\t\tfileName = file_name;\r\n\t\t\tfolder = System.IO.Path.GetDirectoryName(file_name) + \"\\\\\";\r\n\t\t}\r\n\r\n\t\t/// <summary>\r\n\t\t/// Call after Project object is no longer in use\r\n\t\t/// </summary>\r\n\t\tpublic void Dispose()\r\n\t\t{\r\n\t\t\tOwnerState.Dispose();\r\n\t\t}\r\n\r\n\t\t#region Engine\r\n\t\tBlamVersion engine;\r\n\t\t/// <summary>\r\n\t\t///\r\n\t\t/// </summary>\r\n\t\tpublic BlamVersion Engine\t{ get { return engine; } }\r\n\t\t#endregion\r\n\r\n\t\t#region FileName\r\n\t\tstring fileName = string.Empty;\r\n\t\t/// <summary>\r\n\t\t/// The absolute file path of this project\r\n\t\t/// </summary>\r\n\t\tpublic string FileName\r\n\t\t{\r\n\t\t\tget { return fileName; }\r\n\t\t\tinternal set { fileName = value; }\r\n\t\t}\r\n\t\t#endregion\r\n\r\n\t\t#region Folder\r\n\t\tstring folder = string.Empty;\r\n\t\t/// <summary>\r\n\t\t/// The absolute path to the folder the project file is located in\r\n\t\t/// </summary>\r\n\t\tpublic string Folder { get { return folder; } }\r\n\t\t#endregion\r\n\r\n\t\t#region Files\r\n\t\tList<string> files = new List<string>();\r\n\t\t/// <summary>\r\n\t\t/// Files referenced by this project\r\n\t\t/// </summary>\r\n\t\tpublic List<string> Files\t{ get { return files; } }\r\n\t\t#endregion\r\n\r\n\t\t#region Manifest files\r\n\t\t/// <summary>\r\n\t\t/// All embedded files should be added at runtime, we should NEVER\r\n\t\t/// have to stream these to the project file\r\n\t\t/// </summary>\r\n\t\tList<string> embeddedFiles = new List<string>();\r\n\r\n\t\t/// <summary>\r\n\t\t/// Add a manifest file\r\n\t\t/// </summary>\r\n\t\t/// <param name=\"path\">Type name path to the file</param>\r\n\t\t/// <param name=\"name\">File name (with extension)</param>\r\n\t\tpublic void AddEmbedded(string path, string name)\r\n\t\t{\r\n\t\t\tembeddedFiles.Add(System.IO.Path.Combine(path, name));\r\n\t\t}\r\n\r\n\t\t/// <summary>\r\n\t\t/// Remove an existing manifest file\r\n\t\t/// </summary>\r\n\t\t/// <param name=\"path\">Type name path to the file</param>\r\n\t\t/// <param name=\"name\">File name (with extension)</param>\r\n\t\tpublic void RemoveEmbedded(string path, string name)\r\n\t\t{\r\n\t\t\tembeddedFiles.Remove(System.IO.Path.Combine(path, name));\r\n\t\t}\r\n\t\t#endregion\r\n\r\n\t\t/// <summary>\r\n\t\t/// Determines if <paramref name=\"path\"/> is capable of being added to the project\r\n\t\t/// </summary>\r\n\t\t/// <param name=\"path\">Path to the file in question</param>\r\n\t\t/// <param name=\"reason\">If this is not a valid file this holds the reason, otherwise <c>null</c></param>\r\n\t\t/// <returns>True if a valid file, false otherwise</returns>\r\n\t\tpublic bool ValidFile(string path, out string reason)\r\n\t\t{\r\n\t\t\treason = null;\r\n\r\n\t\t\tif(!path.Contains(folder))\r\n\t\t\t{\r\n\t\t\t\treason = string.Format(\"'{0}' isn't in this project's immediate directory.\", path);\r\n\t\t\t}\r\n\t\t\telse if (files.Contains(System.IO.Path.GetFileName(path)))\r\n\t\t\t\treason = string.Format(\"'{0}' already exists in the project.\", path);\r\n\t\t\telse if (embeddedFiles.Contains(System.IO.Path.GetFileName(path)))\r\n\t\t\t\treason = string.Format(\"'{0}' already exists in the project (Embedded).\", path);\r\n\t\t\telse\r\n\t\t\t\treturn true;\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t/// <summary>\r\n\t\t/// Add the file <paramref name=\"path\"/> to the project\r\n\t\t/// </summary>\r\n\t\t/// <param name=\"path\">Name of the file we want to add to the project</param>\r\n\t\t/// <param name=\"create\">Should we create the file on the disk first?</param>\r\n\t\t/// <returns>Name of the file relative to the actual project file</returns>\r\n\t\tpublic string Add(string path, bool create)\r\n\t\t{\r\n\t\t\tif(!path.Contains(folder))\r\n\t\t\t\tthrow new Debug.ExceptionLog(\"Files for this project must be in it's immediate directory: '{0}'\", folder);\r\n\r\n\t\t\tif(create)\r\n\t\t\t{\r\n\t\t\t\tif (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(path)))\r\n\t\t\t\t\tSystem.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(path));\r\n\t\t\t\tif (!System.IO.File.Exists(path))\r\n\t\t\t\t\tSystem.IO.File.Create(path).Close();\r\n\t\t\t\tCheApe.Import.WriteBlankDocument(path, OwnerState.Definition.Engine);\r\n\t\t\t}\r\n\r\n\t\t\tfiles.Add(System.IO.Path.GetFileName(path));\r\n\r\n\t\t\treturn files[files.Count-1];\r\n\t\t}\r\n\r\n\t\t/// <summary>\r\n\t\t/// Remove the file named <paramref name=\"path\"/> from the project\r\n\t\t/// </summary>\r\n\t\t/// <param name=\"path\">Name of the file we want to remove from the project</param>\r\n\t\t/// <param name=\"delete\">Should we delete the file from disk too?</param>\r\n\t\t/// <remarks>Does nothing if <paramref name=\"path\"/> doesn't exist</remarks>\r\n\t\tpublic void Remove(string path, bool delete)\r\n\t\t{\r\n\t\t\tbool result = files.Remove(path);\r\n\r\n\t\t\tif (result && delete)\r\n\t\t\t{\r\n\t\t\t\tpath = System.IO.Path.Combine(folder, path);\r\n\t\t\t\tif(System.IO.File.Exists(path))\r\n\t\t\t\t\tSystem.IO.File.Delete(path);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/// <summary>\r\n\t\t/// Remove the file located at <paramref name=\"path_index\"/> in <see cref=\"Project.Files\"/>\r\n\t\t/// </summary>\r\n\t\t/// <param name=\"path_index\">Index of the path we want to remove from the project</param>\r\n\t\t/// <param name=\"delete\">Should we delete the file from disk too?</param>\r\n\t\t/// <remarks>DEBUG ONLY: Exceptions if <paramref name=\"path_index\"/> is out of bounds</remarks>\r\n\t\tpublic void Remove(int path_index, bool delete)\r\n\t\t{\r\n\t\t\tDebug.Assert.If(path_index >= 0 && path_index < files.Count, \"Path index was out of range: [{0} !{1}]\", files.Count, path_index);\r\n\r\n\t\t\tstring path = System.IO.Path.Combine(folder, files[path_index]);\r\n\t\t\tfiles.RemoveAt(path_index);\r\n\r\n\t\t\tif (delete) System.IO.File.Delete(path);\r\n\t\t}\r\n\r\n\r\n\t\tstatic void ShowMessageInForm(System.Windows.Forms.Form owner_form, string msg)\r\n\t\t{\r\n\t\t\tif (owner_form != null)\r\n\t\t\t{\r\n\t\t\t\towner_form.BeginInvoke(new Action( () =>\r\n\t\t\t\t\t\tSystem.Windows.Forms.MessageBox.Show(owner_form, msg)\r\n\t\t\t\t\t));\r\n\t\t\t}\r\n\t\t\telse System.Windows.Forms.MessageBox.Show(msg);\r\n\t\t}\r\n\t\tstatic void ShowMessageInForm(System.Windows.Forms.Form owner_form, string caption, string fmt, params object[] args)\r\n\t\t{\r\n\t\t\tstring msg = string.Format(fmt, args);\r\n\t\t\tif (owner_form != null)\r\n\t\t\t{\r\n\t\t\t\towner_form.BeginInvoke(new Action( () =>\r\n\t\t\t\t\t\tSystem.Windows.Forms.MessageBox.Show(owner_form, msg, caption)\r\n\t\t\t\t\t));\r\n\t\t\t}\r\n\t\t\telse System.Windows.Forms.MessageBox.Show(msg, caption);\r\n\t\t}\r\n\t\tbool imported = false; // have we even ran one import yet?\r\n\r\n\t\t/// <summary>\r\n\t\t/// Import the project files\r\n\t\t/// </summary>\r\n\t\t/// <param name=\"owner_form\"></param>\r\n\t\tpublic void Import(System.Windows.Forms.Form owner_form)\r\n\t\t{\r\n\t\t\tconst string k_error = \"A parsing error (in {0}) has been encountered, please check the debug.log file.{1}\";\r\n\r\n\t\t\tOwnerState.Importer.Reset();\r\n\t\t\tbool is_embedded = true;\r\n\t\t\tstring dbg_name = \"BORK BORK BORK!\";\r\n\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\tforeach (string f in embeddedFiles)\r\n\t\t\t\t{\r\n\t\t\t\t\tstring path = System.IO.Path.GetDirectoryName(f) + \"\\\\\";\r\n\t\t\t\t\tstring name = System.IO.Path.GetFileName(f);\r\n\r\n\t\t\t\t\tOwnerState.Importer.ProcessFile(OwnerState, path, dbg_name = name);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tis_embedded = false;\r\n\t\t\t\tforeach (string path in files)\r\n\t\t\t\t\tOwnerState.Importer.ProcessFile(OwnerState, folder + (dbg_name = path));\r\n\r\n\t\t\t}catch(Debug.ExceptionLog)\r\n\t\t\t{\r\n\t\t\t\tShowMessageInForm(owner_form, dbg_name, k_error, \"CheApe\", is_embedded ? \" (Embedded)\" : \"\");\r\n\t\t\t\treturn;\r\n\t\t\t}catch(System.Exception ex)\r\n\t\t\t{\r\n\t\t\t\tShowMessageInForm(owner_form, dbg_name, k_error, \".NET\", is_embedded ? \" (Embedded)\" : \"\");\r\n\t\t\t\tDebug.LogFile.WriteLine(\"CheApe: .NET parsing error in {0}.{1}{2}\", dbg_name, Program.NewLine, ex);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\timported = true;\r\n\t\t}\r\n\r\n\t\t/// <summary>\r\n\t\t/// Build the whole project\r\n\t\t/// </summary>\r\n\t\t/// <param name=\"owner_form\"></param>\r\n\t\t/// <param name=\"reimport\">Should we re-import the project files first?</param>\r\n\t\tpublic void Build(System.Windows.Forms.Form owner_form, bool reimport)\r\n\t\t{\r\n\t\t\tif (imported && reimport)\r\n\t\t\t\tOwnerState.Compiler.Reset();\r\n\r\n\t\t\tif(!imported || reimport)\r\n\t\t\t\tImport(owner_form);\r\n\r\n\t\t\t// owner_form should be allowed to be null as the last time I checked MSBOX's implementation in Reflector,\r\n\t\t\t// its code just calls GetActiveWindow() when [owner] is null\r\n\r\n\t\t\ttry { OwnerState.Compiler.Write(folder, fileName); }\r\n\t\t\tcatch (Debug.ExceptionLog)\r\n\t\t\t{\r\n\t\t\t\tShowMessageInForm(owner_form, fileName, \"A compiler error has been encountered, please check the debug.log file\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tShowMessageInForm(owner_form, \"Build Finished!\");\r\n\t\t}\r\n\r\n\t\t/// <summary>\r\n\t\t/// Build the whole project\r\n\t\t/// </summary>\r\n\t\t/// <param name=\"param\">If calling from a GUI, this should be an <see cref=\"System.Windows.Forms.Form\"/> instance, or null</param>\r\n\t\t/// <remarks>Re-imports all project files</remarks>\r\n\t\tpublic void Build(object param) { Build(param as System.Windows.Forms.Form, true); }\r\n\r\n\r\n\t\t#region IStreamable Members\r\n\t\tpublic override void Read(IO.EndianReader s)\r\n\t\t{\r\n\t\t\tBlamVersion ver = (BlamVersion)s.ReadUInt16();\r\n\t\t\t// HACK: this is a hack\r\n\t\t\tif (ver == BlamVersion.Halo1)\r\n\t\t\t\tver = BlamVersion.Halo1_CE;\r\n\t\t\tDebug.Assert.If(ver == engine, \"Engine version mismatch: expected {0}, but got {1}\", engine, ver);\r\n\t\t\ts.Seek(2, System.IO.SeekOrigin.Current);\r\n\t\t\t#region FileNames\r\n\t\t\tint file_count = s.ReadInt32();\r\n\t\t\tfor (int x = 0; x < file_count; x++) files.Add(s.ReadCString());\r\n\t\t\t#endregion\r\n\t\t}\r\n\r\n\t\tpublic override void Write(IO.EndianWriter s)\r\n\t\t{\r\n\t\t\ts.Write((ushort)engine);\r\n\t\t\ts.Write(ushort.MinValue);\r\n\t\t\t#region FileNames\r\n\t\t\ts.Write(files.Count);\r\n\t\t\tforeach (string str in files) s.Write(str, true);\r\n\t\t\t#endregion\r\n\t\t}\r\n\t\t#endregion\r\n\t};\r\n\r\n\t/// <summary>\r\n\t/// Game specific implementation base class for CheApe project states\r\n\t/// </summary>\r\n\tinternal abstract class ProjectState : IDisposable\r\n\t{\r\n\t\t#region Engine\r\n\t\tBlamVersion engine;\r\n\t\t/// <summary>\r\n\t\t///\r\n\t\t/// </summary>\r\n\t\tpublic BlamVersion Engine\t{ get { return engine; } }\r\n\t\t#endregion\r\n\r\n\t\t#region Definition\r\n\t\tprotected XmlInterface definition;\r\n\t\t/// <summary>\r\n\t\t/// CheApe definition data\r\n\t\t/// </summary>\r\n\t\tpublic XmlInterface Definition\t{ get { return definition; } }\r\n\t\t#endregion\r\n\r\n\t\t#region Project\r\n\t\tprotected Project project;\r\n\t\t/// <summary>\r\n\t\t/// CheApe project\r\n\t\t/// </summary>\r\n\t\tpublic Project Project\t\t\t{ get { return project; } }\r\n\t\t#endregion\r\n\r\n\t\t#region Compiler\r\n\t\tprotected Compiler compiler;\r\n\t\t/// <summary>\r\n\t\t/// CheApe compiler implementations\r\n\t\t/// </summary>\r\n\t\tpublic Compiler Compiler\t\t{ get { return compiler; } }\r\n\t\t#endregion\r\n\r\n\t\t#region ImportedBlocks\r\n\t\tprotected Dictionary<string, Import.Block> importedBlocks = new Dictionary<string, Import.Block>();\r\n\t\t/// <summary>\r\n\t\t///\r\n\t\t/// </summary>\r\n\t\tpublic Dictionary<string, Import.Block> ImportedBlocks { get { return importedBlocks; } }\r\n\t\t#endregion\r\n\r\n\t\t#region Importer\r\n\t\tprotected Import importer;\r\n\t\t/// <summary>\r\n\t\t/// CheApe xml definition implementation\r\n\t\t/// </summary>\r\n\t\tpublic Import Importer\t{ get { return importer; } }\r\n\t\t#endregion\r\n\r\n\t\tinternal Scripting.XmlInterface scriptingInterface = null;\r\n\r\n\t\tprotected ProjectState(BlamVersion engine, Project proj)\r\n\t\t{\r\n\t\t\tthis.engine = engine;\r\n\r\n\t\t\tManagers.GameManager.Namespace nspace;\r\n\t\t\tManagers.GameManager.Platform plat;\r\n\t\t\t// Get the namespace of the engine we're using\r\n\t\t\tManagers.GameManager.FromBlamVersion(engine, out nspace, out plat);\r\n\r\n\t\t\t// Read the CheApe engine definition data we need for importing\r\n\t\t\tdefinition = new XmlInterface(engine);\r\n\t\t\tdefinition.Read(Managers.GameManager.GetRelativePath(nspace), \"CheApe.xml\");\r\n\r\n\t\t\tInitializeTypeIndicies();\r\n\r\n\t\t\tproj.OwnerState = this;\r\n\t\t\tproject = proj;\r\n\r\n \t\t\tManagers.BlamDefinition gd = Program.GetManager(engine);\r\n \t\t\t(gd as Managers.IScriptingController).ScriptingCacheOpen(engine);\r\n\t\t\tscriptingInterface = gd[engine].GetResource<Scripting.XmlInterface>(Managers.BlamDefinition.ResourceScripts);\r\n\t\t}\r\n\r\n\t\tpublic void Dispose()\r\n\t\t{\r\n\t\t\tcompiler.Dispose();\r\n\r\n\t\t\tif (scriptingInterface != null)\r\n\t\t\t{\r\n\t\t\t\tscriptingInterface = null;\r\n\t\t\t\tManagers.BlamDefinition gd = Program.GetManager(this.engine);\r\n\t\t\t\t(gd as Managers.IScriptingController).ScriptingCacheClose(this.engine);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t#region Type Indicies\r\n\t\tinternal int kTypeIndexPad = -1;\r\n\t\tinternal int kTypeIndexSkip = -1;\r\n\t\tinternal int kTypeIndexArrayStart = -1;\r\n\t\tinternal int kTypeIndexArrayEnd = -1;\r\n\t\tinternal int kTypeIndexTerminator = -1;\r\n\r\n\t\tprotected void InitializeTypeIndicies()\r\n\t\t{\r\n\t\t\tkTypeIndexPad = definition.GetTypeIndex(\"Pad\");\r\n\t\t\tkTypeIndexSkip = definition.GetTypeIndex(\"Skip\");\r\n\t\t\tkTypeIndexArrayStart = definition.GetTypeIndex(\"ArrayStart\");\r\n\t\t\tkTypeIndexArrayEnd = definition.GetTypeIndex(\"ArrayEnd\");\r\n\t\t\tkTypeIndexTerminator = definition.GetTypeIndex(\"Terminator\");\r\n\t\t}\r\n\t\t#endregion\r\n\r\n\t\t/// <summary>\r\n\t\t/// Get the size of a single tag field based on it's enumeration index\r\n\t\t/// </summary>\r\n\t\t/// <param name=\"type_index\"></param>\r\n\t\t/// <returns></returns>\r\n\t\tpublic int GetFieldSize(int type_index)\r\n\t\t{\r\n\t\t\tif (type_index == kTypeIndexArrayStart ||\r\n\t\t\t\ttype_index == kTypeIndexArrayEnd ||\r\n\t\t\t\ttype_index == kTypeIndexTerminator)\r\n\t\t\t\treturn 0;\r\n\t\t\telse\r\n\t\t\t\treturn definition.FieldTypes[type_index].SizeOf;\r\n\t\t}\r\n\t};\r\n}"
  },
  {
    "path": "examples/generated/test.h",
    "content": "/*  DO NOT EDIT THIS FILE.\r\n\r\n    It has been auto-edited by fixincludes from:\r\n\r\n\t\"/tmp/ndk-andrewhsieh/build/toolchain/prefix/sysroot/usr/include/linux/a.out.h\"\r\n\r\n    This had to be done to correct non-standard usages in the\r\n    original, manufacturer supplied header file.  */\r\n\r\n/****************************************************************************\r\n ****************************************************************************\r\n ***\r\n ***   This header was automatically generated from a Linux kernel header\r\n ***   of the same name, to make information necessary for userspace to\r\n ***   call into the kernel available to libc.  It contains only constants,\r\n ***   structures, and macros generated from the original header, and thus,\r\n ***   contains no copyrightable information.\r\n ***\r\n ***   To edit the content of this header, modify the corresponding\r\n ***   source file (e.g. under external/kernel-headers/original/) then\r\n ***   run bionic/libc/kernel/tools/update_all.py\r\n ***\r\n ***   Any manual change here will be lost the next time this script will\r\n ***   be run. You've been warned!\r\n ***\r\n ****************************************************************************\r\n ****************************************************************************/\r\n#ifndef _UAPI__A_OUT_GNU_H__\r\n#define _UAPI__A_OUT_GNU_H__\r\n#define __GNU_EXEC_MACROS__\r\n#ifndef __STRUCT_EXEC_OVERRIDE__\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#include <asm/a.out.h>\r\n#endif\r\n#ifndef __ASSEMBLY__\r\nenum machine_type {\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#ifdef M_OLDSUN2\r\n M__OLDSUN2 = M_OLDSUN2,\r\n#else\r\n M_OLDSUN2 = 0,\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#endif\r\n#ifdef M_68010\r\n M__68010 = M_68010,\r\n#else\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n M_68010 = 1,\r\n#endif\r\n#ifdef M_68020\r\n M__68020 = M_68020,\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#else\r\n M_68020 = 2,\r\n#endif\r\n#ifdef M_SPARC\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n M__SPARC = M_SPARC,\r\n#else\r\n M_SPARC = 3,\r\n#endif\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n M_386 = 100,\r\n M_MIPS1 = 151,\r\n M_MIPS2 = 152\r\n};\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#ifndef N_MAGIC\r\n#define N_MAGIC(exec) ((exec).a_info & 0xffff)\r\n#endif\r\n#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff))\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff)\r\n#define N_SET_INFO(exec, magic, type, flags)   ((exec).a_info = ((magic) & 0xffff)   | (((int)(type) & 0xff) << 16)   | (((flags) & 0xff) << 24))\r\n#define N_SET_MAGIC(exec, magic)   ((exec).a_info = (((exec).a_info & 0xffff0000) | ((magic) & 0xffff)))\r\n#define N_SET_MACHTYPE(exec, machtype)   ((exec).a_info =   ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16))\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#define N_SET_FLAGS(exec, flags)   ((exec).a_info =   ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24))\r\n#define OMAGIC 0407\r\n#define NMAGIC 0410\r\n#define ZMAGIC 0413\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#define QMAGIC 0314\r\n#define CMAGIC 0421\r\n#ifndef N_BADMAG\r\n#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC   && N_MAGIC(x) != NMAGIC   && N_MAGIC(x) != ZMAGIC   && N_MAGIC(x) != QMAGIC)\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#endif\r\n#define _N_HDROFF(x) (1024 - sizeof (struct exec))\r\n#ifndef N_TXTOFF\r\n#define N_TXTOFF(x)   (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) :   (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec)))\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#endif\r\n#ifndef N_DATOFF\r\n#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)\r\n#endif\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#ifndef N_TRELOFF\r\n#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)\r\n#endif\r\n#ifndef N_DRELOFF\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x))\r\n#endif\r\n#ifndef N_SYMOFF\r\n#define N_SYMOFF(x) (N_DRELOFF(x) + N_DRSIZE(x))\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#endif\r\n#ifndef N_STROFF\r\n#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x))\r\n#endif\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#ifndef N_TXTADDR\r\n#define N_TXTADDR(x) (N_MAGIC(x) == QMAGIC ? PAGE_SIZE : 0)\r\n#endif\r\n#if defined(vax) || defined(hp300) || defined(pyr)\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#define SEGMENT_SIZE page_size\r\n#endif\r\n#ifdef sony\r\n#define SEGMENT_SIZE 0x2000\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#endif\r\n#ifdef is68k\r\n#define SEGMENT_SIZE 0x20000\r\n#endif\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#if defined(m68k) && defined(PORTAR)\r\n#define PAGE_SIZE 0x400\r\n#define SEGMENT_SIZE PAGE_SIZE\r\n#endif\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#ifdef __linux__\r\n#include <unistd.h>\r\n#if defined(__i386__) || defined(__mc68000__)\r\n#define SEGMENT_SIZE 1024\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#else\r\n#ifndef SEGMENT_SIZE\r\n#define SEGMENT_SIZE getpagesize()\r\n#endif\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#endif\r\n#endif\r\n#define _N_SEGMENT_ROUND(x) ALIGN(x, SEGMENT_SIZE)\r\n#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text)\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#ifndef N_DATADDR\r\n#define N_DATADDR(x)   (N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x))   : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))\r\n#endif\r\n#ifndef N_BSSADDR\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data)\r\n#endif\r\n#ifndef N_NLIST_DECLARED\r\nstruct nlist {\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n union {\r\n char *n_name;\r\n struct nlist *n_next;\r\n long n_strx;\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n } n_un;\r\n unsigned char n_type;\r\n char n_other;\r\n short n_desc;\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n unsigned long n_value;\r\n};\r\n#endif\r\n#ifndef N_UNDF\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#define N_UNDF 0\r\n#endif\r\n#ifndef N_ABS\r\n#define N_ABS 2\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#endif\r\n#ifndef N_TEXT\r\n#define N_TEXT 4\r\n#endif\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#ifndef N_DATA\r\n#define N_DATA 6\r\n#endif\r\n#ifndef N_BSS\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#define N_BSS 8\r\n#endif\r\n#ifndef N_FN\r\n#define N_FN 15\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#endif\r\n#ifndef N_EXT\r\n#define N_EXT 1\r\n#endif\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#ifndef N_TYPE\r\n#define N_TYPE 036\r\n#endif\r\n#ifndef N_STAB\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#define N_STAB 0340\r\n#endif\r\n#define N_INDR 0xa\r\n#define N_SETA 0x14\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#define N_SETT 0x16\r\n#define N_SETD 0x18\r\n#define N_SETB 0x1A\r\n#define N_SETV 0x1C\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#ifndef N_RELOCATION_INFO_DECLARED\r\nstruct relocation_info\r\n{\r\n int r_address;\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n unsigned int r_symbolnum:24;\r\n unsigned int r_pcrel:1;\r\n unsigned int r_length:2;\r\n unsigned int r_extern:1;\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#ifdef NS32K\r\n unsigned r_bsr:1;\r\n unsigned r_disp:1;\r\n unsigned r_pad:2;\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#else\r\n unsigned int r_pad:4;\r\n#endif\r\n};\r\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\r\n#endif\r\n#endif\r\n#endif"
  },
  {
    "path": "examples/issue114/.gitignore",
    "content": "this should be counted as gitignore"
  },
  {
    "path": "examples/issue114/.ignore",
    "content": "this should be counted as .ignore"
  },
  {
    "path": "examples/issue114/.travis.yml",
    "content": "this should be a yml file"
  },
  {
    "path": "examples/issue114/java",
    "content": "This file is not java"
  },
  {
    "path": "examples/issue114/license",
    "content": "this should be counted as license"
  },
  {
    "path": "examples/issue114/makefile",
    "content": "this should be counted as a makefile"
  },
  {
    "path": "examples/issue120/test",
    "content": "#!/usr/bin/env perl\nprint \"Hello, World\\n\";"
  },
  {
    "path": "examples/issue120/test.java",
    "content": "this is a java file"
  },
  {
    "path": "examples/issue152/example.black.css",
    "content": "this is just to force a css match"
  },
  {
    "path": "examples/issue214/ббббббббббббббббббббббббббббббббб.md",
    "content": ""
  },
  {
    "path": "examples/issue214/ѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬѬ.md",
    "content": ""
  },
  {
    "path": "examples/issue214/中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文.md",
    "content": ""
  },
  {
    "path": "examples/issue246.py",
    "content": "#!/usr/bin/env python3\n\n\"\"\"\nDocstrings containing an apostrophe (') are handled incorrectly\nThe line above is counted as code despite being in the middle of a docstring.\nThe end of docstring flag seems to be changed to an apostrophe,\nwhich means the next line will not exit the docstring.\n\"\"\"\n# Code containing single quotes will exit the docstring,\n# but presuming the quotes are balanced the second\n# quote will put us in string scanning mode.\nif __name__ == '__main__':\n    print('Hello, World!')\n# Not counted as a comment\n\n# ^ Not counted as a blank line\n# Break out of string scanner with unbalanced single quote: '\n    exit(0)\n"
  },
  {
    "path": "examples/issue260/test.c",
    "content": ""
  },
  {
    "path": "examples/issue323/a.php",
    "content": "<?php\n"
  },
  {
    "path": "examples/issue323/b.php",
    "content": ""
  },
  {
    "path": "examples/issue339/matlab.m",
    "content": "function [net,stats] = cnn_train_dag(net, imdb, getBatch, varargin)\n%CNN_TRAIN_DAG Demonstrates training a CNN using the DagNN wrapper\n%    CNN_TRAIN_DAG() is similar to CNN_TRAIN(), but works with\n%    the DagNN wrapper instead of the SimpleNN wrapper.\n\n% Copyright (C) 2014-16 Andrea Vedaldi.\n% All rights reserved.\n%\n% This file is part of the VLFeat library and is made available under\n% the terms of the BSD license (see the COPYING file).\n\nopts.expDir = fullfile('data','exp') ;\nopts.continue = true ;\nopts.batchSize = 256 ;\nopts.numSubBatches = 1 ;\nopts.averageImage = [];\nopts.train = [] ;\nopts.val = [] ;\nopts.gpus = [] ;\nopts.prefetch = false ;\nopts.numEpochs = 300 ;\nopts.gamma = 0.9;\nopts.constraint = 10;\nopts.learningRate = 0.001 ;\nopts.weightDecay = 0.0005 ;\nopts.momentum = 0.9 ;\nopts.saveMomentum = true ;\nopts.nesterovUpdate = false ;\nopts.randomSeed = 0 ;\nopts.profile = false ;\nopts.parameterServer.method = 'mmap' ;\nopts.parameterServer.prefix = 'mcn' ;\n\nopts.derOutputs = {'objective', 1} ;\nopts.extractStatsFn = @extractStats ;\nopts.plotStatistics = true;\nopts = vl_argparse(opts, varargin) ;\n\nif ~exist(opts.expDir, 'dir'), mkdir(opts.expDir) ; end\nif isempty(opts.train), opts.train = find(imdb.images.set==1) ; end\nif isempty(opts.val), opts.val = find(imdb.images.set==2) ; end\nif isnan(opts.train), opts.train = [] ; end\nif isnan(opts.val), opts.val = [] ; end\n\n% -------------------------------------------------------------------------\n%                                                            Initialization\n% -------------------------------------------------------------------------\n\nevaluateMode = isempty(opts.train) ;\nif ~evaluateMode\n    if isempty(opts.derOutputs)\n        error('DEROUTPUTS must be specified when training.\\n') ;\n    end\nend\n\n% -------------------------------------------------------------------------\n%                                                        Train and validate\n% -------------------------------------------------------------------------\n\nmodelPath = @(ep) fullfile(opts.expDir, sprintf('net-epoch-%d.mat', ep));\nmodelFigPath = fullfile(opts.expDir, 'net-train.pdf') ;\n\nstart = opts.continue * findLastCheckpoint(opts.expDir) ;\nif start >= 1\n    fprintf('%s: resuming by loading epoch %d\\n', mfilename, start) ;\n    [net, state, stats] = loadState(modelPath(start)) ;\nelse\n    state = [] ;\nend\n\nfor epoch=start+1:opts.numEpochs\n    \n    % Set the random seed based on the epoch and opts.randomSeed.\n    % This is important for reproducibility, including when training\n    % is restarted from a checkpoint.\n    \n    rng(epoch + opts.randomSeed) ;\n    prepareGPUs(opts, epoch == start+1) ;\n    \n    % Train for one epoch.\n    params = opts ;\n    params.epoch = epoch ;\n    params.learningRate = opts.learningRate(min(epoch, numel(opts.learningRate))) ;\n    params.train = opts.train(randperm(numel(opts.train))) ; % shuffle\n    params.val = opts.val(randperm(numel(opts.val))) ;\n    params.imdb = imdb ;\n    params.getBatch = getBatch ;\n    \n    if numel(opts.gpus) <= 1\n        [net, state] = processEpoch(net, state, params, 'train',opts) ;\n        [net, state] = processEpoch(net, state, params, 'val',opts) ;\n        if ~evaluateMode\n            saveState(modelPath(epoch), net, state) ;\n        end\n        lastStats = state.stats ;\n    else\n        spmd\n            [net, state] = processEpoch(net, state, params, 'train',opts) ;\n            [net, state] = processEpoch(net, state, params, 'val',opts) ;\n            if labindex == 1 && ~evaluateMode\n                saveState(modelPath(epoch), net, state) ;\n            end\n            lastStats = state.stats ;\n        end\n        lastStats = accumulateStats(lastStats) ;\n    end\n    \n    stats.train(epoch) = lastStats.train ;\n    stats.val(epoch) = lastStats.val ;\n    clear lastStats ;\n    saveStats(modelPath(epoch), stats) ;\n    \n    if opts.plotStatistics\n        switchFigure(1) ; clf ;\n        plots = setdiff(...\n            cat(2,...\n            fieldnames(stats.train)', ...\n            fieldnames(stats.val)'), {'num', 'time'}) ;\n        for p = plots\n            p = char(p) ;\n            values = zeros(0, epoch) ;\n            leg = {} ;\n            for f = {'train', 'val'}\n                f = char(f) ;\n                if isfield(stats.(f), p)\n                    tmp = [stats.(f).(p)] ;\n                    values(end+1,:) = tmp(1,:)' ;\n                    leg{end+1} = f ;\n                end\n            end\n            subplot(1,numel(plots),find(strcmp(p,plots))) ;\n            plot(1:epoch, values','o-') ;\n            xlabel('epoch') ;\n            title(p) ;\n            legend(leg{:}) ;\n            grid on ;\n        end\n        drawnow ;\n        print(1, modelFigPath, '-dpdf') ;\n    end\nend\n\n% With multiple GPUs, return one copy\nif isa(net, 'Composite'), net = net{1} ; end\n\n% -------------------------------------------------------------------------\nfunction [net, state] = processEpoch(net, state, params, mode,opts)\n% -------------------------------------------------------------------------\n% Note that net is not strictly needed as an output argument as net\n% is a handle class. However, this fixes some aliasing issue in the\n% spmd caller.\n\n% initialize with momentum 0\nif isempty(state) || isempty(state.momentum)\n    state.r = num2cell(zeros(1, numel(net.params))) ;\n    state.momentum = num2cell(zeros(1, numel(net.params))) ;\nend\n\n% move CNN  to GPU as needed\nnumGpus = numel(params.gpus) ;\nif numGpus >= 1\n    net.move('gpu') ;\n    state.momentum = cellfun(@gpuArray, state.momentum, 'uniformoutput', false) ;\n    %state.r = cellfun(@gpuArray, state.r, 'uniformoutput', false) ;\nend\nif numGpus > 1\n    parserv = ParameterServer(params.parameterServer) ;\n    net.setParameterServer(parserv) ;\nelse\n    parserv = [] ;\nend\n\n% profile\nif params.profile\n    if numGpus <= 1\n        profile clear ;\n        profile on ;\n    else\n        mpiprofile reset ;\n        mpiprofile on ;\n    end\nend\n\nnum = 0 ;\nepoch = params.epoch ;\nsubset = params.(mode) ;\nadjustTime = 0 ;\n\nstats.num = 0 ; % return something even if subset = []\nstats.time = 0 ;\n\nstart = tic ;\nfor t=1:params.batchSize:numel(subset)\n    fprintf('%s: epoch %02d: %3d/%3d:', mode, epoch, ...\n        fix((t-1)/params.batchSize)+1, ceil(numel(subset)/params.batchSize)) ;\n    batchSize = min(params.batchSize, numel(subset) - t + 1) ;\n    \n    for s=1:params.numSubBatches\n        % get this image batch and prefetch the next\n        batchStart = t + (labindex-1) + (s-1) * numlabs ;\n        batchEnd = min(t+params.batchSize-1, numel(subset)) ;\n        batch = subset(batchStart : params.numSubBatches * numlabs : batchEnd) ;\n        num = num + numel(batch) ;\n        if numel(batch) == 0, continue ; end\n        opts.epoch = params.epoch;\n        inputs = params.getBatch(params.imdb, batch,opts) ;\n        %------------zzd\n        %if(opts.epoch>10)\n         %   net.params(net.getParamIndex('lof')).learningRate = 1e-4;\n         %   net.params(net.getParamIndex('lob')).learningRate = 2e-4;\n        %end\n        \n        if params.prefetch\n            if s == params.numSubBatches\n                batchStart = t + (labindex-1) + params.batchSize ;\n                batchEnd = min(t+2*params.batchSize-1, numel(subset)) ;\n            else\n                batchStart = batchStart + numlabs ;\n            end\n            nextBatch = subset(batchStart : params.numSubBatches * numlabs : batchEnd) ;\n            params.getBatch(params.imdb, nextBatch,opts) ;\n        end\n        \n        if strcmp(mode, 'train')\n            net.mode = 'normal' ;\n            net.accumulateParamDers = (s ~= 1) ;\n            net.eval(inputs, params.derOutputs, 'holdOn', s < params.numSubBatches) ;\n        else\n            net.mode = 'test' ;\n            net.eval(inputs) ;\n        end\n    end\n    \n    % Accumulate gradient.\n    if strcmp(mode, 'train')\n        if ~isempty(parserv), parserv.sync() ; end\n        state = accumulateGradients(net, state, params, batchSize, parserv) ;\n    end\n    \n    % Get statistics.\n    time = toc(start) + adjustTime ;\n    batchTime = time - stats.time ;\n    stats.num = num ;\n    stats.time = time ;\n    stats = params.extractStatsFn(stats,net) ;\n    currentSpeed = batchSize / batchTime ;\n    averageSpeed = (t + batchSize - 1) / time ;\n    if t == 3*params.batchSize + 1\n        % compensate for the first three iterations, which are outliers\n        adjustTime = 4*batchTime - time ;\n        stats.time = time + adjustTime ;\n    end\n    \n    fprintf(' %.1f (%.1f) Hz', averageSpeed, currentSpeed) ;\n    for f = setdiff(fieldnames(stats)', {'num', 'time'})\n        f = char(f) ;\n        fprintf(' %s: %.3f', f, stats.(f)) ;\n    end\n    fprintf('\\n') ;\nend\n\n% Save back to state.\nstate.stats.(mode) = stats ;\nif params.profile\n    if numGpus <= 1\n        state.prof.(mode) = profile('info') ;\n        profile off ;\n    else\n        state.prof.(mode) = mpiprofile('info');\n        mpiprofile off ;\n    end\nend\nif ~params.saveMomentum\n    state.momentum = [] ;\nelse\n    state.momentum = cellfun(@gather, state.momentum, 'uniformoutput', false) ;\nend\n\nnet.reset() ;\nnet.move('cpu') ;\n\n% -------------------------------------------------------------------------\nfunction state = accumulateGradients(net, state, params, batchSize, parserv)\n% -------------------------------------------------------------------------\nnumGpus = numel(params.gpus) ;\notherGpus = setdiff(1:numGpus, labindex) ;\n\nfor p=1:numel(net.params)\n    \n    if ~isempty(parserv)\n        parDer = parserv.pullWithIndex(p) ;\n    else\n        parDer = net.params(p).der ;\n        %parDer(parDer>params.constraint) = params.constraint;\n        %parDer(parDer<-params.constraint) = -params.constraint;\n    end\n    \n    switch net.params(p).trainMethod\n        \n        case 'average' % mainly for batch normalization\n            thisLR = net.params(p).learningRate ;\n            net.params(p).value = vl_taccum(...\n                1 - thisLR, net.params(p).value, ...\n                (thisLR/batchSize/net.params(p).fanout),  parDer) ;\n            \n        case 'gradient'\n            thisDecay = params.weightDecay * net.params(p).weightDecay ;\n            thisLR = params.learningRate * net.params(p).learningRate ;\n            \n            if thisLR>0 || thisDecay>0\n                % Normalize gradient and incorporate weight decay.\n                parDer = vl_taccum(1/batchSize, parDer, ...\n                    thisDecay, net.params(p).value) ;\n                \n                % Update momentum.\n                state.momentum{p} = vl_taccum(...\n                    params.momentum, state.momentum{p}, ...\n                    -1, parDer) ;\n                \n                % Nesterov update (aka one step ahead).\n                if params.nesterovUpdate\n                    delta = vl_taccum(...\n                        params.momentum, state.momentum{p}, ...\n                        -1, parDer) ;\n                else\n                    delta = state.momentum{p} ;\n                end\n                \n                % Update parameters.\n                net.params(p).value = vl_taccum(...\n                    1,  net.params(p).value, thisLR, delta) ;\n            end\n        case 'rmsprop'\n            opts = params;\n            thisDecay = opts.weightDecay * net.params(p).weightDecay ;\n            thisLR = opts.learningRate * net.params(p).learningRate ;\n            state.r{p} = (1 - opts.gamma) * (net.params(p).der).^2 + opts.gamma * state.r{p};\n            der_constraint = (1 / batchSize) * net.params(p).der./ (sqrt(state.r{p})+1e-8);\n            der_constraint(der_constraint>opts.constraint) = opts.constraint;\n            der_constraint(der_constraint<-opts.constraint) = -opts.constraint;\n            state.momentum{p} = opts.momentum * state.momentum{p} ...\n                - thisDecay * net.params(p).value ...\n                - der_constraint ;\n            net.params(p).value = net.params(p).value  + thisLR * state.momentum{p} ;\n        otherwise\n            error('Unknown training method ''%s'' for parameter ''%s''.', ...\n                net.params(p).trainMethod, ...\n                net.params(p).name) ;\n    end\nend\n\n% -------------------------------------------------------------------------\nfunction stats = accumulateStats(stats_)\n% -------------------------------------------------------------------------\n\nfor s = {'train', 'val'}\n    s = char(s) ;\n    total = 0 ;\n    \n    % initialize stats structure with same fields and same order as\n    % stats_{1}\n    stats__ = stats_{1} ;\n    names = fieldnames(stats__.(s))' ;\n    values = zeros(1, numel(names)) ;\n    fields = cat(1, names, num2cell(values)) ;\n    stats.(s) = struct(fields{:}) ;\n    \n    for g = 1:numel(stats_)\n        stats__ = stats_{g} ;\n        num__ = stats__.(s).num ;\n        total = total + num__ ;\n        \n        for f = setdiff(fieldnames(stats__.(s))', 'num')\n            f = char(f) ;\n            stats.(s).(f) = stats.(s).(f) + stats__.(s).(f) * num__ ;\n            \n            if g == numel(stats_)\n                stats.(s).(f) = stats.(s).(f) / total ;\n            end\n        end\n    end\n    stats.(s).num = total ;\nend\n\n% -------------------------------------------------------------------------\nfunction stats = extractStats(stats, net)\n% -------------------------------------------------------------------------\nsel = find(cellfun(@(x) isa(x,'dagnn.Loss'), {net.layers.block})) ;\nfor i = 1:numel(sel)\n    stats.(net.layers(sel(i)).outputs{1}) = net.layers(sel(i)).block.average ;\nend\n\n% -------------------------------------------------------------------------\nfunction saveState(fileName, net_, state)\n% -------------------------------------------------------------------------\nnet = net_.saveobj() ;\nstate.r = [];\nsave(fileName, 'net', 'state') ;\n\n% -------------------------------------------------------------------------\nfunction saveStats(fileName, stats)\n% -------------------------------------------------------------------------\nif exist(fileName)\n    save(fileName, 'stats', '-append') ;\nelse\n    save(fileName, 'stats') ;\nend\n\n% -------------------------------------------------------------------------\nfunction [net, state, stats] = loadState(fileName)\n% -------------------------------------------------------------------------\nload(fileName, 'net', 'state', 'stats') ;\nnet = dagnn.DagNN.loadobj(net) ;\nif isempty(whos('stats'))\n    error('Epoch ''%s'' was only partially saved. Delete this file and try again.', ...\n        fileName) ;\nend\n\n% -------------------------------------------------------------------------\nfunction epoch = findLastCheckpoint(modelDir)\n% -------------------------------------------------------------------------\nlist = dir(fullfile(modelDir, 'net-epoch-*.mat')) ;\ntokens = regexp({list.name}, 'net-epoch-([\\d]+).mat', 'tokens') ;\nepoch = cellfun(@(x) sscanf(x{1}{1}, '%d'), tokens) ;\nepoch = max([epoch 0]) ;\n\n% -------------------------------------------------------------------------\nfunction switchFigure(n)\n% -------------------------------------------------------------------------\nif get(0,'CurrentFigure') ~= n\n    try\n        set(0,'CurrentFigure',n) ;\n    catch\n        figure(n) ;\n    end\nend\n\n% -------------------------------------------------------------------------\nfunction clearMex()\n% -------------------------------------------------------------------------\nclear vl_tmove vl_imreadjpeg ;\n\n% -------------------------------------------------------------------------\nfunction prepareGPUs(opts, cold)\n% -------------------------------------------------------------------------\nnumGpus = numel(opts.gpus) ;\nif numGpus > 1\n    % check parallel pool integrity as it could have timed out\n    pool = gcp('nocreate') ;\n    if ~isempty(pool) && pool.NumWorkers ~= numGpus\n        delete(pool) ;\n    end\n    pool = gcp('nocreate') ;\n    if isempty(pool)\n        parpool('local', numGpus) ;\n        cold = true ;\n    end\n    \nend\nif numGpus >= 1 && cold\n    fprintf('%s: resetting GPU\\n', mfilename)\n    clearMex() ;\n    if numGpus == 1\n        gpuDevice(opts.gpus)\n    else\n        spmd\n            clearMex() ;\n            gpuDevice(opts.gpus(labindex))\n        end\n    end\nend\n"
  },
  {
    "path": "examples/issue339/objectivec.m",
    "content": "//\n//  SGRtmpSession.m\n//  SGLivingPublisher\n//\n//  Created by iossinger on 16/6/16.\n//  Copyright © 2016年 iossinger. All rights reserved.\n//\n\n#import \"SGRtmpSession.h\"\n#import \"SGStreamSession.h\"\n#import \"SGRtmpTypes.h\"\n#import \"NSString+URL.h\"\n#import \"NSMutableData+Buffer.h\"\n#import \"SGRtmpConfig.h\"\n\nstatic const size_t kRTMPSignatureSize = 1536;\n\n\n@interface SGRtmpSession()<SGStreamSessionDelegate>\n{\n    //两个线程,一个负责组装数据,一个负责发送数据\n    dispatch_queue_t _packetQueue;\n    dispatch_queue_t _sendQueue;\n    \n    int _outChunkSize;\n    int _inChunkSize;\n    int _streamID;\n    int _numOfInvokes;\n}\n\n@property (nonatomic,strong) SGStreamSession *session;\n\n@property (nonatomic,  copy) NSString *url;\n\n@property (nonatomic,assign) SGRtmpSessionStatus rtmpStatus;\n\n@property (nonatomic,strong) NSMutableData *handshake;\n\n@property (nonatomic,strong) NSMutableDictionary *preChunk;\n\n@property (nonatomic,strong) NSMutableDictionary<NSNumber *,NSString *> *trackedCommands;\n\n@end\n\n\n@implementation SGRtmpSession\n\n- (void)dealloc{\n    NSLog(@\"%s\",__func__);\n    [self sendDeleteStream];\n    self.url = nil;\n    self.delegate = nil;\n    self.session.delegate = nil;\n    self.session = nil;\n    _packetQueue = nil;\n    _sendQueue = nil;\n    _rtmpStatus = SGRtmpSessionStatusNone;\n    _numOfInvokes = 0;\n    [_preChunk removeAllObjects];\n    [_trackedCommands removeAllObjects];\n    _config = nil;\n}\n\n- (NSMutableDictionary<NSNumber *,NSString *> *)trackedCommands{\n    if (_trackedCommands == nil) {\n        _trackedCommands = [NSMutableDictionary dictionary];\n    }\n    return _trackedCommands;\n}\n\n- (NSMutableDictionary *)preChunk{\n    if (_preChunk == nil) {\n        _preChunk = [NSMutableDictionary dictionary];\n    }\n    return _preChunk;\n}\n\n- (SGStreamSession *)session{\n    if (_session == nil) {\n        _session = [[SGStreamSession alloc] init];\n        _session.delegate = self;\n    }\n    return _session;\n}\n\n- (void)setUrl:(NSString *)url{\n    _url = url;\n    NSLog(@\"scheme:%@\",url.scheme);\n    NSLog(@\"host:%@\",url.host);\n    NSLog(@\"app:%@\",url.app);\n    NSLog(@\"playPath:%@\",url.playPath);\n    NSLog(@\"port:%zd\",url.port);\n}\n\n- (void)setRtmpStatus:(SGRtmpSessionStatus)rtmpStatus{\n    _rtmpStatus = rtmpStatus;\n    NSLog(@\"rtmpStatus-----%zd\",rtmpStatus);\n    if ([self.delegate respondsToSelector:@selector(rtmpSession:didChangeStatus:)]) {\n        [self.delegate rtmpSession:self didChangeStatus:_rtmpStatus];\n    }\n}\n\n- (instancetype)init{\n   \n    if (self = [super init]) {\n        \n        _rtmpStatus = SGRtmpSessionStatusNone;\n        _packetQueue = dispatch_queue_create(\"packet\", 0);\n        _sendQueue = dispatch_queue_create(\"send\", 0);\n        \n        _outChunkSize = 128;\n        _inChunkSize  = 128;\n    }\n    \n    return self;\n    \n}\n\n- (void)setConfig:(SGRtmpConfig *)config{\n    _config = config;\n    self.url = config.url;\n}\n- (void)connect{\n    [self.session connectToServer:self.url.host port:self.url.port];\n}\n- (void)disConnect{\n    [self reset];\n    [self.session disConnect];\n}\n- (void)reset{\n    self.handshake = nil;\n    self.preChunk  = nil;\n    self.trackedCommands = nil;\n    _streamID = 0;\n    _numOfInvokes = 0;\n    _outChunkSize = 128;\n    _inChunkSize  = 128;\n    self.rtmpStatus = SGRtmpSessionStatusNone;\n}\n#pragma mark -------delegate---------\n- (void)streamSession:(SGStreamSession *)session didChangeStatus:(SGStreamStatus)streamStatus{\n    \n    if (streamStatus & NSStreamEventHasBytesAvailable) {//收到数据\n        [self didReceivedata];\n        return;//return\n    }\n    \n    if (streamStatus & NSStreamEventHasSpaceAvailable){ //可以写数据\n        \n        if (_rtmpStatus == SGRtmpSessionStatusConnected) {\n           [self handshake0];\n        }\n        \n        return;//return\n    }\n    \n    if ((streamStatus & NSStreamEventOpenCompleted) &&\n        _rtmpStatus < SGRtmpSessionStatusConnected) {\n        self.rtmpStatus = SGRtmpSessionStatusConnected;\n    }\n    \n    if (streamStatus & NSStreamEventErrorOccurred) {\n        self.rtmpStatus = SGRtmpSessionStatusError;\n    }\n    \n    if (streamStatus & NSStreamEventEndEncountered) {\n        self.rtmpStatus = SGRtmpSessionStatusNotConnected;\n    }\n}\n\n- (void)handshake0{\n    \n    self.rtmpStatus = SGRtmpSessionStatusHandshake0;\n    \n    //c0\n    char c0Byte = 0x03;\n    NSData *c0 = [NSData dataWithBytes:&c0Byte length:1];\n    [self writeData:c0];\n    \n    //c1\n    uint8_t *c1Bytes = (uint8_t *)malloc(kRTMPSignatureSize);\n    memset(c1Bytes, 0, 4 + 4);\n    NSData *c1 = [NSData dataWithBytes:c1Bytes length:kRTMPSignatureSize];\n    free(c1Bytes);\n    [self writeData:c1];\n}\n\n- (void)handshake1{\n    self.rtmpStatus = SGRtmpSessionStatusHandshake2;\n    NSData *s1 = [self.handshake subdataWithRange:NSMakeRange(0, kRTMPSignatureSize)];\n    //c2\n    uint8_t *s1Bytes = (uint8_t *)s1.bytes;\n    memset(s1Bytes + 4, 0, 4);\n    NSData *c2 = [NSData dataWithBytes:s1Bytes length:s1.length];\n    [self writeData:c2];\n}\n\n//验证过\n- (void)sendConnectPacket{\n    NSLog(@\"sendConnectPacket\");\n//    AMF格式\n    RTMPChunk_0 metadata = {0};\n    metadata.msg_stream_id = SGStreamIDInvoke;\n    metadata.msg_type_id = SGMSGTypeID_INVOKE;\n    \n    NSString *url;\n    NSMutableData *buff = [NSMutableData data];\n    if (_url.port > 0) {\n        url = [NSString stringWithFormat:@\"%@://%@:%zd/%@\",_url.scheme,_url.host,_url.port,_url.app];\n    }else{\n        url = [NSString stringWithFormat:@\"%@://%@/%@\",_url.scheme,_url.host,_url.app];\n    }\n    \n    [buff appendString:@\"connect\"];\n    [buff appendDouble:++_numOfInvokes];\n    self.trackedCommands[@(_numOfInvokes)] = @\"connect\";\n    [buff appendByte:kAMFObject];\n    [buff putKey:@\"app\" stringValue:_url.app];\n    [buff putKey:@\"type\" stringValue:@\"nonprivate\"];\n    [buff putKey:@\"tcUrl\" stringValue:url];\n    [buff putKey:@\"fpad\" boolValue:NO];//是否使用代理\n    [buff putKey:@\"capabilities\" doubleValue:15.];\n    [buff putKey:@\"audioCodecs\" doubleValue:10.];\n    [buff putKey:@\"videoCodecs\" doubleValue:7.];\n    [buff putKey:@\"videoFunction\" doubleValue:1.];\n    [buff appendByte16:0];\n    [buff appendByte:kAMFObjectEnd];\n    \n    metadata.msg_length.data = (int)buff.length;\n    [self sendPacket:buff :metadata];\n}\n\n- (void)sendPacket:(NSData *)data :(RTMPChunk_0)metadata{\n    \n    SGFrame *frame = [[SGFrame alloc] init];\n    \n    frame.data = data;\n    frame.timestamp = metadata.timestamp.data;\n    frame.msgLength = metadata.msg_length.data;\n    frame.msgTypeId = metadata.msg_type_id;//消息类型\n    frame.msgStreamId = metadata.msg_stream_id;//消息流id\n    \n    [self sendBuffer:frame];\n}\n/**\n *  Chunk Basic Header: HeaderType+ChannelID组成  1个字节\n *     >HeaderType(前两bit): 00->12字节  01->8字节\n *     >ChannelID(后6个bit): 02->Ping和ByteRead通道 03->Invoke通道 connect() publish()和自己写的NetConnection.Call() 04->Audio和Vidio通道\n *\n *  12字节举例\n *  Chunk Message Header:timestamp + message_length+message_typ + msg_stream_id\n *  message_typ :type为1,2,3,5,6的时候是协议控制消息\n *\n *               type为4的时候表示 User Control Messages [Event_type + Event_Data] Event_type有Stream Begin，Stream End...\n *\n *               type为8，音频数据\n *\n *               type为9，视频数据\n *\n *               type为18 元数据消息[AMF0]\n *\n *               type为20 命令消息 Command Message(RPC Message)\n *               例如connect, createStream, publish, play, pause on the peer\n *\n *\n *\n */\n- (void)sendBuffer:(SGFrame *)frame{\n   dispatch_sync(_packetQueue, ^{\n    \n       uint64_t ts = frame.timestamp;\n       \n       int streamId = frame.msgStreamId;\n       NSLog(@\"streamId------%d\",streamId);\n       NSNumber *preTimestamp = self.preChunk[@(streamId)];\n       \n       uint8_t *chunk;\n       int offset = 0;\n       \n       if (preTimestamp == nil) {//第一帧,音频或者视频\n           chunk = malloc(12);\n           chunk[0] = RTMP_CHUNK_TYPE_0/*0x00*/ | (streamId & 0x1F); //前两个字节 00 表示12字节\n           offset += 1;\n           \n           memcpy(chunk+offset, [NSMutableData be24:(uint32_t)ts], 3);\n           offset += 3;//时间戳3个字节\n           \n           memcpy(chunk+offset, [NSMutableData be24:frame.msgLength], 3);\n           offset += 3;//消息长度3个字节\n           \n           int msgTypeId = frame.msgTypeId;//一个字节的消息类型\n           memcpy(chunk+offset, &msgTypeId, 1);\n           offset += 1;\n           \n           memcpy(chunk+offset, (uint8_t *)&(_streamID), sizeof(_streamID));\n           offset += sizeof(_streamID);\n           \n       }else{//不是第一帧\n           chunk = malloc(8);\n           chunk[0] = RTMP_CHUNK_TYPE_1/*0x40*/ | (streamId & 0x1F);//前两个字节01表示8字节\n           offset += 1;\n           \n           char *temp = [NSMutableData be24:(uint32_t)(ts - preTimestamp.integerValue)];\n           memcpy(chunk+offset, temp, 3);\n           offset += 3;\n           \n           memcpy(chunk+offset, [NSMutableData be24:frame.msgLength], 3);\n           offset += 3;\n           \n           int msgTypeId = frame.msgTypeId;\n           memcpy(chunk+offset, &msgTypeId, 1);\n           offset += 1;\n       }\n\n       self.preChunk[@(streamId)] = @(ts);\n       \n       uint8_t *bufferData = (uint8_t *)frame.data.bytes;\n       uint8_t *outp = (uint8_t *)malloc(frame.data.length + 64);\n       memcpy(outp, chunk, offset);\n       free(chunk);\n       \n       NSUInteger total = frame.data.length;\n       NSInteger step = MIN(total, _outChunkSize);\n       \n       memcpy(outp+offset, bufferData, step);\n       offset += step;\n       total  -= step;\n       bufferData += step;\n       \n       while (total > 0) {\n           step = MIN(total, _outChunkSize);\n           bufferData[-1] = RTMP_CHUNK_TYPE_3/*0xC0*/ | (streamId & 0x1F);//11表示一个字节,直接跳过这个字节;\n           memcpy(outp+offset, bufferData - 1, step + 1);\n           \n           offset += step + 1;\n           total  -= step;\n           bufferData += step;\n       }\n       \n       NSData *tosend = [NSData dataWithBytes:outp length:offset];\n       free(outp);\n       [self writeData:tosend];\n   });\n}\n\n//接收到数据\n- (void)didReceivedata{\n    NSData *data = [self.session readData];\n    \n    if (self.rtmpStatus >= SGRtmpSessionStatusConnected &&\n        self.rtmpStatus < SGRtmpSessionStatusHandshakeComplete) {\n        [self.handshake appendData:data];\n    }\n    \n    NSLog(@\"%zd\",data.length);\n    \n//handshke 可能情况: 1.按照官方文档c0,c1,c2\n    //          2.一起发3073个字节\n    //          3.先发一部分,再发一部分,每部分大小不确定,总数3073正确\n    switch (_rtmpStatus) {\n        case SGRtmpSessionStatusHandshake0:{\n            uint8_t s0;\n            [data getBytes:&s0 length:1];\n            if (s0 == 0x03) {//s0\n                self.rtmpStatus = SGRtmpSessionStatusHandshake1;\n                if (data.length > 1) {//后面还有数据,但不确定长度\n                    data = [data subdataWithRange:NSMakeRange(1, data.length -1)];\n                    self.handshake = data.mutableCopy;\n                }else{\n                    break;\n                }\n            }else{\n                NSLog(@\"握手失败\");\n                break;\n            }\n        }\n        case SGRtmpSessionStatusHandshake1:{\n            \n            if (self.handshake.length >= kRTMPSignatureSize) {//s1\n                [self handshake1];\n                \n                if (self.handshake.length > kRTMPSignatureSize) {//>\n                    NSData *subData = [self.handshake subdataWithRange:NSMakeRange(kRTMPSignatureSize, self.handshake.length - kRTMPSignatureSize)];\n                    self.handshake = subData.mutableCopy;\n                }else{// =\n                    self.handshake = [NSMutableData data];\n                    break;\n                }\n            }else{// <\n                break;\n            }\n        }\n            \n        case SGRtmpSessionStatusHandshake2:{//s2\n            if (data.length >= kRTMPSignatureSize) {\n                NSLog(@\"握手完成\");\n                self.rtmpStatus = SGRtmpSessionStatusHandshakeComplete;\n                [self sendConnectPacket];\n            }\n            break;\n        }\n        default:\n            [self parseData:data];\n            break;\n    }\n}\n\n- (void)parseData:(NSData *)data{\n  \n    if (data.length == 0) {\n        return;\n    }\n    \n    uint8_t *buffer = (uint8_t *)data.bytes;\n    NSUInteger total = data.length;\n    \n    while (total > 0) {\n        int headType = (buffer[0] & 0xC0) >> 6;//取出前两个字节\n        buffer++;\n        total --;\n        \n        if (total <= 0) {\n            break;\n        }\n        \n        switch (headType) {\n            case RTMP_HEADER_TYPE_FULL:{\n                RTMPChunk_0 chunk;\n                memcpy(&chunk, buffer, sizeof(RTMPChunk_0));\n                chunk.msg_length.data = [NSMutableData getByte24:(uint8_t *)&chunk.msg_length];\n                buffer += sizeof(RTMPChunk_0);\n                total  -= sizeof(RTMPChunk_0);\n                BOOL isSuccess = [self handleMeesage:buffer :chunk.msg_type_id];\n                if (!isSuccess) {\n                    total = 0;break;\n                }\n            \n                buffer += chunk.msg_length.data;\n                total  -= chunk.msg_length.data;\n            }\n                break;\n            case RTMP_HEADER_TYPE_NO_MSG_STREAM_ID:{\n                RTMPChunk_1 chunk;\n                memcpy(&chunk, buffer, sizeof(RTMPChunk_1));\n                buffer += sizeof(RTMPChunk_1);\n                total  -= sizeof(RTMPChunk_1);\n                chunk.msg_length.data = [NSMutableData getByte24:(uint8_t *)&chunk.msg_length];\n                BOOL isSuccess = [self handleMeesage:buffer :chunk.msg_type_id];\n                if (!isSuccess) {\n                    total = 0;break;\n                }\n                \n                buffer += chunk.msg_length.data;\n                total  -= chunk.msg_length.data;\n            }\n                break;\n            case RTMP_HEADER_TYPE_TIMESTAMP:{\n                RTMPChunk_2 chunk;\n                memcpy(&chunk, buffer, sizeof(RTMPChunk_2));\n                buffer += sizeof(RTMPChunk_2) + MIN(total, _inChunkSize);\n                total  -= sizeof(RTMPChunk_2) + MIN(total, _inChunkSize);\n                \n            }\n                break;\n            case RTMP_HEADER_TYPE_ONLY:{\n                buffer += MIN(total, _inChunkSize);\n                total  -= MIN(total, _inChunkSize);\n            }\n                break;\n                \n            default:\n                return;\n        }\n    }\n}\n\n- (BOOL)handleMeesage:(uint8_t *)p :(uint8_t)msgTypeId{\n    BOOL handleSuccess = YES;\n    switch(msgTypeId) {\n        case SGMSGTypeID_BYTES_READ:\n        {\n            \n        }\n            break;\n            \n        case SGMSGTypeID_CHUNK_SIZE:\n        {\n            unsigned long newChunkSize = [NSMutableData getByte32:p];//get_be32(p);\n            NSLog(@\"change incoming chunk size from %d to: %zu\", _inChunkSize, newChunkSize);\n            _inChunkSize = (int)newChunkSize;\n        }\n            break;\n            \n        case SGMSGTypeID_PING:\n        {\n            NSLog(@\"received ping, sending pong.\");\n            [self sendPong];\n        }\n            break;\n            \n        case SGMSGTypeID_SERVER_WINDOW:\n        {\n            NSLog(@\"received server window size: %d\\n\", [NSMutableData getByte32:p]);\n        }\n            break;\n            \n        case SGMSGTypeID_PEER_BW:\n        {\n            NSLog(@\"received peer bandwidth limit: %d type: %d\\n\", [NSMutableData getByte32:p], p[4]);\n        }\n            break;\n            \n        case SGMSGTypeID_INVOKE:\n        {\n            NSLog(@\"Received invoke\");\n            [self handleInvoke:p];//handleInvoke\n        }\n            break;\n        case SGMSGTypeID_VIDEO:\n        {\n            NSLog(@\"received video\");\n        }\n            break;\n            \n        case SGMSGTypeID_AUDIO:\n        {\n            NSLog(@\"received audio\");\n        }\n            break;\n            \n        case SGMSGTypeID_METADATA:\n        {\n            NSLog(@\"received metadata\");\n        }\n            break;\n            \n        case SGMSGTypeID_NOTIFY:\n        {\n            NSLog(@\"received notify\");\n        }\n            break;\n            \n        default:\n        {\n            NSLog(@\"received unknown packet type: 0x%02X\", msgTypeId);\n            handleSuccess = NO;\n        }\n            break;\n    }\n    return handleSuccess;\n}\n\n- (void)sendPong{\n    dispatch_sync(_packetQueue, ^{\n        int streamId = 0;\n        \n        NSMutableData *data = [NSMutableData data];\n        [data appendByte:2];\n        [data appendByte24:0];\n        [data appendByte24:6];\n        [data appendByte:SGMSGTypeID_PING];\n        \n        [data appendBytes:(uint8_t*)&streamId length:sizeof(int32_t)];\n        [data appendByte16:7];\n        [data appendByte16:0];\n        [data appendByte16:0];\n\n        [self writeData:data];\n    });\n}\n\n- (void)handleInvoke:(uint8_t *)p{\n    int buflen = 0;\n    NSString *command = [NSMutableData getString:p :&buflen];\n    NSLog(@\"received invoke %@\\n\", command);\n    \n    int pktId = (int)[NSMutableData getDouble:p + 11];\n    NSLog(@\"pktId: %d\\n\", pktId);\n\n    NSString *trackedCommand = self.trackedCommands[@(pktId)] ;\n    \n    if ([command isEqualToString:@\"_result\"]) {\n        NSLog(@\"tracked command: %@\\n\", trackedCommand);\n        if ([trackedCommand isEqualToString:@\"connect\"]) {\n            [self sendReleaseStream];\n            [self sendFCPublish];\n            [self sendCreateStream];\n            self.rtmpStatus = SGRtmpSessionStatusFCPublish;\n        } else if ([trackedCommand isEqualToString:@\"createStream\"]) {\n            if (p[10] || p[19] != 0x05 || p[20]) {\n                NSLog(@\"RTMP: Unexpected reply on connect()\\n\");\n            } else {\n                _streamID = [NSMutableData getDouble:p+21];\n            }\n            [self sendPublish];\n            self.rtmpStatus = SGRtmpSessionStatusReady;\n        }\n    } else if ([command isEqualToString:@\"onStatus\"]) {//parseStatusCode\n        NSString *code = [self parseStatusCode:p + 3 + command.length];\n        NSLog(@\"code : %@\", code);\n        if ([code isEqualToString:@\"NetStream.Publish.Start\"]) {\n            \n            // [self sendHeaderPacket];//貌似不发这一句,也可以\n            \n            //重新设定了chunksize大小\n            [self sendSetChunkSize:getpagesize()];//16K\n            \n            //sendSetBufferTime(0);//设定时间\n            self.rtmpStatus = SGRtmpSessionStatusSessionStarted;\n        }\n    }\n}\n\n- (NSString *)parseStatusCode:(uint8_t *)p{\n    NSMutableDictionary *props = [NSMutableDictionary dictionary];\n    \n    // skip over the packet id\n    p += sizeof(double) + 1;\n    \n    //keep reading until we find an AMF Object\n    bool foundObject = false;\n    while (!foundObject) {\n        if (p[0] == AMF_DATA_TYPE_OBJECT) {\n            p += 1;\n            foundObject = true;\n            continue;\n        } else {\n            p += [self amfPrimitiveObjectSize:p];\n        }\n    }\n    \n    // read the properties of the object\n    uint16_t nameLen, valLen;\n    char propName[128], propVal[128];\n    do {\n        nameLen = [NSMutableData getByte16:p];//get_be16(p);\n        p += sizeof(nameLen);\n        strncpy(propName, (char*)p, nameLen);\n        propName[nameLen] = '\\0';\n        p += nameLen;\n        NSString *key = [NSString stringWithUTF8String:propName];\n        NSLog(@\"key----%@\",key);\n        if (p[0] == AMF_DATA_TYPE_STRING) {\n            valLen = [NSMutableData getByte16:p+1];//get_be16(p+1);\n            p += sizeof(valLen) + 1;\n            strncpy(propVal, (char*)p, valLen);\n            propVal[valLen] = '\\0';\n            p += valLen;\n            NSString *value = [NSString stringWithUTF8String:propVal];\n            props[key] = value;\n        } else {\n            // treat non-string property values as empty\n            p += [self amfPrimitiveObjectSize:p];\n            props[key] = @\"\";\n        }\n    } while ([NSMutableData getByte24:p] != AMF_DATA_TYPE_OBJECT_END);\n    \n    //p = start;\n    return props[@\"code\"] ;\n}\n\n- (int)amfPrimitiveObjectSize:(uint8_t *)p{//amf原始对象\n    switch(p[0]) {\n        case AMF_DATA_TYPE_NUMBER:       return 9;\n        case AMF_DATA_TYPE_BOOL:         return 2;\n        case AMF_DATA_TYPE_NULL:         return 1;\n        case AMF_DATA_TYPE_STRING:       return 3 + [NSMutableData getByte16:p];\n        case AMF_DATA_TYPE_LONG_STRING:  return 5 + [NSMutableData getByte32:p];\n    }\n    return -1; // not a primitive, likely an object\n}\n\n- (void)sendHeaderPacket{\n    RTMPChunk_0 metadata = {0};\n    NSMutableData *buffer =[NSMutableData data];\n    [buffer appendString:@\"@setDataFrame\"];\n    [buffer appendString:@\"onMetaData\"];\n    [buffer appendByte:kAMFObject];\n    \n    [buffer putKey:@\"width\" doubleValue:self.config.width];\n    [buffer putKey:@\"height\" doubleValue:self.config.height];\n    [buffer putKey:@\"displaywidth\" doubleValue:self.config.width];\n    [buffer putKey:@\"displayheight\" doubleValue:self.config.height];\n    [buffer putKey:@\"framewidth\" doubleValue:self.config.width];\n    [buffer putKey:@\"frameheight\" doubleValue:self.config.height];\n    [buffer putKey:@\"videodatarate\" doubleValue:self.config.videoBitrate / 1024.];\n    [buffer putKey:@\"videoframerate\" doubleValue:1.0 / self.config.frameDuration];\n    \n    [buffer putKey:@\"videocodecid\" stringValue:@\"avc1\"];\n    [buffer putStringValue:@\"trackinfo\"];\n    [buffer appendByte:kAMFStrictArray];\n    [buffer appendByte32:2];\n    \n    // Audio stream metadata\n    [buffer appendByte:kAMFObject];\n    [buffer putKey:@\"type\" stringValue:@\"audio\"];\n    NSString *desc = [NSString stringWithFormat:@\"{AACFrame: codec:AAC, channels:%d, frequency:%f, samplesPerFrame:1024, objectType:LC}\",self.config.stereo+1,self.config.audioSampleRate];\n    [buffer putKey:@\"description\" stringValue:desc];\n    [buffer putKey:@\"timescale\" doubleValue:1000.];\n    [buffer putStringValue:@\"sampledescription\"];\n    [buffer appendByte:kAMFStrictArray];\n    [buffer appendByte32:1];\n    [buffer appendByte:kAMFObject];\n    [buffer putKey:@\"sampletype\" stringValue:@\"mpeg4-generic\"];\n    [buffer appendByte:0];\n    [buffer appendByte:0];\n    [buffer appendByte:kAMFObjectEnd];\n    \n    [buffer putKey:@\"language\" stringValue:@\"eng\"];\n    [buffer appendByte:0];\n    [buffer appendByte:0];\n    [buffer appendByte:kAMFObjectEnd];\n    \n    // Video stream metadata\n    [buffer appendByte:kAMFObject];\n    [buffer putKey:@\"type\" stringValue:@\"video\"];\n    [buffer putKey:@\"timescale\" doubleValue:1000.];\n    [buffer putKey:@\"language\" stringValue:@\"eng\"];\n    [buffer putStringValue:@\"sampledescription\"];\n    [buffer appendByte:kAMFStrictArray];\n    [buffer appendByte32:1];\n    [buffer appendByte:kAMFObject];\n    [buffer putKey:@\"sampletype\" stringValue:@\"H264\"];\n    [buffer appendByte:0];\n    [buffer appendByte:0];\n    [buffer appendByte:kAMFObjectEnd];\n    [buffer appendByte:0];\n    [buffer appendByte:0];\n    [buffer appendByte:kAMFObjectEnd];\n    \n    [buffer appendByte16:0];\n    [buffer appendByte:kAMFObjectEnd];\n    [buffer putKey:@\"audiodatarate\" doubleValue:131152. / 1024.];\n    [buffer putKey:@\"audiosamplerate\" doubleValue:self.config.audioSampleRate];\n    [buffer putKey:@\"audiosamplesize\" doubleValue:16];\n    [buffer putKey:@\"audiochannels\" doubleValue:self.config.stereo + 1];\n    [buffer putKey:@\"audiocodecid\" stringValue:@\"mp4a\"];\n    \n    [buffer appendByte:0];\n    [buffer appendByte:kAMFObjectEnd];\n    \n    metadata.msg_type_id = FLV_TAG_TYPE_META;\n    metadata.msg_stream_id = SGStreamIDAudio;\n    metadata.msg_length.data = (int)buffer.length;\n    metadata.timestamp.data = 0;\n    \n    [self sendPacket:buffer :metadata];\n}\n\n//验证过\n- (void)sendSetChunkSize:(int32_t)newChunkSize{\n\n    dispatch_sync(_packetQueue, ^{\n        int streamId = 0;\n        NSMutableData *data = [NSMutableData data];\n        [data appendByte:2];\n        [data appendByte24:0];\n        [data appendByte24:4];\n        [data appendByte:SGMSGTypeID_CHUNK_SIZE];\n        \n        [data appendBytes:(uint8_t*)&streamId length:sizeof(int32_t)];\n        [data appendByte32:newChunkSize];\n        \n        [self writeData:data];\n        //这里重新赋值了 16384\n        _outChunkSize = newChunkSize;\n    });\n}\n\n- (void)sendSetBufferTime:(int)milliseconds{\n    dispatch_sync(_packetQueue, ^{\n        int streamId = 0;\n     \n        NSMutableData *data = [NSMutableData data];\n        [data appendByte:2];\n        [data appendByte24:0];\n        [data appendByte24:10];\n        [data appendByte:SGMSGTypeID_PING];\n        [data appendBytes:(uint8_t*)&streamId length:sizeof(int32_t)];\n        \n        [data appendByte16:3];\n        [data appendByte32:_streamID];\n        [data appendByte32:milliseconds];\n        \n        [self writeData:data];\n    });\n}\n\n- (void)sendPublish{\n    RTMPChunk_0 metadata = {0};\n    metadata.msg_stream_id = SGStreamIDAudio;\n    metadata.msg_type_id = SGMSGTypeID_INVOKE;\n    \n    NSMutableData *buff = [NSMutableData data];\n    [buff appendString:@\"publish\"];\n    [buff appendDouble:++_numOfInvokes];\n    self.trackedCommands[@(_numOfInvokes)] = @\"publish\";\n    [buff appendByte:kAMFNull];\n    [buff appendString:_url.playPath];\n    [buff appendString:@\"live\"];\n    \n    metadata.msg_length.data = (int)buff.length;\n    [self sendPacket:buff :metadata];\n}\n\n- (void)sendCreateStream{\n    RTMPChunk_0 metadata = {0};\n    metadata.msg_stream_id = SGStreamIDInvoke;\n    metadata.msg_type_id = SGMSGTypeID_INVOKE;\n    \n    NSMutableData *buff = [NSMutableData data];\n    [buff appendString:@\"createStream\"];\n    self.trackedCommands[@(++_numOfInvokes)] = @\"createStream\";\n    [buff appendDouble:_numOfInvokes];\n    [buff appendByte:kAMFNull];\n    \n    metadata.msg_length.data = (int)buff.length;\n    [self sendPacket:buff :metadata];\n}\n\n//未调用\n- (void)sendFCUnpublish{\n//    RTMPChunk_0 metadata = {0};\n//    metadata.msg_stream_id = SGStreamIDInvoke;\n//    metadata.msg_type_id = SGMSGTypeID_INVOKE;\n//    \n//    NSMutableData *buff = [NSMutableData data];\n//    [buff appendString:@\"FCUnublish\"];\n//    [buff appendDouble:(++_numOfInvokes)];\n//    self.trackedCommands[@(_numOfInvokes)] = @\"FCUnublish\";\n//    [buff appendByte:kAMFNull];\n//    [buff appendString:_url.playPath];\n//    metadata.msg_length.data = (int)buff.length;\n//    \n//    [self sendPacket:buff :metadata];\n}\n\n- (void)sendFCPublish{\n    RTMPChunk_0 metadata = {0};\n    metadata.msg_stream_id = SGStreamIDInvoke;\n    metadata.msg_type_id = SGMSGTypeID_NOTIFY;\n    \n    NSMutableData *buff = [NSMutableData data];\n    [buff appendString:@\"FCPublish\"];\n    [buff appendDouble:(++_numOfInvokes)];\n    self.trackedCommands[@(_numOfInvokes)] = @\"FCPublish\";\n    [buff appendByte:kAMFNull];\n    [buff appendString:_url.playPath];\n    metadata.msg_length.data = (int)buff.length;\n    \n    [self sendPacket:buff :metadata];\n}\n\n- (void)sendDeleteStream{\n    RTMPChunk_0 metadata = {0};\n    metadata.msg_stream_id = SGStreamIDInvoke;\n    metadata.msg_type_id = SGMSGTypeID_INVOKE;\n    \n    NSMutableData *buff = [NSMutableData data];\n    [buff appendString:@\"deleteStream\"];\n    [buff appendDouble:++_numOfInvokes];\n    self.trackedCommands[@(_numOfInvokes)] = @\"deleteStream\";\n    [buff appendByte:kAMFNull];\n    [buff appendDouble:_streamID];\n\n    metadata.msg_length.data = (int)buff.length;\n    [self sendPacket:buff :metadata];\n}\n\n- (void)sendReleaseStream{\n    \n    RTMPChunk_0 metadata = {0};\n    metadata.msg_stream_id = SGStreamIDInvoke;\n    metadata.msg_type_id = SGMSGTypeID_NOTIFY;\n    \n    NSMutableData *buff = [NSMutableData data];\n    [buff appendString:@\"releaseStream\"];\n    [buff appendDouble:++_numOfInvokes];\n    \n    self.trackedCommands[@(_numOfInvokes)] = @\"releaseStream\";\n    [buff appendByte:kAMFNull];\n    [buff appendString:_url.playPath];\n    \n    metadata.msg_length.data = (int)buff.length;\n    [self sendPacket:buff :metadata];\n}\n\n- (void)writeData:(NSData *)data{\n    if (data.length == 0) {\n        return;\n    }\n    \n    [self.session writeData:data];\n\n}\n@end\n"
  },
  {
    "path": "examples/issue345/filename.cc",
    "content": "bool MyFunction() {\n    func(\"double\\\\escaped\\\\string\\\\\");\n    // comment\n}\n"
  },
  {
    "path": "examples/issue379/filename.py",
    "content": "a = ''\n# equals to 'test'\nb = 'test'''\n\n# comment\nfor i in range(10):\n    print(i)\n"
  },
  {
    "path": "examples/issue552/test.txt",
    "content": "- line 1\n- line 2\n"
  },
  {
    "path": "examples/issue564/a/level1/level2/test.py",
    "content": "print(\"test for issue 564\")\n"
  },
  {
    "path": "examples/issue564/b/c/level2/test.py",
    "content": "print(\"test for issue 564\")\n"
  },
  {
    "path": "examples/issue564/level1/level2/test.py",
    "content": "print(\"test for issue 564\")\n"
  },
  {
    "path": "examples/issue564/level1/test.go",
    "content": "package main\n\nfunc main() {}\n"
  },
  {
    "path": "examples/issue564/test.go",
    "content": "package main\n\nfunc main() {}\n"
  },
  {
    "path": "examples/issue610/issue610.ts",
    "content": "const url = `/foo/bar/*`;\n\nfunction getUrl(path?: string): string {\n  return path ?? url;\n}\n\nfunction getUrl2() {\n  return url;\n}\n// test for issue 610 */\n/* 11 lins, 2 comments, 2 blanks, 7 codes, 1 complexity */\n"
  },
  {
    "path": "examples/language/.bash_login",
    "content": ".bash_login"
  },
  {
    "path": "examples/language/.cshrc",
    "content": ".cshrc"
  },
  {
    "path": "examples/language/.dockerignore",
    "content": "# ignore .git and .cache folders\n.git\n.cache\n"
  },
  {
    "path": "examples/language/.ignore",
    "content": ".ignore"
  },
  {
    "path": "examples/language/.kshrc",
    "content": ".kshrc"
  },
  {
    "path": "examples/language/.tcshrc",
    "content": ".tcshrc"
  },
  {
    "path": "examples/language/.zshrc",
    "content": ".zshrc"
  },
  {
    "path": "examples/language/Amber.ab",
    "content": "#!/usr/bin/env amber\nimport { \n    date_format_posix,\n    date_now,\n} from \"std/date\"\n\nfun collatz(num: Int): [Int]? {\n    if num <= 0 {\n        // num must not be zero\n        fail 1\n    }\n    let res = [num]\n    while num > 1 {\n        if num%2 == 0 {\n            num /= 2\n            res += [num]\n        } else {\n            num *= 3\n            num += 1\n            res += [num]\n        }\n    }\n    return res\n}\n\nfun print_array(ref arr: [Int]): Text {\n    let res = \"[\"\n    for i, e in arr {\n        res += e as Text\n        if i != len(arr)-1 {\n            res += \", \"\n        }\n    }\n    res += \"]\"\n    return res\n}\n\nmain {\n    echo \"start: {date_format_posix(date_now())?}\\n\"\n\n    for i in 0..=20 {\n        let c = collatz(i) failed(code) {\n            echo \"{i}: error {code}, collatz for {i} does not exist\"\n            continue\n        }\n        echo \"{i}: {print_array(c)}\"\n    }\n    \n    echo \"\\nend: {date_format_posix(date_now())?}\"\n}\n"
  },
  {
    "path": "examples/language/ArkTs.ets",
    "content": "import appRouter from '@ohos.router';\nimport { AppConstants } from '../common/constants/AppConstants';\nimport { InfoListComponent } from '../view/InfoListComponent';\n\n/**\n * Main Screen component.\n */\n@Entry\n@Component\nstruct MainScreen {\n  private pageTitleRes: Resource = $r('app.string.main_title'); // set the title\n\n  aboutToAppear() {\n    if (appRouter.getParams()) {\n      this.pageTitleRes = appRouter.getParams()[AppConstants.KEY_MAIN_SCREEN_DATA] as Resource;\n    }\n  }\n\n  build() {\n    Column() {\n      Image($r('app.media.logo'))\n        .width('80')\n        .height('80')\n        .borderRadius('50')\n        .margin({ top: 100 })\n      Column() {\n        Button('Sign in')\n          .width(300)\n          .height(42)\n          .borderRadius(50)\n          .fontColor('#0078D4')\n          .backgroundColor('#F0F0F0')\n        Button('Try it now!')\n          .width(300)\n          .height(42)\n          .borderRadius(50)\n          .fontColor('#000000')\n          .backgroundColor('transparent')\n          .border({\n            width: 1,\n            color: \"#000000\"\n          })\n          .margin({\n            top: 20\n          })\n          .onClick(() => {\n            appRouter.pushUrl({\n              url: AppConstants.HOME_PAGE\n            });\n            console.log('Clicked!');\n          })\n      }\n      .justifyContent(FlexAlign.Center)\n      .width('100%')\n      .position({\n        x: 0,\n        y: '70%'\n      })\n    }\n    .width('100%')\n    .height(AppConstants.MAIN_COLUMN_HEIGHT_PERCENT)\n    .backgroundColor('#FFFFF0')\n  }\n}\n"
  },
  {
    "path": "examples/language/Blueprint.blp",
    "content": "using Gtk 4.0;\n\nGtk.Label {\n  /* multiline-comment */\n  label: _(\"Test\"); // single-line comment\n  visible: true;\n  // single-line comment 2\n}\n\n/*\n  multiline-commen 2\n*/\n"
  },
  {
    "path": "examples/language/Build.csx",
    "content": "#load \"nuget:Dotnet.Build, 0.7.1\"\n#load \"nuget:dotnet-steps, 0.0.1\"\n#load \"nuget:github-changelog, 0.1.5\"\n#load \"Choco.csx\"\n#load \"BuildContext.csx\"\n\nusing static ReleaseManagement;\nusing static ChangeLog;\nusing static FileUtils;\nusing System.Xml.Linq;\n\n[StepDescription(\"Runs all tests.\")]\nStep test = () => RunTests();\n\n[StepDescription(\"Creates all NuGet packages and the release zip for GitHub releases\")]\nStep pack = () =>\n{\n    CreateGitHubReleaseAsset();\n    CreateNuGetPackages();\n    CreateChocoPackage();\n    CreateGlobalToolPackage();\n};\n\n[DefaultStep]\nAsyncStep release = async () =>\n{\n    test();\n    pack();\n    await PublishRelease();\n};\n\nawait StepRunner.Execute(Args);\n\n\n\nprivate void CreateGitHubReleaseAsset()\n{\n    DotNet.Publish(dotnetScriptProjectFolder, publishArtifactsFolder, \"netcoreapp2.1\");\n    Zip(publishArchiveFolder, pathToGitHubReleaseAsset);\n}\n\n\nprivate void CreateChocoPackage()\n{\n    if (BuildEnvironment.IsWindows)\n    {\n        Choco.Pack(dotnetScriptProjectFolder, publishArtifactsFolder, chocolateyArtifactsFolder);\n    }\n    else\n    {\n        Logger.Log(\"The choco package is only built on Windows\");\n    }\n}\n\nprivate void CreateGlobalToolPackage()\n{\n    using (var globalToolBuildFolder = new DisposableFolder())\n    {\n        Copy(solutionFolder, globalToolBuildFolder.Path);\n        PatchPackAsTool(globalToolBuildFolder.Path);\n        PatchPackageId(globalToolBuildFolder.Path, GlobalToolPackageId);\n        PatchContent(globalToolBuildFolder.Path);\n        Command.Execute(\"dotnet\", $\"pack --configuration release --output {nuGetArtifactsFolder}\", Path.Combine(globalToolBuildFolder.Path, \"Dotnet.Script\"));\n    }\n}\n\nprivate void CreateNuGetPackages()\n{\n    Command.Execute(\"dotnet\", $\"pack --configuration release --output {nuGetArtifactsFolder}\", dotnetScriptProjectFolder);\n    Command.Execute(\"dotnet\", $\"pack --configuration release --output {nuGetArtifactsFolder}\", dotnetScriptCoreProjectFolder);\n    Command.Execute(\"dotnet\", $\"pack --configuration release --output {nuGetArtifactsFolder}\", dotnetScriptDependencyModelProjectFolder);\n    Command.Execute(\"dotnet\", $\"pack --configuration release --output {nuGetArtifactsFolder}\", dotnetScriptDependencyModelNuGetProjectFolder);\n}\n\n\nprivate void RunTests()\n{\n    DotNet.Test(testProjectFolder);\n    if (BuildEnvironment.IsWindows)\n    {\n        DotNet.Test(testDesktopProjectFolder);\n    }\n}\n\nprivate async Task PublishRelease()\n{\n    if (!BuildEnvironment.IsWindows)\n    {\n        Logger.Log(\"Pushing a release can only be done from Windows because of Chocolatey\");\n        return;\n    }\n\n    if (!BuildEnvironment.IsSecure)\n    {\n        Logger.Log(\"Pushing a new release can only be done in a secure build environment\");\n        return;\n    }\n\n    await CreateReleaseNotes();\n\n    if (Git.Default.IsTagCommit())\n    {\n        Git.Default.RequireCleanWorkingTree();\n        await ReleaseManagerFor(owner, projectName, BuildEnvironment.GitHubAccessToken)\n        .CreateRelease(Git.Default.GetLatestTag(), pathToReleaseNotes, new[] { new ZipReleaseAsset(pathToGitHubReleaseAsset) });\n        NuGet.TryPush(nuGetArtifactsFolder);\n        Choco.TryPush(chocolateyArtifactsFolder, BuildEnvironment.ChocolateyApiKey);\n    }\n}\n\nprivate async Task CreateReleaseNotes()\n{\n    Logger.Log(\"Creating release notes\");\n    var generator = ChangeLogFrom(owner, projectName, BuildEnvironment.GitHubAccessToken).SinceLatestTag();\n    if (!Git.Default.IsTagCommit())\n    {\n        generator = generator.IncludeUnreleased();\n    }\n    await generator.Generate(pathToReleaseNotes);\n}\n\nprivate void PatchPackAsTool(string solutionFolder)\n{\n    var pathToDotnetScriptProject = Path.Combine(solutionFolder, \"Dotnet.Script\", \"Dotnet.Script.csproj\");\n    var projectFile = XDocument.Load(pathToDotnetScriptProject);\n    var packAsToolElement = projectFile.Descendants(\"PackAsTool\").Single();\n    packAsToolElement.Value = \"true\";\n    projectFile.Save(pathToDotnetScriptProject);\n}\n\nprivate void PatchPackageId(string solutionFolder, string packageId)\n{\n    var pathToDotnetScriptProject = Path.Combine(solutionFolder, \"Dotnet.Script\", \"Dotnet.Script.csproj\");\n    var projectFile = XDocument.Load(pathToDotnetScriptProject);\n    var packAsToolElement = projectFile.Descendants(\"PackageId\").Single();\n    packAsToolElement.Value = packageId;\n    projectFile.Save(pathToDotnetScriptProject);\n}\n\nprivate void PatchContent(string solutionFolder)\n{\n    var pathToDotnetScriptProject = Path.Combine(solutionFolder, \"Dotnet.Script\", \"Dotnet.Script.csproj\");\n    var projectFile = XDocument.Load(pathToDotnetScriptProject);\n    var contentElements = projectFile.Descendants(\"Content\").ToArray();\n    foreach (var contentElement in contentElements)\n    {\n        contentElement.Remove();\n    }\n    projectFile.Save(pathToDotnetScriptProject);\n}"
  },
  {
    "path": "examples/language/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 3.20)\nproject(test_project) # project name\n\nset(CMAKE_CXX_STANDARD 20)\nset(CMAKE_CXX_STANDARD_REQUIRED ON)\nif (${CMAKE_CXX_COMPILER_ID} MATCHES \"Clang\" OR ${CMAKE_CXX_COMPILER_ID} MATCHES \"GNU\" #[[GCC]])\n    add_compile_options(-Wall -Wextra)\nendif()\n\n#[[\nSet special flags when we are using clang toolchain\n]]\nif(${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)\n    if(${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER \"15.0.0\" )\n        add_compile_definitions(HAS_CLANG_SOURCE_LOCATION)\n    endif()\nendif()\n\ninclude_directories(\"${CMAKE_CURRENT_SOURCE_DIR}/include\")\nadd_executable(test_project main.cpp helper.cpp)\n\ninclude(CheckIPOSupported)\ncheck_ipo_supported(RESULT ipo_supported OUTPUT output)\nif(ipo_supported)\n    set_property(TARGET test_project PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)\nelse()\n    message(WARNING \"IPO is not supported: ${output}\")\nendif()\n"
  },
  {
    "path": "examples/language/Dockerfile",
    "content": "this is a dockerfile"
  },
  {
    "path": "examples/language/FSharp.fs",
    "content": "match someBool with\r\n| true -> \"yah\"\r\n| false -> \"nope\""
  },
  {
    "path": "examples/language/GNUMakefile",
    "content": "gnumakefile"
  },
  {
    "path": "examples/language/Gemfile",
    "content": "This is a gemfile"
  },
  {
    "path": "examples/language/HassIQApp.mc",
    "content": "using Toybox.Application;\nusing Toybox.Time;\n\nclass HassIQApp extends Application.AppBase {\n\tvar state = new HassIQState();\n\tvar view;\n\tvar delegate;\n\n\tfunction initialize() {\n\t\tAppBase.initialize();\n\t}\n\n\tfunction onStart(state) {\n\t\tonSettingsChanged();\n\t\tself.state.load(getProperty(\"state\"));\n\t\tself.state.setToken(getProperty(\"token\"));\n\t\tself.state.setRefreshToken(getProperty(\"refresh_token\"));\n\t\tvar expireValue = getProperty(\"expire_time\");\n\t\tif (expireValue != null) {\n\t\t\tself.state.setExpireTime(new Time.Moment(expireValue));\n\t\t}\n\n\t\tvar selected = getProperty(\"selected\");\n\t\tif (selected != null) {\n\t\t\tfor (var i=0; i<self.state.entities.size(); ++i) {\n\t\t\t\tif (self.state.entities[i][:entity_id].equals(selected)) {\n\t\t\t\t\tself.state.selected = self.state.entities[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onStop(state) {\n\t\tsetProperty(\"state\", self.state.save());\n\t\tsetProperty(\"token\", self.state.getToken());\n\t\tsetProperty(\"refresh_token\", self.state.getRefreshToken());\n\t\tvar expireTime = self.state.getExpireTime();\n\t\tif (expireTime != null) {\n\t\t\tsetProperty(\"expire_time\", expireTime.value());\n\t\t}\n\n\t\tvar selected = null;\n\t\tif (self.state.selected != null) {\n\t\t\tselected = self.state.selected[:entity_id];\n\t\t}\n\t\tsetProperty(\"selected\", selected);\n\n\t\tself.state.destroy();\n\t}\n\n\tfunction onSettingsChanged() {\n\t\tvar host = getProperty(\"host\");\n\t\tvar group = getProperty(\"group\");\n\t\tvar llat = getProperty(\"llat\");\n\t\tvar textsize = getProperty(\"textsize\");\n\n\t\tstate.setHost(host);\n\t\tstate.setGroup(group);\n\t\tstate.setLlat(llat);\n\t\tstate.setTextsize(textsize);\n\n\t\tif (view != null) {\n\t\t\tview.requestUpdate();\n\t\t}\n\t}\n\n\tfunction getInitialView() {\n\t\tdelegate = new HassIQDelegate(state);\n\t\tview = new HassIQView(state);\n\n\t\treturn [view, delegate];\n\t}\n}"
  },
  {
    "path": "examples/language/MLIR.mlir",
    "content": "// An example from https://github.com/llvm/llvm-project/blob/main/mlir/test/mlir-runner/bare-ptr-call-conv.mlir\n\n// RUN: mlir-opt %s -pass-pipeline=\"builtin.module(func.func(convert-scf-to-cf,convert-arith-to-llvm),finalize-memref-to-llvm,convert-func-to-llvm{use-bare-ptr-memref-call-conv=1},convert-cf-to-llvm,reconcile-unrealized-casts)\" | mlir-runner -shared-libs=%mlir_c_runner_utils -entry-point-result=void | FileCheck %s\n\n// Verify bare pointer memref calling convention. `simple_add1_add2_test`\n// gets two 2xf32 memrefs, adds 1.0f to the first one and 2.0f to the second\n// one. 'main' calls 'simple_add1_add2_test' with {1, 1} and {2, 2} so {2, 2}\n// and {4, 4} are the expected outputs.\n\nfunc.func @simple_add1_add2_test(%arg0: memref<2xf32>, %arg1: memref<2xf32>) {\n  %c2 = arith.constant 2 : index\n  %c0 = arith.constant 0 : index\n  %c1 = arith.constant 1 : index\n  %cst = arith.constant 1.000000e+00 : f32\n  %cst_0 = arith.constant 2.000000e+00 : f32\n  scf.for %arg2 = %c0 to %c2 step %c1 {\n    %0 = memref.load %arg0[%arg2] : memref<2xf32>\n    %1 = arith.addf %0, %cst : f32\n    memref.store %1, %arg0[%arg2] : memref<2xf32>\n    // CHECK: 2, 2\n\n    %2 = memref.load %arg1[%arg2] : memref<2xf32>\n    %3 = arith.addf %1, %cst_0 : f32\n    memref.store %3, %arg1[%arg2] : memref<2xf32>\n    // CHECK-NEXT: 4, 4\n  }\n  return\n}\n\n// External declarations.\nfunc.func private @printF32(%arg0: f32)\nfunc.func private @printComma()\nfunc.func private @printNewline()\n\nfunc.func @main()\n{\n  %c2 = arith.constant 2 : index\n  %c0 = arith.constant 0 : index\n  %c1 = arith.constant 1 : index\n  %cst = arith.constant 1.000000e+00 : f32\n  %cst_0 = arith.constant 2.000000e+00 : f32\n  %a = memref.alloc() : memref<2xf32>\n  %b = memref.alloc() : memref<2xf32>\n  scf.for %i = %c0 to %c2 step %c1 {\n    memref.store %cst, %a[%i] : memref<2xf32>\n    memref.store %cst, %b[%i] : memref<2xf32>\n  }\n\n  call @simple_add1_add2_test(%a, %b) : (memref<2xf32>, memref<2xf32>) -> ()\n\n  %l0 = memref.load %a[%c0] : memref<2xf32>\n  call @printF32(%l0) : (f32) -> ()\n  call @printComma() : () -> ()\n  %l1 = memref.load %a[%c1] : memref<2xf32>\n  call @printF32(%l1) : (f32) -> ()\n  call @printNewline() : () -> ()\n\n  %l2 = memref.load %b[%c0] : memref<2xf32>\n  call @printF32(%l2) : (f32) -> ()\n  call @printComma() : () -> ()\n  %l3 = memref.load %b[%c1] : memref<2xf32>\n  call @printF32(%l3) : (f32) -> ()\n  call @printNewline() : () -> ()\n\n  memref.dealloc %a : memref<2xf32>\n  memref.dealloc %b : memref<2xf32>\n  return\n}\n"
  },
  {
    "path": "examples/language/POML.poml",
    "content": "<!-- POML should always start with a POML tag to harvest most of its features. -->\n<poml>\n  <role>You are a patient compiler engineer explaining concepts to programmers.</role>\n  <task>Explain how a compiler performs automatic vectorization optimization using the provided image as a reference.</task>\n\n  <img src=\"auto_vectorization_diagram.png\" alt=\"Diagram of compiler automatic vectorization\" />\n\n  <output-format>\n    Keep the explanation concise and clear while ensuring accuracy, and make sure the output does not exceed 2000 words.\n  </output-format>\n</poml>\n"
  },
  {
    "path": "examples/language/PostScript.ps",
    "content": "%!PS\n% an example from https://github.com/bwipp/postscriptbarcode/blob/master/contrib/development/emit_c_style_array.ps\n\n(%stderr) (w) file /f exch def\nf (Version: ) writestring f version writestring f (\\n) writestring\nf (Size: ) writestring f size 10 (   ) cvrs writestring f (\\n) writestring\nf (ECC: ) writestring f eclevel writestring f (\\n) writestring\nf (Mask: ) writestring f bestmaskval 2 tobin writestring f (\\n) writestring\n0 1 size 1 sub {\n    /y exch def\n    0 1 size 1 sub {\n        /x exch def\n        f pixs y size mul x add get 0 eq {(0)}{(1)} ifelse writestring\n        f (,) writestring\n    } for\n    f (\\n) writestring\n} for\nf closefile\n"
  },
  {
    "path": "examples/language/Rakefile",
    "content": "This is a rakefile"
  },
  {
    "path": "examples/language/Sally.yarn",
    "content": "<<if visited(\"Sally\") is false>>\r\n    Player: Hey, Sally. #line:794945\r\n    Sally: Oh! Hi. #line:2dc39b\r\n    Sally: You snuck up on me. #line:34de2f\r\n    Sally: Don't do that. #line:dcc2bc\r\n<<else>>\r\n    Player: Hey. #line:a8e70c\r\n    Sally: Hi. #line:305cde\r\n<<endif>>\r\n\r\n<<if not visited(\"Sally.Watch\")>>\r\n    [[Anything exciting happen on your watch?|Sally.Watch]] #line:5d7a7c\r\n<<endif>>\r\n\r\n<<if $sally_warning and not visited(\"Sally.Sorry\")>>\r\n    [[Sorry about the console.|Sally.Sorry]] #line:0a7e39\r\n<<endif>>\r\n[[See you later.|Sally.Exit]] #line:0facf7\r\n\r\n\r\n<<if ($counter + 1) >= ($max - 2)>>\r\n\tI would like a horse please.\r\n\t<<set $money to $money - 2>>\r\n\t<<set $hasHorse to true>>\r\n<<elseif $money eq 1 >>\r\n\tJust a drink thanks.\r\n\t<<set $money to $money - 1>>\r\n<<else>>\r\n\tDrat, I can't afford anything.\r\n<<endif>>"
  },
  {
    "path": "examples/language/TOML.toml",
    "content": "# testing\ntitle = \"TOML examples\"\n\nint_value = 42\nfloat_value = 3.1415\n\nis_active = true\ncreated_at = 2025-12-12T00:00:00+09:00\n\nmultiline_string = \"\"\"\nこれは\n複数行の\n文字列です。\n\"\"\"\n\ncolors = [\"red\", \"green\", \"blue\"]\n\n# arrays\n[[servers]]\nname = \"alpha\"\nip = \"192.168.1.1\"\n\n[[servers]]\nname = \"beta\"\nip = \"192.168.1.2\"\n\n[database]\nserver = \"127.0.1.1\"\nports = [ 8001, 8002, 8003 ]\nconnection_max = 5000\nenabled = true\n\n# nested\n[owner]\nname = \"scc\"\ndob = 2000-07-01T12:00:00Z\n\n[owner.contact]\naddress = \"test\"\nphone = \"+xx-xxx-xxx-xxxx\"\n"
  },
  {
    "path": "examples/language/TOON.toon",
    "content": "\"C++\":\n  complexitychecks[13]: \"for \",for(,\"if \",if(,\"switch \",switch(,\"while \",while(,\"else \",\"|| \",\"&& \",\"!= \",\"== \"\n  extensions[11]: cc,cpp,cxx,c++,pcc,ino,ccm,cppm,cxxm,c++m,mxx\n  line_comment[1]: //\n  multi_line[1]:\n    - [2]: /*,*/\n  quotes[1]{end,start}:\n    \"\\\"\",\"\\\"\"\n\"C++ Header\":\n  complexitychecks[13]: \"for \",for(,\"if \",if(,\"switch \",switch(,\"while \",while(,\"else \",\"|| \",\"&& \",\"!= \",\"== \"\n  extensions[6]: hh,hpp,hxx,inl,ipp,ixx\n  line_comment[1]: //\n  multi_line[1]:\n    - [2]: /*,*/\n  quotes[1]{end,start}:\n    \"\\\"\",\"\\\"\"\nGo:\n  complexitychecks[12]: \"go \",\"for \",for(,\"if \",if(,\"switch \",\"select \",\"else \",\"|| \",\"&& \",\"!= \",\"== \"\n  extensions[1]: go\n  line_comment[1]: //\n  multi_line[1]:\n    - [2]: /*,*/\n  quotes[2]:\n    - end: \"\\\"\"\n      start: \"\\\"\"\n    - end: `\n      ignoreEscape: true\n      start: `\nPython:\n  complexitychecks[24]: \"for \",for(,\"while \",while(,\"if \",if(,\"elif \",elif(,\"else \",\"else:\",\"match \",match(,\"try \",\"try:\",\"except \",\"except:\",\"finally \",\"finally:\",\"with \",with (,\"and \",and(,\"or \",or(\n  extensions[3]: py,pyw,pyi\n  line_comment[1]: #\n  multi_line[0]:\n  quotes[10]:\n    - end: \"\\\"\"\n      start: \"\\\"\"\n    - end: '\n      start: '\n    - ignoreEscape: true\n      end: '\n      start: r'\n    - ignoreEscape: true\n      end: \"\\\"\"\n      start: \"r\\\"\"\n    - docString: true\n      end: \"\\\"\\\"\\\"\"\n      start: \"\\\"\\\"\\\"\"\n    - docString: true\n      end: '''\n      start: '''\n    - docString: true\n      ignoreEscape: true\n      end: \"\\\"\\\"\\\"\"\n      start: \"r\\\"\\\"\\\"\"\n    - docString: true\n      ignoreEscape: true\n      end: '''\n      start: r'''\n    - docString: true\n      end: \"\\\"\\\"\\\"\"\n      start: \"f\\\"\\\"\\\"\"\n    - docString: true\n      end: '''\n      start: f'''\n  shebangs[3]: python,python2,python3"
  },
  {
    "path": "examples/language/abnf.abnf",
    "content": "postal-address   = name-part street zip-part\n\nname-part        = *(personal-part SP) last-name [SP suffix] CRLF\nname-part        =/ personal-part CRLF\n\npersonal-part    = first-name / (initial \".\")\nfirst-name       = *ALPHA\ninitial          = ALPHA\nlast-name        = *ALPHA\nsuffix           = (\"Jr.\" / \"Sr.\" / 1*(\"I\" / \"V\" / \"X\"))\n\nstreet           = [apt SP] house-num SP street-name CRLF\napt              = 1*4DIGIT\nhouse-num        = 1*8(DIGIT / ALPHA)\nstreet-name      = 1*VCHAR\n\nzip-part         = town-name \",\" SP state 1*2SP zip-code CRLF\ntown-name        = 1*(ALPHA / SP)\nstate            = 2ALPHA\nzip-code         = 5DIGIT [\"-\" 4DIGIT]"
  },
  {
    "path": "examples/language/alchemist.crn",
    "content": "_ -> readk + In_n\nreadk -> init0 + In_k\ninit0 + k -> r + t + init0\ninit0 + 0k -> init1\ninit1 + t -> k + init1\ninit1 + 0t + r + n -> i + loop0\nloop0 + 0n -> Out_r\nloop0 + n -> i + loop1\nloop1 + k -> r + t + loop1\nloop1 + 0k -> loop2\nloop2 + t -> k + loop2\nloop2 + 0t -> loop3\nloop3 + 0i -> loop4\nloop3 + i -> loop5\nloop4 + t -> i + loop4\nloop4 + 0t -> loop3\nloop5 + r -> t + loop3\nloop5 + 0r -> loop6\nloop6 + t -> i + r + loop6\nloop6 + 0t -> i + loop0"
  },
  {
    "path": "examples/language/algol68.a68",
    "content": "BEGIN # Algol-68 prime number sieve, functional style #\n  \n  PROC error = (STRING s) VOID:\n     (print(( newline, \" error: \", s, newline)); GOTO stop);\n  PROC one to = (INT n) LIST:\n     (PROC f = (INT m,n) LIST: (m>n | NIL | cons(m, f(m+1,n))); f(1,n));\n  \n  MODE LIST = REF NODE;\n  MODE NODE = STRUCT (INT h, LIST t);\n  PROC cons = (INT n, LIST l) LIST: HEAP NODE := (n,l);\n  PROC hd   = (LIST l) INT: ( l IS NIL | error(\"hd NIL\"); SKIP | h OF l );\n  PROC tl   = (LIST l) LIST: ( l IS NIL | error(\"tl NIL\"); SKIP | t OF l );\n  PROC show = (LIST l) VOID: ( l ISNT NIL | print((\" \",whole(hd(l),0))); show(tl(l)));\n  \n  PROC filter = (PROC (INT) BOOL p, LIST l) LIST:\n     IF l IS NIL THEN NIL\n     ELIF p(hd(l)) THEN cons(hd(l), filter(p,tl(l)))\n     ELSE filter(p, tl(l))\n     FI;\n  \n  PROC sieve = (LIST l) LIST:\n     IF l IS NIL THEN NIL\n     ELSE\n        PROC not multiple = (INT n) BOOL: n MOD hd(l) ~= 0;\n        cons(hd(l), sieve( filter( not multiple, tl(l) )))\n     FI;\n  \n  PROC primes = (INT n) LIST: sieve( tl( one to(n) ));\n  \n  show( primes(100) )\nEND\n"
  },
  {
    "path": "examples/language/apex.apex",
    "content": "/**\n * Example Apex class demonstrating language features\n * for scc code counting validation\n */\npublic class AccountHandler {\n    // Single line comment\n    private static final String DEFAULT_STATUS = 'Active';\n\n    public static List<Account> getActiveAccounts() {\n        List<Account> accounts = [SELECT Id, Name FROM Account WHERE Status__c = :DEFAULT_STATUS];\n\n        if (accounts.isEmpty()) {\n            return new List<Account>();\n        }\n\n        for (Account acc : accounts) {\n            if (acc.Name != null && acc.Name.length() > 0) {\n                System.debug('Processing: ' + acc.Name);\n            }\n        }\n\n        return accounts;\n    }\n\n    public static void processAccount(Account acc) {\n        try {\n            update acc;\n        } catch (DmlException e) {\n            System.debug('Error: ' + e.getMessage());\n        } finally {\n            System.debug('Processing complete');\n        }\n    }\n\n    /*\n     * Multi-line comment block\n     * demonstrating block comments\n     */\n    public static Integer calculateTotal(List<Integer> values) {\n        Integer total = 0;\n        Integer i = 0;\n        while (i < values.size()) {\n            total += values[i];\n            i++;\n        }\n        return total;\n    }\n}\n"
  },
  {
    "path": "examples/language/arturo.art",
    "content": "; this is a comment\n; this is another comment\n\n;---------------------------------\n; VARIABLES & VALUES\n;---------------------------------\n\n; numbers\na1: 2\na2: 3.14\na3: to :complex [1 2.0]     ; 1.0+2.0i\n\n; strings\nc1: \"this is a string\"\nc2: {\n    this is a multiline string\n    that is indentation-agnostic\n}\nc3: {:\n    this is \n        a verbatim\n            multiline string\n                which will remain exactly\n                    as the original\n:}\n\n; characters\nch: `c`\n\n; blocks/arrays\nd: [1 2 3]\n\n; dictionaries\ne: #[\n    name: \"John\"\n    surname: \"Doe\"\n    age: 34\n    likes: [pizza spaghetti]\n]\n\n; yes, functions are values too\nf: function [x][\n    2 * x\n]\n\n; colors - right, you can directly define them as well!\ng1: #red\ng2: #0077BF\n\n; dates\nh: now              ; 2021-05-03T17:10:48+02:00\n\n; logical values\ni1: true\ni2: false\ni3: maybe\n\n;---------------------------------\n; BASIC OPERATORS\n;---------------------------------\n\n; simple arithmetic\n1 + 1       ; => 2\n8 - 1       ; => 7\n4.2 - 1.1   ; => 3.1\n10 * 2      ; => 20\n35 / 4      ; => 8\n35 // 4     ; => 8.75\n2 ^ 5       ; => 32\n5 % 3       ; => 2\n\n; bitwise operators\nand 3 5     ; => 1\nor 3 5      ; => 7\nxor 3 5     ; => 6\n\n; pre-defined constants\npi          ; => 3.141592653589793\nepsilon     ; => 2.718281828459045\nnull        ; => null\ntrue        ; => true\nfalse       ; => false\n\n;---------------------------------\n; COMPARISON OPERATORS\n;---------------------------------\n\n; equality\n1 = 1       ; => true\n2 = 1       ; => false\n\n; inequality\n1 <> 1      ; => false\n2 <> 1      ; => true\n\n; more comparisons\n1 < 10      ; => true\n1 =< 10     ; => true\n10 =< 10    ; => true\n1 > 10      ; => false\n1 >= 10     ; => false\n11 >= 10    ; => true\n\n;---------------------------------\n; CONDITIONALS\n;---------------------------------\n\n; logical operators\nand? true true      ; => true\nand? true false     ; => false\nor? true false      ; => true\nor? false false     ; => false\n\nand? [1=2][2<3]     ; => false \n                    ; (the second block will not be evaluated)\n\n; simple if statements\nif 2 > 1 [ print \"yes!\"]    ; yes!\nif 3 <> 2 -> print \"true!\"  ; true!\n\n; if/else statements\n; note it's 'if?' not 'if'\nif? 2 > 3 -> print \"2 is greater than 3\"\nelse -> print \"2 is not greater than 3\"         ; 2 is not greater than 3\n\n; switch statements\nswitch 2 > 3 -> print \"2 is greater than 3\"\n             -> print \"2 is not greater than 3\" ; 2 is not greater than 3\n\na: (2 > 3)?[\"yes\"][\"no\"]         ; a: \"no\"\na: (2 > 3)? -> \"yes\" -> \"no\"    ; a: \"no\" (exactly the same as above)\n\n; case/when statements\ncase [1]\n    when? [>2] -> print \"1 is greater than 2. what?!\"\n    when? [<0] -> print \"1 is less than 0. nope...\"\n    else -> print \"here we are!\"                ; here we are!\n\n;---------------------------------\n; LOOPS\n;---------------------------------\n\n; with `loop`\narr: [1 4 5 3]\nloop arr 'x [\n    print [\"x =\" x]\n]\n; x = 1\n; x = 4\n; x = 5\n; x = 3\n\n; with loop and custom index\nloop.with:'i arr 'x [\n    print [\"item at position\" i \"=>\" x]\n]\n; item at position 0 => 1\n; item at position 1 => 4\n; item at position 2 => 5\n; item at position 3 => 3\n\n; using ranges\nloop 1..3 'x ->         ; since it's a single statement\n    print x             ; there's no need for [block] notation\n                        ; we can wrap it up using the `->` syntactic sugar\n\nloop `a`..`c` 'ch ->\n    print ch\n; a\n; b\n; c\n\n; picking multiple items\nloop 1..10 [x y] ->\n    print [\"x =\" x \", y =\" y]\n; x = 1 , y = 2 \n; x = 3 , y = 4 \n; x = 5 , y = 6 \n; x = 7 , y = 8 \n; x = 9 , y = 10 \n\n; looping through a dictionary\ndict: #[name: \"John\", surname: \"Doe\", age: 34]\nloop dict [key value][\n    print [key \"->\" value]\n]\n; name -> John \n; surname -> Doe \n; age -> 34 \n                    \n; while loops\ni: new 0\nwhile [i<3][\n    print [\"i =\" i]\n    inc 'i\n]\n; i = 0\n; i = 1\n; i = 2\n \n;---------------------------------\n; STRINGS\n;---------------------------------\n\n; case\na: \"tHis Is a stRinG\"\nprint upper a               ; THIS IS A STRING\nprint lower a               ; this is a string\nprint capitalize a          ; THis Is a stRinG\n\n; concatenation\na: \"Hello \" ++ \"World!\"     ; a: \"Hello World!\"\n\n; strings as an array\nsplit \"hello\"               ; => [h e l l o]\nsplit.words \"hello world\"   ; => [hello world]\n\nprint first \"hello\"         ; h\nprint last \"hello\"          ; o\n\n; conversion\nto :string 123              ; => \"123\"\nto :integer \"123\"           ; => 123\n\n; joining strings together\njoin [\"hello\" \"world\"]              ; => \"helloworld\"\njoin.with:\"-\" [\"hello\" \"world\"]     ; => \"hello-world\"\n\n; string interpolation\nx: 2\nprint ~\"x = |x|\"            ; x = 2\n\n; interpolation with `print`\nprint [\"x =\" x]             ; x = 2\n                            ; (`print` works by calculating the given block\n                            ;  and joining the different values as strings\n                            ;  with a single space between them)\n\n; templates\nprint render.template {\n    <||= switch x=2 [ ||>\n        Yes, x = 2\n    <||][||>\n        No, x is not 2\n    <||]||> \n} ; Yes, x = 2\n\n; matching\nprefix? \"hello\" \"he\"        ; => true\nsuffix? \"hello\" \"he\"        ; => false\n\ncontains? \"hello\" \"ll\"      ; => true\ncontains? \"hello\" \"he\"      ; => true\ncontains? \"hello\" \"x\"       ; => false\n\nin? \"ll\" \"hello\"            ; => true \nin? \"x\" \"hello\"             ; => false\n\n;---------------------------------\n; BLOCKS\n;---------------------------------\n\n; calculate a block\narr: [1 1+1 1+1+1]\n@arr                        ; => [1 2 3]\n\n; execute a block\nsth: [print \"Hello world\"]  ; this is perfectly valid,\n                            ; could contain *anything*\n                            ; and will not be executed...\n\ndo sth                      ; Hello world\n                            ; (...until we tell it to)\n\n; array indexing\narr: [\"zero\" \"one\" \"two\" \"three\"]\nprint first arr             ; zero\nprint arr\\0                 ; zero\nprint last arr              ; three\nprint arr\\3                 ; three\n\nx: 2\nprint get arr x             ; two\nprint arr\\[x]               ; two\n\n; setting an array element\narr\\0: \"nada\"\nset arr 2 \"dos\"\nprint arr                   ; nada one dos three\n\n; adding elements to an array\narr: new []\n'arr ++ \"one\"\n'arr ++ \"two\"\nprint arr                   ; one two\n\n; remove elements from an array\narr: new [\"one\" \"two\" \"three\" \"four\"]\n'arr -- \"two\"               ; arr: [\"one\" \"three\" \"four\"]\nremove 'arr .index 0        ; arr: [\"three\" \"four\"]\n\n; getting the size of an array\narr: [\"one\" 2 \"three\" 4]\nprint size arr              ; 4\n\n; getting a slice of an array\nprint slice [\"one\" \"two\" \"three\" \"four\"] 0 1        ; one two\n\n; check if array contains a specific element\nprint contains? arr \"one\"   ; true\nprint contains? arr \"five\"  ; false\n\n; sorting array\narr: [1 5 3 2 4]\nsort arr                    ; => [1 2 3 4 5]\nsort.descending arr         ; => [5 4 3 2 1]\n\n; mapping values\nmap 1..10 [x][2*x]          ; => [2 4 6 8 10 12 14 16 18 20]\nmap 1..10 'x -> 2*x         ; same as above\nmap 1..10 => [2*&]          ; same as above\nmap 1..10 => [2*]           ; same as above\n\n; selecting/filtering array values\nselect 1..10 [x][odd? x]    ; => [1 3 5 7 9]\nselect 1..10 => odd?        ; same as above\n\nfilter 1..10 => odd?        ; => [2 4 6 8 10]\n                            ; (now, we leave out all odd numbers - \n                            ;  while select keeps them)\n\n; misc operations\narr: [\"one\" 2 \"three\" 4]\nreverse arr                 ; => [4 \"three\" 2 \"one\"]\nshuffle arr                 ; => [2 4 \"three\" \"one\"]\nunique [1 2 3 2 3 1]        ; => [1 2 3]\npermutate [1 2 3]           ; => [[1 2 3] [1 3 2] [3 1 2] [2 1 3] [2 3 1] [3 2 1]]\ntake 1..10 3                ; => [1 2 3]\nrepeat [1 2] 3              ; => [1 2 1 2 1 2]\n\n;---------------------------------\n; FUNCTIONS\n;---------------------------------\n\n; declaring a function\nf: function [x][ 2*x ]\nf: function [x]-> 2*x       ; same as above\nf: $[x]->2*x                ; same as above (only using the `$` alias \n                            ;  for the `function`... function)\n\n; calling a function\nf 10                        ; => 20\n\n; returning a value\ng: function [x][\n    if x < 2 -> return 0\n\n    res: 0\n    loop 0..x 'z [\n        res: res + z\n    ]\n    return res\n]\n\n;---------------------------------\n; CUSTOM TYPES\n;---------------------------------\n\n; defining a custom type\ndefine :person [\n    ; with custom post-construction initializer\n    init: method [name, surname, age][\n        this\\name: capitalize name\n        this\\surname: surname\n        this\\age: age\n    ]\n\n    ; custom print function\n    string: method [][\n        render \"NAME: |this\\name|, SURNAME: |this\\surname|, AGE: |this\\age|\"\n    ]\n\n    ; custom comparison operator\n    compare: sortable 'age\n\n    ; create a method for our custom type\n    sayHello: method [][\n        print [\"Hello\" this\\name]\n    ]\n]\n\n; create new objects of our custom type\na: to :person [\"John\" \"Doe\" 34]!                ; let's create 2 \"Person\"s\nb: to :person [\"jane\" \"Doe\" 33]!                ; and another one\n\n; call inner method\na\\sayHello                                      ; Hello John                       \nb\\sayHello                                      ; Hello Jane\n\n; access object fields\nprint [\"The first person's name is:\" a\\name]    ; The first person's name is: John\nprint [\"The second person's name is:\" b\\name]   ; The second person's name is: Jane\n\n; changing object fields\na\\name: \"Bob\"                                   \na\\sayHello                                      ; Hello Bob\n\n; verifying object type\nprint type a                                    ; :person\nprint is? :person a                             ; true\n\n; printing objects\nprint a                                         ; NAME: John, SURNAME: Doe, AGE: 34\n\n; sorting user objects (using custom comparator)\nsort @[a b]                                     ; Jane..., John...\nsort.descending @[a b]                          ; John..., Jane...       "
  },
  {
    "path": "examples/language/astro.astro",
    "content": "<p>Here are a few facts about me:</p>\n<ul>\n  <li>My name is {identity.firstName}.</li>\n  <li>I live in {identity.country} and I work as a {identity.occupation}.</li>\n  {identity.hobbies.length >= 2 &&\n    <li>Two of my hobbies are: {identity.hobbies[0]} and {identity.hobbies[1]}</li>\n  }\n</ul>\n<p>My skills are:</p>\n<ul>\n  {skills.map((skill) => <li>{skill}</li>)}\n</ul>"
  },
  {
    "path": "examples/language/barber_solutions.als",
    "content": "/*\n * Solutions to barber.als.\n * Uncomment them one at a time and execute the command.\n */\n\n/*\n * (a) Use the analyzer to show that the model is indeed inconsistent,\n * at least for villages of small sizes.\n */\n/*\nsig Man {shaves: set Man}\none sig Barber extends Man {}\n*/\n\n/*\n * (b) Some feminists have noted that the paradox disappears if the existence\n *     of women is acknowledged. Make a new version of the model that\n *     classifies villagers into men (who need to be shaved) and women (who\n *     don't), and show that there is now a solution.\n */\n/*\nabstract sig Person {shaves: set Man}\nsig Man, Woman extends Person{}\none sig Barber in Person {} // must be 'in' not 'extends':\n*/\n\n/*\n * (c) A more drastic solution, noted by Edsger Dijkstra, is to allow the\n *     possibility of there being no barber. Modify the original model\n *     accordingly, and show that there is now a solution.\n */\n/*\nsig Man {shaves: set Man}\nlone sig Barber extends Man {}\n*/\n\n/*\n * (d) Finally, make a variant of the original model that allows for multiple\n *     barbers. Show that there is again a solution.\n */\n/*\nsig Man {shaves: set Man}\nsome sig Barber extends Man {}\n*/\n\nfact {\n  Barber.shaves = {m: Man | m not in m.shaves}\n}\n\nrun { }\n"
  },
  {
    "path": "examples/language/bean.beancount",
    "content": "2014-02-05 * \"Moving money to Isle of Man\" ^transfers-offshore-17\n  Assets:WellsFargo:Savings          -40000.00 USD\n  Assets:WellsFargo:Checking          40000.00 USD\n\n2014-02-09 * \"Wire to FX broker\" ^transfers-offshore-17\n  Assets:WellsFargo:Checking         -40025.00 USD\n  Expenses:Fees:WireTransfers            25.00 USD\n  Assets:OANDA:USDollar               40000.00\n\n2014-03-16 * \"Conversion to offshore beans\" ^transfers-offshore-17\n  Assets:OANDA:USDollar          -40000.00 USD\n  Assets:OANDA:GBPounds           23391.81 GBP @ 1.71 USD\n\n2014-03-16 * \"God save the Queen (and taxes)\" ^transfers-offshore-17\n  Assets:OANDA:GBPounds             -23391.81 GBP\n  Expenses:Fees:WireTransfers           15.00 GBP\n  Assets:Brittania:PrivateBanking    23376.81 GBP"
  },
  {
    "path": "examples/language/bicep.bicep",
    "content": "/*\nthis is a multi\nline comment\n*/\nparam rgLocation string = resourceGroup().location\nparam storageNames array = [\n  'contoso'\n  'fabrikam'\n]\n\n// this is a comment\nresource createStorages 'Microsoft.Storage/storageAccounts@2022-09-01' = [for name in storageNames: {\n  name: '${name}str${uniqueString(resourceGroup().id)}'\n  location: rgLocation\n  sku: {\n    name: 'Standard_LRS'\n  }\n  kind: '''StorageV2'''\n}]\n\nparam storageAccountName string\nparam location string = resourceGroup().location\n\n@allowed([\n  'new'\n  'existing'\n])\nparam newOrExisting string = 'new'\n\nresource saNew 'Microsoft.Storage/storageAccounts@2022-09-01' = if (newOrExisting == 'new') {\n  name: storageAccountName\n  location: location\n  sku: {\n    name: 'Standard_LRS'\n  }\n  kind: 'StorageV2'\n}\n\nresource saExisting 'Microsoft.Storage/storageAccounts@2022-09-01' existing = if (newOrExisting == 'existing') {\n  name: storageAccountName\n}\n\noutput storageAccountId string = ((newOrExisting == 'new') ? saNew.id : saExisting.id)\n\nparam deployZone bool\n\nresource dnsZone 'Microsoft.Network/dnszones@2018-05-01' = if (deployZone) {\n  name: 'myZone'\n  location: 'global'\n}\n"
  },
  {
    "path": "examples/language/bitbucket-pipelines.yml",
    "content": "image: node:10.15.0\n  \npipelines:\n  default:\n    - step:\n        name: Build and test\n        script:\n          - npm install\n          - npm test\n  tags:                         # add the 'tags' section\n    release-*:                  # specify the tag\n      - step:                   # define the build pipeline for the tag\n          name: Build and release\n          script:\n            - npm install\n            - npm test\n            - npm run release\n  branches:\n    staging:\n      - step:\n          name: Clone\n          script:\n            - echo \"Clone all the things!\" "
  },
  {
    "path": "examples/language/boo.boo",
    "content": "this should be matched as boo"
  },
  {
    "path": "examples/language/bosque.bsq",
    "content": "//-------------------------------------------------------------------------------------------------------\n// Copyright (C) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.\n//-------------------------------------------------------------------------------------------------------\n\n//\n//This is a bosque test/benchmark for a nbody program -- based on https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/nbody.html.\n//Expected output is: -0.16907302171469984\n//\n\nnamespace NSMain;\n\nfunction sigmaSum(args: List[Float]): Float # misc_sigmasum\n\nentity Body {\n   const solar_mass: Float = Float::mult('4.0'@Float, Float::pi, Float::pi);\n   const days_per_year: Float = '365.24'@Float;\n\n   field name: String;\n   field mass: Float;\n   field x: Float;\n   field y: Float;\n   field z: Float;\n\n   field vx: Float;\n   field vy: Float; \n   field vz: Float;\n\n   const jupiter: Body = Body@{\n      name=\"jupiter\",\n      x='4.84143144246472090e+00'@Float,\n      y='-1.16032004402742839e+00'@Float,\n      z='-1.03622044471123109e-01'@Float,\n      vx=Float::mult('1.66007664274403694e-03'@Float, Body::days_per_year),\n      vy=Float::mult('7.69901118419740425e-03'@Float, Body::days_per_year),\n      vz=Float::mult('-6.90460016972063023e-05'@Float, Body::days_per_year),\n      mass=Float::mult('9.54791938424326609e-04'@Float, Body::solar_mass)\n   };\n\n   const saturn: Body = Body@{\n      name=\"saturn\",\n      x='8.34336671824457987e+00'@Float,\n      y='4.12479856412430479e+00'@Float,\n      z='-4.03523417114321381e-01'@Float,\n      vx=Float::mult('-2.76742510726862411e-03'@Float, Body::days_per_year),\n      vy=Float::mult('4.99852801234917238e-03'@Float, Body::days_per_year),\n      vz=Float::mult('2.30417297573763929e-05'@Float, Body::days_per_year),\n      mass=Float::mult('2.85885980666130812e-04'@Float, Body::solar_mass)\n   };\n\n   const uranus: Body = Body@{\n      name=\"uranus\",\n      x='1.28943695621391310e+01'@Float,\n      y='-1.51111514016986312e+01'@Float,\n      z='-2.23307578892655734e-01'@Float,\n      vx=Float::mult('2.96460137564761618e-03'@Float, Body::days_per_year),\n      vy=Float::mult('2.37847173959480950e-03'@Float, Body::days_per_year),\n      vz=Float::mult('-2.96589568540237556e-05'@Float, Body::days_per_year),\n      mass=Float::mult('4.36624404335156298e-05'@Float, Body::solar_mass)\n   };\n\n   const neptune: Body = Body@{\n      name=\"neptune\",\n      x='1.53796971148509165e+01'@Float,\n      y='-2.59193146099879641e+01'@Float,\n      z='1.79258772950371181e-01'@Float,\n      vx=Float::mult('2.68067772490389322e-03'@Float, Body::days_per_year),\n      vy=Float::mult('1.62824170038242295e-03'@Float, Body::days_per_year),\n      vz=Float::mult('-9.51592254519715870e-05'@Float, Body::days_per_year),\n      mass=Float::mult('5.15138902046611451e-05'@Float, Body::solar_mass)\n   };\n\n   const sun: Body = Body@{\n      name=\"sun\",\n      x='0.0'@Float,\n      y='0.0'@Float,\n      z='0.0'@Float,\n      vx='0.0'@Float,\n      vy='0.0'@Float,\n      vz='0.0'@Float,\n      mass=Body::solar_mass\n   };\n\n   method offsetMomentum(px: Float, py: Float, pz: Float): Body {\n      return this<~(vx=Float::div(px->negate(), Body::solar_mass), vy=Float::div(py->negate(), Body::solar_mass), vz=Float::div(pz->negate(), Body::solar_mass));\n   }\n}\n\nentity NBodySystem {\n   field bodies: List[Body];\n\n   factory static create(): { bodies: List[Body] } {\n      var planets = List[Body]@{\n         Body::jupiter,\n         Body::saturn,\n         Body::uranus,\n         Body::neptune\n      };\n\n      var px = sigmaSum(planets->map[Float](fn(p: Body): Float => Float::mult(p.vx, p.mass)));\n      var py = sigmaSum(planets->map[Float](fn(p: Body): Float => Float::mult(p.vy, p.mass)));\n      var pz = sigmaSum(planets->map[Float](fn(p: Body): Float => Float::mult(p.vz, p.mass)));\n\n      return @{ bodies=List[Body]@{ Body::sun->offsetMomentum(px, py, pz), ...planets} };\n   }\n\n   method energy(): Float {\n      var keneticEnergies = this.bodies->map[Float](fn(b: Body): Float => {\n         return Float::mult('0.5'@Float, b.mass, Float::add(b.vx->square(), b.vy->square(), b.vz->square()));\n      });\n\n      var potentialEnergies = this.bodies->pairs(true)\n         ->map[Float](fn(bp: [Body, Body]): Float => {\n            var dx = Float::sub(bp[0].x, bp[1].x);\n            var dy = Float::sub(bp[0].y, bp[1].y);\n            var dz = Float::sub(bp[0].z, bp[1].z);\n\n            var distance = Float::add(dx->square(), dy->square(), dz->square())->sqrt();\n            return Float::div(Float::mult(bp[0].mass, bp[1].mass), distance);\n         });\n\n      return Float::sub(sigmaSum(keneticEnergies), sigmaSum(potentialEnergies));\n   }\n\n   method advance(dt: Float): NBodySystem {\n      var deltav = this.bodies->map[[Body, Float, Float, Float]](fn(b: Body): [Body, Float, Float, Float] => { \n         var obodies = this.bodies->filter(fn(ob: Body): Bool => b.name != ob.name);\n         var forces = obodies->map[[Float, Float, Float]](fn(ob: Body): [Float, Float, Float] => {\n            var dx = Float::sub(ob.x, b.x);\n            var dy = Float::sub(ob.y, b.y);\n            var dz = Float::sub(ob.z, b.z);\n\n            var distance = Float::add(dx->square(), dy->square(), dz->square())->sqrt();\n            var mag = Float::div(dt, Float::mult(distance, distance, distance));\n\n            return @[ Float::mult(dx, ob.mass, mag), Float::mult(dy, ob.mass, mag), Float::mult(dz, ob.mass, mag) ];\n         });\n\n         var fx = sigmaSum(List[Float]@{ b.vx, ...forces->map[Float](fn(fv: [Float, Float, Float]): Float => fv[0]) });\n         var fy = sigmaSum(List[Float]@{ b.vy, ...forces->map[Float](fn(fv: [Float, Float, Float]): Float => fv[1]) });\n         var fz = sigmaSum(List[Float]@{ b.vz, ...forces->map[Float](fn(fv: [Float, Float, Float]): Float => fv[2]) });\n\n         return @[ b, fx, fy, fz ];\n      });\n\n      var bodies = deltav->map[Body](fn(utuple: [Body, Float, Float, Float]): Body => {\n         var b = utuple[0];\n         var nvx = utuple[1];\n         var nvy = utuple[2];\n         var nvz = utuple[3];\n\n         var nx = Float::add(b.x, Float::mult(nvx, dt));\n         var ny = Float::add(b.y, Float::mult(nvy, dt));\n         var nz = Float::add(b.z, Float::mult(nvz, dt));\n\n         return b<~(x=nx, y=ny, z=nz, vx=nvx, vy=nvy, vz=nvz);\n      });\n\n      return NBodySystem@{ bodies=bodies };\n   }\n}\n\nentrypoint function main(): Float {\n   var! system = NBodySystem@create();\n   var step = '0.01'@Float;\n\n   system = system->advance(step);\n   system = system->advance(step);\n   system = system->advance(step);\n   system = system->advance(step);\n   system = system->advance(step);\n   system = system->advance(step);\n   system = system->advance(step);\n   system = system->advance(step);\n   system = system->advance(step);\n   system = system->advance(step);\n\n   return system->energy();\n}"
  },
  {
    "path": "examples/language/bru.bru",
    "content": "post {\n  url: https://api.textlocal.in/login\n}\n\nbody {\n  {\n    \"username\": \"johnnash\",\n    \"password\": \"governingdynamics\"\n  }\n}\n\ntests {\n  test(\"should be able to login\", function() {\n    expect(res.status).to.equal(201);\n  });\n\n  test(\"should receive the token\", function() {\n    expect(res.body.token).to.be.a('string');\n  });\n}"
  },
  {
    "path": "examples/language/c3.c3",
    "content": "// This is a comment\nimport std::io;\n\n<*\nDoc contracts\n*>\nfn void main()\n{\n    io::printn(\"Hello, World!\");\n}"
  },
  {
    "path": "examples/language/cairo.cairo",
    "content": "fn main() -> felt252 {\n    fib(16)\n}\n\nfn fib(mut n: felt252) -> felt252 {\n    let mut a: felt252 = 0;\n    let mut b: felt252 = 1;\n    loop {\n        if n == 0 {\n            break a;\n        }\n        n = n - 1;\n        let temp = b;\n        b = a + b;\n        a = temp;\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use super::fib;\n\n    #[test]\n    #[available_gas(100000)]\n    fn it_works() {\n        assert(fib(16) == 987, 'it works!');\n    }\n}\n"
  },
  {
    "path": "examples/language/capnproto.capnp",
    "content": "@0xdbb9ad1f14bf0b36;  # unique file ID, generated by `capnp id`\n\n# Add a comment \nstruct Person {\n  name @0 :Text;\n  birthdate @3 :Date;\n\n  email @1 :Text;\n  phones @2 :List(PhoneNumber);\n\n  struct PhoneNumber {\n    number @0 :Text;\n    type @1 :Type;\n\n    enum Type {\n      mobile @0;\n      home @1;\n      work @2;\n    }\n  }\n}\n\nstruct Date {\n  year @0 :Int16;\n  month @1 :UInt8;\n  day @2 :UInt8;\n}"
  },
  {
    "path": "examples/language/chapel.chpl",
    "content": "class Integer {\n  var x:int;\n}\nproc deferInFunction() {\n  var c = new unmanaged Integer(1);\n  writeln(\"created \", c);\n  defer {\n    writeln(\"defer action: deleting \", c);\n    delete c;\n  }\n  // ... (function body, possibly including return statements)\n  // The defer action is executed no matter how this function returns.\n}\ndeferInFunction();"
  },
  {
    "path": "examples/language/circom.circom",
    "content": "// 34 lines 23 code 7 comments 4 blanks\npragma circom 2.0.8;\n\n/*\n * Sum an array of non-zero values.\n */\nfunction sum(values, size) {\n  var sum = 0;\n  for (var i = 0; i < size; i++) {\n    assert(values[i] != 0);\n    sum += values[i];\n  }\n  log(\"sum = \", sum);\n  return sum;\n}\n\n/*\n * Ensure x is a solution to x^5 - 2x^4 + 5x - 4 = 0.\n */\ntemplate Polynomial() {\n    signal input x;\n    signal x2;\n    signal x4;\n    signal x5;\n    signal output y;\n\n    x2 <== x * x;\n    x4 <== x2 * x2;\n    x5 <== x4 * x;\n    y <== x5 - 2 * x4 + 5 * x - 4;      // y = x^5 - 2 * x^4 + 5x - 4.\n    y === 0;                            // Ensure that y = 0.\n}\n\ncomponent main = Polynomial();"
  },
  {
    "path": "examples/language/clojure.cljc",
    "content": "some code"
  },
  {
    "path": "examples/language/cloudformation.json",
    "content": "{\n  \"AWSTemplateFormatVersion\":\"2010-09-09\",\n  \"Description\":\"AWS CloudFormation Sample Template EC2InstanceWithSecurityGroupSample: Create an Amazon EC2 instance running the Amazon Linux AMI. The AMI is chosen based on the region in which the stack is run. This example creates an EC2 security group for the instance to give you SSH access. **WARNING** This template creates an Amazon EC2 instance. You will be billed for the AWS resources used if you create a stack from this template.\",\n  \"Parameters\":{\n    \"KeyName\":{\n      \"Description\":\"Name of an existing EC2 KeyPair to enable SSH access to the instance\",\n      \"Type\":\"AWS::EC2::KeyPair::KeyName\",\n      \"Default\":\"admin-Default\",\n      \"ConstraintDescription\":\"must be the name of an existing EC2 KeyPair.\"\n    },\n    \"InstanceType\":{\n      \"Description\":\"WebServer EC2 instance type\",\n      \"Type\":\"String\",\n      \"Default\":\"t2.micro\",\n      \"AllowedValues\":[\n        \"t1.micro\",\n        \"t2.nano\",\n        \"t2.micro\",\n        \"t2.small\",\n        \"t2.medium\",\n        \"t2.large\",\n        \"m1.small\",\n        \"m1.medium\",\n        \"m1.large\",\n        \"m1.xlarge\",\n        \"m2.xlarge\",\n        \"m2.2xlarge\",\n        \"m2.4xlarge\",\n        \"m3.medium\",\n        \"m3.large\",\n        \"m3.xlarge\",\n        \"m3.2xlarge\",\n        \"m4.large\",\n        \"m4.xlarge\",\n        \"m4.2xlarge\",\n        \"m4.4xlarge\",\n        \"m4.10xlarge\",\n        \"c1.medium\",\n        \"c1.xlarge\",\n        \"c3.large\",\n        \"c3.xlarge\",\n        \"c3.2xlarge\",\n        \"c3.4xlarge\",\n        \"c3.8xlarge\",\n        \"c4.large\",\n        \"c4.xlarge\",\n        \"c4.2xlarge\",\n        \"c4.4xlarge\",\n        \"c4.8xlarge\",\n        \"g2.2xlarge\",\n        \"g2.8xlarge\",\n        \"r3.large\",\n        \"r3.xlarge\",\n        \"r3.2xlarge\",\n        \"r3.4xlarge\",\n        \"r3.8xlarge\",\n        \"i2.xlarge\",\n        \"i2.2xlarge\",\n        \"i2.4xlarge\",\n        \"i2.8xlarge\",\n        \"d2.xlarge\",\n        \"d2.2xlarge\",\n        \"d2.4xlarge\",\n        \"d2.8xlarge\",\n        \"hi1.4xlarge\",\n        \"hs1.8xlarge\",\n        \"cr1.8xlarge\",\n        \"cc2.8xlarge\",\n        \"cg1.4xlarge\"\n      ],\n      \"ConstraintDescription\":\"must be a valid EC2 instance type.\"\n    },\n    \"SSHLocation\":{\n      \"Description\":\"The IP address range that can be used to SSH to the EC2 instances\",\n      \"Type\":\"String\",\n      \"MinLength\":\"9\",\n      \"MaxLength\":\"18\",\n      \"Default\":\"0.0.0.0/0\",\n      \"AllowedPattern\":\"(\\\\d{1,3})\\\\.(\\\\d{1,3})\\\\.(\\\\d{1,3})\\\\.(\\\\d{1,3})/(\\\\d{1,2})\",\n      \"ConstraintDescription\":\"must be a valid IP CIDR range of the form x.x.x.x/x.\"\n    },\n    \"Network\":{\n      \"Description\":\"The Network to the EC2 instances\",\n      \"Type\":\"String\"\n    },\n    \"AvailabilityZone\":{\n      \"Description\":\"The AZ of the EC2 instance\",\n      \"Type\":\"String\"\n    },\n    \"SubnetPool\":{\n      \"Description\":\"The IP address range that can be used to SSH to the EC2 instances\",\n      \"Type\":\"String\"\n    }\n  },\n  \"Metadata\":{\n    \"SNC::Parameter::Metadata\":{\n      \"SubnetPool\":{\n        \"datasource\":\"ServiceNow::Pools::SubnetPool.getObjectsByNetwork\",\n        \"datasourceFilter\":{\n          \"Network\":\"Network\"\n        }\n      },\n      \"Network\":{\n        \"datasource\":\"ServiceNow::Pools::NetworkPool.getObjectsByLDC\"\n      },\n      \"KeyName\":{\n        \"datasource\":\"ServiceNow::Pools::CloudKeyPairPool.getObjectsByLDC\"\n      }\n    }\n  },\n  \"Mappings\":{\n    \"AWSInstanceType2Arch\":{\n      \"t1.micro\":{\n        \"Arch\":\"PV64\"\n      },\n      \"t2.nano\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"t2.micro\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"t2.small\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"t2.medium\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"t2.large\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"m1.small\":{\n        \"Arch\":\"PV64\"\n      },\n      \"m1.medium\":{\n        \"Arch\":\"PV64\"\n      },\n      \"m1.large\":{\n        \"Arch\":\"PV64\"\n      },\n      \"m1.xlarge\":{\n        \"Arch\":\"PV64\"\n      },\n      \"m2.xlarge\":{\n        \"Arch\":\"PV64\"\n      },\n      \"m2.2xlarge\":{\n        \"Arch\":\"PV64\"\n      },\n      \"m2.4xlarge\":{\n        \"Arch\":\"PV64\"\n      },\n      \"m3.medium\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"m3.large\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"m3.xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"m3.2xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"m4.large\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"m4.xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"m4.2xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"m4.4xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"m4.10xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"c1.medium\":{\n        \"Arch\":\"PV64\"\n      },\n      \"c1.xlarge\":{\n        \"Arch\":\"PV64\"\n      },\n      \"c3.large\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"c3.xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"c3.2xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"c3.4xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"c3.8xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"c4.large\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"c4.xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"c4.2xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"c4.4xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"c4.8xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"g2.2xlarge\":{\n        \"Arch\":\"HVMG2\"\n      },\n      \"g2.8xlarge\":{\n        \"Arch\":\"HVMG2\"\n      },\n      \"r3.large\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"r3.xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"r3.2xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"r3.4xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"r3.8xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"i2.xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"i2.2xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"i2.4xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"i2.8xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"d2.xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"d2.2xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"d2.4xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"d2.8xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"hi1.4xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"hs1.8xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"cr1.8xlarge\":{\n        \"Arch\":\"HVM64\"\n      },\n      \"cc2.8xlarge\":{\n        \"Arch\":\"HVM64\"\n      }\n    },\n    \"AWSRegionArch2AMI\":{\n      \"us-east-1\":{\n        \"PV64\":\"ami-2a69aa47\",\n        \"HVM64\":\"ami-6869aa05\",\n        \"HVMG2\":\"ami-a41a3fb3\"\n      },\n      \"us-west-2\":{\n        \"PV64\":\"ami-7f77b31f\",\n        \"HVM64\":\"ami-7172b611\",\n        \"HVMG2\":\"ami-caf253aa\"\n      },\n      \"us-west-1\":{\n        \"PV64\":\"ami-a2490dc2\",\n        \"HVM64\":\"ami-31490d51\",\n        \"HVMG2\":\"ami-00347e60\"\n      },\n      \"eu-west-1\":{\n        \"PV64\":\"ami-4cdd453f\",\n        \"HVM64\":\"ami-f9dd458a\",\n        \"HVMG2\":\"ami-e2f7bd91\"\n      },\n      \"eu-central-1\":{\n        \"PV64\":\"ami-6527cf0a\",\n        \"HVM64\":\"ami-ea26ce85\",\n        \"HVMG2\":\"ami-d2ff04bd\"\n      },\n      \"ap-northeast-1\":{\n        \"PV64\":\"ami-3e42b65f\",\n        \"HVM64\":\"ami-374db956\",\n        \"HVMG2\":\"ami-4c78d52d\"\n      },\n      \"ap-northeast-2\":{\n        \"PV64\":\"NOT_SUPPORTED\",\n        \"HVM64\":\"ami-2b408b45\",\n        \"HVMG2\":\"NOT_SUPPORTED\"\n      },\n      \"ap-southeast-1\":{\n        \"PV64\":\"ami-df9e4cbc\",\n        \"HVM64\":\"ami-a59b49c6\",\n        \"HVMG2\":\"ami-f3f95990\"\n      },\n      \"ap-southeast-2\":{\n        \"PV64\":\"ami-63351d00\",\n        \"HVM64\":\"ami-dc361ebf\",\n        \"HVMG2\":\"ami-3a122e59\"\n      },\n      \"ap-south-1\":{\n        \"PV64\":\"NOT_SUPPORTED\",\n        \"HVM64\":\"ami-ffbdd790\",\n        \"HVMG2\":\"ami-21a7d34e\"\n      },\n      \"us-east-2\":{\n        \"PV64\":\"NOT_SUPPORTED\",\n        \"HVM64\":\"ami-f6035893\",\n        \"HVMG2\":\"NOT_SUPPORTED\"\n      },\n      \"sa-east-1\":{\n        \"PV64\":\"ami-1ad34676\",\n        \"HVM64\":\"ami-6dd04501\",\n        \"HVMG2\":\"NOT_SUPPORTED\"\n      },\n      \"cn-north-1\":{\n        \"PV64\":\"ami-77559f1a\",\n        \"HVM64\":\"ami-8e6aa0e3\",\n        \"HVMG2\":\"NOT_SUPPORTED\"\n      }\n    }\n  },\n  \"Resources\":{\n    \"EC2Instance\":{\n      \"Type\":\"AWS::EC2::Instance\",\n      \"Properties\":{\n        \"InstanceType\":{\n          \"Ref\":\"InstanceType\"\n        },\n        \"KeyName\":{\n          \"Ref\":\"KeyName\"\n        },\n        \"SubnetId\":{\n          \"Ref\":\"SubnetPool\"\n        },\n        \"ImageId\":{\n          \"Fn::FindInMap\":[\n            \"AWSRegionArch2AMI\",\n            {\n              \"Ref\":\"AWS::Region\"\n            },\n            {\n              \"Fn::FindInMap\":[\n                \"AWSInstanceType2Arch\",\n                {\n                  \"Ref\":\"InstanceType\"\n                },\n                \"Arch\"\n              ]\n            }\n          ]\n        }\n      }\n    },\n    \"InstanceSecurityGroup\":{\n      \"Type\":\"AWS::EC2::SecurityGroup\",\n      \"Properties\":{\n        \"GroupDescription\":\"Enable SSH access via port 22\",\n        \"SecurityGroupIngress\":[\n          {\n            \"IpProtocol\":\"tcp\",\n            \"FromPort\":\"22\",\n            \"ToPort\":\"22\",\n            \"CidrIp\":{\n              \"Ref\":\"SSHLocation\"\n            }\n          }\n        ]\n      }\n    }\n  },\n  \"Outputs\":{\n    \"InstanceId\":{\n      \"Description\":\"InstanceId of the newly created EC2 instance\",\n      \"Value\":{\n        \"Ref\":\"EC2Instance\"\n      }\n    },\n    \"AZ\":{\n      \"Description\":\"Availability Zone of the newly created EC2 instance\",\n      \"Value\":{\n        \"Fn::GetAtt\":[\n          \"EC2Instance\",\n          \"AvailabilityZone\"\n        ]\n      }\n    }\n  }\n}"
  },
  {
    "path": "examples/language/cloudformation.yml",
    "content": "AWSTemplateFormatVersion: '2010-09-09'\n\nDescription: AWS lambda search - implementation\n\nResources:\n\n  # https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html\n\n  LambdaFunctionController:\n    Type: AWS::Lambda::Function\n    Properties:\n      FunctionName: aws-lambda-search-controller\n      Handler: main\n      Role: !GetAtt LambdaServiceRole.Arn\n      MemorySize: 3538\n      Code:\n        S3Bucket: !Sub \"aws-lambda-search-lambda-${AWS::AccountId}\"\n        S3Key: controller.zip\n      Runtime: go1.x\n      Timeout: 10 # needs to be high to account for the cold start time otherwise it never runs\n\n  LambdaFunctionController2:\n    Type: AWS::Lambda::Function\n    Properties:\n      FunctionName: aws-lambda-search-controller-2\n      Handler: main\n      Role: !GetAtt LambdaServiceRole.Arn\n      MemorySize: 3538\n      Code:\n        S3Bucket: !Sub \"aws-lambda-search-lambda-${AWS::AccountId}\"\n        S3Key: controller.zip\n      Runtime: go1.x\n      Timeout: 10 # needs to be high to account for the cold start time otherwise it never runs\n\n  LambdaFunctionNewsFetcher:\n    Type: AWS::Lambda::Function\n    Properties:\n      FunctionName: newsfetcher\n      Handler: main\n      Role: !GetAtt LambdaServiceRole.Arn\n      MemorySize: 1024\n      Code:\n        S3Bucket: !Sub \"aws-lambda-search-lambda-${AWS::AccountId}\"\n        S3Key: newsfetcher.zip\n      Runtime: go1.x\n      Timeout: 10 # needs to be high to account for the cold start time otherwise it never runs\n\n  CronEvent: #logical name of the resource\n    Type: AWS::Events::Rule\n    Properties:\n      ScheduleExpression: rate(15 minutes)\n      Targets:\n        - Arn:\n            Fn::GetAtt: [ LambdaFunctionNewsFetcher , \"Arn\" ] #reference the lambda function by its arn\n          Id:\n            Ref: LambdaFunctionNewsFetcher\n\n  HttpApi:\n    Type: AWS::ApiGatewayV2::Api\n    Properties:\n      Name: aws-lambda-api-search\n      Description: \"aws lambda search API\"\n      ProtocolType: HTTP\n      RouteSelectionExpression: \"$request.method $request.path\"\n      Version: \"1.0\"\n      DisableExecuteApiEndpoint: false\n      CorsConfiguration:\n        AllowMethods:\n          - GET\n          - POST\n          - PUT\n          - DELETE\n        AllowOrigins:\n          - \"*\"\n        AllowHeaders:\n          - \"*\"\n\n  HttpApiLogGroup:\n    Type: AWS::Logs::LogGroup\n    Properties:\n      LogGroupName: !Sub \"aws-lambda-search-api-gateway-logs\"\n      RetentionInDays: 1\n\n  HttpApiStage:\n    Type: AWS::ApiGatewayV2::Stage\n    Properties:\n      ApiId: !Ref HttpApi\n      AutoDeploy: true\n      StageName: \"$default\"\n      AccessLogSettings:\n        DestinationArn: !GetAtt HttpApiLogGroup.Arn\n        Format: '{\"requestId\":\"$context.requestId\",\"ip\": \"$context.identity.sourceIp\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"routeKey\":\"$context.routeKey\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\",\"userId\":\"$context.authorizer.userId\",\"userRole\":\"$context.authorizer.userRole\",\"sessionId\":\"$context.authorizer.sessionId\"}'\n\n  HttpSearchRoute:\n    Type: AWS::ApiGatewayV2::Route\n    Properties:\n      ApiId: !Ref HttpApi\n      AuthorizationType: NONE\n      RouteKey: \"GET /search\"\n      Target: !Sub \"integrations/${HttpApiIntegration}\"\n\n  HttpApiIntegration:\n    DependsOn:\n      - LambdaFunctionController\n    Type: AWS::ApiGatewayV2::Integration\n    Properties:\n      ApiId: !Ref HttpApi\n      ConnectionType: INTERNET\n      IntegrationMethod: POST\n      IntegrationType: AWS_PROXY\n      IntegrationUri: !GetAtt LambdaFunctionController.Arn\n      PayloadFormatVersion: \"2.0\"\n\n  HttpSearchRoute2:\n    Type: AWS::ApiGatewayV2::Route\n    Properties:\n      ApiId: !Ref HttpApi\n      AuthorizationType: NONE\n      RouteKey: \"GET /search2\"\n      Target: !Sub \"integrations/${HttpApiIntegration2}\"\n\n  HttpApiIntegration2:\n    DependsOn:\n      - LambdaFunctionController2\n    Type: AWS::ApiGatewayV2::Integration\n    Properties:\n      ApiId: !Ref HttpApi\n      ConnectionType: INTERNET\n      IntegrationMethod: POST\n      IntegrationType: AWS_PROXY\n      IntegrationUri: !GetAtt LambdaFunctionController2.Arn\n      PayloadFormatVersion: \"2.0\"\n\n  LambdaAPIGatewayPermission:\n    DependsOn:\n      - HttpApi\n    Type: AWS::Lambda::Permission\n    Properties:\n      Action: lambda:InvokeFunction\n      FunctionName: !GetAtt LambdaFunctionController.Arn\n      Principal: apigateway.amazonaws.com\n\n  LambdaAPIGatewayPermission2:\n    DependsOn:\n      - HttpApi\n    Type: AWS::Lambda::Permission\n    Properties:\n      Action: lambda:InvokeFunction\n      FunctionName: !GetAtt LambdaFunctionController2.Arn\n      Principal: apigateway.amazonaws.com"
  },
  {
    "path": "examples/language/component.templ",
    "content": "package main\n\ntempl nameList(items []Item) {\n  <ul>\n  for _, item := range items {\n    <li>{ item.Name }</li>\n  }\n  </ul>\n}"
  },
  {
    "path": "examples/language/cuda.cu",
    "content": "#include <iostream>\n#include <math.h>\n// Kernel function to add the elements of two arrays\n__global__\nvoid add(int n, float *x, float *y)\n{\n  for (int i = 0; i < n; i++)\n    y[i] = x[i] + y[i];\n}\n\nint main(void)\n{\n  int N = 1<<20;\n  float *x, *y;\n\n  // Allocate Unified Memory – accessible from CPU or GPU\n  cudaMallocManaged(&x, N*sizeof(float));\n  cudaMallocManaged(&y, N*sizeof(float));\n\n  // initialize x and y arrays on the host\n  for (int i = 0; i < N; i++) {\n    x[i] = 1.0f;\n    y[i] = 2.0f;\n  }\n\n  // Run kernel on 1M elements on the GPU\n  add<<<1, 1>>>(N, x, y);\n\n  // Wait for GPU to finish before accessing on host\n  cudaDeviceSynchronize();\n\n  // Check for errors (all values should be 3.0f)\n  float maxError = 0.0f;\n  for (int i = 0; i < N; i++)\n    maxError = fmax(maxError, fabs(y[i]-3.0f));\n  std::cout << \"Max error: \" << maxError << std::endl;\n\n  // Free memory\n  cudaFree(x);\n  cudaFree(y);\n\n  return 0;\n}"
  },
  {
    "path": "examples/language/cypher.cypher",
    "content": "// movies.cypher\n// Example query to test scc complexity definitions for Cypher.\n\n/*\n  This multi-line block explains the query's purpose.\n  It finds actors who co-starred with \"Tom Hanks\" and then\n  looks for paths of up to 5 steps to \"Kevin Bacon\".\n*/\n\n// Find Tom Hanks' co-actors\nMATCH (tom:Actor {name: 'Tom Hanks'})-[:ACTED_IN]->(m:Movie)<-[:ACTED_IN]-(coActor:Actor)\nWHERE coActor.name <> \"Tom Hanks\"\n\n// Now, check for a connection to Kevin Bacon\nWITH coActor\nMATCH (bacon:Actor {name: \"Kevin Bacon\"})\n// This is a variable-length path, indicating higher complexity\nMATCH p = shortestPath((coActor)-[*..5]-(bacon))\n\n// UNION is another complexity check\nUNION\n\n// An optional match for actors born after 1960\nMATCH (youngActor:Actor)\nWHERE youngActor.born > 1960\nOPTIONAL MATCH (youngActor)-[:DIRECTED]->(anyMovie:Movie)\n\nRETURN youngActor.name, anyMovie.title;"
  },
  {
    "path": "examples/language/d2.d2",
    "content": "# An example copy from https://d2lang.com/tour/intro/\nvars: {\n  d2-config: {\n    layout-engine: elk\n    # Terminal theme code\n    theme-id: 300\n  }\n}\nnetwork: {\n  cell tower: {\n    satellites: {\n      shape: stored_data\n      style.multiple: true\n    }\n\n    transmitter\n\n    satellites -> transmitter: send\n    satellites -> transmitter: send\n    satellites -> transmitter: send\n  }\n\n  online portal: {\n    ui: {shape: hexagon}\n  }\n\n  data processor: {\n    storage: {\n      shape: cylinder\n      style.multiple: true\n    }\n  }\n\n  cell tower.transmitter -> data processor.storage: phone logs\n}\n\nuser: {\n  shape: person\n  width: 130\n}\n\nuser -> network.cell tower: make call\nuser -> network.online portal.ui: access {\n  style.stroke-dash: 3\n}\n\napi server -> network.online portal.ui: display\napi server -> logs: persist\nlogs: {shape: page; style.multiple: true}\n\nnetwork.data processor -> api server\n"
  },
  {
    "path": "examples/language/daml.daml",
    "content": "applyFilter (filter : Int -> Int -> Bool)\n    (x : Int)\n    (y : Int) = filter x y\n\ncompute = script do\n    applyFilter (<) 3 2 === False\n    applyFilter (/=) 3 2 === True\n\n    round (2.5 : Decimal) === 3\n    round (3.5 : Decimal) === 4\n\n    explode \"me\" === [\"m\", \"e\"]\n\n    applyFilter (\\a b -> a /= b) 3 2 === True"
  },
  {
    "path": "examples/language/docker.nu",
    "content": "# docker wrapper that returns a nushell table\ndef docker [\n  ...args:string # command to be passed to the real docker command\n  ] {\n  let data = (^docker $args --format={{json .}}|lines|each {$it|from json})\n  if Labels in ($data|get) {\n    $data|docker labels\n  } {\n    $data\n  }\n  \n}\n\n# subcommand used to reformat docker labels into their own table\ndef 'docker labels' [] {\n  update Labels {\n    get Labels|\n    split row ','|\n    where ($it|str starts-with ' ') == $false|\n    split column '=' name value\n  }\n}"
  },
  {
    "path": "examples/language/dot.gv",
    "content": "graph graphname {\n    // This attribute applies to the graph itself\n    size=\"1,1\";\n    // The label attribute can be used to change the label of a node\n    a [label=\"Foo\"];\n    // Here, the node shape is changed.\n    b [shape=box];\n    // These edges both have different line properties\n    a -- b -- c [color=blue];\n    b -- d [style=dotted];\n    // [style=invis] hides a node.\n}"
  },
  {
    "path": "examples/language/elixirtemplate.eex",
    "content": "Hi, <%= name %>\n\ndefmodule Example do\n  require EEx\n  EEx.function_from_file(:def, :greeting, \"greeting.eex\", [:name])\nend"
  },
  {
    "path": "examples/language/elm.elm",
    "content": "case someBool of\r\n    True ->\r\n        \"yah\"\r\n\r\n    False ->\r\n        \"nope\""
  },
  {
    "path": "examples/language/emit.emit",
    "content": "// emit program\ncreate x = 10;\n\nx = x - 3;\n\ncreate y;\n\ntime strike;\n\ny kills x;\n\ncreate traveler;\n\nprint(x); //timeline 1 - nothing since x is dead. timeline 2 - prints 7 since traveler stopped x from being killed.\n\nif(x is dead){\n\n    traveler warps strike{\n        traveler kills y;\n        traveler kills traveler; //kill self, preventing paradoxes by interfering with itself\n    };\n\n};"
  },
  {
    "path": "examples/language/factor.factor",
    "content": "! Written for SCC by CapitalEx\nUSING: combinators io kernel math.order math.parser random\nranges ;\nIN: simple-guessing-game\n\n: pick-number ( -- n )\n    100 [1..b] random ;\n\n: read-number ( -- n )\n    \"Enter a guess: \" write readln dec> ;\n\n: guessing-game ( n -- )\n    dup read-number <=> dup {\n        { +lt+ [ \"Too high!\" print t ] }\n        { +gt+ [ \"Too low!\"  print t ] }\n        [ drop \"You won!\" print f ]\n    } case [ guessing-game ] [ drop ] if ;\n\nMAIN: [\n    \"I'm thinking of a number between 1 and 100\" print\n    pick-number\n    guessing-game\n]"
  },
  {
    "path": "examples/language/flow9.flow",
    "content": "import runtime;\n\n/*\nIf we list all the natural numbers below 10 that are multiples of 3 or 5, \nwe get 3, 5, 6 and 9. The sum of these multiples is 23.\n\nFind the sum of all the multiples of 3 or 5 below 1000.\n*/\n\neuler1(limit : int) -> int {\n    foldRange(1, limit - 1, 0, \\acc, i -> {\n        if (i % 3 == 0 || i % 5 == 0) {\n            acc + i;\n        } else acc;\n    });\n}\n\nmain() {\n    println(euler1(1000)); // Correct: 233168\n    quit(0);\n}\n"
  },
  {
    "path": "examples/language/fsl.fsl",
    "content": "machine_name     : \"Should you use twitter?\";\nmachine_author   : \"MachinShin \";\nmachine_license  : MIT;\nmachine_comment  : \"#madewithfsl\";\nmachine_language : en;\nmachine_version  : 1.0.0;\nfsl_version      : 1.0.0;\n\nstart_states     : [Start];\n\nend_states       : [\n  \"You can keep your Twitter account\"\n  \"Get off Twitter and seek help\"\n  \"Sorry Twitter just isn't for you\"\n  \"Get off Twitter\"\n  \"Maybe you should stick to Facebook\"\n];\n\nStart -> \"Is your Twitter for personal or business use?\";\n\"Is your Twitter for personal or business use?\" 'Personal'\n    -> \"Do you have a habit of revealing intimate personal details?\";\n\"Is your Twitter for personal or business use?\" 'Business'\n    -> \"Are you using Twitter to communicate\\n with customers and send brand updates?\";\n\"Is your Twitter for personal or business use?\" 'My business is personal'\n   -> \"Do you distinguish your business account\\n from your personal account?\";\n\n\"Do you have a habit of revealing intimate personal details?\" 'No, I have a pretty good ability to self control'\n  -> \"Are a majority of your tweets interesting,\\n funny, or thought-provoking?\";\n\n\"Do you have a habit of revealing intimate personal details?\" 'Only when I have had a little took much to drink'\n  -> \"Does your boss follow you?\";\n\n\"Does your boss follow you?\" 'Yes'\n    -> \"Get off Twitter\";\n\"Does your boss follow you?\" 'No'\n    -> \"Are you just using Twitter to stalk celebrities?\" -> \"Get off Twitter and seek help\";\n\n\"Are a majority of your tweets interesting,\\n funny, or thought-provoking?\" 'No, they are mostly pics of my lunch or my cat'\n    -> \"Are you a celebrity\";\n\n\"Are a majority of your tweets interesting,\\n funny, or thought-provoking?\" 'Yes'\n    -> \"Are you capable of keeping your insights\\n to 140 characters or fewer?\";\n\n\"Are you a celebrity\" 'No'\n    -> \"Maybe you should stick to Facebook\";\n\"Are you a celebrity\" 'Yes'\n    -> \"You can keep your Twitter account\";\n\n\"Do you distinguish your business account\\n from your personal account?\" 'No, of course not'\n    -> \"Get off Twitter\";\n\n\"Do you distinguish your business account\\n from your personal account?\" 'Yes'\n    -> \"Are you using Twitter to communicate\\n with customers and send brand updates?\";\n\n\"Are you using Twitter to communicate\\n with customers and send brand updates?\" 'No, not exactly'\n    -> \"You understand what Twitter is, right?\";\n\n\"Are you using Twitter to communicate\\n with customers and send brand updates?\" 'Yes'\n    -> \"Do a majority of your clients or customers remember the good old days of the Coolidge Administration?\";\n\n\"Do a majority of your clients or customers remember the good old days of the Coolidge Administration?\" 'No'\n    -> \"How often do you tweet?\";\n\n\"Do a majority of your clients or customers remember the good old days of the Coolidge Administration?\" 'Yes, and their first zeppelin ride'\n    -> \"Sorry Twitter just isn't for you\";\n\n\"You can keep your Twitter account\" <-\n  'Yes' \"Do you like to know what is going on in the world\\n 5-6 minutes before any world news outlet?\";\n\"You can keep your Twitter account\" <- 'Yes' \"Are a majority of your tweets\\n related to your business or industry?\";\n\n\"Do you like to know what is going on in the world\\n 5-6 minutes before any world news outlet?\" 'No'\n  -> \"Sorry Twitter just isn't for you\";\n\"Are a majority of your tweets related\\n to your business or industry?\" 'No'\n  -> \"Sorry Twitter just isn't for you\";\n\n\"Do you only keep your twitter account\\n for the rush you feel when your tweet is retweeted?\" 'Yes'\n  -> \"Really?\";\n\n\"Really?\" 'Yes'\n  -> \"Get off Twitter and seek help\";\n\"Really?\" 'No'\n  -> \"Do you only keep your twitter account\\n for the rush you feel when your tweet is retweeted?\";\n\n\"Are you capable of keeping your insights\\n to 140 characters or fewer?\"\n  -> \"Do you only keep your twitter account\\n for the rush you feel when your tweet is retweeted?\";\n\n\n\"Get off Twitter\" <- 'Yeah you caught me' \"Wait - Are you spam or a bot?\";\n \"Wait - Are you spam or a bot?\" 'No' -> \"How often do you tweet?\";\n \"Wait - Are you spam or a bot?\" <- 'Yes' \"You understand what Twitter is, right?\";\n\n \"How often do you tweet?\" 'Hardly ever'\n    -> \"Are you just using Twitter to stalk celebrities?\";\n \"How often do you tweet?\" '15 times a month'\n    -> \"Do you only keep your twitter account\\n for the rush you feel when your tweet is retweeted?\";\n \"How often do you tweet?\" 'Almost everyday'\n    -> \"Are a majority of your tweets\\n related to your business or industry?\";\n\n\n\n//css for states\n\nstate \"Really?\": {\n  shape: octagon;\n  background-color: black;\n  text-color: white;\n};\n\nstate \"Maybe you should stick to Facebook\": {\n  shape: octagon;\n  background-color: skyblue;\n  text-color: white;\n};\n\n\nstate \"Get off Twitter\": {\n  shape: octagon;\n  background-color: skyblue;\n  text-color: white;\n};\n\n\nstate \"Get off Twitter and seek help\": {\n  shape: octagon;\n  background-color: skyblue;\n  text-color: white;\n};\n\nstate \"You can keep your Twitter account\": {\n  shape: octagon;\n  background-color: skyblue;\n  text-color: white;\n};\n\nstate \"Sorry Twitter just isn't for you\": {\n  shape: octagon;\n  background-color: skyblue;\n  text-color: white;\n};\n\nstate \"Does your boss follow you?\" : {\n  shape: octagon;\n  background-color: yellow;\n};\n\nstate Start : {\n  background-color : limegreen;\n  text-color       : white;\n  shape            : octagon;\n  linestyle        : dashed;\n};\n"
  },
  {
    "path": "examples/language/fxml.fxml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?import javafx.scene.layout.VBox?>\r\n<?import javafx.scene.control.Label?>\r\n\r\n<VBox>\r\n    <children>\r\n        <Label text=\"Hello world FXML\"/>\r\n    </children>\r\n</VBox>"
  },
  {
    "path": "examples/language/gleam.gleam",
    "content": "import gleam/int\nimport gleam/io\n\npub fn main() {\n  let x = int.random(2)\n  let y = int.random(2)\n  io.debug(x)\n  io.debug(y)\n\n  let result = case x, y {\n    0, 0 -> \"Both are zero\"\n    0, _ -> \"First is zero\"\n    _, 0 -> \"Second is zero\"\n    _, _ -> \"Neither are zero\"\n  }\n  io.debug(result)\n}"
  },
  {
    "path": "examples/language/go.go",
    "content": "package main\n\nimport \"fmt\"\n\n// This is a comment\n/**\n\tanother comment\n**/\n\n// Msg function\nfunc Msg() {\n\n}\n\nfunc main() {\n\tfmt.Println(\"hw\")\n}\n\n// This is a comment\n"
  },
  {
    "path": "examples/language/godot.tscn",
    "content": "[gd_scene load_steps=4 format=3 uid=\"uid://bam4cbdd6h24e\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://dw1aad3whrra0\" path=\"res://assets/sprites/cavesofgallet_tiles.png\" id=\"1_27u2s\"]\n\n[sub_resource type=\"RectangleShape2D\" id=\"RectangleShape2D_2rh4h\"]\nsize = Vector2(9, 1)\n\n[sub_resource type=\"OccluderPolygon2D\" id=\"OccluderPolygon2D_72i7s\"]\npolygon = PackedVector2Array(-4, 0, 4, 0, 4, -1, -4, -1)\n\n[node name=\"Sprite2D\" type=\"Sprite2D\"]\ntexture = ExtResource(\"1_27u2s\")\nregion_enabled = true\nregion_rect = Rect2(49, 8, 9, 1)\n\n[node name=\"StaticBody2D\" type=\"StaticBody2D\" parent=\".\"]\n\n[node name=\"CollisionShape2D\" type=\"CollisionShape2D\" parent=\"StaticBody2D\"]\nshape = SubResource(\"RectangleShape2D_2rh4h\")\none_way_collision = true\n\n[node name=\"LightOccluder2D\" type=\"LightOccluder2D\" parent=\".\"]\nposition = Vector2(0, 1)\noccluder = SubResource(\"OccluderPolygon2D_72i7s\")"
  },
  {
    "path": "examples/language/goplus.gop",
    "content": "#!/usr/bin/gop run\n\n// test\nimport (\n\t\"fmt\"\n\t\"sync\"\n)\n\nfunc collatz(num int32) []int32 {\n\tif num <= 0 {\n\t\tpanic(\"num must not be zero\") /* collatz sequence needs num >= 0 */\n\t}\n\tvar res []int32\n\tres <- num\n\tfor num > 1 {\n\t\tif num&1 == 0 {\n\t\t\tnum /= 2\n\t\t\tres <- num\n\t\t} else {\n\t\t\tnum *= 3\n\t\t\tnum++\n\t\t\tres <- num\n\t\t}\n\t}\n\treturn res\n}\n\nvar wg sync.WaitGroup\n\nfor i in [int32(i) for i in 1:11] {\n\twg.Add(1)\n\tgo func(ii int32) {\n\t\tdefer wg.Done()\n\t\tprintln i, \":\", collatz(ii)\n\t}(i)\n}\nwg.Wait()\n"
  },
  {
    "path": "examples/language/graphql.graphql",
    "content": "directive @requiredCapabilities(\n  requiredCapabilities: [String!]\n) on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\n\"\"\"\nMarks an element of a GraphQL schema as only available via a preview header\n\"\"\"\ndirective @preview(\n  \"\"\"\n  The identifier of the API preview that toggles this field.\n  \"\"\"\n  toggledBy: String!\n) on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\n\"\"\"\nDefines what type of global IDs are accepted for a mutation argument of type ID.\n\"\"\"\ndirective @possibleTypes(\n  \"\"\"\n  Abstract type of accepted global ID\n  \"\"\"\n  abstractType: String\n\n  \"\"\"\n  Accepted types of global IDs.\n  \"\"\"\n  concreteTypes: [String!]!\n) on INPUT_FIELD_DEFINITION\n\n\"\"\"\nAutogenerated input type of AbortQueuedMigrations\n\"\"\"\ninput AbortQueuedMigrationsInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the organization that is running the migrations.\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n}\n\n\"\"\"\nAutogenerated return type of AbortQueuedMigrations\n\"\"\"\ntype AbortQueuedMigrationsPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Did the operation succeed?\n  \"\"\"\n  success: Boolean\n}\n\n\"\"\"\nAutogenerated input type of AbortRepositoryMigration\n\"\"\"\ninput AbortRepositoryMigrationInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the migration to be aborted.\n  \"\"\"\n  migrationId: ID! @possibleTypes(concreteTypes: [\"RepositoryMigration\"])\n}\n\n\"\"\"\nAutogenerated return type of AbortRepositoryMigration\n\"\"\"\ntype AbortRepositoryMigrationPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Did the operation succeed?\n  \"\"\"\n  success: Boolean\n}\n\n\"\"\"\nAutogenerated input type of AcceptEnterpriseAdministratorInvitation\n\"\"\"\ninput AcceptEnterpriseAdministratorInvitationInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The id of the invitation being accepted\n  \"\"\"\n  invitationId: ID! @possibleTypes(concreteTypes: [\"EnterpriseAdministratorInvitation\"])\n}\n\n\"\"\"\nAutogenerated return type of AcceptEnterpriseAdministratorInvitation\n\"\"\"\ntype AcceptEnterpriseAdministratorInvitationPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The invitation that was accepted.\n  \"\"\"\n  invitation: EnterpriseAdministratorInvitation\n\n  \"\"\"\n  A message confirming the result of accepting an administrator invitation.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of AcceptTopicSuggestion\n\"\"\"\ninput AcceptTopicSuggestionInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The name of the suggested topic.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The Node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of AcceptTopicSuggestion\n\"\"\"\ntype AcceptTopicSuggestionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The accepted topic.\n  \"\"\"\n  topic: Topic\n}\n\n\"\"\"\nRepresents an object which can take actions on GitHub. Typically a User or Bot.\n\"\"\"\ninterface Actor {\n  \"\"\"\n  A URL pointing to the actor's public avatar.\n  \"\"\"\n  avatarUrl(\n    \"\"\"\n    The size of the resulting square image.\n    \"\"\"\n    size: Int\n  ): URI!\n\n  \"\"\"\n  The username of the actor.\n  \"\"\"\n  login: String!\n\n  \"\"\"\n  The HTTP path for this actor.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this actor.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nLocation information for an actor\n\"\"\"\ntype ActorLocation {\n  \"\"\"\n  City\n  \"\"\"\n  city: String\n\n  \"\"\"\n  Country name\n  \"\"\"\n  country: String\n\n  \"\"\"\n  Country code\n  \"\"\"\n  countryCode: String\n\n  \"\"\"\n  Region name\n  \"\"\"\n  region: String\n\n  \"\"\"\n  Region or state code\n  \"\"\"\n  regionCode: String\n}\n\n\"\"\"\nThe actor's type.\n\"\"\"\nenum ActorType {\n  \"\"\"\n  Indicates a team actor.\n  \"\"\"\n  TEAM\n\n  \"\"\"\n  Indicates a user actor.\n  \"\"\"\n  USER\n}\n\n\"\"\"\nAutogenerated input type of AddAssigneesToAssignable\n\"\"\"\ninput AddAssigneesToAssignableInput {\n  \"\"\"\n  The id of the assignable object to add assignees to.\n  \"\"\"\n  assignableId: ID! @possibleTypes(concreteTypes: [\"Issue\", \"PullRequest\"], abstractType: \"Assignable\")\n\n  \"\"\"\n  The id of users to add as assignees.\n  \"\"\"\n  assigneeIds: [ID!]! @possibleTypes(concreteTypes: [\"User\"])\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated return type of AddAssigneesToAssignable\n\"\"\"\ntype AddAssigneesToAssignablePayload {\n  \"\"\"\n  The item that was assigned.\n  \"\"\"\n  assignable: Assignable\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of AddComment\n\"\"\"\ninput AddCommentInput {\n  \"\"\"\n  The contents of the comment.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the subject to modify.\n  \"\"\"\n  subjectId: ID! @possibleTypes(concreteTypes: [\"Issue\", \"PullRequest\"], abstractType: \"IssueOrPullRequest\")\n}\n\n\"\"\"\nAutogenerated return type of AddComment\n\"\"\"\ntype AddCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The edge from the subject's comment connection.\n  \"\"\"\n  commentEdge: IssueCommentEdge\n\n  \"\"\"\n  The subject\n  \"\"\"\n  subject: Node\n\n  \"\"\"\n  The edge from the subject's timeline connection.\n  \"\"\"\n  timelineEdge: IssueTimelineItemEdge\n}\n\n\"\"\"\nAutogenerated input type of AddDiscussionComment\n\"\"\"\ninput AddDiscussionCommentInput {\n  \"\"\"\n  The contents of the comment.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the discussion to comment on.\n  \"\"\"\n  discussionId: ID! @possibleTypes(concreteTypes: [\"Discussion\"])\n\n  \"\"\"\n  The Node ID of the discussion comment within this discussion to reply to.\n  \"\"\"\n  replyToId: ID @possibleTypes(concreteTypes: [\"DiscussionComment\"])\n}\n\n\"\"\"\nAutogenerated return type of AddDiscussionComment\n\"\"\"\ntype AddDiscussionCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The newly created discussion comment.\n  \"\"\"\n  comment: DiscussionComment\n}\n\n\"\"\"\nAutogenerated input type of AddDiscussionPollVote\n\"\"\"\ninput AddDiscussionPollVoteInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the discussion poll option to vote for.\n  \"\"\"\n  pollOptionId: ID! @possibleTypes(concreteTypes: [\"DiscussionPollOption\"])\n}\n\n\"\"\"\nAutogenerated return type of AddDiscussionPollVote\n\"\"\"\ntype AddDiscussionPollVotePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The poll option that a vote was added to.\n  \"\"\"\n  pollOption: DiscussionPollOption\n}\n\n\"\"\"\nAutogenerated input type of AddEnterpriseOrganizationMember\n\"\"\"\ninput AddEnterpriseOrganizationMemberInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise which owns the organization.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The ID of the organization the users will be added to.\n  \"\"\"\n  organizationId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n\n  \"\"\"\n  The role to assign the users in the organization\n  \"\"\"\n  role: OrganizationMemberRole\n\n  \"\"\"\n  The IDs of the enterprise members to add.\n  \"\"\"\n  userIds: [ID!]!\n}\n\n\"\"\"\nAutogenerated return type of AddEnterpriseOrganizationMember\n\"\"\"\ntype AddEnterpriseOrganizationMemberPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The users who were added to the organization.\n  \"\"\"\n  users: [User!]\n}\n\n\"\"\"\nAutogenerated input type of AddEnterpriseSupportEntitlement\n\"\"\"\ninput AddEnterpriseSupportEntitlementInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the Enterprise which the admin belongs to.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The login of a member who will receive the support entitlement.\n  \"\"\"\n  login: String!\n}\n\n\"\"\"\nAutogenerated return type of AddEnterpriseSupportEntitlement\n\"\"\"\ntype AddEnterpriseSupportEntitlementPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A message confirming the result of adding the support entitlement.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of AddLabelsToLabelable\n\"\"\"\ninput AddLabelsToLabelableInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ids of the labels to add.\n  \"\"\"\n  labelIds: [ID!]! @possibleTypes(concreteTypes: [\"Label\"])\n\n  \"\"\"\n  The id of the labelable object to add labels to.\n  \"\"\"\n  labelableId: ID! @possibleTypes(concreteTypes: [\"Discussion\", \"Issue\", \"PullRequest\"], abstractType: \"Labelable\")\n}\n\n\"\"\"\nAutogenerated return type of AddLabelsToLabelable\n\"\"\"\ntype AddLabelsToLabelablePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The item that was labeled.\n  \"\"\"\n  labelable: Labelable\n}\n\n\"\"\"\nAutogenerated input type of AddProjectCard\n\"\"\"\ninput AddProjectCardInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The content of the card. Must be a member of the ProjectCardItem union\n  \"\"\"\n  contentId: ID @possibleTypes(concreteTypes: [\"Issue\", \"PullRequest\"], abstractType: \"ProjectCardItem\")\n\n  \"\"\"\n  The note on the card.\n  \"\"\"\n  note: String\n\n  \"\"\"\n  The Node ID of the ProjectColumn.\n  \"\"\"\n  projectColumnId: ID! @possibleTypes(concreteTypes: [\"ProjectColumn\"])\n}\n\n\"\"\"\nAutogenerated return type of AddProjectCard\n\"\"\"\ntype AddProjectCardPayload {\n  \"\"\"\n  The edge from the ProjectColumn's card connection.\n  \"\"\"\n  cardEdge: ProjectCardEdge\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ProjectColumn\n  \"\"\"\n  projectColumn: ProjectColumn\n}\n\n\"\"\"\nAutogenerated input type of AddProjectColumn\n\"\"\"\ninput AddProjectColumnInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The name of the column.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The Node ID of the project.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"Project\"])\n}\n\n\"\"\"\nAutogenerated return type of AddProjectColumn\n\"\"\"\ntype AddProjectColumnPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The edge from the project's column connection.\n  \"\"\"\n  columnEdge: ProjectColumnEdge\n\n  \"\"\"\n  The project\n  \"\"\"\n  project: Project\n}\n\n\"\"\"\nAutogenerated input type of AddProjectV2DraftIssue\n\"\"\"\ninput AddProjectV2DraftIssueInput {\n  \"\"\"\n  The IDs of the assignees of the draft issue.\n  \"\"\"\n  assigneeIds: [ID!] @possibleTypes(concreteTypes: [\"User\"])\n\n  \"\"\"\n  The body of the draft issue.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the Project to add the draft issue to.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n\n  \"\"\"\n  The title of the draft issue. A project item can also be created by providing\n  the URL of an Issue or Pull Request if you have access.\n  \"\"\"\n  title: String!\n}\n\n\"\"\"\nAutogenerated return type of AddProjectV2DraftIssue\n\"\"\"\ntype AddProjectV2DraftIssuePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The draft issue added to the project.\n  \"\"\"\n  projectItem: ProjectV2Item\n}\n\n\"\"\"\nAutogenerated input type of AddProjectV2ItemById\n\"\"\"\ninput AddProjectV2ItemByIdInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The id of the Issue or Pull Request to add.\n  \"\"\"\n  contentId: ID!\n    @possibleTypes(concreteTypes: [\"DraftIssue\", \"Issue\", \"PullRequest\"], abstractType: \"ProjectV2ItemContent\")\n\n  \"\"\"\n  The ID of the Project to add the item to.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n}\n\n\"\"\"\nAutogenerated return type of AddProjectV2ItemById\n\"\"\"\ntype AddProjectV2ItemByIdPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The item added to the project.\n  \"\"\"\n  item: ProjectV2Item\n}\n\n\"\"\"\nAutogenerated input type of AddPullRequestReviewComment\n\"\"\"\ninput AddPullRequestReviewCommentInput {\n  \"\"\"\n  The text of the comment. This field is required\n\n  **Upcoming Change on 2023-10-01 UTC**\n  **Description:** `body` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead\n  **Reason:** We are deprecating the addPullRequestReviewComment mutation\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The SHA of the commit to comment on.\n\n  **Upcoming Change on 2023-10-01 UTC**\n  **Description:** `commitOID` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead\n  **Reason:** We are deprecating the addPullRequestReviewComment mutation\n  \"\"\"\n  commitOID: GitObjectID\n\n  \"\"\"\n  The comment id to reply to.\n\n  **Upcoming Change on 2023-10-01 UTC**\n  **Description:** `inReplyTo` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead\n  **Reason:** We are deprecating the addPullRequestReviewComment mutation\n  \"\"\"\n  inReplyTo: ID @possibleTypes(concreteTypes: [\"PullRequestReviewComment\"])\n\n  \"\"\"\n  The relative path of the file to comment on.\n\n  **Upcoming Change on 2023-10-01 UTC**\n  **Description:** `path` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead\n  **Reason:** We are deprecating the addPullRequestReviewComment mutation\n  \"\"\"\n  path: String\n\n  \"\"\"\n  The line index in the diff to comment on.\n\n  **Upcoming Change on 2023-10-01 UTC**\n  **Description:** `position` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead\n  **Reason:** We are deprecating the addPullRequestReviewComment mutation\n  \"\"\"\n  position: Int\n\n  \"\"\"\n  The node ID of the pull request reviewing\n\n  **Upcoming Change on 2023-10-01 UTC**\n  **Description:** `pullRequestId` will be removed. use\n  addPullRequestReviewThread or addPullRequestReviewThreadReply instead\n  **Reason:** We are deprecating the addPullRequestReviewComment mutation\n  \"\"\"\n  pullRequestId: ID @possibleTypes(concreteTypes: [\"PullRequest\"])\n\n  \"\"\"\n  The Node ID of the review to modify.\n\n  **Upcoming Change on 2023-10-01 UTC**\n  **Description:** `pullRequestReviewId` will be removed. use\n  addPullRequestReviewThread or addPullRequestReviewThreadReply instead\n  **Reason:** We are deprecating the addPullRequestReviewComment mutation\n  \"\"\"\n  pullRequestReviewId: ID @possibleTypes(concreteTypes: [\"PullRequestReview\"])\n}\n\n\"\"\"\nAutogenerated return type of AddPullRequestReviewComment\n\"\"\"\ntype AddPullRequestReviewCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The newly created comment.\n  \"\"\"\n  comment: PullRequestReviewComment\n\n  \"\"\"\n  The edge from the review's comment connection.\n  \"\"\"\n  commentEdge: PullRequestReviewCommentEdge\n}\n\n\"\"\"\nAutogenerated input type of AddPullRequestReview\n\"\"\"\ninput AddPullRequestReviewInput {\n  \"\"\"\n  The contents of the review body comment.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The review line comments.\n\n  **Upcoming Change on 2023-10-01 UTC**\n  **Description:** `comments` will be removed. use the `threads` argument instead\n  **Reason:** We are deprecating comment fields that use diff-relative positioning\n  \"\"\"\n  comments: [DraftPullRequestReviewComment]\n\n  \"\"\"\n  The commit OID the review pertains to.\n  \"\"\"\n  commitOID: GitObjectID\n\n  \"\"\"\n  The event to perform on the pull request review.\n  \"\"\"\n  event: PullRequestReviewEvent\n\n  \"\"\"\n  The Node ID of the pull request to modify.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n\n  \"\"\"\n  The review line comment threads.\n  \"\"\"\n  threads: [DraftPullRequestReviewThread]\n}\n\n\"\"\"\nAutogenerated return type of AddPullRequestReview\n\"\"\"\ntype AddPullRequestReviewPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The newly created pull request review.\n  \"\"\"\n  pullRequestReview: PullRequestReview\n\n  \"\"\"\n  The edge from the pull request's review connection.\n  \"\"\"\n  reviewEdge: PullRequestReviewEdge\n}\n\n\"\"\"\nAutogenerated input type of AddPullRequestReviewThread\n\"\"\"\ninput AddPullRequestReviewThreadInput {\n  \"\"\"\n  Body of the thread's first comment.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The line of the blob to which the thread refers, required for line-level\n  threads. The end of the line range for multi-line comments.\n  \"\"\"\n  line: Int\n\n  \"\"\"\n  Path to the file being commented on.\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  The node ID of the pull request reviewing\n  \"\"\"\n  pullRequestId: ID @possibleTypes(concreteTypes: [\"PullRequest\"])\n\n  \"\"\"\n  The Node ID of the review to modify.\n  \"\"\"\n  pullRequestReviewId: ID @possibleTypes(concreteTypes: [\"PullRequestReview\"])\n\n  \"\"\"\n  The side of the diff on which the line resides. For multi-line comments, this is the side for the end of the line range.\n  \"\"\"\n  side: DiffSide = RIGHT\n\n  \"\"\"\n  The first line of the range to which the comment refers.\n  \"\"\"\n  startLine: Int\n\n  \"\"\"\n  The side of the diff on which the start line resides.\n  \"\"\"\n  startSide: DiffSide = RIGHT\n\n  \"\"\"\n  The level at which the comments in the corresponding thread are targeted, can be a diff line or a file\n  \"\"\"\n  subjectType: PullRequestReviewThreadSubjectType = LINE\n}\n\n\"\"\"\nAutogenerated return type of AddPullRequestReviewThread\n\"\"\"\ntype AddPullRequestReviewThreadPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The newly created thread.\n  \"\"\"\n  thread: PullRequestReviewThread\n}\n\n\"\"\"\nAutogenerated input type of AddPullRequestReviewThreadReply\n\"\"\"\ninput AddPullRequestReviewThreadReplyInput {\n  \"\"\"\n  The text of the reply.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the pending review to which the reply will belong.\n  \"\"\"\n  pullRequestReviewId: ID @possibleTypes(concreteTypes: [\"PullRequestReview\"])\n\n  \"\"\"\n  The Node ID of the thread to which this reply is being written.\n  \"\"\"\n  pullRequestReviewThreadId: ID! @possibleTypes(concreteTypes: [\"PullRequestReviewThread\"])\n}\n\n\"\"\"\nAutogenerated return type of AddPullRequestReviewThreadReply\n\"\"\"\ntype AddPullRequestReviewThreadReplyPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The newly created reply.\n  \"\"\"\n  comment: PullRequestReviewComment\n}\n\n\"\"\"\nAutogenerated input type of AddReaction\n\"\"\"\ninput AddReactionInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The name of the emoji to react with.\n  \"\"\"\n  content: ReactionContent!\n\n  \"\"\"\n  The Node ID of the subject to modify.\n  \"\"\"\n  subjectId: ID!\n    @possibleTypes(\n      concreteTypes: [\n        \"CommitComment\"\n        \"Discussion\"\n        \"DiscussionComment\"\n        \"Issue\"\n        \"IssueComment\"\n        \"PullRequest\"\n        \"PullRequestReview\"\n        \"PullRequestReviewComment\"\n        \"Release\"\n        \"TeamDiscussion\"\n        \"TeamDiscussionComment\"\n      ]\n      abstractType: \"Reactable\"\n    )\n}\n\n\"\"\"\nAutogenerated return type of AddReaction\n\"\"\"\ntype AddReactionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The reaction object.\n  \"\"\"\n  reaction: Reaction\n\n  \"\"\"\n  The reaction groups for the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  The reactable subject.\n  \"\"\"\n  subject: Reactable\n}\n\n\"\"\"\nAutogenerated input type of AddStar\n\"\"\"\ninput AddStarInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Starrable ID to star.\n  \"\"\"\n  starrableId: ID! @possibleTypes(concreteTypes: [\"Gist\", \"Repository\", \"Topic\"], abstractType: \"Starrable\")\n}\n\n\"\"\"\nAutogenerated return type of AddStar\n\"\"\"\ntype AddStarPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The starrable.\n  \"\"\"\n  starrable: Starrable\n}\n\n\"\"\"\nAutogenerated input type of AddUpvote\n\"\"\"\ninput AddUpvoteInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the discussion or comment to upvote.\n  \"\"\"\n  subjectId: ID! @possibleTypes(concreteTypes: [\"Discussion\", \"DiscussionComment\"], abstractType: \"Votable\")\n}\n\n\"\"\"\nAutogenerated return type of AddUpvote\n\"\"\"\ntype AddUpvotePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The votable subject.\n  \"\"\"\n  subject: Votable\n}\n\n\"\"\"\nAutogenerated input type of AddVerifiableDomain\n\"\"\"\ninput AddVerifiableDomainInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The URL of the domain\n  \"\"\"\n  domain: URI!\n\n  \"\"\"\n  The ID of the owner to add the domain to\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"Enterprise\", \"Organization\"], abstractType: \"VerifiableDomainOwner\")\n}\n\n\"\"\"\nAutogenerated return type of AddVerifiableDomain\n\"\"\"\ntype AddVerifiableDomainPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The verifiable domain that was added.\n  \"\"\"\n  domain: VerifiableDomain\n}\n\n\"\"\"\nRepresents an 'added_to_merge_queue' event on a given pull request.\n\"\"\"\ntype AddedToMergeQueueEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The user who added this Pull Request to the merge queue\n  \"\"\"\n  enqueuer: User\n\n  \"\"\"\n  The Node ID of the AddedToMergeQueueEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The merge queue where this pull request was added to.\n  \"\"\"\n  mergeQueue: MergeQueue\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nRepresents a 'added_to_project' event on a given issue or pull request.\n\"\"\"\ntype AddedToProjectEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the AddedToProjectEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Project referenced by event.\n  \"\"\"\n  project: Project @preview(toggledBy: \"starfox-preview\")\n\n  \"\"\"\n  Project card referenced by this project event.\n  \"\"\"\n  projectCard: ProjectCard @preview(toggledBy: \"starfox-preview\")\n\n  \"\"\"\n  Column name referenced by this project event.\n  \"\"\"\n  projectColumnName: String! @preview(toggledBy: \"starfox-preview\")\n}\n\n\"\"\"\nRepresents an announcement banner.\n\"\"\"\ninterface AnnouncementBanner {\n  \"\"\"\n  The text of the announcement\n  \"\"\"\n  announcement: String\n\n  \"\"\"\n  The expiration date of the announcement, if any\n  \"\"\"\n  announcementExpiresAt: DateTime\n\n  \"\"\"\n  Whether the announcement can be dismissed by the user\n  \"\"\"\n  announcementUserDismissible: Boolean\n}\n\n\"\"\"\nA GitHub App.\n\"\"\"\ntype App implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The description of the app.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The Node ID of the App object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The IP addresses of the app.\n  \"\"\"\n  ipAllowListEntries(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for IP allow list entries returned.\n    \"\"\"\n    orderBy: IpAllowListEntryOrder = {field: ALLOW_LIST_VALUE, direction: ASC}\n  ): IpAllowListEntryConnection!\n\n  \"\"\"\n  The hex color code, without the leading '#', for the logo background.\n  \"\"\"\n  logoBackgroundColor: String!\n\n  \"\"\"\n  A URL pointing to the app's logo.\n  \"\"\"\n  logoUrl(\n    \"\"\"\n    The size of the resulting image.\n    \"\"\"\n    size: Int\n  ): URI!\n\n  \"\"\"\n  The name of the app.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  A slug based on the name of the app for use in URLs.\n  \"\"\"\n  slug: String!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The URL to the app's homepage.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nAutogenerated input type of ApproveDeployments\n\"\"\"\ninput ApproveDeploymentsInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Optional comment for approving deployments\n  \"\"\"\n  comment: String = \"\"\n\n  \"\"\"\n  The ids of environments to reject deployments\n  \"\"\"\n  environmentIds: [ID!]!\n\n  \"\"\"\n  The node ID of the workflow run containing the pending deployments.\n  \"\"\"\n  workflowRunId: ID! @possibleTypes(concreteTypes: [\"WorkflowRun\"])\n}\n\n\"\"\"\nAutogenerated return type of ApproveDeployments\n\"\"\"\ntype ApproveDeploymentsPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The affected deployments.\n  \"\"\"\n  deployments: [Deployment!]\n}\n\n\"\"\"\nAutogenerated input type of ApproveVerifiableDomain\n\"\"\"\ninput ApproveVerifiableDomainInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the verifiable domain to approve.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"VerifiableDomain\"])\n}\n\n\"\"\"\nAutogenerated return type of ApproveVerifiableDomain\n\"\"\"\ntype ApproveVerifiableDomainPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The verifiable domain that was approved.\n  \"\"\"\n  domain: VerifiableDomain\n}\n\n\"\"\"\nAutogenerated input type of ArchiveProjectV2Item\n\"\"\"\ninput ArchiveProjectV2ItemInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the ProjectV2Item to archive.\n  \"\"\"\n  itemId: ID! @possibleTypes(concreteTypes: [\"ProjectV2Item\"])\n\n  \"\"\"\n  The ID of the Project to archive the item from.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n}\n\n\"\"\"\nAutogenerated return type of ArchiveProjectV2Item\n\"\"\"\ntype ArchiveProjectV2ItemPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The item archived from the project.\n  \"\"\"\n  item: ProjectV2Item\n}\n\n\"\"\"\nAutogenerated input type of ArchiveRepository\n\"\"\"\ninput ArchiveRepositoryInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the repository to mark as archived.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of ArchiveRepository\n\"\"\"\ntype ArchiveRepositoryPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The repository that was marked as archived.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nAn object that can have users assigned to it.\n\"\"\"\ninterface Assignable {\n  \"\"\"\n  A list of Users assigned to this object.\n  \"\"\"\n  assignees(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserConnection!\n}\n\n\"\"\"\nRepresents an 'assigned' event on any assignable object.\n\"\"\"\ntype AssignedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the assignable associated with the event.\n  \"\"\"\n  assignable: Assignable!\n\n  \"\"\"\n  Identifies the user or mannequin that was assigned.\n  \"\"\"\n  assignee: Assignee\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the AssignedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the user who was assigned.\n  \"\"\"\n  user: User\n    @deprecated(reason: \"Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC.\")\n}\n\n\"\"\"\nTypes that can be assigned to issues.\n\"\"\"\nunion Assignee = Bot | Mannequin | Organization | User\n\n\"\"\"\nAn entry in the audit log.\n\"\"\"\ninterface AuditEntry {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nTypes that can initiate an audit log event.\n\"\"\"\nunion AuditEntryActor = Bot | Organization | User\n\n\"\"\"\nOrdering options for Audit Log connections.\n\"\"\"\ninput AuditLogOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection\n\n  \"\"\"\n  The field to order Audit Logs by.\n  \"\"\"\n  field: AuditLogOrderField\n}\n\n\"\"\"\nProperties by which Audit Log connections can be ordered.\n\"\"\"\nenum AuditLogOrderField {\n  \"\"\"\n  Order audit log entries by timestamp\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nRepresents a 'auto_merge_disabled' event on a given pull request.\n\"\"\"\ntype AutoMergeDisabledEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The user who disabled auto-merge for this Pull Request\n  \"\"\"\n  disabler: User\n\n  \"\"\"\n  The Node ID of the AutoMergeDisabledEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event\n  \"\"\"\n  pullRequest: PullRequest\n\n  \"\"\"\n  The reason auto-merge was disabled\n  \"\"\"\n  reason: String\n\n  \"\"\"\n  The reason_code relating to why auto-merge was disabled\n  \"\"\"\n  reasonCode: String\n}\n\n\"\"\"\nRepresents a 'auto_merge_enabled' event on a given pull request.\n\"\"\"\ntype AutoMergeEnabledEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The user who enabled auto-merge for this Pull Request\n  \"\"\"\n  enabler: User\n\n  \"\"\"\n  The Node ID of the AutoMergeEnabledEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nRepresents an auto-merge request for a pull request\n\"\"\"\ntype AutoMergeRequest {\n  \"\"\"\n  The email address of the author of this auto-merge request.\n  \"\"\"\n  authorEmail: String\n\n  \"\"\"\n  The commit message of the auto-merge request. If a merge queue is required by\n  the base branch, this value will be set by the merge queue when merging.\n  \"\"\"\n  commitBody: String\n\n  \"\"\"\n  The commit title of the auto-merge request. If a merge queue is required by\n  the base branch, this value will be set by the merge queue when merging\n  \"\"\"\n  commitHeadline: String\n\n  \"\"\"\n  When was this auto-merge request was enabled.\n  \"\"\"\n  enabledAt: DateTime\n\n  \"\"\"\n  The actor who created the auto-merge request.\n  \"\"\"\n  enabledBy: Actor\n\n  \"\"\"\n  The merge method of the auto-merge request. If a merge queue is required by\n  the base branch, this value will be set by the merge queue when merging.\n  \"\"\"\n  mergeMethod: PullRequestMergeMethod!\n\n  \"\"\"\n  The pull request that this auto-merge request is set against.\n  \"\"\"\n  pullRequest: PullRequest!\n}\n\n\"\"\"\nRepresents a 'auto_rebase_enabled' event on a given pull request.\n\"\"\"\ntype AutoRebaseEnabledEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The user who enabled auto-merge (rebase) for this Pull Request\n  \"\"\"\n  enabler: User\n\n  \"\"\"\n  The Node ID of the AutoRebaseEnabledEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nRepresents a 'auto_squash_enabled' event on a given pull request.\n\"\"\"\ntype AutoSquashEnabledEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The user who enabled auto-merge (squash) for this Pull Request\n  \"\"\"\n  enabler: User\n\n  \"\"\"\n  The Node ID of the AutoSquashEnabledEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nRepresents a 'automatic_base_change_failed' event on a given pull request.\n\"\"\"\ntype AutomaticBaseChangeFailedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the AutomaticBaseChangeFailedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The new base for this PR\n  \"\"\"\n  newBase: String!\n\n  \"\"\"\n  The old base for this PR\n  \"\"\"\n  oldBase: String!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n}\n\n\"\"\"\nRepresents a 'automatic_base_change_succeeded' event on a given pull request.\n\"\"\"\ntype AutomaticBaseChangeSucceededEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the AutomaticBaseChangeSucceededEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The new base for this PR\n  \"\"\"\n  newBase: String!\n\n  \"\"\"\n  The old base for this PR\n  \"\"\"\n  oldBase: String!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n}\n\n\"\"\"\nA (potentially binary) string encoded using base64.\n\"\"\"\nscalar Base64String\n\n\"\"\"\nRepresents a 'base_ref_changed' event on a given issue or pull request.\n\"\"\"\ntype BaseRefChangedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the name of the base ref for the pull request after it was changed.\n  \"\"\"\n  currentRefName: String!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the BaseRefChangedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the name of the base ref for the pull request before it was changed.\n  \"\"\"\n  previousRefName: String!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n}\n\n\"\"\"\nRepresents a 'base_ref_deleted' event on a given pull request.\n\"\"\"\ntype BaseRefDeletedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the name of the Ref associated with the `base_ref_deleted` event.\n  \"\"\"\n  baseRefName: String\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the BaseRefDeletedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nRepresents a 'base_ref_force_pushed' event on a given pull request.\n\"\"\"\ntype BaseRefForcePushedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the after commit SHA for the 'base_ref_force_pushed' event.\n  \"\"\"\n  afterCommit: Commit\n\n  \"\"\"\n  Identifies the before commit SHA for the 'base_ref_force_pushed' event.\n  \"\"\"\n  beforeCommit: Commit\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the BaseRefForcePushedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  Identifies the fully qualified ref name for the 'base_ref_force_pushed' event.\n  \"\"\"\n  ref: Ref\n}\n\n\"\"\"\nRepresents non-fractional signed whole numeric values. Since the value may\nexceed the size of a 32-bit integer, it's encoded as a string.\n\"\"\"\nscalar BigInt\n\n\"\"\"\nRepresents a Git blame.\n\"\"\"\ntype Blame {\n  \"\"\"\n  The list of ranges from a Git blame.\n  \"\"\"\n  ranges: [BlameRange!]!\n}\n\n\"\"\"\nRepresents a range of information from a Git blame.\n\"\"\"\ntype BlameRange {\n  \"\"\"\n  Identifies the recency of the change, from 1 (new) to 10 (old). This is\n  calculated as a 2-quantile and determines the length of distance between the\n  median age of all the changes in the file and the recency of the current\n  range's change.\n  \"\"\"\n  age: Int!\n\n  \"\"\"\n  Identifies the line author\n  \"\"\"\n  commit: Commit!\n\n  \"\"\"\n  The ending line for the range\n  \"\"\"\n  endingLine: Int!\n\n  \"\"\"\n  The starting line for the range\n  \"\"\"\n  startingLine: Int!\n}\n\n\"\"\"\nRepresents a Git blob.\n\"\"\"\ntype Blob implements GitObject & Node {\n  \"\"\"\n  An abbreviated version of the Git object ID\n  \"\"\"\n  abbreviatedOid: String!\n\n  \"\"\"\n  Byte size of Blob object\n  \"\"\"\n  byteSize: Int!\n\n  \"\"\"\n  The HTTP path for this Git object\n  \"\"\"\n  commitResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this Git object\n  \"\"\"\n  commitUrl: URI!\n\n  \"\"\"\n  The Node ID of the Blob object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Indicates whether the Blob is binary or text. Returns null if unable to determine the encoding.\n  \"\"\"\n  isBinary: Boolean\n\n  \"\"\"\n  Indicates whether the contents is truncated\n  \"\"\"\n  isTruncated: Boolean!\n\n  \"\"\"\n  The Git object ID\n  \"\"\"\n  oid: GitObjectID!\n\n  \"\"\"\n  The Repository the Git object belongs to\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  UTF8 text data or null if the Blob is binary\n  \"\"\"\n  text: String\n}\n\n\"\"\"\nA special type of user which takes actions on behalf of GitHub Apps.\n\"\"\"\ntype Bot implements Actor & Node & UniformResourceLocatable {\n  \"\"\"\n  A URL pointing to the GitHub App's public avatar.\n  \"\"\"\n  avatarUrl(\n    \"\"\"\n    The size of the resulting square image.\n    \"\"\"\n    size: Int\n  ): URI!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the Bot object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The username of the actor.\n  \"\"\"\n  login: String!\n\n  \"\"\"\n  The HTTP path for this bot\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this bot\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nTypes which can be actors for `BranchActorAllowance` objects.\n\"\"\"\nunion BranchActorAllowanceActor = App | Team | User\n\n\"\"\"\nParameters to be used for the branch_name_pattern rule\n\"\"\"\ntype BranchNamePatternParameters {\n  \"\"\"\n  How this rule will appear to users.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  If true, the rule will fail if the pattern matches.\n  \"\"\"\n  negate: Boolean!\n\n  \"\"\"\n  The operator to use for matching.\n  \"\"\"\n  operator: String!\n\n  \"\"\"\n  The pattern to match with.\n  \"\"\"\n  pattern: String!\n}\n\n\"\"\"\nParameters to be used for the branch_name_pattern rule\n\"\"\"\ninput BranchNamePatternParametersInput {\n  \"\"\"\n  How this rule will appear to users.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  If true, the rule will fail if the pattern matches.\n  \"\"\"\n  negate: Boolean\n\n  \"\"\"\n  The operator to use for matching.\n  \"\"\"\n  operator: String!\n\n  \"\"\"\n  The pattern to match with.\n  \"\"\"\n  pattern: String!\n}\n\n\"\"\"\nA branch protection rule.\n\"\"\"\ntype BranchProtectionRule implements Node {\n  \"\"\"\n  Can this branch be deleted.\n  \"\"\"\n  allowsDeletions: Boolean!\n\n  \"\"\"\n  Are force pushes allowed on this branch.\n  \"\"\"\n  allowsForcePushes: Boolean!\n\n  \"\"\"\n  Is branch creation a protected operation.\n  \"\"\"\n  blocksCreations: Boolean!\n\n  \"\"\"\n  A list of conflicts matching branches protection rule and other branch protection rules\n  \"\"\"\n  branchProtectionRuleConflicts(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): BranchProtectionRuleConflictConnection!\n\n  \"\"\"\n  A list of actors able to force push for this branch protection rule.\n  \"\"\"\n  bypassForcePushAllowances(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): BypassForcePushAllowanceConnection!\n\n  \"\"\"\n  A list of actors able to bypass PRs for this branch protection rule.\n  \"\"\"\n  bypassPullRequestAllowances(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): BypassPullRequestAllowanceConnection!\n\n  \"\"\"\n  The actor who created this branch protection rule.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  Will new commits pushed to matching branches dismiss pull request review approvals.\n  \"\"\"\n  dismissesStaleReviews: Boolean!\n\n  \"\"\"\n  The Node ID of the BranchProtectionRule object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Can admins override branch protection.\n  \"\"\"\n  isAdminEnforced: Boolean!\n\n  \"\"\"\n  Whether users can pull changes from upstream when the branch is locked. Set to\n  `true` to allow fork syncing. Set to `false` to prevent fork syncing.\n  \"\"\"\n  lockAllowsFetchAndMerge: Boolean!\n\n  \"\"\"\n  Whether to set the branch as read-only. If this is true, users will not be able to push to the branch.\n  \"\"\"\n  lockBranch: Boolean!\n\n  \"\"\"\n  Repository refs that are protected by this rule\n  \"\"\"\n  matchingRefs(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filters refs with query on name\n    \"\"\"\n    query: String\n  ): RefConnection!\n\n  \"\"\"\n  Identifies the protection rule pattern.\n  \"\"\"\n  pattern: String!\n\n  \"\"\"\n  A list push allowances for this branch protection rule.\n  \"\"\"\n  pushAllowances(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): PushAllowanceConnection!\n\n  \"\"\"\n  The repository associated with this branch protection rule.\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  Whether the most recent push must be approved by someone other than the person who pushed it\n  \"\"\"\n  requireLastPushApproval: Boolean!\n\n  \"\"\"\n  Number of approving reviews required to update matching branches.\n  \"\"\"\n  requiredApprovingReviewCount: Int\n\n  \"\"\"\n  List of required deployment environments that must be deployed successfully to update matching branches\n  \"\"\"\n  requiredDeploymentEnvironments: [String]\n\n  \"\"\"\n  List of required status check contexts that must pass for commits to be accepted to matching branches.\n  \"\"\"\n  requiredStatusCheckContexts: [String]\n\n  \"\"\"\n  List of required status checks that must pass for commits to be accepted to matching branches.\n  \"\"\"\n  requiredStatusChecks: [RequiredStatusCheckDescription!]\n\n  \"\"\"\n  Are approving reviews required to update matching branches.\n  \"\"\"\n  requiresApprovingReviews: Boolean!\n\n  \"\"\"\n  Are reviews from code owners required to update matching branches.\n  \"\"\"\n  requiresCodeOwnerReviews: Boolean!\n\n  \"\"\"\n  Are commits required to be signed.\n  \"\"\"\n  requiresCommitSignatures: Boolean!\n\n  \"\"\"\n  Are conversations required to be resolved before merging.\n  \"\"\"\n  requiresConversationResolution: Boolean!\n\n  \"\"\"\n  Does this branch require deployment to specific environments before merging\n  \"\"\"\n  requiresDeployments: Boolean!\n\n  \"\"\"\n  Are merge commits prohibited from being pushed to this branch.\n  \"\"\"\n  requiresLinearHistory: Boolean!\n\n  \"\"\"\n  Are status checks required to update matching branches.\n  \"\"\"\n  requiresStatusChecks: Boolean!\n\n  \"\"\"\n  Are branches required to be up to date before merging.\n  \"\"\"\n  requiresStrictStatusChecks: Boolean!\n\n  \"\"\"\n  Is pushing to matching branches restricted.\n  \"\"\"\n  restrictsPushes: Boolean!\n\n  \"\"\"\n  Is dismissal of pull request reviews restricted.\n  \"\"\"\n  restrictsReviewDismissals: Boolean!\n\n  \"\"\"\n  A list review dismissal allowances for this branch protection rule.\n  \"\"\"\n  reviewDismissalAllowances(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ReviewDismissalAllowanceConnection!\n}\n\n\"\"\"\nA conflict between two branch protection rules.\n\"\"\"\ntype BranchProtectionRuleConflict {\n  \"\"\"\n  Identifies the branch protection rule.\n  \"\"\"\n  branchProtectionRule: BranchProtectionRule\n\n  \"\"\"\n  Identifies the conflicting branch protection rule.\n  \"\"\"\n  conflictingBranchProtectionRule: BranchProtectionRule\n\n  \"\"\"\n  Identifies the branch ref that has conflicting rules\n  \"\"\"\n  ref: Ref\n}\n\n\"\"\"\nThe connection type for BranchProtectionRuleConflict.\n\"\"\"\ntype BranchProtectionRuleConflictConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [BranchProtectionRuleConflictEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [BranchProtectionRuleConflict]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype BranchProtectionRuleConflictEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: BranchProtectionRuleConflict\n}\n\n\"\"\"\nThe connection type for BranchProtectionRule.\n\"\"\"\ntype BranchProtectionRuleConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [BranchProtectionRuleEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [BranchProtectionRule]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype BranchProtectionRuleEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: BranchProtectionRule\n}\n\n\"\"\"\nInformation about a sponsorship to make for a user or organization with a GitHub\nSponsors profile, as part of sponsoring many users or organizations at once.\n\"\"\"\ninput BulkSponsorship {\n  \"\"\"\n  The amount to pay to the sponsorable in US dollars. Valid values: 1-12000.\n  \"\"\"\n  amount: Int!\n\n  \"\"\"\n  The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given.\n  \"\"\"\n  sponsorableId: ID @possibleTypes(concreteTypes: [\"Organization\", \"User\"], abstractType: \"Sponsorable\")\n\n  \"\"\"\n  The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given.\n  \"\"\"\n  sponsorableLogin: String\n}\n\n\"\"\"\nTypes that can represent a repository ruleset bypass actor.\n\"\"\"\nunion BypassActor = App | Team\n\n\"\"\"\nA user, team, or app who has the ability to bypass a force push requirement on a protected branch.\n\"\"\"\ntype BypassForcePushAllowance implements Node {\n  \"\"\"\n  The actor that can force push.\n  \"\"\"\n  actor: BranchActorAllowanceActor\n\n  \"\"\"\n  Identifies the branch protection rule associated with the allowed user, team, or app.\n  \"\"\"\n  branchProtectionRule: BranchProtectionRule\n\n  \"\"\"\n  The Node ID of the BypassForcePushAllowance object\n  \"\"\"\n  id: ID!\n}\n\n\"\"\"\nThe connection type for BypassForcePushAllowance.\n\"\"\"\ntype BypassForcePushAllowanceConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [BypassForcePushAllowanceEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [BypassForcePushAllowance]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype BypassForcePushAllowanceEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: BypassForcePushAllowance\n}\n\n\"\"\"\nA user, team, or app who has the ability to bypass a pull request requirement on a protected branch.\n\"\"\"\ntype BypassPullRequestAllowance implements Node {\n  \"\"\"\n  The actor that can bypass.\n  \"\"\"\n  actor: BranchActorAllowanceActor\n\n  \"\"\"\n  Identifies the branch protection rule associated with the allowed user, team, or app.\n  \"\"\"\n  branchProtectionRule: BranchProtectionRule\n\n  \"\"\"\n  The Node ID of the BypassPullRequestAllowance object\n  \"\"\"\n  id: ID!\n}\n\n\"\"\"\nThe connection type for BypassPullRequestAllowance.\n\"\"\"\ntype BypassPullRequestAllowanceConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [BypassPullRequestAllowanceEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [BypassPullRequestAllowance]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype BypassPullRequestAllowanceEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: BypassPullRequestAllowance\n}\n\n\"\"\"\nThe Common Vulnerability Scoring System\n\"\"\"\ntype CVSS {\n  \"\"\"\n  The CVSS score associated with this advisory\n  \"\"\"\n  score: Float!\n\n  \"\"\"\n  The CVSS vector string associated with this advisory\n  \"\"\"\n  vectorString: String\n}\n\n\"\"\"\nA common weakness enumeration\n\"\"\"\ntype CWE implements Node {\n  \"\"\"\n  The id of the CWE\n  \"\"\"\n  cweId: String!\n\n  \"\"\"\n  A detailed description of this CWE\n  \"\"\"\n  description: String!\n\n  \"\"\"\n  The Node ID of the CWE object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The name of this CWE\n  \"\"\"\n  name: String!\n}\n\n\"\"\"\nThe connection type for CWE.\n\"\"\"\ntype CWEConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CWEEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [CWE]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype CWEEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: CWE\n}\n\n\"\"\"\nAutogenerated input type of CancelEnterpriseAdminInvitation\n\"\"\"\ninput CancelEnterpriseAdminInvitationInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the pending enterprise administrator invitation.\n  \"\"\"\n  invitationId: ID! @possibleTypes(concreteTypes: [\"EnterpriseAdministratorInvitation\"])\n}\n\n\"\"\"\nAutogenerated return type of CancelEnterpriseAdminInvitation\n\"\"\"\ntype CancelEnterpriseAdminInvitationPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The invitation that was canceled.\n  \"\"\"\n  invitation: EnterpriseAdministratorInvitation\n\n  \"\"\"\n  A message confirming the result of canceling an administrator invitation.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of CancelSponsorship\n\"\"\"\ninput CancelSponsorshipInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the user or organization who is acting as the sponsor, paying for\n  the sponsorship. Required if sponsorLogin is not given.\n  \"\"\"\n  sponsorId: ID @possibleTypes(concreteTypes: [\"Organization\", \"User\"], abstractType: \"Sponsor\")\n\n  \"\"\"\n  The username of the user or organization who is acting as the sponsor, paying\n  for the sponsorship. Required if sponsorId is not given.\n  \"\"\"\n  sponsorLogin: String\n\n  \"\"\"\n  The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given.\n  \"\"\"\n  sponsorableId: ID @possibleTypes(concreteTypes: [\"Organization\", \"User\"], abstractType: \"Sponsorable\")\n\n  \"\"\"\n  The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given.\n  \"\"\"\n  sponsorableLogin: String\n}\n\n\"\"\"\nAutogenerated return type of CancelSponsorship\n\"\"\"\ntype CancelSponsorshipPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The tier that was being used at the time of cancellation.\n  \"\"\"\n  sponsorsTier: SponsorsTier\n}\n\n\"\"\"\nAutogenerated input type of ChangeUserStatus\n\"\"\"\ninput ChangeUserStatusInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The emoji to represent your status. Can either be a native Unicode emoji or an emoji name with colons, e.g., :grinning:.\n  \"\"\"\n  emoji: String\n\n  \"\"\"\n  If set, the user status will not be shown after this date.\n  \"\"\"\n  expiresAt: DateTime\n\n  \"\"\"\n  Whether this status should indicate you are not fully available on GitHub, e.g., you are away.\n  \"\"\"\n  limitedAvailability: Boolean = false\n\n  \"\"\"\n  A short description of your current status.\n  \"\"\"\n  message: String\n\n  \"\"\"\n  The ID of the organization whose members will be allowed to see the status. If\n  omitted, the status will be publicly visible.\n  \"\"\"\n  organizationId: ID @possibleTypes(concreteTypes: [\"Organization\"])\n}\n\n\"\"\"\nAutogenerated return type of ChangeUserStatus\n\"\"\"\ntype ChangeUserStatusPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Your updated status.\n  \"\"\"\n  status: UserStatus\n}\n\n\"\"\"\nA single check annotation.\n\"\"\"\ntype CheckAnnotation {\n  \"\"\"\n  The annotation's severity level.\n  \"\"\"\n  annotationLevel: CheckAnnotationLevel\n\n  \"\"\"\n  The path to the file that this annotation was made on.\n  \"\"\"\n  blobUrl: URI!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The position of this annotation.\n  \"\"\"\n  location: CheckAnnotationSpan!\n\n  \"\"\"\n  The annotation's message.\n  \"\"\"\n  message: String!\n\n  \"\"\"\n  The path that this annotation was made on.\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  Additional information about the annotation.\n  \"\"\"\n  rawDetails: String\n\n  \"\"\"\n  The annotation's title\n  \"\"\"\n  title: String\n}\n\n\"\"\"\nThe connection type for CheckAnnotation.\n\"\"\"\ntype CheckAnnotationConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CheckAnnotationEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [CheckAnnotation]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nInformation from a check run analysis to specific lines of code.\n\"\"\"\ninput CheckAnnotationData {\n  \"\"\"\n  Represents an annotation's information level\n  \"\"\"\n  annotationLevel: CheckAnnotationLevel!\n\n  \"\"\"\n  The location of the annotation\n  \"\"\"\n  location: CheckAnnotationRange!\n\n  \"\"\"\n  A short description of the feedback for these lines of code.\n  \"\"\"\n  message: String!\n\n  \"\"\"\n  The path of the file to add an annotation to.\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  Details about this annotation.\n  \"\"\"\n  rawDetails: String\n\n  \"\"\"\n  The title that represents the annotation.\n  \"\"\"\n  title: String\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype CheckAnnotationEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: CheckAnnotation\n}\n\n\"\"\"\nRepresents an annotation's information level.\n\"\"\"\nenum CheckAnnotationLevel {\n  \"\"\"\n  An annotation indicating an inescapable error.\n  \"\"\"\n  FAILURE\n\n  \"\"\"\n  An annotation indicating some information.\n  \"\"\"\n  NOTICE\n\n  \"\"\"\n  An annotation indicating an ignorable error.\n  \"\"\"\n  WARNING\n}\n\n\"\"\"\nA character position in a check annotation.\n\"\"\"\ntype CheckAnnotationPosition {\n  \"\"\"\n  Column number (1 indexed).\n  \"\"\"\n  column: Int\n\n  \"\"\"\n  Line number (1 indexed).\n  \"\"\"\n  line: Int!\n}\n\n\"\"\"\nInformation from a check run analysis to specific lines of code.\n\"\"\"\ninput CheckAnnotationRange {\n  \"\"\"\n  The ending column of the range.\n  \"\"\"\n  endColumn: Int\n\n  \"\"\"\n  The ending line of the range.\n  \"\"\"\n  endLine: Int!\n\n  \"\"\"\n  The starting column of the range.\n  \"\"\"\n  startColumn: Int\n\n  \"\"\"\n  The starting line of the range.\n  \"\"\"\n  startLine: Int!\n}\n\n\"\"\"\nAn inclusive pair of positions for a check annotation.\n\"\"\"\ntype CheckAnnotationSpan {\n  \"\"\"\n  End position (inclusive).\n  \"\"\"\n  end: CheckAnnotationPosition!\n\n  \"\"\"\n  Start position (inclusive).\n  \"\"\"\n  start: CheckAnnotationPosition!\n}\n\n\"\"\"\nThe possible states for a check suite or run conclusion.\n\"\"\"\nenum CheckConclusionState {\n  \"\"\"\n  The check suite or run requires action.\n  \"\"\"\n  ACTION_REQUIRED\n\n  \"\"\"\n  The check suite or run has been cancelled.\n  \"\"\"\n  CANCELLED\n\n  \"\"\"\n  The check suite or run has failed.\n  \"\"\"\n  FAILURE\n\n  \"\"\"\n  The check suite or run was neutral.\n  \"\"\"\n  NEUTRAL\n\n  \"\"\"\n  The check suite or run was skipped.\n  \"\"\"\n  SKIPPED\n\n  \"\"\"\n  The check suite or run was marked stale by GitHub. Only GitHub can use this conclusion.\n  \"\"\"\n  STALE\n\n  \"\"\"\n  The check suite or run has failed at startup.\n  \"\"\"\n  STARTUP_FAILURE\n\n  \"\"\"\n  The check suite or run has succeeded.\n  \"\"\"\n  SUCCESS\n\n  \"\"\"\n  The check suite or run has timed out.\n  \"\"\"\n  TIMED_OUT\n}\n\n\"\"\"\nA check run.\n\"\"\"\ntype CheckRun implements Node & RequirableByPullRequest & UniformResourceLocatable {\n  \"\"\"\n  The check run's annotations\n  \"\"\"\n  annotations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): CheckAnnotationConnection\n\n  \"\"\"\n  The check suite that this run is a part of.\n  \"\"\"\n  checkSuite: CheckSuite!\n\n  \"\"\"\n  Identifies the date and time when the check run was completed.\n  \"\"\"\n  completedAt: DateTime\n\n  \"\"\"\n  The conclusion of the check run.\n  \"\"\"\n  conclusion: CheckConclusionState\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The corresponding deployment for this job, if any\n  \"\"\"\n  deployment: Deployment\n\n  \"\"\"\n  The URL from which to find full details of the check run on the integrator's site.\n  \"\"\"\n  detailsUrl: URI\n\n  \"\"\"\n  A reference for the check run on the integrator's system.\n  \"\"\"\n  externalId: String\n\n  \"\"\"\n  The Node ID of the CheckRun object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether this is required to pass before merging for a specific pull request.\n  \"\"\"\n  isRequired(\n    \"\"\"\n    The id of the pull request this is required for\n    \"\"\"\n    pullRequestId: ID\n\n    \"\"\"\n    The number of the pull request this is required for\n    \"\"\"\n    pullRequestNumber: Int\n  ): Boolean!\n\n  \"\"\"\n  The name of the check for this check run.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  Information about a pending deployment, if any, in this check run\n  \"\"\"\n  pendingDeploymentRequest: DeploymentRequest\n\n  \"\"\"\n  The permalink to the check run summary.\n  \"\"\"\n  permalink: URI!\n\n  \"\"\"\n  The repository associated with this check run.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for this check run.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the date and time when the check run was started.\n  \"\"\"\n  startedAt: DateTime\n\n  \"\"\"\n  The current status of the check run.\n  \"\"\"\n  status: CheckStatusState!\n\n  \"\"\"\n  The check run's steps\n  \"\"\"\n  steps(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Step number\n    \"\"\"\n    number: Int\n  ): CheckStepConnection\n\n  \"\"\"\n  A string representing the check run's summary\n  \"\"\"\n  summary: String\n\n  \"\"\"\n  A string representing the check run's text\n  \"\"\"\n  text: String\n\n  \"\"\"\n  A string representing the check run\n  \"\"\"\n  title: String\n\n  \"\"\"\n  The HTTP URL for this check run.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nPossible further actions the integrator can perform.\n\"\"\"\ninput CheckRunAction {\n  \"\"\"\n  A short explanation of what this action would do.\n  \"\"\"\n  description: String!\n\n  \"\"\"\n  A reference for the action on the integrator's system.\n  \"\"\"\n  identifier: String!\n\n  \"\"\"\n  The text to be displayed on a button in the web UI.\n  \"\"\"\n  label: String!\n}\n\n\"\"\"\nThe connection type for CheckRun.\n\"\"\"\ntype CheckRunConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CheckRunEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [CheckRun]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype CheckRunEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: CheckRun\n}\n\n\"\"\"\nThe filters that are available when fetching check runs.\n\"\"\"\ninput CheckRunFilter {\n  \"\"\"\n  Filters the check runs created by this application ID.\n  \"\"\"\n  appId: Int\n\n  \"\"\"\n  Filters the check runs by this name.\n  \"\"\"\n  checkName: String\n\n  \"\"\"\n  Filters the check runs by this type.\n  \"\"\"\n  checkType: CheckRunType\n\n  \"\"\"\n  Filters the check runs by these conclusions.\n  \"\"\"\n  conclusions: [CheckConclusionState!]\n\n  \"\"\"\n  Filters the check runs by this status. Superceded by statuses.\n  \"\"\"\n  status: CheckStatusState\n\n  \"\"\"\n  Filters the check runs by this status. Overrides status.\n  \"\"\"\n  statuses: [CheckStatusState!]\n}\n\n\"\"\"\nDescriptive details about the check run.\n\"\"\"\ninput CheckRunOutput {\n  \"\"\"\n  The annotations that are made as part of the check run.\n  \"\"\"\n  annotations: [CheckAnnotationData!]\n\n  \"\"\"\n  Images attached to the check run output displayed in the GitHub pull request UI.\n  \"\"\"\n  images: [CheckRunOutputImage!]\n\n  \"\"\"\n  The summary of the check run (supports Commonmark).\n  \"\"\"\n  summary: String!\n\n  \"\"\"\n  The details of the check run (supports Commonmark).\n  \"\"\"\n  text: String\n\n  \"\"\"\n  A title to provide for this check run.\n  \"\"\"\n  title: String!\n}\n\n\"\"\"\nImages attached to the check run output displayed in the GitHub pull request UI.\n\"\"\"\ninput CheckRunOutputImage {\n  \"\"\"\n  The alternative text for the image.\n  \"\"\"\n  alt: String!\n\n  \"\"\"\n  A short image description.\n  \"\"\"\n  caption: String\n\n  \"\"\"\n  The full URL of the image.\n  \"\"\"\n  imageUrl: URI!\n}\n\n\"\"\"\nThe possible states of a check run in a status rollup.\n\"\"\"\nenum CheckRunState {\n  \"\"\"\n  The check run requires action.\n  \"\"\"\n  ACTION_REQUIRED\n\n  \"\"\"\n  The check run has been cancelled.\n  \"\"\"\n  CANCELLED\n\n  \"\"\"\n  The check run has been completed.\n  \"\"\"\n  COMPLETED\n\n  \"\"\"\n  The check run has failed.\n  \"\"\"\n  FAILURE\n\n  \"\"\"\n  The check run is in progress.\n  \"\"\"\n  IN_PROGRESS\n\n  \"\"\"\n  The check run was neutral.\n  \"\"\"\n  NEUTRAL\n\n  \"\"\"\n  The check run is in pending state.\n  \"\"\"\n  PENDING\n\n  \"\"\"\n  The check run has been queued.\n  \"\"\"\n  QUEUED\n\n  \"\"\"\n  The check run was skipped.\n  \"\"\"\n  SKIPPED\n\n  \"\"\"\n  The check run was marked stale by GitHub. Only GitHub can use this conclusion.\n  \"\"\"\n  STALE\n\n  \"\"\"\n  The check run has failed at startup.\n  \"\"\"\n  STARTUP_FAILURE\n\n  \"\"\"\n  The check run has succeeded.\n  \"\"\"\n  SUCCESS\n\n  \"\"\"\n  The check run has timed out.\n  \"\"\"\n  TIMED_OUT\n\n  \"\"\"\n  The check run is in waiting state.\n  \"\"\"\n  WAITING\n}\n\n\"\"\"\nRepresents a count of the state of a check run.\n\"\"\"\ntype CheckRunStateCount {\n  \"\"\"\n  The number of check runs with this state.\n  \"\"\"\n  count: Int!\n\n  \"\"\"\n  The state of a check run.\n  \"\"\"\n  state: CheckRunState!\n}\n\n\"\"\"\nThe possible types of check runs.\n\"\"\"\nenum CheckRunType {\n  \"\"\"\n  Every check run available.\n  \"\"\"\n  ALL\n\n  \"\"\"\n  The latest check run.\n  \"\"\"\n  LATEST\n}\n\n\"\"\"\nThe possible states for a check suite or run status.\n\"\"\"\nenum CheckStatusState {\n  \"\"\"\n  The check suite or run has been completed.\n  \"\"\"\n  COMPLETED\n\n  \"\"\"\n  The check suite or run is in progress.\n  \"\"\"\n  IN_PROGRESS\n\n  \"\"\"\n  The check suite or run is in pending state.\n  \"\"\"\n  PENDING\n\n  \"\"\"\n  The check suite or run has been queued.\n  \"\"\"\n  QUEUED\n\n  \"\"\"\n  The check suite or run has been requested.\n  \"\"\"\n  REQUESTED\n\n  \"\"\"\n  The check suite or run is in waiting state.\n  \"\"\"\n  WAITING\n}\n\n\"\"\"\nA single check step.\n\"\"\"\ntype CheckStep {\n  \"\"\"\n  Identifies the date and time when the check step was completed.\n  \"\"\"\n  completedAt: DateTime\n\n  \"\"\"\n  The conclusion of the check step.\n  \"\"\"\n  conclusion: CheckConclusionState\n\n  \"\"\"\n  A reference for the check step on the integrator's system.\n  \"\"\"\n  externalId: String\n\n  \"\"\"\n  The step's name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The index of the step in the list of steps of the parent check run.\n  \"\"\"\n  number: Int!\n\n  \"\"\"\n  Number of seconds to completion.\n  \"\"\"\n  secondsToCompletion: Int\n\n  \"\"\"\n  Identifies the date and time when the check step was started.\n  \"\"\"\n  startedAt: DateTime\n\n  \"\"\"\n  The current status of the check step.\n  \"\"\"\n  status: CheckStatusState!\n}\n\n\"\"\"\nThe connection type for CheckStep.\n\"\"\"\ntype CheckStepConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CheckStepEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [CheckStep]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype CheckStepEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: CheckStep\n}\n\n\"\"\"\nA check suite.\n\"\"\"\ntype CheckSuite implements Node {\n  \"\"\"\n  The GitHub App which created this check suite.\n  \"\"\"\n  app: App\n\n  \"\"\"\n  The name of the branch for this check suite.\n  \"\"\"\n  branch: Ref\n\n  \"\"\"\n  The check runs associated with a check suite.\n  \"\"\"\n  checkRuns(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Filters the check runs by this type.\n    \"\"\"\n    filterBy: CheckRunFilter\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): CheckRunConnection\n\n  \"\"\"\n  The commit for this check suite\n  \"\"\"\n  commit: Commit!\n\n  \"\"\"\n  The conclusion of this check suite.\n  \"\"\"\n  conclusion: CheckConclusionState\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The user who triggered the check suite.\n  \"\"\"\n  creator: User\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the CheckSuite object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  A list of open pull requests matching the check suite.\n  \"\"\"\n  matchingPullRequests(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    The base ref name to filter the pull requests by.\n    \"\"\"\n    baseRefName: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    The head ref name to filter the pull requests by.\n    \"\"\"\n    headRefName: String\n\n    \"\"\"\n    A list of label names to filter the pull requests by.\n    \"\"\"\n    labels: [String!]\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for pull requests returned from the connection.\n    \"\"\"\n    orderBy: IssueOrder\n\n    \"\"\"\n    A list of states to filter the pull requests by.\n    \"\"\"\n    states: [PullRequestState!]\n  ): PullRequestConnection\n\n  \"\"\"\n  The push that triggered this check suite.\n  \"\"\"\n  push: Push\n\n  \"\"\"\n  The repository associated with this check suite.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for this check suite\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The status of this check suite.\n  \"\"\"\n  status: CheckStatusState!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this check suite\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  The workflow run associated with this check suite.\n  \"\"\"\n  workflowRun: WorkflowRun\n}\n\n\"\"\"\nThe auto-trigger preferences that are available for check suites.\n\"\"\"\ninput CheckSuiteAutoTriggerPreference {\n  \"\"\"\n  The node ID of the application that owns the check suite.\n  \"\"\"\n  appId: ID!\n\n  \"\"\"\n  Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository.\n  \"\"\"\n  setting: Boolean!\n}\n\n\"\"\"\nThe connection type for CheckSuite.\n\"\"\"\ntype CheckSuiteConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CheckSuiteEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [CheckSuite]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype CheckSuiteEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: CheckSuite\n}\n\n\"\"\"\nThe filters that are available when fetching check suites.\n\"\"\"\ninput CheckSuiteFilter {\n  \"\"\"\n  Filters the check suites created by this application ID.\n  \"\"\"\n  appId: Int\n\n  \"\"\"\n  Filters the check suites by this name.\n  \"\"\"\n  checkName: String\n}\n\n\"\"\"\nAn object which can have its data claimed or claim data from another.\n\"\"\"\nunion Claimable = Mannequin | User\n\n\"\"\"\nAutogenerated input type of ClearLabelsFromLabelable\n\"\"\"\ninput ClearLabelsFromLabelableInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The id of the labelable object to clear the labels from.\n  \"\"\"\n  labelableId: ID! @possibleTypes(concreteTypes: [\"Discussion\", \"Issue\", \"PullRequest\"], abstractType: \"Labelable\")\n}\n\n\"\"\"\nAutogenerated return type of ClearLabelsFromLabelable\n\"\"\"\ntype ClearLabelsFromLabelablePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The item that was unlabeled.\n  \"\"\"\n  labelable: Labelable\n}\n\n\"\"\"\nAutogenerated input type of ClearProjectV2ItemFieldValue\n\"\"\"\ninput ClearProjectV2ItemFieldValueInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the field to be cleared.\n  \"\"\"\n  fieldId: ID!\n    @possibleTypes(\n      concreteTypes: [\"ProjectV2Field\", \"ProjectV2IterationField\", \"ProjectV2SingleSelectField\"]\n      abstractType: \"ProjectV2FieldConfiguration\"\n    )\n\n  \"\"\"\n  The ID of the item to be cleared.\n  \"\"\"\n  itemId: ID! @possibleTypes(concreteTypes: [\"ProjectV2Item\"])\n\n  \"\"\"\n  The ID of the Project.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n}\n\n\"\"\"\nAutogenerated return type of ClearProjectV2ItemFieldValue\n\"\"\"\ntype ClearProjectV2ItemFieldValuePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated item.\n  \"\"\"\n  projectV2Item: ProjectV2Item\n}\n\n\"\"\"\nAutogenerated input type of CloneProject\n\"\"\"\ninput CloneProjectInput {\n  \"\"\"\n  The description of the project.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Whether or not to clone the source project's workflows.\n  \"\"\"\n  includeWorkflows: Boolean!\n\n  \"\"\"\n  The name of the project.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The visibility of the project, defaults to false (private).\n  \"\"\"\n  public: Boolean\n\n  \"\"\"\n  The source project to clone.\n  \"\"\"\n  sourceId: ID! @possibleTypes(concreteTypes: [\"Project\"])\n\n  \"\"\"\n  The owner ID to create the project under.\n  \"\"\"\n  targetOwnerId: ID! @possibleTypes(concreteTypes: [\"Organization\", \"Repository\", \"User\"], abstractType: \"ProjectOwner\")\n}\n\n\"\"\"\nAutogenerated return type of CloneProject\n\"\"\"\ntype CloneProjectPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The id of the JobStatus for populating cloned fields.\n  \"\"\"\n  jobStatusId: String\n\n  \"\"\"\n  The new cloned project.\n  \"\"\"\n  project: Project\n}\n\n\"\"\"\nAutogenerated input type of CloneTemplateRepository\n\"\"\"\ninput CloneTemplateRepositoryInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A short description of the new repository.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  Whether to copy all branches from the template to the new repository. Defaults\n  to copying only the default branch of the template.\n  \"\"\"\n  includeAllBranches: Boolean = false\n\n  \"\"\"\n  The name of the new repository.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The ID of the owner for the new repository.\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"Organization\", \"User\"], abstractType: \"RepositoryOwner\")\n\n  \"\"\"\n  The Node ID of the template repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  Indicates the repository's visibility level.\n  \"\"\"\n  visibility: RepositoryVisibility!\n}\n\n\"\"\"\nAutogenerated return type of CloneTemplateRepository\n\"\"\"\ntype CloneTemplateRepositoryPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new repository.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nAn object that can be closed\n\"\"\"\ninterface Closable {\n  \"\"\"\n  Indicates if the object is closed (definition of closed may depend on type)\n  \"\"\"\n  closed: Boolean!\n\n  \"\"\"\n  Identifies the date and time when the object was closed.\n  \"\"\"\n  closedAt: DateTime\n\n  \"\"\"\n  Indicates if the object can be closed by the viewer.\n  \"\"\"\n  viewerCanClose: Boolean!\n\n  \"\"\"\n  Indicates if the object can be reopened by the viewer.\n  \"\"\"\n  viewerCanReopen: Boolean!\n}\n\n\"\"\"\nAutogenerated input type of CloseDiscussion\n\"\"\"\ninput CloseDiscussionInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the discussion to be closed.\n  \"\"\"\n  discussionId: ID! @possibleTypes(concreteTypes: [\"Discussion\"])\n\n  \"\"\"\n  The reason why the discussion is being closed.\n  \"\"\"\n  reason: DiscussionCloseReason = RESOLVED\n}\n\n\"\"\"\nAutogenerated return type of CloseDiscussion\n\"\"\"\ntype CloseDiscussionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The discussion that was closed.\n  \"\"\"\n  discussion: Discussion\n}\n\n\"\"\"\nAutogenerated input type of CloseIssue\n\"\"\"\ninput CloseIssueInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the issue to be closed.\n  \"\"\"\n  issueId: ID! @possibleTypes(concreteTypes: [\"Issue\"])\n\n  \"\"\"\n  The reason the issue is to be closed.\n  \"\"\"\n  stateReason: IssueClosedStateReason\n}\n\n\"\"\"\nAutogenerated return type of CloseIssue\n\"\"\"\ntype CloseIssuePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The issue that was closed.\n  \"\"\"\n  issue: Issue\n}\n\n\"\"\"\nAutogenerated input type of ClosePullRequest\n\"\"\"\ninput ClosePullRequestInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the pull request to be closed.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n}\n\n\"\"\"\nAutogenerated return type of ClosePullRequest\n\"\"\"\ntype ClosePullRequestPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The pull request that was closed.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nRepresents a 'closed' event on any `Closable`.\n\"\"\"\ntype ClosedEvent implements Node & UniformResourceLocatable {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Object that was closed.\n  \"\"\"\n  closable: Closable!\n\n  \"\"\"\n  Object which triggered the creation of this event.\n  \"\"\"\n  closer: Closer\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the ClosedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The HTTP path for this closed event.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The reason the issue state was changed to closed.\n  \"\"\"\n  stateReason: IssueStateReason\n\n  \"\"\"\n  The HTTP URL for this closed event.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nThe object which triggered a `ClosedEvent`.\n\"\"\"\nunion Closer = Commit | PullRequest\n\n\"\"\"\nThe Code of Conduct for a repository\n\"\"\"\ntype CodeOfConduct implements Node {\n  \"\"\"\n  The body of the Code of Conduct\n  \"\"\"\n  body: String\n\n  \"\"\"\n  The Node ID of the CodeOfConduct object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The key for the Code of Conduct\n  \"\"\"\n  key: String!\n\n  \"\"\"\n  The formal name of the Code of Conduct\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The HTTP path for this Code of Conduct\n  \"\"\"\n  resourcePath: URI\n\n  \"\"\"\n  The HTTP URL for this Code of Conduct\n  \"\"\"\n  url: URI\n}\n\n\"\"\"\nCollaborators affiliation level with a subject.\n\"\"\"\nenum CollaboratorAffiliation {\n  \"\"\"\n  All collaborators the authenticated user can see.\n  \"\"\"\n  ALL\n\n  \"\"\"\n  All collaborators with permissions to an organization-owned subject, regardless of organization membership status.\n  \"\"\"\n  DIRECT\n\n  \"\"\"\n  All outside collaborators of an organization-owned subject.\n  \"\"\"\n  OUTSIDE\n}\n\n\"\"\"\nRepresents a comment.\n\"\"\"\ninterface Comment {\n  \"\"\"\n  The actor who authored the comment.\n  \"\"\"\n  author: Actor\n\n  \"\"\"\n  Author's association with the subject of the comment.\n  \"\"\"\n  authorAssociation: CommentAuthorAssociation!\n\n  \"\"\"\n  The body as Markdown.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The body rendered to text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Check if this comment was created via an email reply.\n  \"\"\"\n  createdViaEmail: Boolean!\n\n  \"\"\"\n  The actor who edited the comment.\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  The Node ID of the Comment object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if this comment was edited and includes an edit with the creation data\n  \"\"\"\n  includesCreatedEdit: Boolean!\n\n  \"\"\"\n  The moment the editor made the last edit\n  \"\"\"\n  lastEditedAt: DateTime\n\n  \"\"\"\n  Identifies when the comment was published at.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  A list of edits to this content.\n  \"\"\"\n  userContentEdits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserContentEditConnection\n\n  \"\"\"\n  Did the viewer author this comment.\n  \"\"\"\n  viewerDidAuthor: Boolean!\n}\n\n\"\"\"\nA comment author association with repository.\n\"\"\"\nenum CommentAuthorAssociation {\n  \"\"\"\n  Author has been invited to collaborate on the repository.\n  \"\"\"\n  COLLABORATOR\n\n  \"\"\"\n  Author has previously committed to the repository.\n  \"\"\"\n  CONTRIBUTOR\n\n  \"\"\"\n  Author has not previously committed to GitHub.\n  \"\"\"\n  FIRST_TIMER\n\n  \"\"\"\n  Author has not previously committed to the repository.\n  \"\"\"\n  FIRST_TIME_CONTRIBUTOR\n\n  \"\"\"\n  Author is a placeholder for an unclaimed user.\n  \"\"\"\n  MANNEQUIN\n\n  \"\"\"\n  Author is a member of the organization that owns the repository.\n  \"\"\"\n  MEMBER\n\n  \"\"\"\n  Author has no association with the repository.\n  \"\"\"\n  NONE\n\n  \"\"\"\n  Author is the owner of the repository.\n  \"\"\"\n  OWNER\n}\n\n\"\"\"\nThe possible errors that will prevent a user from updating a comment.\n\"\"\"\nenum CommentCannotUpdateReason {\n  \"\"\"\n  Unable to create comment because repository is archived.\n  \"\"\"\n  ARCHIVED\n\n  \"\"\"\n  You cannot update this comment\n  \"\"\"\n  DENIED\n\n  \"\"\"\n  You must be the author or have write access to this repository to update this comment.\n  \"\"\"\n  INSUFFICIENT_ACCESS\n\n  \"\"\"\n  Unable to create comment because issue is locked.\n  \"\"\"\n  LOCKED\n\n  \"\"\"\n  You must be logged in to update this comment.\n  \"\"\"\n  LOGIN_REQUIRED\n\n  \"\"\"\n  Repository is under maintenance.\n  \"\"\"\n  MAINTENANCE\n\n  \"\"\"\n  At least one email address must be verified to update this comment.\n  \"\"\"\n  VERIFIED_EMAIL_REQUIRED\n}\n\n\"\"\"\nRepresents a 'comment_deleted' event on a given issue or pull request.\n\"\"\"\ntype CommentDeletedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The user who authored the deleted comment.\n  \"\"\"\n  deletedCommentAuthor: Actor\n\n  \"\"\"\n  The Node ID of the CommentDeletedEvent object\n  \"\"\"\n  id: ID!\n}\n\n\"\"\"\nRepresents a Git commit.\n\"\"\"\ntype Commit implements GitObject & Node & Subscribable & UniformResourceLocatable {\n  \"\"\"\n  An abbreviated version of the Git object ID\n  \"\"\"\n  abbreviatedOid: String!\n\n  \"\"\"\n  The number of additions in this commit.\n  \"\"\"\n  additions: Int!\n\n  \"\"\"\n  The merged Pull Request that introduced the commit to the repository. If the\n  commit is not present in the default branch, additionally returns open Pull\n  Requests associated with the commit\n  \"\"\"\n  associatedPullRequests(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for pull requests.\n    \"\"\"\n    orderBy: PullRequestOrder = {field: CREATED_AT, direction: ASC}\n  ): PullRequestConnection\n\n  \"\"\"\n  Authorship details of the commit.\n  \"\"\"\n  author: GitActor\n\n  \"\"\"\n  Check if the committer and the author match.\n  \"\"\"\n  authoredByCommitter: Boolean!\n\n  \"\"\"\n  The datetime when this commit was authored.\n  \"\"\"\n  authoredDate: DateTime!\n\n  \"\"\"\n  The list of authors for this commit based on the git author and the Co-authored-by\n  message trailer. The git author will always be first.\n  \"\"\"\n  authors(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): GitActorConnection!\n\n  \"\"\"\n  Fetches `git blame` information.\n  \"\"\"\n  blame(\n    \"\"\"\n    The file whose Git blame information you want.\n    \"\"\"\n    path: String!\n  ): Blame!\n\n  \"\"\"\n  We recommend using the `changedFilesIfAvailable` field instead of\n  `changedFiles`, as `changedFiles` will cause your request to return an error\n  if GitHub is unable to calculate the number of changed files.\n  \"\"\"\n  changedFiles: Int!\n    @deprecated(\n      reason: \"`changedFiles` will be removed. Use `changedFilesIfAvailable` instead. Removal on 2023-01-01 UTC.\"\n    )\n\n  \"\"\"\n  The number of changed files in this commit. If GitHub is unable to calculate\n  the number of changed files (for example due to a timeout), this will return\n  `null`. We recommend using this field instead of `changedFiles`.\n  \"\"\"\n  changedFilesIfAvailable: Int\n\n  \"\"\"\n  The check suites associated with a commit.\n  \"\"\"\n  checkSuites(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Filters the check suites by this type.\n    \"\"\"\n    filterBy: CheckSuiteFilter\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): CheckSuiteConnection\n\n  \"\"\"\n  Comments made on the commit.\n  \"\"\"\n  comments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): CommitCommentConnection!\n\n  \"\"\"\n  The HTTP path for this Git object\n  \"\"\"\n  commitResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this Git object\n  \"\"\"\n  commitUrl: URI!\n\n  \"\"\"\n  The datetime when this commit was committed.\n  \"\"\"\n  committedDate: DateTime!\n\n  \"\"\"\n  Check if committed via GitHub web UI.\n  \"\"\"\n  committedViaWeb: Boolean!\n\n  \"\"\"\n  Committer details of the commit.\n  \"\"\"\n  committer: GitActor\n\n  \"\"\"\n  The number of deletions in this commit.\n  \"\"\"\n  deletions: Int!\n\n  \"\"\"\n  The deployments associated with a commit.\n  \"\"\"\n  deployments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Environments to list deployments for\n    \"\"\"\n    environments: [String!]\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for deployments returned from the connection.\n    \"\"\"\n    orderBy: DeploymentOrder = {field: CREATED_AT, direction: ASC}\n  ): DeploymentConnection\n\n  \"\"\"\n  The tree entry representing the file located at the given path.\n  \"\"\"\n  file(\n    \"\"\"\n    The path for the file\n    \"\"\"\n    path: String!\n  ): TreeEntry\n\n  \"\"\"\n  The linear commit history starting from (and including) this commit, in the same order as `git log`.\n  \"\"\"\n  history(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    If non-null, filters history to only show commits with matching authorship.\n    \"\"\"\n    author: CommitAuthor\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    If non-null, filters history to only show commits touching files under this path.\n    \"\"\"\n    path: String\n\n    \"\"\"\n    Allows specifying a beginning time or date for fetching commits.\n    \"\"\"\n    since: GitTimestamp\n\n    \"\"\"\n    Allows specifying an ending time or date for fetching commits.\n    \"\"\"\n    until: GitTimestamp\n  ): CommitHistoryConnection!\n\n  \"\"\"\n  The Node ID of the Commit object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The Git commit message\n  \"\"\"\n  message: String!\n\n  \"\"\"\n  The Git commit message body\n  \"\"\"\n  messageBody: String!\n\n  \"\"\"\n  The commit message body rendered to HTML.\n  \"\"\"\n  messageBodyHTML: HTML!\n\n  \"\"\"\n  The Git commit message headline\n  \"\"\"\n  messageHeadline: String!\n\n  \"\"\"\n  The commit message headline rendered to HTML.\n  \"\"\"\n  messageHeadlineHTML: HTML!\n\n  \"\"\"\n  The Git object ID\n  \"\"\"\n  oid: GitObjectID!\n\n  \"\"\"\n  The organization this commit was made on behalf of.\n  \"\"\"\n  onBehalfOf: Organization\n\n  \"\"\"\n  The parents of a commit.\n  \"\"\"\n  parents(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): CommitConnection!\n\n  \"\"\"\n  The datetime when this commit was pushed.\n  \"\"\"\n  pushedDate: DateTime @deprecated(reason: \"`pushedDate` is no longer supported. Removal on 2023-07-01 UTC.\")\n\n  \"\"\"\n  The Repository this commit belongs to\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for this commit\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Commit signing information, if present.\n  \"\"\"\n  signature: GitSignature\n\n  \"\"\"\n  Status information for this commit\n  \"\"\"\n  status: Status\n\n  \"\"\"\n  Check and Status rollup information for this commit.\n  \"\"\"\n  statusCheckRollup: StatusCheckRollup\n\n  \"\"\"\n  Returns a list of all submodules in this repository as of this Commit parsed from the .gitmodules file.\n  \"\"\"\n  submodules(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): SubmoduleConnection!\n\n  \"\"\"\n  Returns a URL to download a tarball archive for a repository.\n  Note: For private repositories, these links are temporary and expire after five minutes.\n  \"\"\"\n  tarballUrl: URI!\n\n  \"\"\"\n  Commit's root Tree\n  \"\"\"\n  tree: Tree!\n\n  \"\"\"\n  The HTTP path for the tree of this commit\n  \"\"\"\n  treeResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for the tree of this commit\n  \"\"\"\n  treeUrl: URI!\n\n  \"\"\"\n  The HTTP URL for this commit\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Check if the viewer is able to change their subscription status for the repository.\n  \"\"\"\n  viewerCanSubscribe: Boolean!\n\n  \"\"\"\n  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.\n  \"\"\"\n  viewerSubscription: SubscriptionState\n\n  \"\"\"\n  Returns a URL to download a zipball archive for a repository.\n  Note: For private repositories, these links are temporary and expire after five minutes.\n  \"\"\"\n  zipballUrl: URI!\n}\n\n\"\"\"\nSpecifies an author for filtering Git commits.\n\"\"\"\ninput CommitAuthor {\n  \"\"\"\n  Email addresses to filter by. Commits authored by any of the specified email addresses will be returned.\n  \"\"\"\n  emails: [String!]\n\n  \"\"\"\n  ID of a User to filter by. If non-null, only commits authored by this user\n  will be returned. This field takes precedence over emails.\n  \"\"\"\n  id: ID\n}\n\n\"\"\"\nParameters to be used for the commit_author_email_pattern rule\n\"\"\"\ntype CommitAuthorEmailPatternParameters {\n  \"\"\"\n  How this rule will appear to users.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  If true, the rule will fail if the pattern matches.\n  \"\"\"\n  negate: Boolean!\n\n  \"\"\"\n  The operator to use for matching.\n  \"\"\"\n  operator: String!\n\n  \"\"\"\n  The pattern to match with.\n  \"\"\"\n  pattern: String!\n}\n\n\"\"\"\nParameters to be used for the commit_author_email_pattern rule\n\"\"\"\ninput CommitAuthorEmailPatternParametersInput {\n  \"\"\"\n  How this rule will appear to users.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  If true, the rule will fail if the pattern matches.\n  \"\"\"\n  negate: Boolean\n\n  \"\"\"\n  The operator to use for matching.\n  \"\"\"\n  operator: String!\n\n  \"\"\"\n  The pattern to match with.\n  \"\"\"\n  pattern: String!\n}\n\n\"\"\"\nRepresents a comment on a given Commit.\n\"\"\"\ntype CommitComment implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment {\n  \"\"\"\n  The actor who authored the comment.\n  \"\"\"\n  author: Actor\n\n  \"\"\"\n  Author's association with the subject of the comment.\n  \"\"\"\n  authorAssociation: CommentAuthorAssociation!\n\n  \"\"\"\n  Identifies the comment body.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The body rendered to text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  Identifies the commit associated with the comment, if the commit exists.\n  \"\"\"\n  commit: Commit\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Check if this comment was created via an email reply.\n  \"\"\"\n  createdViaEmail: Boolean!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The actor who edited the comment.\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  The Node ID of the CommitComment object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if this comment was edited and includes an edit with the creation data\n  \"\"\"\n  includesCreatedEdit: Boolean!\n\n  \"\"\"\n  Returns whether or not a comment has been minimized.\n  \"\"\"\n  isMinimized: Boolean!\n\n  \"\"\"\n  The moment the editor made the last edit\n  \"\"\"\n  lastEditedAt: DateTime\n\n  \"\"\"\n  Returns why the comment was minimized. One of `abuse`, `off-topic`,\n  `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and\n  formatting of these values differs from the inputs to the `MinimizeComment` mutation.\n  \"\"\"\n  minimizedReason: String\n\n  \"\"\"\n  Identifies the file path associated with the comment.\n  \"\"\"\n  path: String\n\n  \"\"\"\n  Identifies the line position associated with the comment.\n  \"\"\"\n  position: Int\n\n  \"\"\"\n  Identifies when the comment was published at.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  A list of reactions grouped by content left on the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  A list of Reactions left on the Issue.\n  \"\"\"\n  reactions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Allows filtering Reactions by emoji.\n    \"\"\"\n    content: ReactionContent\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows specifying the order in which reactions are returned.\n    \"\"\"\n    orderBy: ReactionOrder\n  ): ReactionConnection!\n\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path permalink for this commit comment.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL permalink for this commit comment.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  A list of edits to this content.\n  \"\"\"\n  userContentEdits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserContentEditConnection\n\n  \"\"\"\n  Check if the current viewer can delete this object.\n  \"\"\"\n  viewerCanDelete: Boolean!\n\n  \"\"\"\n  Check if the current viewer can minimize this object.\n  \"\"\"\n  viewerCanMinimize: Boolean!\n\n  \"\"\"\n  Can user react to this subject\n  \"\"\"\n  viewerCanReact: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n\n  \"\"\"\n  Reasons why the current viewer can not update this comment.\n  \"\"\"\n  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!\n\n  \"\"\"\n  Did the viewer author this comment.\n  \"\"\"\n  viewerDidAuthor: Boolean!\n}\n\n\"\"\"\nThe connection type for CommitComment.\n\"\"\"\ntype CommitCommentConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CommitCommentEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [CommitComment]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype CommitCommentEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: CommitComment\n}\n\n\"\"\"\nA thread of comments on a commit.\n\"\"\"\ntype CommitCommentThread implements Node & RepositoryNode {\n  \"\"\"\n  The comments that exist in this thread.\n  \"\"\"\n  comments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): CommitCommentConnection!\n\n  \"\"\"\n  The commit the comments were made on.\n  \"\"\"\n  commit: Commit\n\n  \"\"\"\n  The Node ID of the CommitCommentThread object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The file the comments were made on.\n  \"\"\"\n  path: String\n\n  \"\"\"\n  The position in the diff for the commit that the comment was made on.\n  \"\"\"\n  position: Int\n\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nThe connection type for Commit.\n\"\"\"\ntype CommitConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CommitEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Commit]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nOrdering options for commit contribution connections.\n\"\"\"\ninput CommitContributionOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field by which to order commit contributions.\n  \"\"\"\n  field: CommitContributionOrderField!\n}\n\n\"\"\"\nProperties by which commit contribution connections can be ordered.\n\"\"\"\nenum CommitContributionOrderField {\n  \"\"\"\n  Order commit contributions by how many commits they represent.\n  \"\"\"\n  COMMIT_COUNT\n\n  \"\"\"\n  Order commit contributions by when they were made.\n  \"\"\"\n  OCCURRED_AT\n}\n\n\"\"\"\nThis aggregates commits made by a user within one repository.\n\"\"\"\ntype CommitContributionsByRepository {\n  \"\"\"\n  The commit contributions, each representing a day.\n  \"\"\"\n  contributions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for commit contributions returned from the connection.\n    \"\"\"\n    orderBy: CommitContributionOrder = {field: OCCURRED_AT, direction: DESC}\n  ): CreatedCommitContributionConnection!\n\n  \"\"\"\n  The repository in which the commits were made.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for the user's commits to the repository in this time range.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for the user's commits to the repository in this time range.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype CommitEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Commit\n}\n\n\"\"\"\nThe connection type for Commit.\n\"\"\"\ntype CommitHistoryConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CommitEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Commit]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nA message to include with a new commit\n\"\"\"\ninput CommitMessage {\n  \"\"\"\n  The body of the message.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  The headline of the message.\n  \"\"\"\n  headline: String!\n}\n\n\"\"\"\nParameters to be used for the commit_message_pattern rule\n\"\"\"\ntype CommitMessagePatternParameters {\n  \"\"\"\n  How this rule will appear to users.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  If true, the rule will fail if the pattern matches.\n  \"\"\"\n  negate: Boolean!\n\n  \"\"\"\n  The operator to use for matching.\n  \"\"\"\n  operator: String!\n\n  \"\"\"\n  The pattern to match with.\n  \"\"\"\n  pattern: String!\n}\n\n\"\"\"\nParameters to be used for the commit_message_pattern rule\n\"\"\"\ninput CommitMessagePatternParametersInput {\n  \"\"\"\n  How this rule will appear to users.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  If true, the rule will fail if the pattern matches.\n  \"\"\"\n  negate: Boolean\n\n  \"\"\"\n  The operator to use for matching.\n  \"\"\"\n  operator: String!\n\n  \"\"\"\n  The pattern to match with.\n  \"\"\"\n  pattern: String!\n}\n\n\"\"\"\nA git ref for a commit to be appended to.\n\nThe ref must be a branch, i.e. its fully qualified name must start\nwith `refs/heads/` (although the input is not required to be fully\nqualified).\n\nThe Ref may be specified by its global node ID or by the\n`repositoryNameWithOwner` and `branchName`.\n\n### Examples\n\nSpecify a branch using a global node ID:\n\n    { \"id\": \"MDM6UmVmMTpyZWZzL2hlYWRzL21haW4=\" }\n\nSpecify a branch using `repositoryNameWithOwner` and `branchName`:\n\n    {\n      \"repositoryNameWithOwner\": \"github/graphql-client\",\n      \"branchName\": \"main\"\n    }\n\"\"\"\ninput CommittableBranch {\n  \"\"\"\n  The unqualified name of the branch to append the commit to.\n  \"\"\"\n  branchName: String\n\n  \"\"\"\n  The Node ID of the Ref to be updated.\n  \"\"\"\n  id: ID\n\n  \"\"\"\n  The nameWithOwner of the repository to commit to.\n  \"\"\"\n  repositoryNameWithOwner: String\n}\n\n\"\"\"\nParameters to be used for the committer_email_pattern rule\n\"\"\"\ntype CommitterEmailPatternParameters {\n  \"\"\"\n  How this rule will appear to users.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  If true, the rule will fail if the pattern matches.\n  \"\"\"\n  negate: Boolean!\n\n  \"\"\"\n  The operator to use for matching.\n  \"\"\"\n  operator: String!\n\n  \"\"\"\n  The pattern to match with.\n  \"\"\"\n  pattern: String!\n}\n\n\"\"\"\nParameters to be used for the committer_email_pattern rule\n\"\"\"\ninput CommitterEmailPatternParametersInput {\n  \"\"\"\n  How this rule will appear to users.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  If true, the rule will fail if the pattern matches.\n  \"\"\"\n  negate: Boolean\n\n  \"\"\"\n  The operator to use for matching.\n  \"\"\"\n  operator: String!\n\n  \"\"\"\n  The pattern to match with.\n  \"\"\"\n  pattern: String!\n}\n\n\"\"\"\nRepresents a comparison between two commit revisions.\n\"\"\"\ntype Comparison implements Node {\n  \"\"\"\n  The number of commits ahead of the base branch.\n  \"\"\"\n  aheadBy: Int!\n\n  \"\"\"\n  The base revision of this comparison.\n  \"\"\"\n  baseTarget: GitObject!\n\n  \"\"\"\n  The number of commits behind the base branch.\n  \"\"\"\n  behindBy: Int!\n\n  \"\"\"\n  The commits which compose this comparison.\n  \"\"\"\n  commits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ComparisonCommitConnection!\n\n  \"\"\"\n  The head revision of this comparison.\n  \"\"\"\n  headTarget: GitObject!\n\n  \"\"\"\n  The Node ID of the Comparison object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The status of this comparison.\n  \"\"\"\n  status: ComparisonStatus!\n}\n\n\"\"\"\nThe connection type for Commit.\n\"\"\"\ntype ComparisonCommitConnection {\n  \"\"\"\n  The total count of authors and co-authors across all commits.\n  \"\"\"\n  authorCount: Int!\n\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CommitEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Commit]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nThe status of a git comparison between two refs.\n\"\"\"\nenum ComparisonStatus {\n  \"\"\"\n  The head ref is ahead of the base ref.\n  \"\"\"\n  AHEAD\n\n  \"\"\"\n  The head ref is behind the base ref.\n  \"\"\"\n  BEHIND\n\n  \"\"\"\n  The head ref is both ahead and behind of the base ref, indicating git history has diverged.\n  \"\"\"\n  DIVERGED\n\n  \"\"\"\n  The head ref and base ref are identical.\n  \"\"\"\n  IDENTICAL\n}\n\n\"\"\"\nRepresents a 'connected' event on a given issue or pull request.\n\"\"\"\ntype ConnectedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the ConnectedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Reference originated in a different repository.\n  \"\"\"\n  isCrossRepository: Boolean!\n\n  \"\"\"\n  Issue or pull request that made the reference.\n  \"\"\"\n  source: ReferencedSubject!\n\n  \"\"\"\n  Issue or pull request which was connected.\n  \"\"\"\n  subject: ReferencedSubject!\n}\n\n\"\"\"\nThe Contributing Guidelines for a repository.\n\"\"\"\ntype ContributingGuidelines {\n  \"\"\"\n  The body of the Contributing Guidelines.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  The HTTP path for the Contributing Guidelines.\n  \"\"\"\n  resourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the Contributing Guidelines.\n  \"\"\"\n  url: URI\n}\n\n\"\"\"\nRepresents a contribution a user made on GitHub, such as opening an issue.\n\"\"\"\ninterface Contribution {\n  \"\"\"\n  Whether this contribution is associated with a record you do not have access to. For\n  example, your own 'first issue' contribution may have been made on a repository you can no\n  longer access.\n  \"\"\"\n  isRestricted: Boolean!\n\n  \"\"\"\n  When this contribution was made.\n  \"\"\"\n  occurredAt: DateTime!\n\n  \"\"\"\n  The HTTP path for this contribution.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this contribution.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  The user who made this contribution.\n  \"\"\"\n  user: User!\n}\n\n\"\"\"\nA calendar of contributions made on GitHub by a user.\n\"\"\"\ntype ContributionCalendar {\n  \"\"\"\n  A list of hex color codes used in this calendar. The darker the color, the more contributions it represents.\n  \"\"\"\n  colors: [String!]!\n\n  \"\"\"\n  Determine if the color set was chosen because it's currently Halloween.\n  \"\"\"\n  isHalloween: Boolean!\n\n  \"\"\"\n  A list of the months of contributions in this calendar.\n  \"\"\"\n  months: [ContributionCalendarMonth!]!\n\n  \"\"\"\n  The count of total contributions in the calendar.\n  \"\"\"\n  totalContributions: Int!\n\n  \"\"\"\n  A list of the weeks of contributions in this calendar.\n  \"\"\"\n  weeks: [ContributionCalendarWeek!]!\n}\n\n\"\"\"\nRepresents a single day of contributions on GitHub by a user.\n\"\"\"\ntype ContributionCalendarDay {\n  \"\"\"\n  The hex color code that represents how many contributions were made on this day compared to others in the calendar.\n  \"\"\"\n  color: String!\n\n  \"\"\"\n  How many contributions were made by the user on this day.\n  \"\"\"\n  contributionCount: Int!\n\n  \"\"\"\n  Indication of contributions, relative to other days. Can be used to indicate\n  which color to represent this day on a calendar.\n  \"\"\"\n  contributionLevel: ContributionLevel!\n\n  \"\"\"\n  The day this square represents.\n  \"\"\"\n  date: Date!\n\n  \"\"\"\n  A number representing which day of the week this square represents, e.g., 1 is Monday.\n  \"\"\"\n  weekday: Int!\n}\n\n\"\"\"\nA month of contributions in a user's contribution graph.\n\"\"\"\ntype ContributionCalendarMonth {\n  \"\"\"\n  The date of the first day of this month.\n  \"\"\"\n  firstDay: Date!\n\n  \"\"\"\n  The name of the month.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  How many weeks started in this month.\n  \"\"\"\n  totalWeeks: Int!\n\n  \"\"\"\n  The year the month occurred in.\n  \"\"\"\n  year: Int!\n}\n\n\"\"\"\nA week of contributions in a user's contribution graph.\n\"\"\"\ntype ContributionCalendarWeek {\n  \"\"\"\n  The days of contributions in this week.\n  \"\"\"\n  contributionDays: [ContributionCalendarDay!]!\n\n  \"\"\"\n  The date of the earliest square in this week.\n  \"\"\"\n  firstDay: Date!\n}\n\n\"\"\"\nVarying levels of contributions from none to many.\n\"\"\"\nenum ContributionLevel {\n  \"\"\"\n  Lowest 25% of days of contributions.\n  \"\"\"\n  FIRST_QUARTILE\n\n  \"\"\"\n  Highest 25% of days of contributions. More contributions than the third quartile.\n  \"\"\"\n  FOURTH_QUARTILE\n\n  \"\"\"\n  No contributions occurred.\n  \"\"\"\n  NONE\n\n  \"\"\"\n  Second lowest 25% of days of contributions. More contributions than the first quartile.\n  \"\"\"\n  SECOND_QUARTILE\n\n  \"\"\"\n  Second highest 25% of days of contributions. More contributions than second quartile, less than the fourth quartile.\n  \"\"\"\n  THIRD_QUARTILE\n}\n\n\"\"\"\nOrdering options for contribution connections.\n\"\"\"\ninput ContributionOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n}\n\n\"\"\"\nA contributions collection aggregates contributions such as opened issues and commits created by a user.\n\"\"\"\ntype ContributionsCollection {\n  \"\"\"\n  Commit contributions made by the user, grouped by repository.\n  \"\"\"\n  commitContributionsByRepository(\n    \"\"\"\n    How many repositories should be included.\n    \"\"\"\n    maxRepositories: Int = 25\n  ): [CommitContributionsByRepository!]!\n\n  \"\"\"\n  A calendar of this user's contributions on GitHub.\n  \"\"\"\n  contributionCalendar: ContributionCalendar!\n\n  \"\"\"\n  The years the user has been making contributions with the most recent year first.\n  \"\"\"\n  contributionYears: [Int!]!\n\n  \"\"\"\n  Determine if this collection's time span ends in the current month.\n  \"\"\"\n  doesEndInCurrentMonth: Boolean!\n\n  \"\"\"\n  The date of the first restricted contribution the user made in this time\n  period. Can only be non-null when the user has enabled private contribution counts.\n  \"\"\"\n  earliestRestrictedContributionDate: Date\n\n  \"\"\"\n  The ending date and time of this collection.\n  \"\"\"\n  endedAt: DateTime!\n\n  \"\"\"\n  The first issue the user opened on GitHub. This will be null if that issue was\n  opened outside the collection's time range and ignoreTimeRange is false. If\n  the issue is not visible but the user has opted to show private contributions,\n  a RestrictedContribution will be returned.\n  \"\"\"\n  firstIssueContribution: CreatedIssueOrRestrictedContribution\n\n  \"\"\"\n  The first pull request the user opened on GitHub. This will be null if that\n  pull request was opened outside the collection's time range and\n  ignoreTimeRange is not true. If the pull request is not visible but the user\n  has opted to show private contributions, a RestrictedContribution will be returned.\n  \"\"\"\n  firstPullRequestContribution: CreatedPullRequestOrRestrictedContribution\n\n  \"\"\"\n  The first repository the user created on GitHub. This will be null if that\n  first repository was created outside the collection's time range and\n  ignoreTimeRange is false. If the repository is not visible, then a\n  RestrictedContribution is returned.\n  \"\"\"\n  firstRepositoryContribution: CreatedRepositoryOrRestrictedContribution\n\n  \"\"\"\n  Does the user have any more activity in the timeline that occurred prior to the collection's time range?\n  \"\"\"\n  hasActivityInThePast: Boolean!\n\n  \"\"\"\n  Determine if there are any contributions in this collection.\n  \"\"\"\n  hasAnyContributions: Boolean!\n\n  \"\"\"\n  Determine if the user made any contributions in this time frame whose details\n  are not visible because they were made in a private repository. Can only be\n  true if the user enabled private contribution counts.\n  \"\"\"\n  hasAnyRestrictedContributions: Boolean!\n\n  \"\"\"\n  Whether or not the collector's time span is all within the same day.\n  \"\"\"\n  isSingleDay: Boolean!\n\n  \"\"\"\n  A list of issues the user opened.\n  \"\"\"\n  issueContributions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Should the user's first issue ever be excluded from the result.\n    \"\"\"\n    excludeFirst: Boolean = false\n\n    \"\"\"\n    Should the user's most commented issue be excluded from the result.\n    \"\"\"\n    excludePopular: Boolean = false\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for contributions returned from the connection.\n    \"\"\"\n    orderBy: ContributionOrder = {direction: DESC}\n  ): CreatedIssueContributionConnection!\n\n  \"\"\"\n  Issue contributions made by the user, grouped by repository.\n  \"\"\"\n  issueContributionsByRepository(\n    \"\"\"\n    Should the user's first issue ever be excluded from the result.\n    \"\"\"\n    excludeFirst: Boolean = false\n\n    \"\"\"\n    Should the user's most commented issue be excluded from the result.\n    \"\"\"\n    excludePopular: Boolean = false\n\n    \"\"\"\n    How many repositories should be included.\n    \"\"\"\n    maxRepositories: Int = 25\n  ): [IssueContributionsByRepository!]!\n\n  \"\"\"\n  When the user signed up for GitHub. This will be null if that sign up date\n  falls outside the collection's time range and ignoreTimeRange is false.\n  \"\"\"\n  joinedGitHubContribution: JoinedGitHubContribution\n\n  \"\"\"\n  The date of the most recent restricted contribution the user made in this time\n  period. Can only be non-null when the user has enabled private contribution counts.\n  \"\"\"\n  latestRestrictedContributionDate: Date\n\n  \"\"\"\n  When this collection's time range does not include any activity from the user, use this\n  to get a different collection from an earlier time range that does have activity.\n  \"\"\"\n  mostRecentCollectionWithActivity: ContributionsCollection\n\n  \"\"\"\n  Returns a different contributions collection from an earlier time range than this one\n  that does not have any contributions.\n  \"\"\"\n  mostRecentCollectionWithoutActivity: ContributionsCollection\n\n  \"\"\"\n  The issue the user opened on GitHub that received the most comments in the specified\n  time frame.\n  \"\"\"\n  popularIssueContribution: CreatedIssueContribution\n\n  \"\"\"\n  The pull request the user opened on GitHub that received the most comments in the\n  specified time frame.\n  \"\"\"\n  popularPullRequestContribution: CreatedPullRequestContribution\n\n  \"\"\"\n  Pull request contributions made by the user.\n  \"\"\"\n  pullRequestContributions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Should the user's first pull request ever be excluded from the result.\n    \"\"\"\n    excludeFirst: Boolean = false\n\n    \"\"\"\n    Should the user's most commented pull request be excluded from the result.\n    \"\"\"\n    excludePopular: Boolean = false\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for contributions returned from the connection.\n    \"\"\"\n    orderBy: ContributionOrder = {direction: DESC}\n  ): CreatedPullRequestContributionConnection!\n\n  \"\"\"\n  Pull request contributions made by the user, grouped by repository.\n  \"\"\"\n  pullRequestContributionsByRepository(\n    \"\"\"\n    Should the user's first pull request ever be excluded from the result.\n    \"\"\"\n    excludeFirst: Boolean = false\n\n    \"\"\"\n    Should the user's most commented pull request be excluded from the result.\n    \"\"\"\n    excludePopular: Boolean = false\n\n    \"\"\"\n    How many repositories should be included.\n    \"\"\"\n    maxRepositories: Int = 25\n  ): [PullRequestContributionsByRepository!]!\n\n  \"\"\"\n  Pull request review contributions made by the user. Returns the most recently\n  submitted review for each PR reviewed by the user.\n  \"\"\"\n  pullRequestReviewContributions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for contributions returned from the connection.\n    \"\"\"\n    orderBy: ContributionOrder = {direction: DESC}\n  ): CreatedPullRequestReviewContributionConnection!\n\n  \"\"\"\n  Pull request review contributions made by the user, grouped by repository.\n  \"\"\"\n  pullRequestReviewContributionsByRepository(\n    \"\"\"\n    How many repositories should be included.\n    \"\"\"\n    maxRepositories: Int = 25\n  ): [PullRequestReviewContributionsByRepository!]!\n\n  \"\"\"\n  A list of repositories owned by the user that the user created in this time range.\n  \"\"\"\n  repositoryContributions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Should the user's first repository ever be excluded from the result.\n    \"\"\"\n    excludeFirst: Boolean = false\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for contributions returned from the connection.\n    \"\"\"\n    orderBy: ContributionOrder = {direction: DESC}\n  ): CreatedRepositoryContributionConnection!\n\n  \"\"\"\n  A count of contributions made by the user that the viewer cannot access. Only\n  non-zero when the user has chosen to share their private contribution counts.\n  \"\"\"\n  restrictedContributionsCount: Int!\n\n  \"\"\"\n  The beginning date and time of this collection.\n  \"\"\"\n  startedAt: DateTime!\n\n  \"\"\"\n  How many commits were made by the user in this time span.\n  \"\"\"\n  totalCommitContributions: Int!\n\n  \"\"\"\n  How many issues the user opened.\n  \"\"\"\n  totalIssueContributions(\n    \"\"\"\n    Should the user's first issue ever be excluded from this count.\n    \"\"\"\n    excludeFirst: Boolean = false\n\n    \"\"\"\n    Should the user's most commented issue be excluded from this count.\n    \"\"\"\n    excludePopular: Boolean = false\n  ): Int!\n\n  \"\"\"\n  How many pull requests the user opened.\n  \"\"\"\n  totalPullRequestContributions(\n    \"\"\"\n    Should the user's first pull request ever be excluded from this count.\n    \"\"\"\n    excludeFirst: Boolean = false\n\n    \"\"\"\n    Should the user's most commented pull request be excluded from this count.\n    \"\"\"\n    excludePopular: Boolean = false\n  ): Int!\n\n  \"\"\"\n  How many pull request reviews the user left.\n  \"\"\"\n  totalPullRequestReviewContributions: Int!\n\n  \"\"\"\n  How many different repositories the user committed to.\n  \"\"\"\n  totalRepositoriesWithContributedCommits: Int!\n\n  \"\"\"\n  How many different repositories the user opened issues in.\n  \"\"\"\n  totalRepositoriesWithContributedIssues(\n    \"\"\"\n    Should the user's first issue ever be excluded from this count.\n    \"\"\"\n    excludeFirst: Boolean = false\n\n    \"\"\"\n    Should the user's most commented issue be excluded from this count.\n    \"\"\"\n    excludePopular: Boolean = false\n  ): Int!\n\n  \"\"\"\n  How many different repositories the user left pull request reviews in.\n  \"\"\"\n  totalRepositoriesWithContributedPullRequestReviews: Int!\n\n  \"\"\"\n  How many different repositories the user opened pull requests in.\n  \"\"\"\n  totalRepositoriesWithContributedPullRequests(\n    \"\"\"\n    Should the user's first pull request ever be excluded from this count.\n    \"\"\"\n    excludeFirst: Boolean = false\n\n    \"\"\"\n    Should the user's most commented pull request be excluded from this count.\n    \"\"\"\n    excludePopular: Boolean = false\n  ): Int!\n\n  \"\"\"\n  How many repositories the user created.\n  \"\"\"\n  totalRepositoryContributions(\n    \"\"\"\n    Should the user's first repository ever be excluded from this count.\n    \"\"\"\n    excludeFirst: Boolean = false\n  ): Int!\n\n  \"\"\"\n  The user who made the contributions in this collection.\n  \"\"\"\n  user: User!\n}\n\n\"\"\"\nAutogenerated input type of ConvertProjectCardNoteToIssue\n\"\"\"\ninput ConvertProjectCardNoteToIssueInput {\n  \"\"\"\n  The body of the newly created issue.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ProjectCard ID to convert.\n  \"\"\"\n  projectCardId: ID! @possibleTypes(concreteTypes: [\"ProjectCard\"])\n\n  \"\"\"\n  The ID of the repository to create the issue in.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  The title of the newly created issue. Defaults to the card's note text.\n  \"\"\"\n  title: String\n}\n\n\"\"\"\nAutogenerated return type of ConvertProjectCardNoteToIssue\n\"\"\"\ntype ConvertProjectCardNoteToIssuePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated ProjectCard.\n  \"\"\"\n  projectCard: ProjectCard\n}\n\n\"\"\"\nAutogenerated input type of ConvertPullRequestToDraft\n\"\"\"\ninput ConvertPullRequestToDraftInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the pull request to convert to draft\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n}\n\n\"\"\"\nAutogenerated return type of ConvertPullRequestToDraft\n\"\"\"\ntype ConvertPullRequestToDraftPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The pull request that is now a draft.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nRepresents a 'convert_to_draft' event on a given pull request.\n\"\"\"\ntype ConvertToDraftEvent implements Node & UniformResourceLocatable {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the ConvertToDraftEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  The HTTP path for this convert to draft event.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this convert to draft event.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nRepresents a 'converted_note_to_issue' event on a given issue or pull request.\n\"\"\"\ntype ConvertedNoteToIssueEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the ConvertedNoteToIssueEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Project referenced by event.\n  \"\"\"\n  project: Project @preview(toggledBy: \"starfox-preview\")\n\n  \"\"\"\n  Project card referenced by this project event.\n  \"\"\"\n  projectCard: ProjectCard @preview(toggledBy: \"starfox-preview\")\n\n  \"\"\"\n  Column name referenced by this project event.\n  \"\"\"\n  projectColumnName: String! @preview(toggledBy: \"starfox-preview\")\n}\n\n\"\"\"\nRepresents a 'converted_to_discussion' event on a given issue.\n\"\"\"\ntype ConvertedToDiscussionEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The discussion that the issue was converted into.\n  \"\"\"\n  discussion: Discussion\n\n  \"\"\"\n  The Node ID of the ConvertedToDiscussionEvent object\n  \"\"\"\n  id: ID!\n}\n\n\"\"\"\nAutogenerated input type of CopyProjectV2\n\"\"\"\ninput CopyProjectV2Input {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Include draft issues in the new project\n  \"\"\"\n  includeDraftIssues: Boolean = false\n\n  \"\"\"\n  The owner ID of the new project.\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"Organization\", \"User\"], abstractType: \"OrganizationOrUser\")\n\n  \"\"\"\n  The ID of the source Project to copy.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n\n  \"\"\"\n  The title of the project.\n  \"\"\"\n  title: String!\n}\n\n\"\"\"\nAutogenerated return type of CopyProjectV2\n\"\"\"\ntype CopyProjectV2Payload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The copied project.\n  \"\"\"\n  projectV2: ProjectV2\n}\n\n\"\"\"\nAutogenerated input type of CreateAttributionInvitation\n\"\"\"\ninput CreateAttributionInvitationInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the owner scoping the reattributable data.\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"Bot\", \"Enterprise\", \"Mannequin\", \"Organization\", \"User\"])\n\n  \"\"\"\n  The Node ID of the account owning the data to reattribute.\n  \"\"\"\n  sourceId: ID! @possibleTypes(concreteTypes: [\"Bot\", \"Enterprise\", \"Mannequin\", \"Organization\", \"User\"])\n\n  \"\"\"\n  The Node ID of the account which may claim the data.\n  \"\"\"\n  targetId: ID! @possibleTypes(concreteTypes: [\"Bot\", \"Enterprise\", \"Mannequin\", \"Organization\", \"User\"])\n}\n\n\"\"\"\nAutogenerated return type of CreateAttributionInvitation\n\"\"\"\ntype CreateAttributionInvitationPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The owner scoping the reattributable data.\n  \"\"\"\n  owner: Organization\n\n  \"\"\"\n  The account owning the data to reattribute.\n  \"\"\"\n  source: Claimable\n\n  \"\"\"\n  The account which may claim the data.\n  \"\"\"\n  target: Claimable\n}\n\n\"\"\"\nAutogenerated input type of CreateBranchProtectionRule\n\"\"\"\ninput CreateBranchProtectionRuleInput {\n  \"\"\"\n  Can this branch be deleted.\n  \"\"\"\n  allowsDeletions: Boolean\n\n  \"\"\"\n  Are force pushes allowed on this branch.\n  \"\"\"\n  allowsForcePushes: Boolean\n\n  \"\"\"\n  Is branch creation a protected operation.\n  \"\"\"\n  blocksCreations: Boolean\n\n  \"\"\"\n  A list of User, Team, or App IDs allowed to bypass force push targeting matching branches.\n  \"\"\"\n  bypassForcePushActorIds: [ID!]\n\n  \"\"\"\n  A list of User, Team, or App IDs allowed to bypass pull requests targeting matching branches.\n  \"\"\"\n  bypassPullRequestActorIds: [ID!]\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Will new commits pushed to matching branches dismiss pull request review approvals.\n  \"\"\"\n  dismissesStaleReviews: Boolean\n\n  \"\"\"\n  Can admins override branch protection.\n  \"\"\"\n  isAdminEnforced: Boolean\n\n  \"\"\"\n  Whether users can pull changes from upstream when the branch is locked. Set to\n  `true` to allow fork syncing. Set to `false` to prevent fork syncing.\n  \"\"\"\n  lockAllowsFetchAndMerge: Boolean\n\n  \"\"\"\n  Whether to set the branch as read-only. If this is true, users will not be able to push to the branch.\n  \"\"\"\n  lockBranch: Boolean\n\n  \"\"\"\n  The glob-like pattern used to determine matching branches.\n  \"\"\"\n  pattern: String!\n\n  \"\"\"\n  A list of User, Team, or App IDs allowed to push to matching branches.\n  \"\"\"\n  pushActorIds: [ID!]\n\n  \"\"\"\n  The global relay id of the repository in which a new branch protection rule should be created in.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  Whether the most recent push must be approved by someone other than the person who pushed it\n  \"\"\"\n  requireLastPushApproval: Boolean\n\n  \"\"\"\n  Number of approving reviews required to update matching branches.\n  \"\"\"\n  requiredApprovingReviewCount: Int\n\n  \"\"\"\n  The list of required deployment environments\n  \"\"\"\n  requiredDeploymentEnvironments: [String!]\n\n  \"\"\"\n  List of required status check contexts that must pass for commits to be accepted to matching branches.\n  \"\"\"\n  requiredStatusCheckContexts: [String!]\n\n  \"\"\"\n  The list of required status checks\n  \"\"\"\n  requiredStatusChecks: [RequiredStatusCheckInput!]\n\n  \"\"\"\n  Are approving reviews required to update matching branches.\n  \"\"\"\n  requiresApprovingReviews: Boolean\n\n  \"\"\"\n  Are reviews from code owners required to update matching branches.\n  \"\"\"\n  requiresCodeOwnerReviews: Boolean\n\n  \"\"\"\n  Are commits required to be signed.\n  \"\"\"\n  requiresCommitSignatures: Boolean\n\n  \"\"\"\n  Are conversations required to be resolved before merging.\n  \"\"\"\n  requiresConversationResolution: Boolean\n\n  \"\"\"\n  Are successful deployments required before merging.\n  \"\"\"\n  requiresDeployments: Boolean\n\n  \"\"\"\n  Are merge commits prohibited from being pushed to this branch.\n  \"\"\"\n  requiresLinearHistory: Boolean\n\n  \"\"\"\n  Are status checks required to update matching branches.\n  \"\"\"\n  requiresStatusChecks: Boolean\n\n  \"\"\"\n  Are branches required to be up to date before merging.\n  \"\"\"\n  requiresStrictStatusChecks: Boolean\n\n  \"\"\"\n  Is pushing to matching branches restricted.\n  \"\"\"\n  restrictsPushes: Boolean\n\n  \"\"\"\n  Is dismissal of pull request reviews restricted.\n  \"\"\"\n  restrictsReviewDismissals: Boolean\n\n  \"\"\"\n  A list of User, Team, or App IDs allowed to dismiss reviews on pull requests targeting matching branches.\n  \"\"\"\n  reviewDismissalActorIds: [ID!]\n}\n\n\"\"\"\nAutogenerated return type of CreateBranchProtectionRule\n\"\"\"\ntype CreateBranchProtectionRulePayload {\n  \"\"\"\n  The newly created BranchProtectionRule.\n  \"\"\"\n  branchProtectionRule: BranchProtectionRule\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of CreateCheckRun\n\"\"\"\ninput CreateCheckRunInput {\n  \"\"\"\n  Possible further actions the integrator can perform, which a user may trigger.\n  \"\"\"\n  actions: [CheckRunAction!]\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The time that the check run finished.\n  \"\"\"\n  completedAt: DateTime\n\n  \"\"\"\n  The final conclusion of the check.\n  \"\"\"\n  conclusion: CheckConclusionState\n\n  \"\"\"\n  The URL of the integrator's site that has the full details of the check.\n  \"\"\"\n  detailsUrl: URI\n\n  \"\"\"\n  A reference for the run on the integrator's system.\n  \"\"\"\n  externalId: String\n\n  \"\"\"\n  The SHA of the head commit.\n  \"\"\"\n  headSha: GitObjectID!\n\n  \"\"\"\n  The name of the check.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  Descriptive details about the run.\n  \"\"\"\n  output: CheckRunOutput\n\n  \"\"\"\n  The node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  The time that the check run began.\n  \"\"\"\n  startedAt: DateTime\n\n  \"\"\"\n  The current status.\n  \"\"\"\n  status: RequestableCheckStatusState\n}\n\n\"\"\"\nAutogenerated return type of CreateCheckRun\n\"\"\"\ntype CreateCheckRunPayload {\n  \"\"\"\n  The newly created check run.\n  \"\"\"\n  checkRun: CheckRun\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of CreateCheckSuite\n\"\"\"\ninput CreateCheckSuiteInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The SHA of the head commit.\n  \"\"\"\n  headSha: GitObjectID!\n\n  \"\"\"\n  The Node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of CreateCheckSuite\n\"\"\"\ntype CreateCheckSuitePayload {\n  \"\"\"\n  The newly created check suite.\n  \"\"\"\n  checkSuite: CheckSuite\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of CreateCommitOnBranch\n\"\"\"\ninput CreateCommitOnBranchInput {\n  \"\"\"\n  The Ref to be updated.  Must be a branch.\n  \"\"\"\n  branch: CommittableBranch!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The git commit oid expected at the head of the branch prior to the commit\n  \"\"\"\n  expectedHeadOid: GitObjectID!\n\n  \"\"\"\n  A description of changes to files in this commit.\n  \"\"\"\n  fileChanges: FileChanges\n\n  \"\"\"\n  The commit message the be included with the commit.\n  \"\"\"\n  message: CommitMessage!\n}\n\n\"\"\"\nAutogenerated return type of CreateCommitOnBranch\n\"\"\"\ntype CreateCommitOnBranchPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new commit.\n  \"\"\"\n  commit: Commit\n\n  \"\"\"\n  The ref which has been updated to point to the new commit.\n  \"\"\"\n  ref: Ref\n}\n\n\"\"\"\nAutogenerated input type of CreateDeployment\n\"\"\"\ninput CreateDeploymentInput @preview(toggledBy: \"flash-preview\") {\n  \"\"\"\n  Attempt to automatically merge the default branch into the requested ref, defaults to true.\n  \"\"\"\n  autoMerge: Boolean = true\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Short description of the deployment.\n  \"\"\"\n  description: String = \"\"\n\n  \"\"\"\n  Name for the target deployment environment.\n  \"\"\"\n  environment: String = \"production\"\n\n  \"\"\"\n  JSON payload with extra information about the deployment.\n  \"\"\"\n  payload: String = \"{}\"\n\n  \"\"\"\n  The node ID of the ref to be deployed.\n  \"\"\"\n  refId: ID! @possibleTypes(concreteTypes: [\"Ref\"])\n\n  \"\"\"\n  The node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  The status contexts to verify against commit status checks. To bypass required\n  contexts, pass an empty array. Defaults to all unique contexts.\n  \"\"\"\n  requiredContexts: [String!]\n\n  \"\"\"\n  Specifies a task to execute.\n  \"\"\"\n  task: String = \"deploy\"\n}\n\n\"\"\"\nAutogenerated return type of CreateDeployment\n\"\"\"\ntype CreateDeploymentPayload @preview(toggledBy: \"flash-preview\") {\n  \"\"\"\n  True if the default branch has been auto-merged into the deployment ref.\n  \"\"\"\n  autoMerged: Boolean\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new deployment.\n  \"\"\"\n  deployment: Deployment\n}\n\n\"\"\"\nAutogenerated input type of CreateDeploymentStatus\n\"\"\"\ninput CreateDeploymentStatusInput @preview(toggledBy: \"flash-preview\") {\n  \"\"\"\n  Adds a new inactive status to all non-transient, non-production environment\n  deployments with the same repository and environment name as the created\n  status's deployment.\n  \"\"\"\n  autoInactive: Boolean = true\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The node ID of the deployment.\n  \"\"\"\n  deploymentId: ID! @possibleTypes(concreteTypes: [\"Deployment\"])\n\n  \"\"\"\n  A short description of the status. Maximum length of 140 characters.\n  \"\"\"\n  description: String = \"\"\n\n  \"\"\"\n  If provided, updates the environment of the deploy. Otherwise, does not modify the environment.\n  \"\"\"\n  environment: String\n\n  \"\"\"\n  Sets the URL for accessing your environment.\n  \"\"\"\n  environmentUrl: String = \"\"\n\n  \"\"\"\n  The log URL to associate with this status.       This URL should contain\n  output to keep the user updated while the task is running       or serve as\n  historical information for what happened in the deployment.\n  \"\"\"\n  logUrl: String = \"\"\n\n  \"\"\"\n  The state of the deployment.\n  \"\"\"\n  state: DeploymentStatusState!\n}\n\n\"\"\"\nAutogenerated return type of CreateDeploymentStatus\n\"\"\"\ntype CreateDeploymentStatusPayload @preview(toggledBy: \"flash-preview\") {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new deployment status.\n  \"\"\"\n  deploymentStatus: DeploymentStatus\n}\n\n\"\"\"\nAutogenerated input type of CreateDiscussion\n\"\"\"\ninput CreateDiscussionInput {\n  \"\"\"\n  The body of the discussion.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The id of the discussion category to associate with this discussion.\n  \"\"\"\n  categoryId: ID! @possibleTypes(concreteTypes: [\"DiscussionCategory\"])\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The id of the repository on which to create the discussion.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  The title of the discussion.\n  \"\"\"\n  title: String!\n}\n\n\"\"\"\nAutogenerated return type of CreateDiscussion\n\"\"\"\ntype CreateDiscussionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The discussion that was just created.\n  \"\"\"\n  discussion: Discussion\n}\n\n\"\"\"\nAutogenerated input type of CreateEnterpriseOrganization\n\"\"\"\ninput CreateEnterpriseOrganizationInput {\n  \"\"\"\n  The logins for the administrators of the new organization.\n  \"\"\"\n  adminLogins: [String!]!\n\n  \"\"\"\n  The email used for sending billing receipts.\n  \"\"\"\n  billingEmail: String!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise owning the new organization.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The login of the new organization.\n  \"\"\"\n  login: String!\n\n  \"\"\"\n  The profile name of the new organization.\n  \"\"\"\n  profileName: String!\n}\n\n\"\"\"\nAutogenerated return type of CreateEnterpriseOrganization\n\"\"\"\ntype CreateEnterpriseOrganizationPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise that owns the created organization.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  The organization that was created.\n  \"\"\"\n  organization: Organization\n}\n\n\"\"\"\nAutogenerated input type of CreateEnvironment\n\"\"\"\ninput CreateEnvironmentInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The name of the environment.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of CreateEnvironment\n\"\"\"\ntype CreateEnvironmentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new or existing environment.\n  \"\"\"\n  environment: Environment\n}\n\n\"\"\"\nAutogenerated input type of CreateIpAllowListEntry\n\"\"\"\ninput CreateIpAllowListEntryInput {\n  \"\"\"\n  An IP address or range of addresses in CIDR notation.\n  \"\"\"\n  allowListValue: String!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Whether the IP allow list entry is active when an IP allow list is enabled.\n  \"\"\"\n  isActive: Boolean!\n\n  \"\"\"\n  An optional name for the IP allow list entry.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  The ID of the owner for which to create the new IP allow list entry.\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"App\", \"Enterprise\", \"Organization\"], abstractType: \"IpAllowListOwner\")\n}\n\n\"\"\"\nAutogenerated return type of CreateIpAllowListEntry\n\"\"\"\ntype CreateIpAllowListEntryPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The IP allow list entry that was created.\n  \"\"\"\n  ipAllowListEntry: IpAllowListEntry\n}\n\n\"\"\"\nAutogenerated input type of CreateIssue\n\"\"\"\ninput CreateIssueInput {\n  \"\"\"\n  The Node ID for the user assignee for this issue.\n  \"\"\"\n  assigneeIds: [ID!] @possibleTypes(concreteTypes: [\"User\"])\n\n  \"\"\"\n  The body for the issue description.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The name of an issue template in the repository, assigns labels and assignees from the template to the issue\n  \"\"\"\n  issueTemplate: String\n\n  \"\"\"\n  An array of Node IDs of labels for this issue.\n  \"\"\"\n  labelIds: [ID!] @possibleTypes(concreteTypes: [\"Label\"])\n\n  \"\"\"\n  The Node ID of the milestone for this issue.\n  \"\"\"\n  milestoneId: ID @possibleTypes(concreteTypes: [\"Milestone\"])\n\n  \"\"\"\n  An array of Node IDs for projects associated with this issue.\n  \"\"\"\n  projectIds: [ID!] @possibleTypes(concreteTypes: [\"Project\"])\n\n  \"\"\"\n  The Node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  The title for the issue.\n  \"\"\"\n  title: String!\n}\n\n\"\"\"\nAutogenerated return type of CreateIssue\n\"\"\"\ntype CreateIssuePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new issue.\n  \"\"\"\n  issue: Issue\n}\n\n\"\"\"\nAutogenerated input type of CreateLabel\n\"\"\"\ninput CreateLabelInput @preview(toggledBy: \"bane-preview\") {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A 6 character hex code, without the leading #, identifying the color of the label.\n  \"\"\"\n  color: String!\n\n  \"\"\"\n  A brief description of the label, such as its purpose.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The name of the label.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The Node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of CreateLabel\n\"\"\"\ntype CreateLabelPayload @preview(toggledBy: \"bane-preview\") {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new label.\n  \"\"\"\n  label: Label\n}\n\n\"\"\"\nAutogenerated input type of CreateLinkedBranch\n\"\"\"\ninput CreateLinkedBranchInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the issue to link to.\n  \"\"\"\n  issueId: ID! @possibleTypes(concreteTypes: [\"Issue\"])\n\n  \"\"\"\n  The name of the new branch. Defaults to issue number and title.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  The commit SHA to base the new branch on.\n  \"\"\"\n  oid: GitObjectID!\n\n  \"\"\"\n  ID of the repository to create the branch in. Defaults to the issue repository.\n  \"\"\"\n  repositoryId: ID @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of CreateLinkedBranch\n\"\"\"\ntype CreateLinkedBranchPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The issue that was linked to.\n  \"\"\"\n  issue: Issue\n\n  \"\"\"\n  The new branch issue reference.\n  \"\"\"\n  linkedBranch: LinkedBranch\n}\n\n\"\"\"\nAutogenerated input type of CreateMigrationSource\n\"\"\"\ninput CreateMigrationSourceInput {\n  \"\"\"\n  The migration source access token.\n  \"\"\"\n  accessToken: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The GitHub personal access token of the user importing to the target repository.\n  \"\"\"\n  githubPat: String\n\n  \"\"\"\n  The migration source name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The ID of the organization that will own the migration source.\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n\n  \"\"\"\n  The migration source type.\n  \"\"\"\n  type: MigrationSourceType!\n\n  \"\"\"\n  The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`.\n  \"\"\"\n  url: String\n}\n\n\"\"\"\nAutogenerated return type of CreateMigrationSource\n\"\"\"\ntype CreateMigrationSourcePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The created migration source.\n  \"\"\"\n  migrationSource: MigrationSource\n}\n\n\"\"\"\nAutogenerated input type of CreateProject\n\"\"\"\ninput CreateProjectInput {\n  \"\"\"\n  The description of project.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The name of project.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The owner ID to create the project under.\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"Organization\", \"Repository\", \"User\"], abstractType: \"ProjectOwner\")\n\n  \"\"\"\n  A list of repository IDs to create as linked repositories for the project\n  \"\"\"\n  repositoryIds: [ID!] @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  The name of the GitHub-provided template.\n  \"\"\"\n  template: ProjectTemplate\n}\n\n\"\"\"\nAutogenerated return type of CreateProject\n\"\"\"\ntype CreateProjectPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new project.\n  \"\"\"\n  project: Project\n}\n\n\"\"\"\nAutogenerated input type of CreateProjectV2Field\n\"\"\"\ninput CreateProjectV2FieldInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The data type of the field.\n  \"\"\"\n  dataType: ProjectV2CustomFieldType!\n\n  \"\"\"\n  The name of the field.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The ID of the Project to create the field in.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n\n  \"\"\"\n  Options for a single select field. At least one value is required if data_type is SINGLE_SELECT\n  \"\"\"\n  singleSelectOptions: [ProjectV2SingleSelectFieldOptionInput!]\n}\n\n\"\"\"\nAutogenerated return type of CreateProjectV2Field\n\"\"\"\ntype CreateProjectV2FieldPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new field.\n  \"\"\"\n  projectV2Field: ProjectV2FieldConfiguration\n}\n\n\"\"\"\nAutogenerated input type of CreateProjectV2\n\"\"\"\ninput CreateProjectV2Input {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The owner ID to create the project under.\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"Organization\", \"User\"], abstractType: \"OrganizationOrUser\")\n\n  \"\"\"\n  The repository to link the project to.\n  \"\"\"\n  repositoryId: ID @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  The team to link the project to. The team will be granted read permissions.\n  \"\"\"\n  teamId: ID @possibleTypes(concreteTypes: [\"Team\"])\n\n  \"\"\"\n  The title of the project.\n  \"\"\"\n  title: String!\n}\n\n\"\"\"\nAutogenerated return type of CreateProjectV2\n\"\"\"\ntype CreateProjectV2Payload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new project.\n  \"\"\"\n  projectV2: ProjectV2\n}\n\n\"\"\"\nAutogenerated input type of CreatePullRequest\n\"\"\"\ninput CreatePullRequestInput {\n  \"\"\"\n  The name of the branch you want your changes pulled into. This should be an existing branch\n  on the current repository. You cannot update the base branch on a pull request to point\n  to another repository.\n  \"\"\"\n  baseRefName: String!\n\n  \"\"\"\n  The contents of the pull request.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Indicates whether this pull request should be a draft.\n  \"\"\"\n  draft: Boolean = false\n\n  \"\"\"\n  The name of the branch where your changes are implemented. For cross-repository pull requests\n  in the same network, namespace `head_ref_name` with a user like this: `username:branch`.\n  \"\"\"\n  headRefName: String!\n\n  \"\"\"\n  The Node ID of the head repository.\n  \"\"\"\n  headRepositoryId: ID @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  Indicates whether maintainers can modify the pull request.\n  \"\"\"\n  maintainerCanModify: Boolean = true\n\n  \"\"\"\n  The Node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  The title of the pull request.\n  \"\"\"\n  title: String!\n}\n\n\"\"\"\nAutogenerated return type of CreatePullRequest\n\"\"\"\ntype CreatePullRequestPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new pull request.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nAutogenerated input type of CreateRef\n\"\"\"\ninput CreateRefInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The fully qualified name of the new Ref (ie: `refs/heads/my_new_branch`).\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The GitObjectID that the new Ref shall target. Must point to a commit.\n  \"\"\"\n  oid: GitObjectID!\n\n  \"\"\"\n  The Node ID of the Repository to create the Ref in.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of CreateRef\n\"\"\"\ntype CreateRefPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The newly created ref.\n  \"\"\"\n  ref: Ref\n}\n\n\"\"\"\nAutogenerated input type of CreateRepository\n\"\"\"\ninput CreateRepositoryInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A short description of the new repository.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  Indicates if the repository should have the issues feature enabled.\n  \"\"\"\n  hasIssuesEnabled: Boolean = true\n\n  \"\"\"\n  Indicates if the repository should have the wiki feature enabled.\n  \"\"\"\n  hasWikiEnabled: Boolean = false\n\n  \"\"\"\n  The URL for a web page about this repository.\n  \"\"\"\n  homepageUrl: URI\n\n  \"\"\"\n  The name of the new repository.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The ID of the owner for the new repository.\n  \"\"\"\n  ownerId: ID @possibleTypes(concreteTypes: [\"Organization\", \"User\"], abstractType: \"RepositoryOwner\")\n\n  \"\"\"\n  When an organization is specified as the owner, this ID identifies the team\n  that should be granted access to the new repository.\n  \"\"\"\n  teamId: ID @possibleTypes(concreteTypes: [\"Team\"])\n\n  \"\"\"\n  Whether this repository should be marked as a template such that anyone who\n  can access it can create new repositories with the same files and directory structure.\n  \"\"\"\n  template: Boolean = false\n\n  \"\"\"\n  Indicates the repository's visibility level.\n  \"\"\"\n  visibility: RepositoryVisibility!\n}\n\n\"\"\"\nAutogenerated return type of CreateRepository\n\"\"\"\ntype CreateRepositoryPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new repository.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nAutogenerated input type of CreateRepositoryRuleset\n\"\"\"\ninput CreateRepositoryRulesetInput {\n  \"\"\"\n  A list of actors that are allowed to bypass rules in this ruleset.\n  \"\"\"\n  bypassActors: [RepositoryRulesetBypassActorInput!]\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The set of conditions for this ruleset\n  \"\"\"\n  conditions: RepositoryRuleConditionsInput!\n\n  \"\"\"\n  The enforcement level for this ruleset\n  \"\"\"\n  enforcement: RuleEnforcement!\n\n  \"\"\"\n  The name of the ruleset.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The list of rules for this ruleset\n  \"\"\"\n  rules: [RepositoryRuleInput!]\n\n  \"\"\"\n  The global relay id of the source in which a new ruleset should be created in.\n  \"\"\"\n  sourceId: ID! @possibleTypes(concreteTypes: [\"Organization\", \"Repository\"], abstractType: \"RuleSource\")\n\n  \"\"\"\n  The target of the ruleset.\n  \"\"\"\n  target: RepositoryRulesetTarget\n}\n\n\"\"\"\nAutogenerated return type of CreateRepositoryRuleset\n\"\"\"\ntype CreateRepositoryRulesetPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The newly created Ruleset.\n  \"\"\"\n  ruleset: RepositoryRuleset\n}\n\n\"\"\"\nAutogenerated input type of CreateSponsorsListing\n\"\"\"\ninput CreateSponsorsListingInput {\n  \"\"\"\n  The country or region where the sponsorable's bank account is located.\n  Required if fiscalHostLogin is not specified, ignored when fiscalHostLogin is specified.\n  \"\"\"\n  billingCountryOrRegionCode: SponsorsCountryOrRegionCode\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The email address we should use to contact you about the GitHub Sponsors\n  profile being created. This will not be shared publicly. Must be a verified\n  email address already on your GitHub account. Only relevant when the\n  sponsorable is yourself. Defaults to your primary email address on file if omitted.\n  \"\"\"\n  contactEmail: String\n\n  \"\"\"\n  The username of the supported fiscal host's GitHub organization, if you want\n  to receive sponsorship payouts through a fiscal host rather than directly to a\n  bank account. For example, 'Open-Source-Collective' for Open Source Collective\n  or 'numfocus' for numFOCUS. Case insensitive. See https://docs.github.com/sponsors/receiving-sponsorships-through-github-sponsors/using-a-fiscal-host-to-receive-github-sponsors-payouts\n  for more information.\n  \"\"\"\n  fiscalHostLogin: String\n\n  \"\"\"\n  The URL for your profile page on the fiscal host's website, e.g.,\n  https://opencollective.com/babel or https://numfocus.org/project/bokeh.\n  Required if fiscalHostLogin is specified.\n  \"\"\"\n  fiscallyHostedProjectProfileUrl: String\n\n  \"\"\"\n  Provide an introduction to serve as the main focus that appears on your GitHub\n  Sponsors profile. It's a great opportunity to help potential sponsors learn\n  more about you, your work, and why their sponsorship is important to you.\n  GitHub-flavored Markdown is supported.\n  \"\"\"\n  fullDescription: String\n\n  \"\"\"\n  The country or region where the sponsorable resides. This is for tax purposes.\n  Required if the sponsorable is yourself, ignored when sponsorableLogin\n  specifies an organization.\n  \"\"\"\n  residenceCountryOrRegionCode: SponsorsCountryOrRegionCode\n\n  \"\"\"\n  The username of the organization to create a GitHub Sponsors profile for, if\n  desired. Defaults to creating a GitHub Sponsors profile for the authenticated\n  user if omitted.\n  \"\"\"\n  sponsorableLogin: String\n}\n\n\"\"\"\nAutogenerated return type of CreateSponsorsListing\n\"\"\"\ntype CreateSponsorsListingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new GitHub Sponsors profile.\n  \"\"\"\n  sponsorsListing: SponsorsListing\n}\n\n\"\"\"\nAutogenerated input type of CreateSponsorsTier\n\"\"\"\ninput CreateSponsorsTierInput {\n  \"\"\"\n  The value of the new tier in US dollars. Valid values: 1-12000.\n  \"\"\"\n  amount: Int!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A description of what this tier is, what perks sponsors might receive, what a sponsorship at this tier means for you, etc.\n  \"\"\"\n  description: String!\n\n  \"\"\"\n  Whether sponsorships using this tier should happen monthly/yearly or just once.\n  \"\"\"\n  isRecurring: Boolean = true\n\n  \"\"\"\n  Whether to make the tier available immediately for sponsors to choose.\n  Defaults to creating a draft tier that will not be publicly visible.\n  \"\"\"\n  publish: Boolean = false\n\n  \"\"\"\n  Optional ID of the private repository that sponsors at this tier should gain\n  read-only access to. Must be owned by an organization.\n  \"\"\"\n  repositoryId: ID @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  Optional name of the private repository that sponsors at this tier should gain\n  read-only access to. Must be owned by an organization. Necessary if\n  repositoryOwnerLogin is given. Will be ignored if repositoryId is given.\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  Optional login of the organization owner of the private repository that\n  sponsors at this tier should gain read-only access to. Necessary if\n  repositoryName is given. Will be ignored if repositoryId is given.\n  \"\"\"\n  repositoryOwnerLogin: String\n\n  \"\"\"\n  The ID of the user or organization who owns the GitHub Sponsors profile.\n  Defaults to the current user if omitted and sponsorableLogin is not given.\n  \"\"\"\n  sponsorableId: ID @possibleTypes(concreteTypes: [\"Organization\", \"User\"], abstractType: \"Sponsorable\")\n\n  \"\"\"\n  The username of the user or organization who owns the GitHub Sponsors profile.\n  Defaults to the current user if omitted and sponsorableId is not given.\n  \"\"\"\n  sponsorableLogin: String\n\n  \"\"\"\n  Optional message new sponsors at this tier will receive.\n  \"\"\"\n  welcomeMessage: String\n}\n\n\"\"\"\nAutogenerated return type of CreateSponsorsTier\n\"\"\"\ntype CreateSponsorsTierPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new tier.\n  \"\"\"\n  sponsorsTier: SponsorsTier\n}\n\n\"\"\"\nAutogenerated input type of CreateSponsorship\n\"\"\"\ninput CreateSponsorshipInput {\n  \"\"\"\n  The amount to pay to the sponsorable in US dollars. Required if a tierId is not specified. Valid values: 1-12000.\n  \"\"\"\n  amount: Int\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Whether the sponsorship should happen monthly/yearly or just this one time. Required if a tierId is not specified.\n  \"\"\"\n  isRecurring: Boolean\n\n  \"\"\"\n  Specify whether others should be able to see that the sponsor is sponsoring\n  the sponsorable. Public visibility still does not reveal which tier is used.\n  \"\"\"\n  privacyLevel: SponsorshipPrivacy = PUBLIC\n\n  \"\"\"\n  Whether the sponsor should receive email updates from the sponsorable.\n  \"\"\"\n  receiveEmails: Boolean = true\n\n  \"\"\"\n  The ID of the user or organization who is acting as the sponsor, paying for\n  the sponsorship. Required if sponsorLogin is not given.\n  \"\"\"\n  sponsorId: ID @possibleTypes(concreteTypes: [\"Organization\", \"User\"], abstractType: \"Sponsor\")\n\n  \"\"\"\n  The username of the user or organization who is acting as the sponsor, paying\n  for the sponsorship. Required if sponsorId is not given.\n  \"\"\"\n  sponsorLogin: String\n\n  \"\"\"\n  The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given.\n  \"\"\"\n  sponsorableId: ID @possibleTypes(concreteTypes: [\"Organization\", \"User\"], abstractType: \"Sponsorable\")\n\n  \"\"\"\n  The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given.\n  \"\"\"\n  sponsorableLogin: String\n\n  \"\"\"\n  The ID of one of sponsorable's existing tiers to sponsor at. Required if amount is not specified.\n  \"\"\"\n  tierId: ID @possibleTypes(concreteTypes: [\"SponsorsTier\"])\n}\n\n\"\"\"\nAutogenerated return type of CreateSponsorship\n\"\"\"\ntype CreateSponsorshipPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The sponsorship that was started.\n  \"\"\"\n  sponsorship: Sponsorship\n}\n\n\"\"\"\nAutogenerated input type of CreateSponsorships\n\"\"\"\ninput CreateSponsorshipsInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Specify whether others should be able to see that the sponsor is sponsoring\n  the sponsorables. Public visibility still does not reveal the dollar value of\n  the sponsorship.\n  \"\"\"\n  privacyLevel: SponsorshipPrivacy = PUBLIC\n\n  \"\"\"\n  Whether the sponsor should receive email updates from the sponsorables.\n  \"\"\"\n  receiveEmails: Boolean = false\n\n  \"\"\"\n  The username of the user or organization who is acting as the sponsor, paying for the sponsorships.\n  \"\"\"\n  sponsorLogin: String!\n\n  \"\"\"\n  The list of maintainers to sponsor and for how much apiece.\n  \"\"\"\n  sponsorships: [BulkSponsorship!]!\n}\n\n\"\"\"\nAutogenerated return type of CreateSponsorships\n\"\"\"\ntype CreateSponsorshipsPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The users and organizations who received a sponsorship.\n  \"\"\"\n  sponsorables: [Sponsorable!]\n}\n\n\"\"\"\nAutogenerated input type of CreateTeamDiscussionComment\n\"\"\"\ninput CreateTeamDiscussionCommentInput {\n  \"\"\"\n  The content of the comment. This field is required.\n\n  **Upcoming Change on 2024-07-01 UTC**\n  **Description:** `body` will be removed. Follow the guide at\n  https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\n  find a suitable replacement.\n  **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the discussion to which the comment belongs. This field is required.\n\n  **Upcoming Change on 2024-07-01 UTC**\n  **Description:** `discussionId` will be removed. Follow the guide at\n  https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\n  find a suitable replacement.\n  **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions.\n  \"\"\"\n  discussionId: ID @possibleTypes(concreteTypes: [\"TeamDiscussion\"])\n}\n\n\"\"\"\nAutogenerated return type of CreateTeamDiscussionComment\n\"\"\"\ntype CreateTeamDiscussionCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new comment.\n  \"\"\"\n  teamDiscussionComment: TeamDiscussionComment\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n}\n\n\"\"\"\nAutogenerated input type of CreateTeamDiscussion\n\"\"\"\ninput CreateTeamDiscussionInput {\n  \"\"\"\n  The content of the discussion. This field is required.\n\n  **Upcoming Change on 2024-07-01 UTC**\n  **Description:** `body` will be removed. Follow the guide at\n  https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\n  find a suitable replacement.\n  **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  If true, restricts the visibility of this discussion to team members and\n  organization owners. If false or not specified, allows any organization member\n  to view this discussion.\n\n  **Upcoming Change on 2024-07-01 UTC**\n  **Description:** `private` will be removed. Follow the guide at\n  https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\n  find a suitable replacement.\n  **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions.\n  \"\"\"\n  private: Boolean\n\n  \"\"\"\n  The ID of the team to which the discussion belongs. This field is required.\n\n  **Upcoming Change on 2024-07-01 UTC**\n  **Description:** `teamId` will be removed. Follow the guide at\n  https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\n  find a suitable replacement.\n  **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions.\n  \"\"\"\n  teamId: ID @possibleTypes(concreteTypes: [\"Team\"])\n\n  \"\"\"\n  The title of the discussion. This field is required.\n\n  **Upcoming Change on 2024-07-01 UTC**\n  **Description:** `title` will be removed. Follow the guide at\n  https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\n  find a suitable replacement.\n  **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions.\n  \"\"\"\n  title: String\n}\n\n\"\"\"\nAutogenerated return type of CreateTeamDiscussion\n\"\"\"\ntype CreateTeamDiscussionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new discussion.\n  \"\"\"\n  teamDiscussion: TeamDiscussion\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n}\n\n\"\"\"\nAutogenerated input type of CreateUserList\n\"\"\"\ninput CreateUserListInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A description of the list\n  \"\"\"\n  description: String\n\n  \"\"\"\n  Whether or not the list is private\n  \"\"\"\n  isPrivate: Boolean = false\n\n  \"\"\"\n  The name of the new list\n  \"\"\"\n  name: String!\n}\n\n\"\"\"\nAutogenerated return type of CreateUserList\n\"\"\"\ntype CreateUserListPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The list that was just created\n  \"\"\"\n  list: UserList\n\n  \"\"\"\n  The user who created the list\n  \"\"\"\n  viewer: User\n}\n\n\"\"\"\nRepresents the contribution a user made by committing to a repository.\n\"\"\"\ntype CreatedCommitContribution implements Contribution {\n  \"\"\"\n  How many commits were made on this day to this repository by the user.\n  \"\"\"\n  commitCount: Int!\n\n  \"\"\"\n  Whether this contribution is associated with a record you do not have access to. For\n  example, your own 'first issue' contribution may have been made on a repository you can no\n  longer access.\n  \"\"\"\n  isRestricted: Boolean!\n\n  \"\"\"\n  When this contribution was made.\n  \"\"\"\n  occurredAt: DateTime!\n\n  \"\"\"\n  The repository the user made a commit in.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for this contribution.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this contribution.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  The user who made this contribution.\n  \"\"\"\n  user: User!\n}\n\n\"\"\"\nThe connection type for CreatedCommitContribution.\n\"\"\"\ntype CreatedCommitContributionConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CreatedCommitContributionEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [CreatedCommitContribution]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of commits across days and repositories in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype CreatedCommitContributionEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: CreatedCommitContribution\n}\n\n\"\"\"\nRepresents the contribution a user made on GitHub by opening an issue.\n\"\"\"\ntype CreatedIssueContribution implements Contribution {\n  \"\"\"\n  Whether this contribution is associated with a record you do not have access to. For\n  example, your own 'first issue' contribution may have been made on a repository you can no\n  longer access.\n  \"\"\"\n  isRestricted: Boolean!\n\n  \"\"\"\n  The issue that was opened.\n  \"\"\"\n  issue: Issue!\n\n  \"\"\"\n  When this contribution was made.\n  \"\"\"\n  occurredAt: DateTime!\n\n  \"\"\"\n  The HTTP path for this contribution.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this contribution.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  The user who made this contribution.\n  \"\"\"\n  user: User!\n}\n\n\"\"\"\nThe connection type for CreatedIssueContribution.\n\"\"\"\ntype CreatedIssueContributionConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CreatedIssueContributionEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [CreatedIssueContribution]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype CreatedIssueContributionEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: CreatedIssueContribution\n}\n\n\"\"\"\nRepresents either a issue the viewer can access or a restricted contribution.\n\"\"\"\nunion CreatedIssueOrRestrictedContribution = CreatedIssueContribution | RestrictedContribution\n\n\"\"\"\nRepresents the contribution a user made on GitHub by opening a pull request.\n\"\"\"\ntype CreatedPullRequestContribution implements Contribution {\n  \"\"\"\n  Whether this contribution is associated with a record you do not have access to. For\n  example, your own 'first issue' contribution may have been made on a repository you can no\n  longer access.\n  \"\"\"\n  isRestricted: Boolean!\n\n  \"\"\"\n  When this contribution was made.\n  \"\"\"\n  occurredAt: DateTime!\n\n  \"\"\"\n  The pull request that was opened.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  The HTTP path for this contribution.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this contribution.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  The user who made this contribution.\n  \"\"\"\n  user: User!\n}\n\n\"\"\"\nThe connection type for CreatedPullRequestContribution.\n\"\"\"\ntype CreatedPullRequestContributionConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CreatedPullRequestContributionEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [CreatedPullRequestContribution]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype CreatedPullRequestContributionEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: CreatedPullRequestContribution\n}\n\n\"\"\"\nRepresents either a pull request the viewer can access or a restricted contribution.\n\"\"\"\nunion CreatedPullRequestOrRestrictedContribution = CreatedPullRequestContribution | RestrictedContribution\n\n\"\"\"\nRepresents the contribution a user made by leaving a review on a pull request.\n\"\"\"\ntype CreatedPullRequestReviewContribution implements Contribution {\n  \"\"\"\n  Whether this contribution is associated with a record you do not have access to. For\n  example, your own 'first issue' contribution may have been made on a repository you can no\n  longer access.\n  \"\"\"\n  isRestricted: Boolean!\n\n  \"\"\"\n  When this contribution was made.\n  \"\"\"\n  occurredAt: DateTime!\n\n  \"\"\"\n  The pull request the user reviewed.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  The review the user left on the pull request.\n  \"\"\"\n  pullRequestReview: PullRequestReview!\n\n  \"\"\"\n  The repository containing the pull request that the user reviewed.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for this contribution.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this contribution.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  The user who made this contribution.\n  \"\"\"\n  user: User!\n}\n\n\"\"\"\nThe connection type for CreatedPullRequestReviewContribution.\n\"\"\"\ntype CreatedPullRequestReviewContributionConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CreatedPullRequestReviewContributionEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [CreatedPullRequestReviewContribution]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype CreatedPullRequestReviewContributionEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: CreatedPullRequestReviewContribution\n}\n\n\"\"\"\nRepresents the contribution a user made on GitHub by creating a repository.\n\"\"\"\ntype CreatedRepositoryContribution implements Contribution {\n  \"\"\"\n  Whether this contribution is associated with a record you do not have access to. For\n  example, your own 'first issue' contribution may have been made on a repository you can no\n  longer access.\n  \"\"\"\n  isRestricted: Boolean!\n\n  \"\"\"\n  When this contribution was made.\n  \"\"\"\n  occurredAt: DateTime!\n\n  \"\"\"\n  The repository that was created.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for this contribution.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this contribution.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  The user who made this contribution.\n  \"\"\"\n  user: User!\n}\n\n\"\"\"\nThe connection type for CreatedRepositoryContribution.\n\"\"\"\ntype CreatedRepositoryContributionConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [CreatedRepositoryContributionEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [CreatedRepositoryContribution]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype CreatedRepositoryContributionEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: CreatedRepositoryContribution\n}\n\n\"\"\"\nRepresents either a repository the viewer can access or a restricted contribution.\n\"\"\"\nunion CreatedRepositoryOrRestrictedContribution = CreatedRepositoryContribution | RestrictedContribution\n\n\"\"\"\nRepresents a mention made by one issue or pull request to another.\n\"\"\"\ntype CrossReferencedEvent implements Node & UniformResourceLocatable {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the CrossReferencedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Reference originated in a different repository.\n  \"\"\"\n  isCrossRepository: Boolean!\n\n  \"\"\"\n  Identifies when the reference was made.\n  \"\"\"\n  referencedAt: DateTime!\n\n  \"\"\"\n  The HTTP path for this pull request.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Issue or pull request that made the reference.\n  \"\"\"\n  source: ReferencedSubject!\n\n  \"\"\"\n  Issue or pull request to which the reference was made.\n  \"\"\"\n  target: ReferencedSubject!\n\n  \"\"\"\n  The HTTP URL for this pull request.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Checks if the target will be closed when the source is merged.\n  \"\"\"\n  willCloseTarget: Boolean!\n}\n\n\"\"\"\nAn ISO-8601 encoded date string.\n\"\"\"\nscalar Date\n\n\"\"\"\nAn ISO-8601 encoded UTC date string.\n\"\"\"\nscalar DateTime\n\n\"\"\"\nAutogenerated input type of DeclineTopicSuggestion\n\"\"\"\ninput DeclineTopicSuggestionInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The name of the suggested topic.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The reason why the suggested topic is declined.\n  \"\"\"\n  reason: TopicSuggestionDeclineReason!\n\n  \"\"\"\n  The Node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of DeclineTopicSuggestion\n\"\"\"\ntype DeclineTopicSuggestionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The declined topic.\n  \"\"\"\n  topic: Topic\n}\n\n\"\"\"\nThe possible base permissions for repositories.\n\"\"\"\nenum DefaultRepositoryPermissionField {\n  \"\"\"\n  Can read, write, and administrate repos by default\n  \"\"\"\n  ADMIN\n\n  \"\"\"\n  No access\n  \"\"\"\n  NONE\n\n  \"\"\"\n  Can read repos by default\n  \"\"\"\n  READ\n\n  \"\"\"\n  Can read and write repos by default\n  \"\"\"\n  WRITE\n}\n\n\"\"\"\nEntities that can be deleted.\n\"\"\"\ninterface Deletable {\n  \"\"\"\n  Check if the current viewer can delete this object.\n  \"\"\"\n  viewerCanDelete: Boolean!\n}\n\n\"\"\"\nAutogenerated input type of DeleteBranchProtectionRule\n\"\"\"\ninput DeleteBranchProtectionRuleInput {\n  \"\"\"\n  The global relay id of the branch protection rule to be deleted.\n  \"\"\"\n  branchProtectionRuleId: ID! @possibleTypes(concreteTypes: [\"BranchProtectionRule\"])\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated return type of DeleteBranchProtectionRule\n\"\"\"\ntype DeleteBranchProtectionRulePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of DeleteDeployment\n\"\"\"\ninput DeleteDeploymentInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the deployment to be deleted.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"Deployment\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteDeployment\n\"\"\"\ntype DeleteDeploymentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of DeleteDiscussionComment\n\"\"\"\ninput DeleteDiscussionCommentInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node id of the discussion comment to delete.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"DiscussionComment\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteDiscussionComment\n\"\"\"\ntype DeleteDiscussionCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The discussion comment that was just deleted.\n  \"\"\"\n  comment: DiscussionComment\n}\n\n\"\"\"\nAutogenerated input type of DeleteDiscussion\n\"\"\"\ninput DeleteDiscussionInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The id of the discussion to delete.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"Discussion\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteDiscussion\n\"\"\"\ntype DeleteDiscussionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The discussion that was just deleted.\n  \"\"\"\n  discussion: Discussion\n}\n\n\"\"\"\nAutogenerated input type of DeleteEnvironment\n\"\"\"\ninput DeleteEnvironmentInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the environment to be deleted.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"Environment\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteEnvironment\n\"\"\"\ntype DeleteEnvironmentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of DeleteIpAllowListEntry\n\"\"\"\ninput DeleteIpAllowListEntryInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the IP allow list entry to delete.\n  \"\"\"\n  ipAllowListEntryId: ID! @possibleTypes(concreteTypes: [\"IpAllowListEntry\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteIpAllowListEntry\n\"\"\"\ntype DeleteIpAllowListEntryPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The IP allow list entry that was deleted.\n  \"\"\"\n  ipAllowListEntry: IpAllowListEntry\n}\n\n\"\"\"\nAutogenerated input type of DeleteIssueComment\n\"\"\"\ninput DeleteIssueCommentInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the comment to delete.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"IssueComment\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteIssueComment\n\"\"\"\ntype DeleteIssueCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of DeleteIssue\n\"\"\"\ninput DeleteIssueInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the issue to delete.\n  \"\"\"\n  issueId: ID! @possibleTypes(concreteTypes: [\"Issue\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteIssue\n\"\"\"\ntype DeleteIssuePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The repository the issue belonged to\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nAutogenerated input type of DeleteLabel\n\"\"\"\ninput DeleteLabelInput @preview(toggledBy: \"bane-preview\") {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the label to be deleted.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"Label\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteLabel\n\"\"\"\ntype DeleteLabelPayload @preview(toggledBy: \"bane-preview\") {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of DeleteLinkedBranch\n\"\"\"\ninput DeleteLinkedBranchInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the linked branch\n  \"\"\"\n  linkedBranchId: ID! @possibleTypes(concreteTypes: [\"LinkedBranch\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteLinkedBranch\n\"\"\"\ntype DeleteLinkedBranchPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The issue the linked branch was unlinked from.\n  \"\"\"\n  issue: Issue\n}\n\n\"\"\"\nAutogenerated input type of DeletePackageVersion\n\"\"\"\ninput DeletePackageVersionInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the package version to be deleted.\n  \"\"\"\n  packageVersionId: ID! @possibleTypes(concreteTypes: [\"PackageVersion\"])\n}\n\n\"\"\"\nAutogenerated return type of DeletePackageVersion\n\"\"\"\ntype DeletePackageVersionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Whether or not the operation succeeded.\n  \"\"\"\n  success: Boolean\n}\n\n\"\"\"\nAutogenerated input type of DeleteProjectCard\n\"\"\"\ninput DeleteProjectCardInput {\n  \"\"\"\n  The id of the card to delete.\n  \"\"\"\n  cardId: ID! @possibleTypes(concreteTypes: [\"ProjectCard\"])\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated return type of DeleteProjectCard\n\"\"\"\ntype DeleteProjectCardPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The column the deleted card was in.\n  \"\"\"\n  column: ProjectColumn\n\n  \"\"\"\n  The deleted card ID.\n  \"\"\"\n  deletedCardId: ID\n}\n\n\"\"\"\nAutogenerated input type of DeleteProjectColumn\n\"\"\"\ninput DeleteProjectColumnInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The id of the column to delete.\n  \"\"\"\n  columnId: ID! @possibleTypes(concreteTypes: [\"ProjectColumn\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteProjectColumn\n\"\"\"\ntype DeleteProjectColumnPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The deleted column ID.\n  \"\"\"\n  deletedColumnId: ID\n\n  \"\"\"\n  The project the deleted column was in.\n  \"\"\"\n  project: Project\n}\n\n\"\"\"\nAutogenerated input type of DeleteProject\n\"\"\"\ninput DeleteProjectInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Project ID to update.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"Project\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteProject\n\"\"\"\ntype DeleteProjectPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The repository or organization the project was removed from.\n  \"\"\"\n  owner: ProjectOwner\n}\n\n\"\"\"\nAutogenerated input type of DeleteProjectV2Field\n\"\"\"\ninput DeleteProjectV2FieldInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the field to delete.\n  \"\"\"\n  fieldId: ID!\n    @possibleTypes(\n      concreteTypes: [\"ProjectV2Field\", \"ProjectV2IterationField\", \"ProjectV2SingleSelectField\"]\n      abstractType: \"ProjectV2FieldConfiguration\"\n    )\n}\n\n\"\"\"\nAutogenerated return type of DeleteProjectV2Field\n\"\"\"\ntype DeleteProjectV2FieldPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The deleted field.\n  \"\"\"\n  projectV2Field: ProjectV2FieldConfiguration\n}\n\n\"\"\"\nAutogenerated input type of DeleteProjectV2\n\"\"\"\ninput DeleteProjectV2Input {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the Project to delete.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n}\n\n\"\"\"\nAutogenerated input type of DeleteProjectV2Item\n\"\"\"\ninput DeleteProjectV2ItemInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the item to be removed.\n  \"\"\"\n  itemId: ID! @possibleTypes(concreteTypes: [\"ProjectV2Item\"])\n\n  \"\"\"\n  The ID of the Project from which the item should be removed.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteProjectV2Item\n\"\"\"\ntype DeleteProjectV2ItemPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the deleted item.\n  \"\"\"\n  deletedItemId: ID\n}\n\n\"\"\"\nAutogenerated return type of DeleteProjectV2\n\"\"\"\ntype DeleteProjectV2Payload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The deleted Project.\n  \"\"\"\n  projectV2: ProjectV2\n}\n\n\"\"\"\nAutogenerated input type of DeleteProjectV2Workflow\n\"\"\"\ninput DeleteProjectV2WorkflowInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the workflow to be removed.\n  \"\"\"\n  workflowId: ID! @possibleTypes(concreteTypes: [\"ProjectV2Workflow\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteProjectV2Workflow\n\"\"\"\ntype DeleteProjectV2WorkflowPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the deleted workflow.\n  \"\"\"\n  deletedWorkflowId: ID\n\n  \"\"\"\n  The project the deleted workflow was in.\n  \"\"\"\n  projectV2: ProjectV2\n}\n\n\"\"\"\nAutogenerated input type of DeletePullRequestReviewComment\n\"\"\"\ninput DeletePullRequestReviewCommentInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the comment to delete.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"PullRequestReviewComment\"])\n}\n\n\"\"\"\nAutogenerated return type of DeletePullRequestReviewComment\n\"\"\"\ntype DeletePullRequestReviewCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The pull request review the deleted comment belonged to.\n  \"\"\"\n  pullRequestReview: PullRequestReview\n\n  \"\"\"\n  The deleted pull request review comment.\n  \"\"\"\n  pullRequestReviewComment: PullRequestReviewComment\n}\n\n\"\"\"\nAutogenerated input type of DeletePullRequestReview\n\"\"\"\ninput DeletePullRequestReviewInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the pull request review to delete.\n  \"\"\"\n  pullRequestReviewId: ID! @possibleTypes(concreteTypes: [\"PullRequestReview\"])\n}\n\n\"\"\"\nAutogenerated return type of DeletePullRequestReview\n\"\"\"\ntype DeletePullRequestReviewPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The deleted pull request review.\n  \"\"\"\n  pullRequestReview: PullRequestReview\n}\n\n\"\"\"\nAutogenerated input type of DeleteRef\n\"\"\"\ninput DeleteRefInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the Ref to be deleted.\n  \"\"\"\n  refId: ID! @possibleTypes(concreteTypes: [\"Ref\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteRef\n\"\"\"\ntype DeleteRefPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of DeleteRepositoryRuleset\n\"\"\"\ninput DeleteRepositoryRulesetInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The global relay id of the repository ruleset to be deleted.\n  \"\"\"\n  repositoryRulesetId: ID! @possibleTypes(concreteTypes: [\"RepositoryRuleset\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteRepositoryRuleset\n\"\"\"\ntype DeleteRepositoryRulesetPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of DeleteTeamDiscussionComment\n\"\"\"\ninput DeleteTeamDiscussionCommentInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the comment to delete.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"TeamDiscussionComment\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteTeamDiscussionComment\n\"\"\"\ntype DeleteTeamDiscussionCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of DeleteTeamDiscussion\n\"\"\"\ninput DeleteTeamDiscussionInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The discussion ID to delete.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"TeamDiscussion\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteTeamDiscussion\n\"\"\"\ntype DeleteTeamDiscussionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of DeleteUserList\n\"\"\"\ninput DeleteUserListInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the list to delete.\n  \"\"\"\n  listId: ID! @possibleTypes(concreteTypes: [\"UserList\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteUserList\n\"\"\"\ntype DeleteUserListPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The owner of the list that will be deleted\n  \"\"\"\n  user: User\n}\n\n\"\"\"\nAutogenerated input type of DeleteVerifiableDomain\n\"\"\"\ninput DeleteVerifiableDomainInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the verifiable domain to delete.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"VerifiableDomain\"])\n}\n\n\"\"\"\nAutogenerated return type of DeleteVerifiableDomain\n\"\"\"\ntype DeleteVerifiableDomainPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The owning account from which the domain was deleted.\n  \"\"\"\n  owner: VerifiableDomainOwner\n}\n\n\"\"\"\nRepresents a 'demilestoned' event on a given issue or pull request.\n\"\"\"\ntype DemilestonedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the DemilestonedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the milestone title associated with the 'demilestoned' event.\n  \"\"\"\n  milestoneTitle: String!\n\n  \"\"\"\n  Object referenced by event.\n  \"\"\"\n  subject: MilestoneItem!\n}\n\n\"\"\"\nA Dependabot Update for a dependency in a repository\n\"\"\"\ntype DependabotUpdate implements RepositoryNode {\n  \"\"\"\n  The error from a dependency update\n  \"\"\"\n  error: DependabotUpdateError\n\n  \"\"\"\n  The associated pull request\n  \"\"\"\n  pullRequest: PullRequest\n\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nAn error produced from a Dependabot Update\n\"\"\"\ntype DependabotUpdateError {\n  \"\"\"\n  The body of the error\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The error code\n  \"\"\"\n  errorType: String!\n\n  \"\"\"\n  The title of the error\n  \"\"\"\n  title: String!\n}\n\n\"\"\"\nA dependency manifest entry\n\"\"\"\ntype DependencyGraphDependency @preview(toggledBy: \"hawkgirl-preview\") {\n  \"\"\"\n  Does the dependency itself have dependencies?\n  \"\"\"\n  hasDependencies: Boolean!\n\n  \"\"\"\n  The original name of the package, as it appears in the manifest.\n  \"\"\"\n  packageLabel: String!\n    @deprecated(\n      reason: \"`packageLabel` will be removed. Use normalized `packageName` field instead. Removal on 2022-10-01 UTC.\"\n    )\n\n  \"\"\"\n  The dependency package manager\n  \"\"\"\n  packageManager: String\n\n  \"\"\"\n  The name of the package in the canonical form used by the package manager.\n  \"\"\"\n  packageName: String!\n\n  \"\"\"\n  The repository containing the package\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The dependency version requirements\n  \"\"\"\n  requirements: String!\n}\n\n\"\"\"\nThe connection type for DependencyGraphDependency.\n\"\"\"\ntype DependencyGraphDependencyConnection @preview(toggledBy: \"hawkgirl-preview\") {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DependencyGraphDependencyEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [DependencyGraphDependency]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DependencyGraphDependencyEdge @preview(toggledBy: \"hawkgirl-preview\") {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: DependencyGraphDependency\n}\n\n\"\"\"\nThe possible ecosystems of a dependency graph package.\n\"\"\"\nenum DependencyGraphEcosystem {\n  \"\"\"\n  GitHub Actions\n  \"\"\"\n  ACTIONS\n\n  \"\"\"\n  PHP packages hosted at packagist.org\n  \"\"\"\n  COMPOSER\n\n  \"\"\"\n  Go modules\n  \"\"\"\n  GO\n\n  \"\"\"\n  Java artifacts hosted at the Maven central repository\n  \"\"\"\n  MAVEN\n\n  \"\"\"\n  JavaScript packages hosted at npmjs.com\n  \"\"\"\n  NPM\n\n  \"\"\"\n  .NET packages hosted at the NuGet Gallery\n  \"\"\"\n  NUGET\n\n  \"\"\"\n  Python packages hosted at PyPI.org\n  \"\"\"\n  PIP\n\n  \"\"\"\n  Dart packages hosted at pub.dev\n  \"\"\"\n  PUB\n\n  \"\"\"\n  Ruby gems hosted at RubyGems.org\n  \"\"\"\n  RUBYGEMS\n\n  \"\"\"\n  Rust crates\n  \"\"\"\n  RUST\n\n  \"\"\"\n  Swift packages\n  \"\"\"\n  SWIFT\n}\n\n\"\"\"\nDependency manifest for a repository\n\"\"\"\ntype DependencyGraphManifest implements Node @preview(toggledBy: \"hawkgirl-preview\") {\n  \"\"\"\n  Path to view the manifest file blob\n  \"\"\"\n  blobPath: String!\n\n  \"\"\"\n  A list of manifest dependencies\n  \"\"\"\n  dependencies(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): DependencyGraphDependencyConnection\n\n  \"\"\"\n  The number of dependencies listed in the manifest\n  \"\"\"\n  dependenciesCount: Int\n\n  \"\"\"\n  Is the manifest too big to parse?\n  \"\"\"\n  exceedsMaxSize: Boolean!\n\n  \"\"\"\n  Fully qualified manifest filename\n  \"\"\"\n  filename: String!\n\n  \"\"\"\n  The Node ID of the DependencyGraphManifest object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Were we able to parse the manifest?\n  \"\"\"\n  parseable: Boolean!\n\n  \"\"\"\n  The repository containing the manifest\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nThe connection type for DependencyGraphManifest.\n\"\"\"\ntype DependencyGraphManifestConnection @preview(toggledBy: \"hawkgirl-preview\") {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DependencyGraphManifestEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [DependencyGraphManifest]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DependencyGraphManifestEdge @preview(toggledBy: \"hawkgirl-preview\") {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: DependencyGraphManifest\n}\n\n\"\"\"\nA repository deploy key.\n\"\"\"\ntype DeployKey implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the DeployKey object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The deploy key.\n  \"\"\"\n  key: String!\n\n  \"\"\"\n  Whether or not the deploy key is read only.\n  \"\"\"\n  readOnly: Boolean!\n\n  \"\"\"\n  The deploy key title.\n  \"\"\"\n  title: String!\n\n  \"\"\"\n  Whether or not the deploy key has been verified.\n  \"\"\"\n  verified: Boolean!\n}\n\n\"\"\"\nThe connection type for DeployKey.\n\"\"\"\ntype DeployKeyConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DeployKeyEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [DeployKey]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DeployKeyEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: DeployKey\n}\n\n\"\"\"\nRepresents a 'deployed' event on a given pull request.\n\"\"\"\ntype DeployedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The deployment associated with the 'deployed' event.\n  \"\"\"\n  deployment: Deployment!\n\n  \"\"\"\n  The Node ID of the DeployedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  The ref associated with the 'deployed' event.\n  \"\"\"\n  ref: Ref\n}\n\n\"\"\"\nRepresents triggered deployment instance.\n\"\"\"\ntype Deployment implements Node {\n  \"\"\"\n  Identifies the commit sha of the deployment.\n  \"\"\"\n  commit: Commit\n\n  \"\"\"\n  Identifies the oid of the deployment commit, even if the commit has been deleted.\n  \"\"\"\n  commitOid: String!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the actor who triggered the deployment.\n  \"\"\"\n  creator: Actor!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The deployment description.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The latest environment to which this deployment was made.\n  \"\"\"\n  environment: String\n\n  \"\"\"\n  The Node ID of the Deployment object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The latest environment to which this deployment was made.\n  \"\"\"\n  latestEnvironment: String\n\n  \"\"\"\n  The latest status of this deployment.\n  \"\"\"\n  latestStatus: DeploymentStatus\n\n  \"\"\"\n  The original environment to which this deployment was made.\n  \"\"\"\n  originalEnvironment: String\n\n  \"\"\"\n  Extra information that a deployment system might need.\n  \"\"\"\n  payload: String\n\n  \"\"\"\n  Identifies the Ref of the deployment, if the deployment was created by ref.\n  \"\"\"\n  ref: Ref\n\n  \"\"\"\n  Identifies the repository associated with the deployment.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The current state of the deployment.\n  \"\"\"\n  state: DeploymentState\n\n  \"\"\"\n  A list of statuses associated with the deployment.\n  \"\"\"\n  statuses(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): DeploymentStatusConnection\n\n  \"\"\"\n  The deployment task.\n  \"\"\"\n  task: String\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe connection type for Deployment.\n\"\"\"\ntype DeploymentConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DeploymentEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Deployment]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DeploymentEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Deployment\n}\n\n\"\"\"\nRepresents a 'deployment_environment_changed' event on a given pull request.\n\"\"\"\ntype DeploymentEnvironmentChangedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The deployment status that updated the deployment environment.\n  \"\"\"\n  deploymentStatus: DeploymentStatus!\n\n  \"\"\"\n  The Node ID of the DeploymentEnvironmentChangedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n}\n\n\"\"\"\nOrdering options for deployment connections\n\"\"\"\ninput DeploymentOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order deployments by.\n  \"\"\"\n  field: DeploymentOrderField!\n}\n\n\"\"\"\nProperties by which deployment connections can be ordered.\n\"\"\"\nenum DeploymentOrderField {\n  \"\"\"\n  Order collection by creation time\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nA protection rule.\n\"\"\"\ntype DeploymentProtectionRule {\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  Whether deployments to this environment can be approved by the user who created the deployment.\n  \"\"\"\n  preventSelfReview: Boolean\n\n  \"\"\"\n  The teams or users that can review the deployment\n  \"\"\"\n  reviewers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): DeploymentReviewerConnection!\n\n  \"\"\"\n  The timeout in minutes for this protection rule.\n  \"\"\"\n  timeout: Int!\n\n  \"\"\"\n  The type of protection rule.\n  \"\"\"\n  type: DeploymentProtectionRuleType!\n}\n\n\"\"\"\nThe connection type for DeploymentProtectionRule.\n\"\"\"\ntype DeploymentProtectionRuleConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DeploymentProtectionRuleEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [DeploymentProtectionRule]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DeploymentProtectionRuleEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: DeploymentProtectionRule\n}\n\n\"\"\"\nThe possible protection rule types.\n\"\"\"\nenum DeploymentProtectionRuleType {\n  \"\"\"\n  Required reviewers\n  \"\"\"\n  REQUIRED_REVIEWERS\n\n  \"\"\"\n  Wait timer\n  \"\"\"\n  WAIT_TIMER\n}\n\n\"\"\"\nA request to deploy a workflow run to an environment.\n\"\"\"\ntype DeploymentRequest {\n  \"\"\"\n  Whether or not the current user can approve the deployment\n  \"\"\"\n  currentUserCanApprove: Boolean!\n\n  \"\"\"\n  The target environment of the deployment\n  \"\"\"\n  environment: Environment!\n\n  \"\"\"\n  The teams or users that can review the deployment\n  \"\"\"\n  reviewers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): DeploymentReviewerConnection!\n\n  \"\"\"\n  The wait timer in minutes configured in the environment\n  \"\"\"\n  waitTimer: Int!\n\n  \"\"\"\n  The wait timer in minutes configured in the environment\n  \"\"\"\n  waitTimerStartedAt: DateTime\n}\n\n\"\"\"\nThe connection type for DeploymentRequest.\n\"\"\"\ntype DeploymentRequestConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DeploymentRequestEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [DeploymentRequest]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DeploymentRequestEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: DeploymentRequest\n}\n\n\"\"\"\nA deployment review.\n\"\"\"\ntype DeploymentReview implements Node {\n  \"\"\"\n  The comment the user left.\n  \"\"\"\n  comment: String!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The environments approved or rejected\n  \"\"\"\n  environments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): EnvironmentConnection!\n\n  \"\"\"\n  The Node ID of the DeploymentReview object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The decision of the user.\n  \"\"\"\n  state: DeploymentReviewState!\n\n  \"\"\"\n  The user that reviewed the deployment.\n  \"\"\"\n  user: User!\n}\n\n\"\"\"\nThe connection type for DeploymentReview.\n\"\"\"\ntype DeploymentReviewConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DeploymentReviewEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [DeploymentReview]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DeploymentReviewEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: DeploymentReview\n}\n\n\"\"\"\nThe possible states for a deployment review.\n\"\"\"\nenum DeploymentReviewState {\n  \"\"\"\n  The deployment was approved.\n  \"\"\"\n  APPROVED\n\n  \"\"\"\n  The deployment was rejected.\n  \"\"\"\n  REJECTED\n}\n\n\"\"\"\nUsers and teams.\n\"\"\"\nunion DeploymentReviewer = Team | User\n\n\"\"\"\nThe connection type for DeploymentReviewer.\n\"\"\"\ntype DeploymentReviewerConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DeploymentReviewerEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [DeploymentReviewer]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DeploymentReviewerEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: DeploymentReviewer\n}\n\n\"\"\"\nThe possible states in which a deployment can be.\n\"\"\"\nenum DeploymentState {\n  \"\"\"\n  The pending deployment was not updated after 30 minutes.\n  \"\"\"\n  ABANDONED\n\n  \"\"\"\n  The deployment is currently active.\n  \"\"\"\n  ACTIVE\n\n  \"\"\"\n  An inactive transient deployment.\n  \"\"\"\n  DESTROYED\n\n  \"\"\"\n  The deployment experienced an error.\n  \"\"\"\n  ERROR\n\n  \"\"\"\n  The deployment has failed.\n  \"\"\"\n  FAILURE\n\n  \"\"\"\n  The deployment is inactive.\n  \"\"\"\n  INACTIVE\n\n  \"\"\"\n  The deployment is in progress.\n  \"\"\"\n  IN_PROGRESS\n\n  \"\"\"\n  The deployment is pending.\n  \"\"\"\n  PENDING\n\n  \"\"\"\n  The deployment has queued\n  \"\"\"\n  QUEUED\n\n  \"\"\"\n  The deployment was successful.\n  \"\"\"\n  SUCCESS\n\n  \"\"\"\n  The deployment is waiting.\n  \"\"\"\n  WAITING\n}\n\n\"\"\"\nDescribes the status of a given deployment attempt.\n\"\"\"\ntype DeploymentStatus implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the actor who triggered the deployment.\n  \"\"\"\n  creator: Actor!\n\n  \"\"\"\n  Identifies the deployment associated with status.\n  \"\"\"\n  deployment: Deployment!\n\n  \"\"\"\n  Identifies the description of the deployment.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  Identifies the environment of the deployment at the time of this deployment status\n  \"\"\"\n  environment: String @preview(toggledBy: \"flash-preview\")\n\n  \"\"\"\n  Identifies the environment URL of the deployment.\n  \"\"\"\n  environmentUrl: URI\n\n  \"\"\"\n  The Node ID of the DeploymentStatus object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the log URL of the deployment.\n  \"\"\"\n  logUrl: URI\n\n  \"\"\"\n  Identifies the current state of the deployment.\n  \"\"\"\n  state: DeploymentStatusState!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe connection type for DeploymentStatus.\n\"\"\"\ntype DeploymentStatusConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DeploymentStatusEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [DeploymentStatus]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DeploymentStatusEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: DeploymentStatus\n}\n\n\"\"\"\nThe possible states for a deployment status.\n\"\"\"\nenum DeploymentStatusState {\n  \"\"\"\n  The deployment experienced an error.\n  \"\"\"\n  ERROR\n\n  \"\"\"\n  The deployment has failed.\n  \"\"\"\n  FAILURE\n\n  \"\"\"\n  The deployment is inactive.\n  \"\"\"\n  INACTIVE\n\n  \"\"\"\n  The deployment is in progress.\n  \"\"\"\n  IN_PROGRESS\n\n  \"\"\"\n  The deployment is pending.\n  \"\"\"\n  PENDING\n\n  \"\"\"\n  The deployment is queued\n  \"\"\"\n  QUEUED\n\n  \"\"\"\n  The deployment was successful.\n  \"\"\"\n  SUCCESS\n\n  \"\"\"\n  The deployment is waiting.\n  \"\"\"\n  WAITING\n}\n\n\"\"\"\nAutogenerated input type of DequeuePullRequest\n\"\"\"\ninput DequeuePullRequestInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the pull request to be dequeued.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n}\n\n\"\"\"\nAutogenerated return type of DequeuePullRequest\n\"\"\"\ntype DequeuePullRequestPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The merge queue entry of the dequeued pull request.\n  \"\"\"\n  mergeQueueEntry: MergeQueueEntry\n}\n\n\"\"\"\nThe possible sides of a diff.\n\"\"\"\nenum DiffSide {\n  \"\"\"\n  The left side of the diff.\n  \"\"\"\n  LEFT\n\n  \"\"\"\n  The right side of the diff.\n  \"\"\"\n  RIGHT\n}\n\n\"\"\"\nAutogenerated input type of DisablePullRequestAutoMerge\n\"\"\"\ninput DisablePullRequestAutoMergeInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the pull request to disable auto merge on.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n}\n\n\"\"\"\nAutogenerated return type of DisablePullRequestAutoMerge\n\"\"\"\ntype DisablePullRequestAutoMergePayload {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The pull request auto merge was disabled on.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nRepresents a 'disconnected' event on a given issue or pull request.\n\"\"\"\ntype DisconnectedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the DisconnectedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Reference originated in a different repository.\n  \"\"\"\n  isCrossRepository: Boolean!\n\n  \"\"\"\n  Issue or pull request from which the issue was disconnected.\n  \"\"\"\n  source: ReferencedSubject!\n\n  \"\"\"\n  Issue or pull request which was disconnected.\n  \"\"\"\n  subject: ReferencedSubject!\n}\n\n\"\"\"\nA discussion in a repository.\n\"\"\"\ntype Discussion implements Closable & Comment & Deletable & Labelable & Lockable & Node & Reactable & RepositoryNode & Subscribable & Updatable & Votable {\n  \"\"\"\n  Reason that the conversation was locked.\n  \"\"\"\n  activeLockReason: LockReason\n\n  \"\"\"\n  The comment chosen as this discussion's answer, if any.\n  \"\"\"\n  answer: DiscussionComment\n\n  \"\"\"\n  The time when a user chose this discussion's answer, if answered.\n  \"\"\"\n  answerChosenAt: DateTime\n\n  \"\"\"\n  The user who chose this discussion's answer, if answered.\n  \"\"\"\n  answerChosenBy: Actor\n\n  \"\"\"\n  The actor who authored the comment.\n  \"\"\"\n  author: Actor\n\n  \"\"\"\n  Author's association with the subject of the comment.\n  \"\"\"\n  authorAssociation: CommentAuthorAssociation!\n\n  \"\"\"\n  The main text of the discussion post.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The body rendered to text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  The category for this discussion.\n  \"\"\"\n  category: DiscussionCategory!\n\n  \"\"\"\n  Indicates if the object is closed (definition of closed may depend on type)\n  \"\"\"\n  closed: Boolean!\n\n  \"\"\"\n  Identifies the date and time when the object was closed.\n  \"\"\"\n  closedAt: DateTime\n\n  \"\"\"\n  The replies to the discussion.\n  \"\"\"\n  comments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): DiscussionCommentConnection!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Check if this comment was created via an email reply.\n  \"\"\"\n  createdViaEmail: Boolean!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The actor who edited the comment.\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  The Node ID of the Discussion object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if this comment was edited and includes an edit with the creation data\n  \"\"\"\n  includesCreatedEdit: Boolean!\n\n  \"\"\"\n  Only return answered/unanswered discussions\n  \"\"\"\n  isAnswered: Boolean\n\n  \"\"\"\n  A list of labels associated with the object.\n  \"\"\"\n  labels(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for labels returned from the connection.\n    \"\"\"\n    orderBy: LabelOrder = {field: CREATED_AT, direction: ASC}\n  ): LabelConnection\n\n  \"\"\"\n  The moment the editor made the last edit\n  \"\"\"\n  lastEditedAt: DateTime\n\n  \"\"\"\n  `true` if the object is locked\n  \"\"\"\n  locked: Boolean!\n\n  \"\"\"\n  The number identifying this discussion within the repository.\n  \"\"\"\n  number: Int!\n\n  \"\"\"\n  The poll associated with this discussion, if one exists.\n  \"\"\"\n  poll: DiscussionPoll\n\n  \"\"\"\n  Identifies when the comment was published at.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  A list of reactions grouped by content left on the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  A list of Reactions left on the Issue.\n  \"\"\"\n  reactions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Allows filtering Reactions by emoji.\n    \"\"\"\n    content: ReactionContent\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows specifying the order in which reactions are returned.\n    \"\"\"\n    orderBy: ReactionOrder\n  ): ReactionConnection!\n\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The path for this discussion.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the reason for the discussion's state.\n  \"\"\"\n  stateReason: DiscussionStateReason\n\n  \"\"\"\n  The title of this discussion.\n  \"\"\"\n  title: String!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  Number of upvotes that this subject has received.\n  \"\"\"\n  upvoteCount: Int!\n\n  \"\"\"\n  The URL for this discussion.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  A list of edits to this content.\n  \"\"\"\n  userContentEdits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserContentEditConnection\n\n  \"\"\"\n  Indicates if the object can be closed by the viewer.\n  \"\"\"\n  viewerCanClose: Boolean!\n\n  \"\"\"\n  Check if the current viewer can delete this object.\n  \"\"\"\n  viewerCanDelete: Boolean!\n\n  \"\"\"\n  Can user react to this subject\n  \"\"\"\n  viewerCanReact: Boolean!\n\n  \"\"\"\n  Indicates if the object can be reopened by the viewer.\n  \"\"\"\n  viewerCanReopen: Boolean!\n\n  \"\"\"\n  Check if the viewer is able to change their subscription status for the repository.\n  \"\"\"\n  viewerCanSubscribe: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n\n  \"\"\"\n  Whether or not the current user can add or remove an upvote on this subject.\n  \"\"\"\n  viewerCanUpvote: Boolean!\n\n  \"\"\"\n  Did the viewer author this comment.\n  \"\"\"\n  viewerDidAuthor: Boolean!\n\n  \"\"\"\n  Whether or not the current user has already upvoted this subject.\n  \"\"\"\n  viewerHasUpvoted: Boolean!\n\n  \"\"\"\n  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.\n  \"\"\"\n  viewerSubscription: SubscriptionState\n}\n\n\"\"\"\nA category for discussions in a repository.\n\"\"\"\ntype DiscussionCategory implements Node & RepositoryNode {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  A description of this category.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  An emoji representing this category.\n  \"\"\"\n  emoji: String!\n\n  \"\"\"\n  This category's emoji rendered as HTML.\n  \"\"\"\n  emojiHTML: HTML!\n\n  \"\"\"\n  The Node ID of the DiscussionCategory object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether or not discussions in this category support choosing an answer with the markDiscussionCommentAsAnswer mutation.\n  \"\"\"\n  isAnswerable: Boolean!\n\n  \"\"\"\n  The name of this category.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The slug of this category.\n  \"\"\"\n  slug: String!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe connection type for DiscussionCategory.\n\"\"\"\ntype DiscussionCategoryConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DiscussionCategoryEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [DiscussionCategory]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DiscussionCategoryEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: DiscussionCategory\n}\n\n\"\"\"\nThe possible reasons for closing a discussion.\n\"\"\"\nenum DiscussionCloseReason {\n  \"\"\"\n  The discussion is a duplicate of another\n  \"\"\"\n  DUPLICATE\n\n  \"\"\"\n  The discussion is no longer relevant\n  \"\"\"\n  OUTDATED\n\n  \"\"\"\n  The discussion has been resolved\n  \"\"\"\n  RESOLVED\n}\n\n\"\"\"\nA comment on a discussion.\n\"\"\"\ntype DiscussionComment implements Comment & Deletable & Minimizable & Node & Reactable & Updatable & UpdatableComment & Votable {\n  \"\"\"\n  The actor who authored the comment.\n  \"\"\"\n  author: Actor\n\n  \"\"\"\n  Author's association with the subject of the comment.\n  \"\"\"\n  authorAssociation: CommentAuthorAssociation!\n\n  \"\"\"\n  The body as Markdown.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The body rendered to text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Check if this comment was created via an email reply.\n  \"\"\"\n  createdViaEmail: Boolean!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The time when this replied-to comment was deleted\n  \"\"\"\n  deletedAt: DateTime\n\n  \"\"\"\n  The discussion this comment was created in\n  \"\"\"\n  discussion: Discussion\n\n  \"\"\"\n  The actor who edited the comment.\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  The Node ID of the DiscussionComment object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if this comment was edited and includes an edit with the creation data\n  \"\"\"\n  includesCreatedEdit: Boolean!\n\n  \"\"\"\n  Has this comment been chosen as the answer of its discussion?\n  \"\"\"\n  isAnswer: Boolean!\n\n  \"\"\"\n  Returns whether or not a comment has been minimized.\n  \"\"\"\n  isMinimized: Boolean!\n\n  \"\"\"\n  The moment the editor made the last edit\n  \"\"\"\n  lastEditedAt: DateTime\n\n  \"\"\"\n  Returns why the comment was minimized. One of `abuse`, `off-topic`,\n  `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and\n  formatting of these values differs from the inputs to the `MinimizeComment` mutation.\n  \"\"\"\n  minimizedReason: String\n\n  \"\"\"\n  Identifies when the comment was published at.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  A list of reactions grouped by content left on the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  A list of Reactions left on the Issue.\n  \"\"\"\n  reactions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Allows filtering Reactions by emoji.\n    \"\"\"\n    content: ReactionContent\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows specifying the order in which reactions are returned.\n    \"\"\"\n    orderBy: ReactionOrder\n  ): ReactionConnection!\n\n  \"\"\"\n  The threaded replies to this comment.\n  \"\"\"\n  replies(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): DiscussionCommentConnection!\n\n  \"\"\"\n  The discussion comment this comment is a reply to\n  \"\"\"\n  replyTo: DiscussionComment\n\n  \"\"\"\n  The path for this discussion comment.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  Number of upvotes that this subject has received.\n  \"\"\"\n  upvoteCount: Int!\n\n  \"\"\"\n  The URL for this discussion comment.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  A list of edits to this content.\n  \"\"\"\n  userContentEdits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserContentEditConnection\n\n  \"\"\"\n  Check if the current viewer can delete this object.\n  \"\"\"\n  viewerCanDelete: Boolean!\n\n  \"\"\"\n  Can the current user mark this comment as an answer?\n  \"\"\"\n  viewerCanMarkAsAnswer: Boolean!\n\n  \"\"\"\n  Check if the current viewer can minimize this object.\n  \"\"\"\n  viewerCanMinimize: Boolean!\n\n  \"\"\"\n  Can user react to this subject\n  \"\"\"\n  viewerCanReact: Boolean!\n\n  \"\"\"\n  Can the current user unmark this comment as an answer?\n  \"\"\"\n  viewerCanUnmarkAsAnswer: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n\n  \"\"\"\n  Whether or not the current user can add or remove an upvote on this subject.\n  \"\"\"\n  viewerCanUpvote: Boolean!\n\n  \"\"\"\n  Reasons why the current viewer can not update this comment.\n  \"\"\"\n  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!\n\n  \"\"\"\n  Did the viewer author this comment.\n  \"\"\"\n  viewerDidAuthor: Boolean!\n\n  \"\"\"\n  Whether or not the current user has already upvoted this subject.\n  \"\"\"\n  viewerHasUpvoted: Boolean!\n}\n\n\"\"\"\nThe connection type for DiscussionComment.\n\"\"\"\ntype DiscussionCommentConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DiscussionCommentEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [DiscussionComment]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DiscussionCommentEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: DiscussionComment\n}\n\n\"\"\"\nThe connection type for Discussion.\n\"\"\"\ntype DiscussionConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DiscussionEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Discussion]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DiscussionEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Discussion\n}\n\n\"\"\"\nWays in which lists of discussions can be ordered upon return.\n\"\"\"\ninput DiscussionOrder {\n  \"\"\"\n  The direction in which to order discussions by the specified field.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field by which to order discussions.\n  \"\"\"\n  field: DiscussionOrderField!\n}\n\n\"\"\"\nProperties by which discussion connections can be ordered.\n\"\"\"\nenum DiscussionOrderField {\n  \"\"\"\n  Order discussions by creation time.\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order discussions by most recent modification time.\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nA poll for a discussion.\n\"\"\"\ntype DiscussionPoll implements Node {\n  \"\"\"\n  The discussion that this poll belongs to.\n  \"\"\"\n  discussion: Discussion\n\n  \"\"\"\n  The Node ID of the DiscussionPoll object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The options for this poll.\n  \"\"\"\n  options(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    How to order the options for the discussion poll.\n    \"\"\"\n    orderBy: DiscussionPollOptionOrder = {field: AUTHORED_ORDER, direction: ASC}\n  ): DiscussionPollOptionConnection\n\n  \"\"\"\n  The question that is being asked by this poll.\n  \"\"\"\n  question: String!\n\n  \"\"\"\n  The total number of votes that have been cast for this poll.\n  \"\"\"\n  totalVoteCount: Int!\n\n  \"\"\"\n  Indicates if the viewer has permission to vote in this poll.\n  \"\"\"\n  viewerCanVote: Boolean!\n\n  \"\"\"\n  Indicates if the viewer has voted for any option in this poll.\n  \"\"\"\n  viewerHasVoted: Boolean!\n}\n\n\"\"\"\nAn option for a discussion poll.\n\"\"\"\ntype DiscussionPollOption implements Node {\n  \"\"\"\n  The Node ID of the DiscussionPollOption object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The text for this option.\n  \"\"\"\n  option: String!\n\n  \"\"\"\n  The discussion poll that this option belongs to.\n  \"\"\"\n  poll: DiscussionPoll\n\n  \"\"\"\n  The total number of votes that have been cast for this option.\n  \"\"\"\n  totalVoteCount: Int!\n\n  \"\"\"\n  Indicates if the viewer has voted for this option in the poll.\n  \"\"\"\n  viewerHasVoted: Boolean!\n}\n\n\"\"\"\nThe connection type for DiscussionPollOption.\n\"\"\"\ntype DiscussionPollOptionConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [DiscussionPollOptionEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [DiscussionPollOption]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype DiscussionPollOptionEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: DiscussionPollOption\n}\n\n\"\"\"\nOrdering options for discussion poll option connections.\n\"\"\"\ninput DiscussionPollOptionOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order poll options by.\n  \"\"\"\n  field: DiscussionPollOptionOrderField!\n}\n\n\"\"\"\nProperties by which discussion poll option connections can be ordered.\n\"\"\"\nenum DiscussionPollOptionOrderField {\n  \"\"\"\n  Order poll options by the order that the poll author specified when creating the poll.\n  \"\"\"\n  AUTHORED_ORDER\n\n  \"\"\"\n  Order poll options by the number of votes it has.\n  \"\"\"\n  VOTE_COUNT\n}\n\n\"\"\"\nThe possible states of a discussion.\n\"\"\"\nenum DiscussionState {\n  \"\"\"\n  A discussion that has been closed\n  \"\"\"\n  CLOSED\n\n  \"\"\"\n  A discussion that is open\n  \"\"\"\n  OPEN\n}\n\n\"\"\"\nThe possible state reasons of a discussion.\n\"\"\"\nenum DiscussionStateReason {\n  \"\"\"\n  The discussion is a duplicate of another\n  \"\"\"\n  DUPLICATE\n\n  \"\"\"\n  The discussion is no longer relevant\n  \"\"\"\n  OUTDATED\n\n  \"\"\"\n  The discussion was reopened\n  \"\"\"\n  REOPENED\n\n  \"\"\"\n  The discussion has been resolved\n  \"\"\"\n  RESOLVED\n}\n\n\"\"\"\nAutogenerated input type of DismissPullRequestReview\n\"\"\"\ninput DismissPullRequestReviewInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The contents of the pull request review dismissal message.\n  \"\"\"\n  message: String!\n\n  \"\"\"\n  The Node ID of the pull request review to modify.\n  \"\"\"\n  pullRequestReviewId: ID! @possibleTypes(concreteTypes: [\"PullRequestReview\"])\n}\n\n\"\"\"\nAutogenerated return type of DismissPullRequestReview\n\"\"\"\ntype DismissPullRequestReviewPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The dismissed pull request review.\n  \"\"\"\n  pullRequestReview: PullRequestReview\n}\n\n\"\"\"\nThe possible reasons that a Dependabot alert was dismissed.\n\"\"\"\nenum DismissReason {\n  \"\"\"\n  A fix has already been started\n  \"\"\"\n  FIX_STARTED\n\n  \"\"\"\n  This alert is inaccurate or incorrect\n  \"\"\"\n  INACCURATE\n\n  \"\"\"\n  Vulnerable code is not actually used\n  \"\"\"\n  NOT_USED\n\n  \"\"\"\n  No bandwidth to fix this\n  \"\"\"\n  NO_BANDWIDTH\n\n  \"\"\"\n  Risk is tolerable to this project\n  \"\"\"\n  TOLERABLE_RISK\n}\n\n\"\"\"\nAutogenerated input type of DismissRepositoryVulnerabilityAlert\n\"\"\"\ninput DismissRepositoryVulnerabilityAlertInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The reason the Dependabot alert is being dismissed.\n  \"\"\"\n  dismissReason: DismissReason!\n\n  \"\"\"\n  The Dependabot alert ID to dismiss.\n  \"\"\"\n  repositoryVulnerabilityAlertId: ID! @possibleTypes(concreteTypes: [\"RepositoryVulnerabilityAlert\"])\n}\n\n\"\"\"\nAutogenerated return type of DismissRepositoryVulnerabilityAlert\n\"\"\"\ntype DismissRepositoryVulnerabilityAlertPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Dependabot alert that was dismissed\n  \"\"\"\n  repositoryVulnerabilityAlert: RepositoryVulnerabilityAlert\n}\n\n\"\"\"\nA draft issue within a project.\n\"\"\"\ntype DraftIssue implements Node {\n  \"\"\"\n  A list of users to assigned to this draft issue.\n  \"\"\"\n  assignees(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserConnection!\n\n  \"\"\"\n  The body of the draft issue.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body of the draft issue rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The body of the draft issue rendered to text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The actor who created this draft issue.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  The Node ID of the DraftIssue object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  List of items linked with the draft issue (currently draft issue can be linked to only one item).\n  \"\"\"\n  projectV2Items(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectV2ItemConnection!\n\n  \"\"\"\n  Projects that link to this draft issue (currently draft issue can be linked to only one project).\n  \"\"\"\n  projectsV2(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectV2Connection!\n\n  \"\"\"\n  The title of the draft issue\n  \"\"\"\n  title: String!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nSpecifies a review comment to be left with a Pull Request Review.\n\"\"\"\ninput DraftPullRequestReviewComment {\n  \"\"\"\n  Body of the comment to leave.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  Path to the file being commented on.\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  Position in the file to leave a comment on.\n  \"\"\"\n  position: Int!\n}\n\n\"\"\"\nSpecifies a review comment thread to be left with a Pull Request Review.\n\"\"\"\ninput DraftPullRequestReviewThread {\n  \"\"\"\n  Body of the comment to leave.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The line of the blob to which the thread refers. The end of the line range for multi-line comments.\n  \"\"\"\n  line: Int!\n\n  \"\"\"\n  Path to the file being commented on.\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  The side of the diff on which the line resides. For multi-line comments, this is the side for the end of the line range.\n  \"\"\"\n  side: DiffSide = RIGHT\n\n  \"\"\"\n  The first line of the range to which the comment refers.\n  \"\"\"\n  startLine: Int\n\n  \"\"\"\n  The side of the diff on which the start line resides.\n  \"\"\"\n  startSide: DiffSide = RIGHT\n}\n\n\"\"\"\nAutogenerated input type of EnablePullRequestAutoMerge\n\"\"\"\ninput EnablePullRequestAutoMergeInput {\n  \"\"\"\n  The email address to associate with this merge.\n  \"\"\"\n  authorEmail: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Commit body to use for the commit when the PR is mergable; if omitted, a\n  default message will be used. NOTE: when merging with a merge queue any input\n  value for commit message is ignored.\n  \"\"\"\n  commitBody: String\n\n  \"\"\"\n  Commit headline to use for the commit when the PR is mergable; if omitted, a\n  default message will be used. NOTE: when merging with a merge queue any input\n  value for commit headline is ignored.\n  \"\"\"\n  commitHeadline: String\n\n  \"\"\"\n  The expected head OID of the pull request.\n  \"\"\"\n  expectedHeadOid: GitObjectID\n\n  \"\"\"\n  The merge method to use. If omitted, defaults to `MERGE`. NOTE: when merging\n  with a merge queue any input value for merge method is ignored.\n  \"\"\"\n  mergeMethod: PullRequestMergeMethod = MERGE\n\n  \"\"\"\n  ID of the pull request to enable auto-merge on.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n}\n\n\"\"\"\nAutogenerated return type of EnablePullRequestAutoMerge\n\"\"\"\ntype EnablePullRequestAutoMergePayload {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The pull request auto-merge was enabled on.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nAutogenerated input type of EnqueuePullRequest\n\"\"\"\ninput EnqueuePullRequestInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The expected head OID of the pull request.\n  \"\"\"\n  expectedHeadOid: GitObjectID\n\n  \"\"\"\n  Add the pull request to the front of the queue.\n  \"\"\"\n  jump: Boolean\n\n  \"\"\"\n  The ID of the pull request to enqueue.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n}\n\n\"\"\"\nAutogenerated return type of EnqueuePullRequest\n\"\"\"\ntype EnqueuePullRequestPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The merge queue entry for the enqueued pull request.\n  \"\"\"\n  mergeQueueEntry: MergeQueueEntry\n}\n\n\"\"\"\nAn account to manage multiple organizations with consolidated policy and billing.\n\"\"\"\ntype Enterprise implements AnnouncementBanner & Node {\n  \"\"\"\n  The text of the announcement\n  \"\"\"\n  announcement: String\n\n  \"\"\"\n  The expiration date of the announcement, if any\n  \"\"\"\n  announcementExpiresAt: DateTime\n\n  \"\"\"\n  Whether the announcement can be dismissed by the user\n  \"\"\"\n  announcementUserDismissible: Boolean\n\n  \"\"\"\n  A URL pointing to the enterprise's public avatar.\n  \"\"\"\n  avatarUrl(\n    \"\"\"\n    The size of the resulting square image.\n    \"\"\"\n    size: Int\n  ): URI!\n\n  \"\"\"\n  Enterprise billing information visible to enterprise billing managers.\n  \"\"\"\n  billingInfo: EnterpriseBillingInfo\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The description of the enterprise.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The description of the enterprise as HTML.\n  \"\"\"\n  descriptionHTML: HTML!\n\n  \"\"\"\n  The Node ID of the Enterprise object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The location of the enterprise.\n  \"\"\"\n  location: String\n\n  \"\"\"\n  A list of users who are members of this enterprise.\n  \"\"\"\n  members(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Only return members within the selected GitHub Enterprise deployment\n    \"\"\"\n    deployment: EnterpriseUserDeployment\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Only return members with this two-factor authentication status. Does not\n    include members who only have an account on a GitHub Enterprise Server instance.\n    \"\"\"\n    hasTwoFactorEnabled: Boolean = null\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for members returned from the connection.\n    \"\"\"\n    orderBy: EnterpriseMemberOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    Only return members within the organizations with these logins\n    \"\"\"\n    organizationLogins: [String!]\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String\n\n    \"\"\"\n    The role of the user in the enterprise organization or server.\n    \"\"\"\n    role: EnterpriseUserAccountMembershipRole\n  ): EnterpriseMemberConnection!\n\n  \"\"\"\n  The name of the enterprise.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  A list of organizations that belong to this enterprise.\n  \"\"\"\n  organizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations returned from the connection.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String\n\n    \"\"\"\n    The viewer's role in an organization.\n    \"\"\"\n    viewerOrganizationRole: RoleInOrganization\n  ): OrganizationConnection!\n\n  \"\"\"\n  Enterprise information visible to enterprise owners or enterprise owners'\n  personal access tokens (classic) with read:enterprise or admin:enterprise scope.\n  \"\"\"\n  ownerInfo: EnterpriseOwnerInfo\n\n  \"\"\"\n  The HTTP path for this enterprise.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The URL-friendly identifier for the enterprise.\n  \"\"\"\n  slug: String!\n\n  \"\"\"\n  The HTTP URL for this enterprise.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Is the current viewer an admin of this enterprise?\n  \"\"\"\n  viewerIsAdmin: Boolean!\n\n  \"\"\"\n  The URL of the enterprise website.\n  \"\"\"\n  websiteUrl: URI\n}\n\n\"\"\"\nThe connection type for User.\n\"\"\"\ntype EnterpriseAdministratorConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseAdministratorEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [User]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nA User who is an administrator of an enterprise.\n\"\"\"\ntype EnterpriseAdministratorEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: User\n\n  \"\"\"\n  The role of the administrator.\n  \"\"\"\n  role: EnterpriseAdministratorRole!\n}\n\n\"\"\"\nAn invitation for a user to become an owner or billing manager of an enterprise.\n\"\"\"\ntype EnterpriseAdministratorInvitation implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The email of the person who was invited to the enterprise.\n  \"\"\"\n  email: String\n\n  \"\"\"\n  The enterprise the invitation is for.\n  \"\"\"\n  enterprise: Enterprise!\n\n  \"\"\"\n  The Node ID of the EnterpriseAdministratorInvitation object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The user who was invited to the enterprise.\n  \"\"\"\n  invitee: User\n\n  \"\"\"\n  The user who created the invitation.\n  \"\"\"\n  inviter: User\n\n  \"\"\"\n  The invitee's pending role in the enterprise (owner or billing_manager).\n  \"\"\"\n  role: EnterpriseAdministratorRole!\n}\n\n\"\"\"\nThe connection type for EnterpriseAdministratorInvitation.\n\"\"\"\ntype EnterpriseAdministratorInvitationConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseAdministratorInvitationEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [EnterpriseAdministratorInvitation]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype EnterpriseAdministratorInvitationEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: EnterpriseAdministratorInvitation\n}\n\n\"\"\"\nOrdering options for enterprise administrator invitation connections\n\"\"\"\ninput EnterpriseAdministratorInvitationOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order enterprise administrator invitations by.\n  \"\"\"\n  field: EnterpriseAdministratorInvitationOrderField!\n}\n\n\"\"\"\nProperties by which enterprise administrator invitation connections can be ordered.\n\"\"\"\nenum EnterpriseAdministratorInvitationOrderField {\n  \"\"\"\n  Order enterprise administrator member invitations by creation time\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nThe possible administrator roles in an enterprise account.\n\"\"\"\nenum EnterpriseAdministratorRole {\n  \"\"\"\n  Represents a billing manager of the enterprise account.\n  \"\"\"\n  BILLING_MANAGER\n\n  \"\"\"\n  Represents an owner of the enterprise account.\n  \"\"\"\n  OWNER\n}\n\n\"\"\"\nThe possible values for the enterprise allow private repository forking policy value.\n\"\"\"\nenum EnterpriseAllowPrivateRepositoryForkingPolicyValue {\n  \"\"\"\n  Members can fork a repository to an organization within this enterprise.\n  \"\"\"\n  ENTERPRISE_ORGANIZATIONS\n\n  \"\"\"\n  Members can fork a repository to their enterprise-managed user account or an organization inside this enterprise.\n  \"\"\"\n  ENTERPRISE_ORGANIZATIONS_USER_ACCOUNTS\n\n  \"\"\"\n  Members can fork a repository to their user account or an organization, either inside or outside of this enterprise.\n  \"\"\"\n  EVERYWHERE\n\n  \"\"\"\n  Members can fork a repository only within the same organization (intra-org).\n  \"\"\"\n  SAME_ORGANIZATION\n\n  \"\"\"\n  Members can fork a repository to their user account or within the same organization.\n  \"\"\"\n  SAME_ORGANIZATION_USER_ACCOUNTS\n\n  \"\"\"\n  Members can fork a repository to their user account.\n  \"\"\"\n  USER_ACCOUNTS\n}\n\n\"\"\"\nMetadata for an audit entry containing enterprise account information.\n\"\"\"\ninterface EnterpriseAuditEntryData {\n  \"\"\"\n  The HTTP path for this enterprise.\n  \"\"\"\n  enterpriseResourcePath: URI\n\n  \"\"\"\n  The slug of the enterprise.\n  \"\"\"\n  enterpriseSlug: String\n\n  \"\"\"\n  The HTTP URL for this enterprise.\n  \"\"\"\n  enterpriseUrl: URI\n}\n\n\"\"\"\nEnterprise billing information visible to enterprise billing managers and owners.\n\"\"\"\ntype EnterpriseBillingInfo {\n  \"\"\"\n  The number of licenseable users/emails across the enterprise.\n  \"\"\"\n  allLicensableUsersCount: Int!\n\n  \"\"\"\n  The number of data packs used by all organizations owned by the enterprise.\n  \"\"\"\n  assetPacks: Int!\n\n  \"\"\"\n  The bandwidth quota in GB for all organizations owned by the enterprise.\n  \"\"\"\n  bandwidthQuota: Float!\n\n  \"\"\"\n  The bandwidth usage in GB for all organizations owned by the enterprise.\n  \"\"\"\n  bandwidthUsage: Float!\n\n  \"\"\"\n  The bandwidth usage as a percentage of the bandwidth quota.\n  \"\"\"\n  bandwidthUsagePercentage: Int!\n\n  \"\"\"\n  The storage quota in GB for all organizations owned by the enterprise.\n  \"\"\"\n  storageQuota: Float!\n\n  \"\"\"\n  The storage usage in GB for all organizations owned by the enterprise.\n  \"\"\"\n  storageUsage: Float!\n\n  \"\"\"\n  The storage usage as a percentage of the storage quota.\n  \"\"\"\n  storageUsagePercentage: Int!\n\n  \"\"\"\n  The number of available licenses across all owned organizations based on the unique number of billable users.\n  \"\"\"\n  totalAvailableLicenses: Int!\n\n  \"\"\"\n  The total number of licenses allocated.\n  \"\"\"\n  totalLicenses: Int!\n}\n\n\"\"\"\nThe connection type for Enterprise.\n\"\"\"\ntype EnterpriseConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Enterprise]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nThe possible values for the enterprise base repository permission setting.\n\"\"\"\nenum EnterpriseDefaultRepositoryPermissionSettingValue {\n  \"\"\"\n  Organization members will be able to clone, pull, push, and add new collaborators to all organization repositories.\n  \"\"\"\n  ADMIN\n\n  \"\"\"\n  Organization members will only be able to clone and pull public repositories.\n  \"\"\"\n  NONE\n\n  \"\"\"\n  Organizations in the enterprise choose base repository permissions for their members.\n  \"\"\"\n  NO_POLICY\n\n  \"\"\"\n  Organization members will be able to clone and pull all organization repositories.\n  \"\"\"\n  READ\n\n  \"\"\"\n  Organization members will be able to clone, pull, and push all organization repositories.\n  \"\"\"\n  WRITE\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype EnterpriseEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Enterprise\n}\n\n\"\"\"\nThe possible values for an enabled/disabled enterprise setting.\n\"\"\"\nenum EnterpriseEnabledDisabledSettingValue {\n  \"\"\"\n  The setting is disabled for organizations in the enterprise.\n  \"\"\"\n  DISABLED\n\n  \"\"\"\n  The setting is enabled for organizations in the enterprise.\n  \"\"\"\n  ENABLED\n\n  \"\"\"\n  There is no policy set for organizations in the enterprise.\n  \"\"\"\n  NO_POLICY\n}\n\n\"\"\"\nThe possible values for an enabled/no policy enterprise setting.\n\"\"\"\nenum EnterpriseEnabledSettingValue {\n  \"\"\"\n  The setting is enabled for organizations in the enterprise.\n  \"\"\"\n  ENABLED\n\n  \"\"\"\n  There is no policy set for organizations in the enterprise.\n  \"\"\"\n  NO_POLICY\n}\n\n\"\"\"\nThe connection type for OrganizationInvitation.\n\"\"\"\ntype EnterpriseFailedInvitationConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseFailedInvitationEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [OrganizationInvitation]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n\n  \"\"\"\n  Identifies the total count of unique users in the connection.\n  \"\"\"\n  totalUniqueUserCount: Int!\n}\n\n\"\"\"\nA failed invitation to be a member in an enterprise organization.\n\"\"\"\ntype EnterpriseFailedInvitationEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: OrganizationInvitation\n}\n\n\"\"\"\nAn identity provider configured to provision identities for an enterprise.\nVisible to enterprise owners or enterprise owners' personal access tokens\n(classic) with read:enterprise or admin:enterprise scope.\n\"\"\"\ntype EnterpriseIdentityProvider implements Node {\n  \"\"\"\n  The digest algorithm used to sign SAML requests for the identity provider.\n  \"\"\"\n  digestMethod: SamlDigestAlgorithm\n\n  \"\"\"\n  The enterprise this identity provider belongs to.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  ExternalIdentities provisioned by this identity provider.\n  \"\"\"\n  externalIdentities(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter to external identities with the users login\n    \"\"\"\n    login: String\n\n    \"\"\"\n    Filter to external identities with valid org membership only\n    \"\"\"\n    membersOnly: Boolean\n\n    \"\"\"\n    Filter to external identities with the users userName/NameID attribute\n    \"\"\"\n    userName: String\n  ): ExternalIdentityConnection!\n\n  \"\"\"\n  The Node ID of the EnterpriseIdentityProvider object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The x509 certificate used by the identity provider to sign assertions and responses.\n  \"\"\"\n  idpCertificate: X509Certificate\n\n  \"\"\"\n  The Issuer Entity ID for the SAML identity provider.\n  \"\"\"\n  issuer: String\n\n  \"\"\"\n  Recovery codes that can be used by admins to access the enterprise if the identity provider is unavailable.\n  \"\"\"\n  recoveryCodes: [String!]\n\n  \"\"\"\n  The signature algorithm used to sign SAML requests for the identity provider.\n  \"\"\"\n  signatureMethod: SamlSignatureAlgorithm\n\n  \"\"\"\n  The URL endpoint for the identity provider's SAML SSO.\n  \"\"\"\n  ssoUrl: URI\n}\n\n\"\"\"\nAn object that is a member of an enterprise.\n\"\"\"\nunion EnterpriseMember = EnterpriseUserAccount | User\n\n\"\"\"\nThe connection type for EnterpriseMember.\n\"\"\"\ntype EnterpriseMemberConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseMemberEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [EnterpriseMember]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nA User who is a member of an enterprise through one or more organizations.\n\"\"\"\ntype EnterpriseMemberEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: EnterpriseMember\n}\n\n\"\"\"\nOrdering options for enterprise member connections.\n\"\"\"\ninput EnterpriseMemberOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order enterprise members by.\n  \"\"\"\n  field: EnterpriseMemberOrderField!\n}\n\n\"\"\"\nProperties by which enterprise member connections can be ordered.\n\"\"\"\nenum EnterpriseMemberOrderField {\n  \"\"\"\n  Order enterprise members by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order enterprise members by login\n  \"\"\"\n  LOGIN\n}\n\n\"\"\"\nThe possible values for the enterprise members can create repositories setting.\n\"\"\"\nenum EnterpriseMembersCanCreateRepositoriesSettingValue {\n  \"\"\"\n  Members will be able to create public and private repositories.\n  \"\"\"\n  ALL\n\n  \"\"\"\n  Members will not be able to create public or private repositories.\n  \"\"\"\n  DISABLED\n\n  \"\"\"\n  Organization owners choose whether to allow members to create repositories.\n  \"\"\"\n  NO_POLICY\n\n  \"\"\"\n  Members will be able to create only private repositories.\n  \"\"\"\n  PRIVATE\n\n  \"\"\"\n  Members will be able to create only public repositories.\n  \"\"\"\n  PUBLIC\n}\n\n\"\"\"\nThe possible values for the members can make purchases setting.\n\"\"\"\nenum EnterpriseMembersCanMakePurchasesSettingValue {\n  \"\"\"\n  The setting is disabled for organizations in the enterprise.\n  \"\"\"\n  DISABLED\n\n  \"\"\"\n  The setting is enabled for organizations in the enterprise.\n  \"\"\"\n  ENABLED\n}\n\n\"\"\"\nThe possible values we have for filtering Platform::Objects::User#enterprises.\n\"\"\"\nenum EnterpriseMembershipType {\n  \"\"\"\n  Returns all enterprises in which the user is an admin.\n  \"\"\"\n  ADMIN\n\n  \"\"\"\n  Returns all enterprises in which the user is a member, admin, or billing manager.\n  \"\"\"\n  ALL\n\n  \"\"\"\n  Returns all enterprises in which the user is a billing manager.\n  \"\"\"\n  BILLING_MANAGER\n\n  \"\"\"\n  Returns all enterprises in which the user is a member of an org that is owned by the enterprise.\n  \"\"\"\n  ORG_MEMBERSHIP\n}\n\n\"\"\"\nOrdering options for enterprises.\n\"\"\"\ninput EnterpriseOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order enterprises by.\n  \"\"\"\n  field: EnterpriseOrderField!\n}\n\n\"\"\"\nProperties by which enterprise connections can be ordered.\n\"\"\"\nenum EnterpriseOrderField {\n  \"\"\"\n  Order enterprises by name\n  \"\"\"\n  NAME\n}\n\n\"\"\"\nThe connection type for Organization.\n\"\"\"\ntype EnterpriseOrganizationMembershipConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseOrganizationMembershipEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Organization]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn enterprise organization that a user is a member of.\n\"\"\"\ntype EnterpriseOrganizationMembershipEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Organization\n\n  \"\"\"\n  The role of the user in the enterprise membership.\n  \"\"\"\n  role: EnterpriseUserAccountMembershipRole!\n}\n\n\"\"\"\nThe connection type for User.\n\"\"\"\ntype EnterpriseOutsideCollaboratorConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseOutsideCollaboratorEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [User]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nA User who is an outside collaborator of an enterprise through one or more organizations.\n\"\"\"\ntype EnterpriseOutsideCollaboratorEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: User\n\n  \"\"\"\n  The enterprise organization repositories this user is a member of.\n  \"\"\"\n  repositories(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for repositories.\n    \"\"\"\n    orderBy: RepositoryOrder = {field: NAME, direction: ASC}\n  ): EnterpriseRepositoryInfoConnection!\n}\n\n\"\"\"\nEnterprise information visible to enterprise owners or enterprise owners'\npersonal access tokens (classic) with read:enterprise or admin:enterprise scope.\n\"\"\"\ntype EnterpriseOwnerInfo {\n  \"\"\"\n  A list of all of the administrators for this enterprise.\n  \"\"\"\n  admins(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Only return administrators with this two-factor authentication status.\n    \"\"\"\n    hasTwoFactorEnabled: Boolean = null\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for administrators returned from the connection.\n    \"\"\"\n    orderBy: EnterpriseMemberOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    Only return members within the organizations with these logins\n    \"\"\"\n    organizationLogins: [String!]\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String\n\n    \"\"\"\n    The role to filter by.\n    \"\"\"\n    role: EnterpriseAdministratorRole\n  ): EnterpriseAdministratorConnection!\n\n  \"\"\"\n  A list of users in the enterprise who currently have two-factor authentication disabled.\n  \"\"\"\n  affiliatedUsersWithTwoFactorDisabled(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserConnection!\n\n  \"\"\"\n  Whether or not affiliated users with two-factor authentication disabled exist in the enterprise.\n  \"\"\"\n  affiliatedUsersWithTwoFactorDisabledExist: Boolean!\n\n  \"\"\"\n  The setting value for whether private repository forking is enabled for repositories in organizations in this enterprise.\n  \"\"\"\n  allowPrivateRepositoryForkingSetting: EnterpriseEnabledDisabledSettingValue!\n\n  \"\"\"\n  A list of enterprise organizations configured with the provided private repository forking setting value.\n  \"\"\"\n  allowPrivateRepositoryForkingSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting value to find organizations for.\n    \"\"\"\n    value: Boolean!\n  ): OrganizationConnection!\n\n  \"\"\"\n  The value for the allow private repository forking policy on the enterprise.\n  \"\"\"\n  allowPrivateRepositoryForkingSettingPolicyValue: EnterpriseAllowPrivateRepositoryForkingPolicyValue\n\n  \"\"\"\n  The setting value for base repository permissions for organizations in this enterprise.\n  \"\"\"\n  defaultRepositoryPermissionSetting: EnterpriseDefaultRepositoryPermissionSettingValue!\n\n  \"\"\"\n  A list of enterprise organizations configured with the provided base repository permission.\n  \"\"\"\n  defaultRepositoryPermissionSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The permission to find organizations for.\n    \"\"\"\n    value: DefaultRepositoryPermissionField!\n  ): OrganizationConnection!\n\n  \"\"\"\n  A list of domains owned by the enterprise. Visible to enterprise owners or\n  enterprise owners' personal access tokens (classic) with admin:enterprise scope.\n  \"\"\"\n  domains(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Filter whether or not the domain is approved.\n    \"\"\"\n    isApproved: Boolean = null\n\n    \"\"\"\n    Filter whether or not the domain is verified.\n    \"\"\"\n    isVerified: Boolean = null\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for verifiable domains returned.\n    \"\"\"\n    orderBy: VerifiableDomainOrder = {field: DOMAIN, direction: ASC}\n  ): VerifiableDomainConnection!\n\n  \"\"\"\n  Enterprise Server installations owned by the enterprise.\n  \"\"\"\n  enterpriseServerInstallations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Whether or not to only return installations discovered via GitHub Connect.\n    \"\"\"\n    connectedOnly: Boolean = false\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for Enterprise Server installations returned.\n    \"\"\"\n    orderBy: EnterpriseServerInstallationOrder = {field: HOST_NAME, direction: ASC}\n  ): EnterpriseServerInstallationConnection!\n\n  \"\"\"\n  A list of failed invitations in the enterprise.\n  \"\"\"\n  failedInvitations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String\n  ): EnterpriseFailedInvitationConnection!\n\n  \"\"\"\n  The setting value for whether the enterprise has an IP allow list enabled.\n  \"\"\"\n  ipAllowListEnabledSetting: IpAllowListEnabledSettingValue!\n\n  \"\"\"\n  The IP addresses that are allowed to access resources owned by the enterprise.\n  Visible to enterprise owners or enterprise owners' personal access tokens\n  (classic) with admin:enterprise scope.\n  \"\"\"\n  ipAllowListEntries(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for IP allow list entries returned.\n    \"\"\"\n    orderBy: IpAllowListEntryOrder = {field: ALLOW_LIST_VALUE, direction: ASC}\n  ): IpAllowListEntryConnection!\n\n  \"\"\"\n  The setting value for whether the enterprise has IP allow list configuration for installed GitHub Apps enabled.\n  \"\"\"\n  ipAllowListForInstalledAppsEnabledSetting: IpAllowListForInstalledAppsEnabledSettingValue!\n\n  \"\"\"\n  Whether or not the base repository permission is currently being updated.\n  \"\"\"\n  isUpdatingDefaultRepositoryPermission: Boolean!\n\n  \"\"\"\n  Whether the two-factor authentication requirement is currently being enforced.\n  \"\"\"\n  isUpdatingTwoFactorRequirement: Boolean!\n\n  \"\"\"\n  The setting value for whether organization members with admin permissions on a\n  repository can change repository visibility.\n  \"\"\"\n  membersCanChangeRepositoryVisibilitySetting: EnterpriseEnabledDisabledSettingValue!\n\n  \"\"\"\n  A list of enterprise organizations configured with the provided can change repository visibility setting value.\n  \"\"\"\n  membersCanChangeRepositoryVisibilitySettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting value to find organizations for.\n    \"\"\"\n    value: Boolean!\n  ): OrganizationConnection!\n\n  \"\"\"\n  The setting value for whether members of organizations in the enterprise can create internal repositories.\n  \"\"\"\n  membersCanCreateInternalRepositoriesSetting: Boolean\n\n  \"\"\"\n  The setting value for whether members of organizations in the enterprise can create private repositories.\n  \"\"\"\n  membersCanCreatePrivateRepositoriesSetting: Boolean\n\n  \"\"\"\n  The setting value for whether members of organizations in the enterprise can create public repositories.\n  \"\"\"\n  membersCanCreatePublicRepositoriesSetting: Boolean\n\n  \"\"\"\n  The setting value for whether members of organizations in the enterprise can create repositories.\n  \"\"\"\n  membersCanCreateRepositoriesSetting: EnterpriseMembersCanCreateRepositoriesSettingValue\n\n  \"\"\"\n  A list of enterprise organizations configured with the provided repository creation setting value.\n  \"\"\"\n  membersCanCreateRepositoriesSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting to find organizations for.\n    \"\"\"\n    value: OrganizationMembersCanCreateRepositoriesSettingValue!\n  ): OrganizationConnection!\n\n  \"\"\"\n  The setting value for whether members with admin permissions for repositories can delete issues.\n  \"\"\"\n  membersCanDeleteIssuesSetting: EnterpriseEnabledDisabledSettingValue!\n\n  \"\"\"\n  A list of enterprise organizations configured with the provided members can delete issues setting value.\n  \"\"\"\n  membersCanDeleteIssuesSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting value to find organizations for.\n    \"\"\"\n    value: Boolean!\n  ): OrganizationConnection!\n\n  \"\"\"\n  The setting value for whether members with admin permissions for repositories can delete or transfer repositories.\n  \"\"\"\n  membersCanDeleteRepositoriesSetting: EnterpriseEnabledDisabledSettingValue!\n\n  \"\"\"\n  A list of enterprise organizations configured with the provided members can delete repositories setting value.\n  \"\"\"\n  membersCanDeleteRepositoriesSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting value to find organizations for.\n    \"\"\"\n    value: Boolean!\n  ): OrganizationConnection!\n\n  \"\"\"\n  The setting value for whether members of organizations in the enterprise can invite outside collaborators.\n  \"\"\"\n  membersCanInviteCollaboratorsSetting: EnterpriseEnabledDisabledSettingValue!\n\n  \"\"\"\n  A list of enterprise organizations configured with the provided members can invite collaborators setting value.\n  \"\"\"\n  membersCanInviteCollaboratorsSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting value to find organizations for.\n    \"\"\"\n    value: Boolean!\n  ): OrganizationConnection!\n\n  \"\"\"\n  Indicates whether members of this enterprise's organizations can purchase additional services for those organizations.\n  \"\"\"\n  membersCanMakePurchasesSetting: EnterpriseMembersCanMakePurchasesSettingValue!\n\n  \"\"\"\n  The setting value for whether members with admin permissions for repositories can update protected branches.\n  \"\"\"\n  membersCanUpdateProtectedBranchesSetting: EnterpriseEnabledDisabledSettingValue!\n\n  \"\"\"\n  A list of enterprise organizations configured with the provided members can update protected branches setting value.\n  \"\"\"\n  membersCanUpdateProtectedBranchesSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting value to find organizations for.\n    \"\"\"\n    value: Boolean!\n  ): OrganizationConnection!\n\n  \"\"\"\n  The setting value for whether members can view dependency insights.\n  \"\"\"\n  membersCanViewDependencyInsightsSetting: EnterpriseEnabledDisabledSettingValue!\n\n  \"\"\"\n  A list of enterprise organizations configured with the provided members can view dependency insights setting value.\n  \"\"\"\n  membersCanViewDependencyInsightsSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting value to find organizations for.\n    \"\"\"\n    value: Boolean!\n  ): OrganizationConnection!\n\n  \"\"\"\n  Indicates if email notification delivery for this enterprise is restricted to verified or approved domains.\n  \"\"\"\n  notificationDeliveryRestrictionEnabledSetting: NotificationRestrictionSettingValue!\n\n  \"\"\"\n  The OIDC Identity Provider for the enterprise.\n  \"\"\"\n  oidcProvider: OIDCProvider\n\n  \"\"\"\n  The setting value for whether organization projects are enabled for organizations in this enterprise.\n  \"\"\"\n  organizationProjectsSetting: EnterpriseEnabledDisabledSettingValue!\n\n  \"\"\"\n  A list of enterprise organizations configured with the provided organization projects setting value.\n  \"\"\"\n  organizationProjectsSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting value to find organizations for.\n    \"\"\"\n    value: Boolean!\n  ): OrganizationConnection!\n\n  \"\"\"\n  A list of outside collaborators across the repositories in the enterprise.\n  \"\"\"\n  outsideCollaborators(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Only return outside collaborators with this two-factor authentication status.\n    \"\"\"\n    hasTwoFactorEnabled: Boolean = null\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    The login of one specific outside collaborator.\n    \"\"\"\n    login: String\n\n    \"\"\"\n    Ordering options for outside collaborators returned from the connection.\n    \"\"\"\n    orderBy: EnterpriseMemberOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    Only return outside collaborators within the organizations with these logins\n    \"\"\"\n    organizationLogins: [String!]\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String\n\n    \"\"\"\n    Only return outside collaborators on repositories with this visibility.\n    \"\"\"\n    visibility: RepositoryVisibility\n  ): EnterpriseOutsideCollaboratorConnection!\n\n  \"\"\"\n  A list of pending administrator invitations for the enterprise.\n  \"\"\"\n  pendingAdminInvitations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for pending enterprise administrator invitations returned from the connection.\n    \"\"\"\n    orderBy: EnterpriseAdministratorInvitationOrder = {field: CREATED_AT, direction: DESC}\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String\n\n    \"\"\"\n    The role to filter by.\n    \"\"\"\n    role: EnterpriseAdministratorRole\n  ): EnterpriseAdministratorInvitationConnection!\n\n  \"\"\"\n  A list of pending collaborator invitations across the repositories in the enterprise.\n  \"\"\"\n  pendingCollaboratorInvitations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for pending repository collaborator invitations returned from the connection.\n    \"\"\"\n    orderBy: RepositoryInvitationOrder = {field: CREATED_AT, direction: DESC}\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String\n  ): RepositoryInvitationConnection!\n\n  \"\"\"\n  A list of pending member invitations for organizations in the enterprise.\n  \"\"\"\n  pendingMemberInvitations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Only return invitations matching this invitation source\n    \"\"\"\n    invitationSource: OrganizationInvitationSource\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Only return invitations within the organizations with these logins\n    \"\"\"\n    organizationLogins: [String!]\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String\n  ): EnterprisePendingMemberInvitationConnection!\n\n  \"\"\"\n  The setting value for whether repository projects are enabled in this enterprise.\n  \"\"\"\n  repositoryProjectsSetting: EnterpriseEnabledDisabledSettingValue!\n\n  \"\"\"\n  A list of enterprise organizations configured with the provided repository projects setting value.\n  \"\"\"\n  repositoryProjectsSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting value to find organizations for.\n    \"\"\"\n    value: Boolean!\n  ): OrganizationConnection!\n\n  \"\"\"\n  The SAML Identity Provider for the enterprise.\n  \"\"\"\n  samlIdentityProvider: EnterpriseIdentityProvider\n\n  \"\"\"\n  A list of enterprise organizations configured with the SAML single sign-on setting value.\n  \"\"\"\n  samlIdentityProviderSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting value to find organizations for.\n    \"\"\"\n    value: IdentityProviderConfigurationState!\n  ): OrganizationConnection!\n\n  \"\"\"\n  A list of members with a support entitlement.\n  \"\"\"\n  supportEntitlements(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for support entitlement users returned from the connection.\n    \"\"\"\n    orderBy: EnterpriseMemberOrder = {field: LOGIN, direction: ASC}\n  ): EnterpriseMemberConnection!\n\n  \"\"\"\n  The setting value for whether team discussions are enabled for organizations in this enterprise.\n  \"\"\"\n  teamDiscussionsSetting: EnterpriseEnabledDisabledSettingValue!\n\n  \"\"\"\n  A list of enterprise organizations configured with the provided team discussions setting value.\n  \"\"\"\n  teamDiscussionsSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting value to find organizations for.\n    \"\"\"\n    value: Boolean!\n  ): OrganizationConnection!\n\n  \"\"\"\n  The setting value for whether the enterprise requires two-factor authentication for its organizations and users.\n  \"\"\"\n  twoFactorRequiredSetting: EnterpriseEnabledSettingValue!\n\n  \"\"\"\n  A list of enterprise organizations configured with the two-factor authentication setting value.\n  \"\"\"\n  twoFactorRequiredSettingOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations with this setting.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The setting value to find organizations for.\n    \"\"\"\n    value: Boolean!\n  ): OrganizationConnection!\n}\n\n\"\"\"\nThe connection type for OrganizationInvitation.\n\"\"\"\ntype EnterprisePendingMemberInvitationConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterprisePendingMemberInvitationEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [OrganizationInvitation]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n\n  \"\"\"\n  Identifies the total count of unique users in the connection.\n  \"\"\"\n  totalUniqueUserCount: Int!\n}\n\n\"\"\"\nAn invitation to be a member in an enterprise organization.\n\"\"\"\ntype EnterprisePendingMemberInvitationEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: OrganizationInvitation\n}\n\n\"\"\"\nA subset of repository information queryable from an enterprise.\n\"\"\"\ntype EnterpriseRepositoryInfo implements Node {\n  \"\"\"\n  The Node ID of the EnterpriseRepositoryInfo object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies if the repository is private or internal.\n  \"\"\"\n  isPrivate: Boolean!\n\n  \"\"\"\n  The repository's name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The repository's name with owner.\n  \"\"\"\n  nameWithOwner: String!\n}\n\n\"\"\"\nThe connection type for EnterpriseRepositoryInfo.\n\"\"\"\ntype EnterpriseRepositoryInfoConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseRepositoryInfoEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [EnterpriseRepositoryInfo]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype EnterpriseRepositoryInfoEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: EnterpriseRepositoryInfo\n}\n\n\"\"\"\nAn Enterprise Server installation.\n\"\"\"\ntype EnterpriseServerInstallation implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The customer name to which the Enterprise Server installation belongs.\n  \"\"\"\n  customerName: String!\n\n  \"\"\"\n  The host name of the Enterprise Server installation.\n  \"\"\"\n  hostName: String!\n\n  \"\"\"\n  The Node ID of the EnterpriseServerInstallation object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether or not the installation is connected to an Enterprise Server installation via GitHub Connect.\n  \"\"\"\n  isConnected: Boolean!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  User accounts on this Enterprise Server installation.\n  \"\"\"\n  userAccounts(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for Enterprise Server user accounts returned from the connection.\n    \"\"\"\n    orderBy: EnterpriseServerUserAccountOrder = {field: LOGIN, direction: ASC}\n  ): EnterpriseServerUserAccountConnection!\n\n  \"\"\"\n  User accounts uploads for the Enterprise Server installation.\n  \"\"\"\n  userAccountsUploads(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for Enterprise Server user accounts uploads returned from the connection.\n    \"\"\"\n    orderBy: EnterpriseServerUserAccountsUploadOrder = {field: CREATED_AT, direction: DESC}\n  ): EnterpriseServerUserAccountsUploadConnection!\n}\n\n\"\"\"\nThe connection type for EnterpriseServerInstallation.\n\"\"\"\ntype EnterpriseServerInstallationConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseServerInstallationEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [EnterpriseServerInstallation]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype EnterpriseServerInstallationEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: EnterpriseServerInstallation\n}\n\n\"\"\"\nThe connection type for EnterpriseServerInstallation.\n\"\"\"\ntype EnterpriseServerInstallationMembershipConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseServerInstallationMembershipEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [EnterpriseServerInstallation]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn Enterprise Server installation that a user is a member of.\n\"\"\"\ntype EnterpriseServerInstallationMembershipEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: EnterpriseServerInstallation\n\n  \"\"\"\n  The role of the user in the enterprise membership.\n  \"\"\"\n  role: EnterpriseUserAccountMembershipRole!\n}\n\n\"\"\"\nOrdering options for Enterprise Server installation connections.\n\"\"\"\ninput EnterpriseServerInstallationOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order Enterprise Server installations by.\n  \"\"\"\n  field: EnterpriseServerInstallationOrderField!\n}\n\n\"\"\"\nProperties by which Enterprise Server installation connections can be ordered.\n\"\"\"\nenum EnterpriseServerInstallationOrderField {\n  \"\"\"\n  Order Enterprise Server installations by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order Enterprise Server installations by customer name\n  \"\"\"\n  CUSTOMER_NAME\n\n  \"\"\"\n  Order Enterprise Server installations by host name\n  \"\"\"\n  HOST_NAME\n}\n\n\"\"\"\nA user account on an Enterprise Server installation.\n\"\"\"\ntype EnterpriseServerUserAccount implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  User emails belonging to this user account.\n  \"\"\"\n  emails(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for Enterprise Server user account emails returned from the connection.\n    \"\"\"\n    orderBy: EnterpriseServerUserAccountEmailOrder = {field: EMAIL, direction: ASC}\n  ): EnterpriseServerUserAccountEmailConnection!\n\n  \"\"\"\n  The Enterprise Server installation on which this user account exists.\n  \"\"\"\n  enterpriseServerInstallation: EnterpriseServerInstallation!\n\n  \"\"\"\n  The Node ID of the EnterpriseServerUserAccount object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether the user account is a site administrator on the Enterprise Server installation.\n  \"\"\"\n  isSiteAdmin: Boolean!\n\n  \"\"\"\n  The login of the user account on the Enterprise Server installation.\n  \"\"\"\n  login: String!\n\n  \"\"\"\n  The profile name of the user account on the Enterprise Server installation.\n  \"\"\"\n  profileName: String\n\n  \"\"\"\n  The date and time when the user account was created on the Enterprise Server installation.\n  \"\"\"\n  remoteCreatedAt: DateTime!\n\n  \"\"\"\n  The ID of the user account on the Enterprise Server installation.\n  \"\"\"\n  remoteUserId: Int!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe connection type for EnterpriseServerUserAccount.\n\"\"\"\ntype EnterpriseServerUserAccountConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseServerUserAccountEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [EnterpriseServerUserAccount]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype EnterpriseServerUserAccountEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: EnterpriseServerUserAccount\n}\n\n\"\"\"\nAn email belonging to a user account on an Enterprise Server installation.\n\"\"\"\ntype EnterpriseServerUserAccountEmail implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The email address.\n  \"\"\"\n  email: String!\n\n  \"\"\"\n  The Node ID of the EnterpriseServerUserAccountEmail object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Indicates whether this is the primary email of the associated user account.\n  \"\"\"\n  isPrimary: Boolean!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The user account to which the email belongs.\n  \"\"\"\n  userAccount: EnterpriseServerUserAccount!\n}\n\n\"\"\"\nThe connection type for EnterpriseServerUserAccountEmail.\n\"\"\"\ntype EnterpriseServerUserAccountEmailConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseServerUserAccountEmailEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [EnterpriseServerUserAccountEmail]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype EnterpriseServerUserAccountEmailEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: EnterpriseServerUserAccountEmail\n}\n\n\"\"\"\nOrdering options for Enterprise Server user account email connections.\n\"\"\"\ninput EnterpriseServerUserAccountEmailOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order emails by.\n  \"\"\"\n  field: EnterpriseServerUserAccountEmailOrderField!\n}\n\n\"\"\"\nProperties by which Enterprise Server user account email connections can be ordered.\n\"\"\"\nenum EnterpriseServerUserAccountEmailOrderField {\n  \"\"\"\n  Order emails by email\n  \"\"\"\n  EMAIL\n}\n\n\"\"\"\nOrdering options for Enterprise Server user account connections.\n\"\"\"\ninput EnterpriseServerUserAccountOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order user accounts by.\n  \"\"\"\n  field: EnterpriseServerUserAccountOrderField!\n}\n\n\"\"\"\nProperties by which Enterprise Server user account connections can be ordered.\n\"\"\"\nenum EnterpriseServerUserAccountOrderField {\n  \"\"\"\n  Order user accounts by login\n  \"\"\"\n  LOGIN\n\n  \"\"\"\n  Order user accounts by creation time on the Enterprise Server installation\n  \"\"\"\n  REMOTE_CREATED_AT\n}\n\n\"\"\"\nA user accounts upload from an Enterprise Server installation.\n\"\"\"\ntype EnterpriseServerUserAccountsUpload implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The enterprise to which this upload belongs.\n  \"\"\"\n  enterprise: Enterprise!\n\n  \"\"\"\n  The Enterprise Server installation for which this upload was generated.\n  \"\"\"\n  enterpriseServerInstallation: EnterpriseServerInstallation!\n\n  \"\"\"\n  The Node ID of the EnterpriseServerUserAccountsUpload object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The name of the file uploaded.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The synchronization state of the upload\n  \"\"\"\n  syncState: EnterpriseServerUserAccountsUploadSyncState!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe connection type for EnterpriseServerUserAccountsUpload.\n\"\"\"\ntype EnterpriseServerUserAccountsUploadConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnterpriseServerUserAccountsUploadEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [EnterpriseServerUserAccountsUpload]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype EnterpriseServerUserAccountsUploadEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: EnterpriseServerUserAccountsUpload\n}\n\n\"\"\"\nOrdering options for Enterprise Server user accounts upload connections.\n\"\"\"\ninput EnterpriseServerUserAccountsUploadOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order user accounts uploads by.\n  \"\"\"\n  field: EnterpriseServerUserAccountsUploadOrderField!\n}\n\n\"\"\"\nProperties by which Enterprise Server user accounts upload connections can be ordered.\n\"\"\"\nenum EnterpriseServerUserAccountsUploadOrderField {\n  \"\"\"\n  Order user accounts uploads by creation time\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nSynchronization state of the Enterprise Server user accounts upload\n\"\"\"\nenum EnterpriseServerUserAccountsUploadSyncState {\n  \"\"\"\n  The synchronization of the upload failed.\n  \"\"\"\n  FAILURE\n\n  \"\"\"\n  The synchronization of the upload is pending.\n  \"\"\"\n  PENDING\n\n  \"\"\"\n  The synchronization of the upload succeeded.\n  \"\"\"\n  SUCCESS\n}\n\n\"\"\"\nAn account for a user who is an admin of an enterprise or a member of an enterprise through one or more organizations.\n\"\"\"\ntype EnterpriseUserAccount implements Actor & Node {\n  \"\"\"\n  A URL pointing to the enterprise user account's public avatar.\n  \"\"\"\n  avatarUrl(\n    \"\"\"\n    The size of the resulting square image.\n    \"\"\"\n    size: Int\n  ): URI!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The enterprise in which this user account exists.\n  \"\"\"\n  enterprise: Enterprise!\n\n  \"\"\"\n  A list of Enterprise Server installations this user is a member of.\n  \"\"\"\n  enterpriseInstallations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for installations returned from the connection.\n    \"\"\"\n    orderBy: EnterpriseServerInstallationOrder = {field: HOST_NAME, direction: ASC}\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String\n\n    \"\"\"\n    The role of the user in the installation.\n    \"\"\"\n    role: EnterpriseUserAccountMembershipRole\n  ): EnterpriseServerInstallationMembershipConnection!\n\n  \"\"\"\n  The Node ID of the EnterpriseUserAccount object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  An identifier for the enterprise user account, a login or email address\n  \"\"\"\n  login: String!\n\n  \"\"\"\n  The name of the enterprise user account\n  \"\"\"\n  name: String\n\n  \"\"\"\n  A list of enterprise organizations this user is a member of.\n  \"\"\"\n  organizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for organizations returned from the connection.\n    \"\"\"\n    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String\n\n    \"\"\"\n    The role of the user in the enterprise organization.\n    \"\"\"\n    role: EnterpriseUserAccountMembershipRole\n  ): EnterpriseOrganizationMembershipConnection!\n\n  \"\"\"\n  The HTTP path for this user.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this user.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  The user within the enterprise.\n  \"\"\"\n  user: User\n}\n\n\"\"\"\nThe possible roles for enterprise membership.\n\"\"\"\nenum EnterpriseUserAccountMembershipRole {\n  \"\"\"\n  The user is a member of an organization in the enterprise.\n  \"\"\"\n  MEMBER\n\n  \"\"\"\n  The user is an owner of an organization in the enterprise.\n  \"\"\"\n  OWNER\n\n  \"\"\"\n  The user is not an owner of the enterprise, and not a member or owner of any\n  organizations in the enterprise; only for EMU-enabled enterprises.\n  \"\"\"\n  UNAFFILIATED\n}\n\n\"\"\"\nThe possible GitHub Enterprise deployments where this user can exist.\n\"\"\"\nenum EnterpriseUserDeployment {\n  \"\"\"\n  The user is part of a GitHub Enterprise Cloud deployment.\n  \"\"\"\n  CLOUD\n\n  \"\"\"\n  The user is part of a GitHub Enterprise Server deployment.\n  \"\"\"\n  SERVER\n}\n\n\"\"\"\nAn environment.\n\"\"\"\ntype Environment implements Node {\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the Environment object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The name of the environment\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The protection rules defined for this environment\n  \"\"\"\n  protectionRules(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): DeploymentProtectionRuleConnection!\n}\n\n\"\"\"\nThe connection type for Environment.\n\"\"\"\ntype EnvironmentConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [EnvironmentEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Environment]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype EnvironmentEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Environment\n}\n\n\"\"\"\nProperties by which environments connections can be ordered\n\"\"\"\nenum EnvironmentOrderField {\n  \"\"\"\n  Order environments by name.\n  \"\"\"\n  NAME\n}\n\n\"\"\"\nOrdering options for environments\n\"\"\"\ninput Environments {\n  \"\"\"\n  The direction in which to order environments by the specified field.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order environments by.\n  \"\"\"\n  field: EnvironmentOrderField!\n}\n\n\"\"\"\nAn external identity provisioned by SAML SSO or SCIM. If SAML is configured on\nthe organization, the external identity is visible to (1) organization owners,\n(2) organization owners' personal access tokens (classic) with read:org or\nadmin:org scope, (3) GitHub App with an installation token with read or write\naccess to members. If SAML is configured on the enterprise, the external\nidentity is visible to (1) enterprise owners, (2) enterprise owners' personal\naccess tokens (classic) with read:enterprise or admin:enterprise scope.\n\"\"\"\ntype ExternalIdentity implements Node {\n  \"\"\"\n  The GUID for this identity\n  \"\"\"\n  guid: String!\n\n  \"\"\"\n  The Node ID of the ExternalIdentity object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Organization invitation for this SCIM-provisioned external identity\n  \"\"\"\n  organizationInvitation: OrganizationInvitation\n\n  \"\"\"\n  SAML Identity attributes\n  \"\"\"\n  samlIdentity: ExternalIdentitySamlAttributes\n\n  \"\"\"\n  SCIM Identity attributes\n  \"\"\"\n  scimIdentity: ExternalIdentityScimAttributes\n\n  \"\"\"\n  User linked to this external identity. Will be NULL if this identity has not been claimed by an organization member.\n  \"\"\"\n  user: User\n}\n\n\"\"\"\nAn attribute for the External Identity attributes collection\n\"\"\"\ntype ExternalIdentityAttribute {\n  \"\"\"\n  The attribute metadata as JSON\n  \"\"\"\n  metadata: String\n\n  \"\"\"\n  The attribute name\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The attribute value\n  \"\"\"\n  value: String!\n}\n\n\"\"\"\nThe connection type for ExternalIdentity.\n\"\"\"\ntype ExternalIdentityConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ExternalIdentityEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ExternalIdentity]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ExternalIdentityEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ExternalIdentity\n}\n\n\"\"\"\nSAML attributes for the External Identity\n\"\"\"\ntype ExternalIdentitySamlAttributes {\n  \"\"\"\n  SAML Identity attributes\n  \"\"\"\n  attributes: [ExternalIdentityAttribute!]!\n\n  \"\"\"\n  The emails associated with the SAML identity\n  \"\"\"\n  emails: [UserEmailMetadata!]\n\n  \"\"\"\n  Family name of the SAML identity\n  \"\"\"\n  familyName: String\n\n  \"\"\"\n  Given name of the SAML identity\n  \"\"\"\n  givenName: String\n\n  \"\"\"\n  The groups linked to this identity in IDP\n  \"\"\"\n  groups: [String!]\n\n  \"\"\"\n  The NameID of the SAML identity\n  \"\"\"\n  nameId: String\n\n  \"\"\"\n  The userName of the SAML identity\n  \"\"\"\n  username: String\n}\n\n\"\"\"\nSCIM attributes for the External Identity\n\"\"\"\ntype ExternalIdentityScimAttributes {\n  \"\"\"\n  The emails associated with the SCIM identity\n  \"\"\"\n  emails: [UserEmailMetadata!]\n\n  \"\"\"\n  Family name of the SCIM identity\n  \"\"\"\n  familyName: String\n\n  \"\"\"\n  Given name of the SCIM identity\n  \"\"\"\n  givenName: String\n\n  \"\"\"\n  The groups linked to this identity in IDP\n  \"\"\"\n  groups: [String!]\n\n  \"\"\"\n  The userName of the SCIM identity\n  \"\"\"\n  username: String\n}\n\n\"\"\"\nA command to add a file at the given path with the given contents as part of a\ncommit.  Any existing file at that that path will be replaced.\n\"\"\"\ninput FileAddition {\n  \"\"\"\n  The base64 encoded contents of the file\n  \"\"\"\n  contents: Base64String!\n\n  \"\"\"\n  The path in the repository where the file will be located\n  \"\"\"\n  path: String!\n}\n\n\"\"\"\nA description of a set of changes to a file tree to be made as part of\na git commit, modeled as zero or more file `additions` and zero or more\nfile `deletions`.\n\nBoth fields are optional; omitting both will produce a commit with no\nfile changes.\n\n`deletions` and `additions` describe changes to files identified\nby their path in the git tree using unix-style path separators, i.e.\n`/`.  The root of a git tree is an empty string, so paths are not\nslash-prefixed.\n\n`path` values must be unique across all `additions` and `deletions`\nprovided.  Any duplication will result in a validation error.\n\n### Encoding\n\nFile contents must be provided in full for each `FileAddition`.\n\nThe `contents` of a `FileAddition` must be encoded using RFC 4648\ncompliant base64, i.e. correct padding is required and no characters\noutside the standard alphabet may be used.  Invalid base64\nencoding will be rejected with a validation error.\n\nThe encoded contents may be binary.\n\nFor text files, no assumptions are made about the character encoding of\nthe file contents (after base64 decoding).  No charset transcoding or\nline-ending normalization will be performed; it is the client's\nresponsibility to manage the character encoding of files they provide.\nHowever, for maximum compatibility we recommend using UTF-8 encoding\nand ensuring that all files in a repository use a consistent\nline-ending convention (`\\n` or `\\r\\n`), and that all files end\nwith a newline.\n\n### Modeling file changes\n\nEach of the the five types of conceptual changes that can be made in a\ngit commit can be described using the `FileChanges` type as follows:\n\n1. New file addition: create file `hello world\\n` at path `docs/README.txt`:\n\n       {\n         \"additions\" [\n           {\n             \"path\": \"docs/README.txt\",\n             \"contents\": base64encode(\"hello world\\n\")\n           }\n         ]\n       }\n\n2. Existing file modification: change existing `docs/README.txt` to have new\n   content `new content here\\n`:\n\n       {\n         \"additions\" [\n           {\n             \"path\": \"docs/README.txt\",\n             \"contents\": base64encode(\"new content here\\n\")\n           }\n         ]\n       }\n\n3. Existing file deletion: remove existing file `docs/README.txt`.\n   Note that the path is required to exist -- specifying a\n   path that does not exist on the given branch will abort the\n   commit and return an error.\n\n       {\n         \"deletions\" [\n           {\n             \"path\": \"docs/README.txt\"\n           }\n         ]\n       }\n\n\n4. File rename with no changes: rename `docs/README.txt` with\n   previous content `hello world\\n` to the same content at\n   `newdocs/README.txt`:\n\n       {\n         \"deletions\" [\n           {\n             \"path\": \"docs/README.txt\",\n           }\n         ],\n         \"additions\" [\n           {\n             \"path\": \"newdocs/README.txt\",\n             \"contents\": base64encode(\"hello world\\n\")\n           }\n         ]\n       }\n\n\n5. File rename with changes: rename `docs/README.txt` with\n   previous content `hello world\\n` to a file at path\n   `newdocs/README.txt` with content `new contents\\n`:\n\n       {\n         \"deletions\" [\n           {\n             \"path\": \"docs/README.txt\",\n           }\n         ],\n         \"additions\" [\n           {\n             \"path\": \"newdocs/README.txt\",\n             \"contents\": base64encode(\"new contents\\n\")\n           }\n         ]\n       }\n\"\"\"\ninput FileChanges {\n  \"\"\"\n  File to add or change.\n  \"\"\"\n  additions: [FileAddition!] = []\n\n  \"\"\"\n  Files to delete.\n  \"\"\"\n  deletions: [FileDeletion!] = []\n}\n\n\"\"\"\nA command to delete the file at the given path as part of a commit.\n\"\"\"\ninput FileDeletion {\n  \"\"\"\n  The path to delete\n  \"\"\"\n  path: String!\n}\n\n\"\"\"\nThe possible viewed states of a file .\n\"\"\"\nenum FileViewedState {\n  \"\"\"\n  The file has new changes since last viewed.\n  \"\"\"\n  DISMISSED\n\n  \"\"\"\n  The file has not been marked as viewed.\n  \"\"\"\n  UNVIEWED\n\n  \"\"\"\n  The file has been marked as viewed.\n  \"\"\"\n  VIEWED\n}\n\n\"\"\"\nAutogenerated input type of FollowOrganization\n\"\"\"\ninput FollowOrganizationInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the organization to follow.\n  \"\"\"\n  organizationId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n}\n\n\"\"\"\nAutogenerated return type of FollowOrganization\n\"\"\"\ntype FollowOrganizationPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The organization that was followed.\n  \"\"\"\n  organization: Organization\n}\n\n\"\"\"\nAutogenerated input type of FollowUser\n\"\"\"\ninput FollowUserInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the user to follow.\n  \"\"\"\n  userId: ID! @possibleTypes(concreteTypes: [\"User\"])\n}\n\n\"\"\"\nAutogenerated return type of FollowUser\n\"\"\"\ntype FollowUserPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The user that was followed.\n  \"\"\"\n  user: User\n}\n\n\"\"\"\nThe connection type for User.\n\"\"\"\ntype FollowerConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [UserEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [User]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nThe connection type for User.\n\"\"\"\ntype FollowingConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [UserEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [User]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nA funding platform link for a repository.\n\"\"\"\ntype FundingLink {\n  \"\"\"\n  The funding platform this link is for.\n  \"\"\"\n  platform: FundingPlatform!\n\n  \"\"\"\n  The configured URL for this funding link.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nThe possible funding platforms for repository funding links.\n\"\"\"\nenum FundingPlatform {\n  \"\"\"\n  Community Bridge funding platform.\n  \"\"\"\n  COMMUNITY_BRIDGE\n\n  \"\"\"\n  Custom funding platform.\n  \"\"\"\n  CUSTOM\n\n  \"\"\"\n  GitHub funding platform.\n  \"\"\"\n  GITHUB\n\n  \"\"\"\n  IssueHunt funding platform.\n  \"\"\"\n  ISSUEHUNT\n\n  \"\"\"\n  Ko-fi funding platform.\n  \"\"\"\n  KO_FI\n\n  \"\"\"\n  LFX Crowdfunding funding platform.\n  \"\"\"\n  LFX_CROWDFUNDING\n\n  \"\"\"\n  Liberapay funding platform.\n  \"\"\"\n  LIBERAPAY\n\n  \"\"\"\n  Open Collective funding platform.\n  \"\"\"\n  OPEN_COLLECTIVE\n\n  \"\"\"\n  Otechie funding platform.\n  \"\"\"\n  OTECHIE\n\n  \"\"\"\n  Patreon funding platform.\n  \"\"\"\n  PATREON\n\n  \"\"\"\n  Tidelift funding platform.\n  \"\"\"\n  TIDELIFT\n}\n\n\"\"\"\nA generic hovercard context with a message and icon\n\"\"\"\ntype GenericHovercardContext implements HovercardContext {\n  \"\"\"\n  A string describing this context\n  \"\"\"\n  message: String!\n\n  \"\"\"\n  An octicon to accompany this context\n  \"\"\"\n  octicon: String!\n}\n\n\"\"\"\nA Gist.\n\"\"\"\ntype Gist implements Node & Starrable & UniformResourceLocatable {\n  \"\"\"\n  A list of comments associated with the gist\n  \"\"\"\n  comments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): GistCommentConnection!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The gist description.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The files in this gist.\n  \"\"\"\n  files(\n    \"\"\"\n    The maximum number of files to return.\n    \"\"\"\n    limit: Int = 10\n\n    \"\"\"\n    The oid of the files to return\n    \"\"\"\n    oid: GitObjectID\n  ): [GistFile]\n\n  \"\"\"\n  A list of forks associated with the gist\n  \"\"\"\n  forks(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for gists returned from the connection\n    \"\"\"\n    orderBy: GistOrder\n  ): GistConnection!\n\n  \"\"\"\n  The Node ID of the Gist object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies if the gist is a fork.\n  \"\"\"\n  isFork: Boolean!\n\n  \"\"\"\n  Whether the gist is public or not.\n  \"\"\"\n  isPublic: Boolean!\n\n  \"\"\"\n  The gist name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The gist owner.\n  \"\"\"\n  owner: RepositoryOwner\n\n  \"\"\"\n  Identifies when the gist was last pushed to.\n  \"\"\"\n  pushedAt: DateTime\n\n  \"\"\"\n  The HTML path to this resource.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Returns a count of how many stargazers there are on this object\n  \"\"\"\n  stargazerCount: Int!\n\n  \"\"\"\n  A list of users who have starred this starrable.\n  \"\"\"\n  stargazers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Order for connection\n    \"\"\"\n    orderBy: StarOrder\n  ): StargazerConnection!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this Gist.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Returns a boolean indicating whether the viewing user has starred this starrable.\n  \"\"\"\n  viewerHasStarred: Boolean!\n}\n\n\"\"\"\nRepresents a comment on an Gist.\n\"\"\"\ntype GistComment implements Comment & Deletable & Minimizable & Node & Updatable & UpdatableComment {\n  \"\"\"\n  The actor who authored the comment.\n  \"\"\"\n  author: Actor\n\n  \"\"\"\n  Author's association with the gist.\n  \"\"\"\n  authorAssociation: CommentAuthorAssociation!\n\n  \"\"\"\n  Identifies the comment body.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The body rendered to text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Check if this comment was created via an email reply.\n  \"\"\"\n  createdViaEmail: Boolean!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The actor who edited the comment.\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  The associated gist.\n  \"\"\"\n  gist: Gist!\n\n  \"\"\"\n  The Node ID of the GistComment object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if this comment was edited and includes an edit with the creation data\n  \"\"\"\n  includesCreatedEdit: Boolean!\n\n  \"\"\"\n  Returns whether or not a comment has been minimized.\n  \"\"\"\n  isMinimized: Boolean!\n\n  \"\"\"\n  The moment the editor made the last edit\n  \"\"\"\n  lastEditedAt: DateTime\n\n  \"\"\"\n  Returns why the comment was minimized. One of `abuse`, `off-topic`,\n  `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and\n  formatting of these values differs from the inputs to the `MinimizeComment` mutation.\n  \"\"\"\n  minimizedReason: String\n\n  \"\"\"\n  Identifies when the comment was published at.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  A list of edits to this content.\n  \"\"\"\n  userContentEdits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserContentEditConnection\n\n  \"\"\"\n  Check if the current viewer can delete this object.\n  \"\"\"\n  viewerCanDelete: Boolean!\n\n  \"\"\"\n  Check if the current viewer can minimize this object.\n  \"\"\"\n  viewerCanMinimize: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n\n  \"\"\"\n  Reasons why the current viewer can not update this comment.\n  \"\"\"\n  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!\n\n  \"\"\"\n  Did the viewer author this comment.\n  \"\"\"\n  viewerDidAuthor: Boolean!\n}\n\n\"\"\"\nThe connection type for GistComment.\n\"\"\"\ntype GistCommentConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [GistCommentEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [GistComment]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype GistCommentEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: GistComment\n}\n\n\"\"\"\nThe connection type for Gist.\n\"\"\"\ntype GistConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [GistEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Gist]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype GistEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Gist\n}\n\n\"\"\"\nA file in a gist.\n\"\"\"\ntype GistFile {\n  \"\"\"\n  The file name encoded to remove characters that are invalid in URL paths.\n  \"\"\"\n  encodedName: String\n\n  \"\"\"\n  The gist file encoding.\n  \"\"\"\n  encoding: String\n\n  \"\"\"\n  The file extension from the file name.\n  \"\"\"\n  extension: String\n\n  \"\"\"\n  Indicates if this file is an image.\n  \"\"\"\n  isImage: Boolean!\n\n  \"\"\"\n  Whether the file's contents were truncated.\n  \"\"\"\n  isTruncated: Boolean!\n\n  \"\"\"\n  The programming language this file is written in.\n  \"\"\"\n  language: Language\n\n  \"\"\"\n  The gist file name.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  The gist file size in bytes.\n  \"\"\"\n  size: Int\n\n  \"\"\"\n  UTF8 text data or null if the file is binary\n  \"\"\"\n  text(\n    \"\"\"\n    Optionally truncate the returned file to this length.\n    \"\"\"\n    truncate: Int\n  ): String\n}\n\n\"\"\"\nOrdering options for gist connections\n\"\"\"\ninput GistOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order repositories by.\n  \"\"\"\n  field: GistOrderField!\n}\n\n\"\"\"\nProperties by which gist connections can be ordered.\n\"\"\"\nenum GistOrderField {\n  \"\"\"\n  Order gists by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order gists by push time\n  \"\"\"\n  PUSHED_AT\n\n  \"\"\"\n  Order gists by update time\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nThe privacy of a Gist\n\"\"\"\nenum GistPrivacy {\n  \"\"\"\n  Gists that are public and secret\n  \"\"\"\n  ALL\n\n  \"\"\"\n  Public\n  \"\"\"\n  PUBLIC\n\n  \"\"\"\n  Secret\n  \"\"\"\n  SECRET\n}\n\n\"\"\"\nRepresents an actor in a Git commit (ie. an author or committer).\n\"\"\"\ntype GitActor {\n  \"\"\"\n  A URL pointing to the author's public avatar.\n  \"\"\"\n  avatarUrl(\n    \"\"\"\n    The size of the resulting square image.\n    \"\"\"\n    size: Int\n  ): URI!\n\n  \"\"\"\n  The timestamp of the Git action (authoring or committing).\n  \"\"\"\n  date: GitTimestamp\n\n  \"\"\"\n  The email in the Git commit.\n  \"\"\"\n  email: String\n\n  \"\"\"\n  The name in the Git commit.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  The GitHub user corresponding to the email field. Null if no such user exists.\n  \"\"\"\n  user: User\n}\n\n\"\"\"\nThe connection type for GitActor.\n\"\"\"\ntype GitActorConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [GitActorEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [GitActor]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype GitActorEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: GitActor\n}\n\n\"\"\"\nRepresents information about the GitHub instance.\n\"\"\"\ntype GitHubMetadata {\n  \"\"\"\n  Returns a String that's a SHA of `github-services`\n  \"\"\"\n  gitHubServicesSha: GitObjectID!\n\n  \"\"\"\n  IP addresses that users connect to for git operations\n  \"\"\"\n  gitIpAddresses: [String!]\n\n  \"\"\"\n  IP addresses that GitHub Enterprise Importer uses for outbound connections\n  \"\"\"\n  githubEnterpriseImporterIpAddresses: [String!]\n\n  \"\"\"\n  IP addresses that service hooks are sent from\n  \"\"\"\n  hookIpAddresses: [String!]\n\n  \"\"\"\n  IP addresses that the importer connects from\n  \"\"\"\n  importerIpAddresses: [String!]\n\n  \"\"\"\n  Whether or not users are verified\n  \"\"\"\n  isPasswordAuthenticationVerifiable: Boolean!\n\n  \"\"\"\n  IP addresses for GitHub Pages' A records\n  \"\"\"\n  pagesIpAddresses: [String!]\n}\n\n\"\"\"\nRepresents a Git object.\n\"\"\"\ninterface GitObject {\n  \"\"\"\n  An abbreviated version of the Git object ID\n  \"\"\"\n  abbreviatedOid: String!\n\n  \"\"\"\n  The HTTP path for this Git object\n  \"\"\"\n  commitResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this Git object\n  \"\"\"\n  commitUrl: URI!\n\n  \"\"\"\n  The Node ID of the GitObject object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The Git object ID\n  \"\"\"\n  oid: GitObjectID!\n\n  \"\"\"\n  The Repository the Git object belongs to\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nA Git object ID.\n\"\"\"\nscalar GitObjectID\n\n\"\"\"\nA fully qualified reference name (e.g. `refs/heads/master`).\n\"\"\"\nscalar GitRefname @preview(toggledBy: \"update-refs-preview\")\n\n\"\"\"\nGit SSH string\n\"\"\"\nscalar GitSSHRemote\n\n\"\"\"\nInformation about a signature (GPG or S/MIME) on a Commit or Tag.\n\"\"\"\ninterface GitSignature {\n  \"\"\"\n  Email used to sign this object.\n  \"\"\"\n  email: String!\n\n  \"\"\"\n  True if the signature is valid and verified by GitHub.\n  \"\"\"\n  isValid: Boolean!\n\n  \"\"\"\n  Payload for GPG signing object. Raw ODB object without the signature header.\n  \"\"\"\n  payload: String!\n\n  \"\"\"\n  ASCII-armored signature header from object.\n  \"\"\"\n  signature: String!\n\n  \"\"\"\n  GitHub user corresponding to the email signing this commit.\n  \"\"\"\n  signer: User\n\n  \"\"\"\n  The state of this signature. `VALID` if signature is valid and verified by\n  GitHub, otherwise represents reason why signature is considered invalid.\n  \"\"\"\n  state: GitSignatureState!\n\n  \"\"\"\n  True if the signature was made with GitHub's signing key.\n  \"\"\"\n  wasSignedByGitHub: Boolean!\n}\n\n\"\"\"\nThe state of a Git signature.\n\"\"\"\nenum GitSignatureState {\n  \"\"\"\n  The signing certificate or its chain could not be verified\n  \"\"\"\n  BAD_CERT\n\n  \"\"\"\n  Invalid email used for signing\n  \"\"\"\n  BAD_EMAIL\n\n  \"\"\"\n  Signing key expired\n  \"\"\"\n  EXPIRED_KEY\n\n  \"\"\"\n  Internal error - the GPG verification service misbehaved\n  \"\"\"\n  GPGVERIFY_ERROR\n\n  \"\"\"\n  Internal error - the GPG verification service is unavailable at the moment\n  \"\"\"\n  GPGVERIFY_UNAVAILABLE\n\n  \"\"\"\n  Invalid signature\n  \"\"\"\n  INVALID\n\n  \"\"\"\n  Malformed signature\n  \"\"\"\n  MALFORMED_SIG\n\n  \"\"\"\n  The usage flags for the key that signed this don't allow signing\n  \"\"\"\n  NOT_SIGNING_KEY\n\n  \"\"\"\n  Email used for signing not known to GitHub\n  \"\"\"\n  NO_USER\n\n  \"\"\"\n  Valid signature, though certificate revocation check failed\n  \"\"\"\n  OCSP_ERROR\n\n  \"\"\"\n  Valid signature, pending certificate revocation checking\n  \"\"\"\n  OCSP_PENDING\n\n  \"\"\"\n  One or more certificates in chain has been revoked\n  \"\"\"\n  OCSP_REVOKED\n\n  \"\"\"\n  Key used for signing not known to GitHub\n  \"\"\"\n  UNKNOWN_KEY\n\n  \"\"\"\n  Unknown signature type\n  \"\"\"\n  UNKNOWN_SIG_TYPE\n\n  \"\"\"\n  Unsigned\n  \"\"\"\n  UNSIGNED\n\n  \"\"\"\n  Email used for signing unverified on GitHub\n  \"\"\"\n  UNVERIFIED_EMAIL\n\n  \"\"\"\n  Valid signature and verified by GitHub\n  \"\"\"\n  VALID\n}\n\n\"\"\"\nAn ISO-8601 encoded date string. Unlike the DateTime type, GitTimestamp is not converted in UTC.\n\"\"\"\nscalar GitTimestamp\n\n\"\"\"\nRepresents a GPG signature on a Commit or Tag.\n\"\"\"\ntype GpgSignature implements GitSignature {\n  \"\"\"\n  Email used to sign this object.\n  \"\"\"\n  email: String!\n\n  \"\"\"\n  True if the signature is valid and verified by GitHub.\n  \"\"\"\n  isValid: Boolean!\n\n  \"\"\"\n  Hex-encoded ID of the key that signed this object.\n  \"\"\"\n  keyId: String\n\n  \"\"\"\n  Payload for GPG signing object. Raw ODB object without the signature header.\n  \"\"\"\n  payload: String!\n\n  \"\"\"\n  ASCII-armored signature header from object.\n  \"\"\"\n  signature: String!\n\n  \"\"\"\n  GitHub user corresponding to the email signing this commit.\n  \"\"\"\n  signer: User\n\n  \"\"\"\n  The state of this signature. `VALID` if signature is valid and verified by\n  GitHub, otherwise represents reason why signature is considered invalid.\n  \"\"\"\n  state: GitSignatureState!\n\n  \"\"\"\n  True if the signature was made with GitHub's signing key.\n  \"\"\"\n  wasSignedByGitHub: Boolean!\n}\n\n\"\"\"\nAutogenerated input type of GrantEnterpriseOrganizationsMigratorRole\n\"\"\"\ninput GrantEnterpriseOrganizationsMigratorRoleInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise to which all organizations managed by it will be granted the migrator role.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The login of the user to grant the migrator role\n  \"\"\"\n  login: String!\n}\n\n\"\"\"\nAutogenerated return type of GrantEnterpriseOrganizationsMigratorRole\n\"\"\"\ntype GrantEnterpriseOrganizationsMigratorRolePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The organizations that had the migrator role applied to for the given user.\n  \"\"\"\n  organizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): OrganizationConnection\n}\n\n\"\"\"\nAutogenerated input type of GrantMigratorRole\n\"\"\"\ninput GrantMigratorRoleInput {\n  \"\"\"\n  The user login or Team slug to grant the migrator role.\n  \"\"\"\n  actor: String!\n\n  \"\"\"\n  Specifies the type of the actor, can be either USER or TEAM.\n  \"\"\"\n  actorType: ActorType!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the organization that the user/team belongs to.\n  \"\"\"\n  organizationId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n}\n\n\"\"\"\nAutogenerated return type of GrantMigratorRole\n\"\"\"\ntype GrantMigratorRolePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Did the operation succeed?\n  \"\"\"\n  success: Boolean\n}\n\n\"\"\"\nA string containing HTML code.\n\"\"\"\nscalar HTML\n\n\"\"\"\nRepresents a 'head_ref_deleted' event on a given pull request.\n\"\"\"\ntype HeadRefDeletedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the Ref associated with the `head_ref_deleted` event.\n  \"\"\"\n  headRef: Ref\n\n  \"\"\"\n  Identifies the name of the Ref associated with the `head_ref_deleted` event.\n  \"\"\"\n  headRefName: String!\n\n  \"\"\"\n  The Node ID of the HeadRefDeletedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n}\n\n\"\"\"\nRepresents a 'head_ref_force_pushed' event on a given pull request.\n\"\"\"\ntype HeadRefForcePushedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the after commit SHA for the 'head_ref_force_pushed' event.\n  \"\"\"\n  afterCommit: Commit\n\n  \"\"\"\n  Identifies the before commit SHA for the 'head_ref_force_pushed' event.\n  \"\"\"\n  beforeCommit: Commit\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the HeadRefForcePushedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  Identifies the fully qualified ref name for the 'head_ref_force_pushed' event.\n  \"\"\"\n  ref: Ref\n}\n\n\"\"\"\nRepresents a 'head_ref_restored' event on a given pull request.\n\"\"\"\ntype HeadRefRestoredEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the HeadRefRestoredEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n}\n\n\"\"\"\nDetail needed to display a hovercard for a user\n\"\"\"\ntype Hovercard {\n  \"\"\"\n  Each of the contexts for this hovercard\n  \"\"\"\n  contexts: [HovercardContext!]!\n}\n\n\"\"\"\nAn individual line of a hovercard\n\"\"\"\ninterface HovercardContext {\n  \"\"\"\n  A string describing this context\n  \"\"\"\n  message: String!\n\n  \"\"\"\n  An octicon to accompany this context\n  \"\"\"\n  octicon: String!\n}\n\n\"\"\"\nThe possible states in which authentication can be configured with an identity provider.\n\"\"\"\nenum IdentityProviderConfigurationState {\n  \"\"\"\n  Authentication with an identity provider is configured but not enforced.\n  \"\"\"\n  CONFIGURED\n\n  \"\"\"\n  Authentication with an identity provider is configured and enforced.\n  \"\"\"\n  ENFORCED\n\n  \"\"\"\n  Authentication with an identity provider is not configured.\n  \"\"\"\n  UNCONFIGURED\n}\n\n\"\"\"\nAutogenerated input type of ImportProject\n\"\"\"\ninput ImportProjectInput {\n  \"\"\"\n  The description of Project.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A list of columns containing issues and pull requests.\n  \"\"\"\n  columnImports: [ProjectColumnImport!]!\n\n  \"\"\"\n  The name of Project.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The name of the Organization or User to create the Project under.\n  \"\"\"\n  ownerName: String!\n\n  \"\"\"\n  Whether the Project is public or not.\n  \"\"\"\n  public: Boolean = false\n}\n\n\"\"\"\nAutogenerated return type of ImportProject\n\"\"\"\ntype ImportProjectPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new Project!\n  \"\"\"\n  project: Project\n}\n\n\"\"\"\nAutogenerated input type of InviteEnterpriseAdmin\n\"\"\"\ninput InviteEnterpriseAdminInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The email of the person to invite as an administrator.\n  \"\"\"\n  email: String\n\n  \"\"\"\n  The ID of the enterprise to which you want to invite an administrator.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The login of a user to invite as an administrator.\n  \"\"\"\n  invitee: String\n\n  \"\"\"\n  The role of the administrator.\n  \"\"\"\n  role: EnterpriseAdministratorRole\n}\n\n\"\"\"\nAutogenerated return type of InviteEnterpriseAdmin\n\"\"\"\ntype InviteEnterpriseAdminPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The created enterprise administrator invitation.\n  \"\"\"\n  invitation: EnterpriseAdministratorInvitation\n}\n\n\"\"\"\nThe possible values for the IP allow list enabled setting.\n\"\"\"\nenum IpAllowListEnabledSettingValue {\n  \"\"\"\n  The setting is disabled for the owner.\n  \"\"\"\n  DISABLED\n\n  \"\"\"\n  The setting is enabled for the owner.\n  \"\"\"\n  ENABLED\n}\n\n\"\"\"\nAn IP address or range of addresses that is allowed to access an owner's resources.\n\"\"\"\ntype IpAllowListEntry implements Node {\n  \"\"\"\n  A single IP address or range of IP addresses in CIDR notation.\n  \"\"\"\n  allowListValue: String!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the IpAllowListEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether the entry is currently active.\n  \"\"\"\n  isActive: Boolean!\n\n  \"\"\"\n  The name of the IP allow list entry.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  The owner of the IP allow list entry.\n  \"\"\"\n  owner: IpAllowListOwner!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe connection type for IpAllowListEntry.\n\"\"\"\ntype IpAllowListEntryConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [IpAllowListEntryEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [IpAllowListEntry]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype IpAllowListEntryEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: IpAllowListEntry\n}\n\n\"\"\"\nOrdering options for IP allow list entry connections.\n\"\"\"\ninput IpAllowListEntryOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order IP allow list entries by.\n  \"\"\"\n  field: IpAllowListEntryOrderField!\n}\n\n\"\"\"\nProperties by which IP allow list entry connections can be ordered.\n\"\"\"\nenum IpAllowListEntryOrderField {\n  \"\"\"\n  Order IP allow list entries by the allow list value.\n  \"\"\"\n  ALLOW_LIST_VALUE\n\n  \"\"\"\n  Order IP allow list entries by creation time.\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nThe possible values for the IP allow list configuration for installed GitHub Apps setting.\n\"\"\"\nenum IpAllowListForInstalledAppsEnabledSettingValue {\n  \"\"\"\n  The setting is disabled for the owner.\n  \"\"\"\n  DISABLED\n\n  \"\"\"\n  The setting is enabled for the owner.\n  \"\"\"\n  ENABLED\n}\n\n\"\"\"\nTypes that can own an IP allow list.\n\"\"\"\nunion IpAllowListOwner = App | Enterprise | Organization\n\n\"\"\"\nAn Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project.\n\"\"\"\ntype Issue implements Assignable & Closable & Comment & Deletable & Labelable & Lockable & Node & ProjectV2Owner & Reactable & RepositoryNode & Subscribable & SubscribableThread & UniformResourceLocatable & Updatable & UpdatableComment {\n  \"\"\"\n  Reason that the conversation was locked.\n  \"\"\"\n  activeLockReason: LockReason\n\n  \"\"\"\n  A list of Users assigned to this object.\n  \"\"\"\n  assignees(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserConnection!\n\n  \"\"\"\n  The actor who authored the comment.\n  \"\"\"\n  author: Actor\n\n  \"\"\"\n  Author's association with the subject of the comment.\n  \"\"\"\n  authorAssociation: CommentAuthorAssociation!\n\n  \"\"\"\n  Identifies the body of the issue.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The http path for this issue body\n  \"\"\"\n  bodyResourcePath: URI!\n\n  \"\"\"\n  Identifies the body of the issue rendered to text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  The http URL for this issue body\n  \"\"\"\n  bodyUrl: URI!\n\n  \"\"\"\n  Indicates if the object is closed (definition of closed may depend on type)\n  \"\"\"\n  closed: Boolean!\n\n  \"\"\"\n  Identifies the date and time when the object was closed.\n  \"\"\"\n  closedAt: DateTime\n\n  \"\"\"\n  A list of comments associated with the Issue.\n  \"\"\"\n  comments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for issue comments returned from the connection.\n    \"\"\"\n    orderBy: IssueCommentOrder\n  ): IssueCommentConnection!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Check if this comment was created via an email reply.\n  \"\"\"\n  createdViaEmail: Boolean!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The actor who edited the comment.\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  Identifies the primary key from the database as a BigInt.\n  \"\"\"\n  fullDatabaseId: BigInt\n\n  \"\"\"\n  The hovercard information for this issue\n  \"\"\"\n  hovercard(\n    \"\"\"\n    Whether or not to include notification contexts\n    \"\"\"\n    includeNotificationContexts: Boolean = true\n  ): Hovercard!\n\n  \"\"\"\n  The Node ID of the Issue object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if this comment was edited and includes an edit with the creation data\n  \"\"\"\n  includesCreatedEdit: Boolean!\n\n  \"\"\"\n  Indicates whether or not this issue is currently pinned to the repository issues list\n  \"\"\"\n  isPinned: Boolean\n\n  \"\"\"\n  Is this issue read by the viewer\n  \"\"\"\n  isReadByViewer: Boolean\n\n  \"\"\"\n  A list of labels associated with the object.\n  \"\"\"\n  labels(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for labels returned from the connection.\n    \"\"\"\n    orderBy: LabelOrder = {field: CREATED_AT, direction: ASC}\n  ): LabelConnection\n\n  \"\"\"\n  The moment the editor made the last edit\n  \"\"\"\n  lastEditedAt: DateTime\n\n  \"\"\"\n  Branches linked to this issue.\n  \"\"\"\n  linkedBranches(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): LinkedBranchConnection!\n\n  \"\"\"\n  `true` if the object is locked\n  \"\"\"\n  locked: Boolean!\n\n  \"\"\"\n  Identifies the milestone associated with the issue.\n  \"\"\"\n  milestone: Milestone\n\n  \"\"\"\n  Identifies the issue number.\n  \"\"\"\n  number: Int!\n\n  \"\"\"\n  A list of Users that are participating in the Issue conversation.\n  \"\"\"\n  participants(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserConnection!\n\n  \"\"\"\n  List of project cards associated with this issue.\n  \"\"\"\n  projectCards(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    A list of archived states to filter the cards by\n    \"\"\"\n    archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED]\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectCardConnection!\n\n  \"\"\"\n  List of project items associated with this issue.\n  \"\"\"\n  projectItems(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Include archived items.\n    \"\"\"\n    includeArchived: Boolean = true\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectV2ItemConnection!\n\n  \"\"\"\n  Find a project by number.\n  \"\"\"\n  projectV2(\n    \"\"\"\n    The project number.\n    \"\"\"\n    number: Int!\n  ): ProjectV2\n\n  \"\"\"\n  A list of projects under the owner.\n  \"\"\"\n  projectsV2(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    How to order the returned projects.\n    \"\"\"\n    orderBy: ProjectV2Order = {field: NUMBER, direction: DESC}\n\n    \"\"\"\n    A project to search for under the the owner.\n    \"\"\"\n    query: String\n  ): ProjectV2Connection!\n\n  \"\"\"\n  Identifies when the comment was published at.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  A list of reactions grouped by content left on the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  A list of Reactions left on the Issue.\n  \"\"\"\n  reactions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Allows filtering Reactions by emoji.\n    \"\"\"\n    content: ReactionContent\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows specifying the order in which reactions are returned.\n    \"\"\"\n    orderBy: ReactionOrder\n  ): ReactionConnection!\n\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for this issue\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the state of the issue.\n  \"\"\"\n  state: IssueState!\n\n  \"\"\"\n  Identifies the reason for the issue state.\n  \"\"\"\n  stateReason: IssueStateReason\n\n  \"\"\"\n  A list of events, comments, commits, etc. associated with the issue.\n  \"\"\"\n  timeline(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows filtering timeline events by a `since` timestamp.\n    \"\"\"\n    since: DateTime\n  ): IssueTimelineConnection!\n    @deprecated(reason: \"`timeline` will be removed Use Issue.timelineItems instead. Removal on 2020-10-01 UTC.\")\n\n  \"\"\"\n  A list of events, comments, commits, etc. associated with the issue.\n  \"\"\"\n  timelineItems(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Filter timeline items by type.\n    \"\"\"\n    itemTypes: [IssueTimelineItemsItemType!]\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter timeline items by a `since` timestamp.\n    \"\"\"\n    since: DateTime\n\n    \"\"\"\n    Skips the first _n_ elements in the list.\n    \"\"\"\n    skip: Int\n  ): IssueTimelineItemsConnection!\n\n  \"\"\"\n  Identifies the issue title.\n  \"\"\"\n  title: String!\n\n  \"\"\"\n  Identifies the issue title rendered to HTML.\n  \"\"\"\n  titleHTML: String!\n\n  \"\"\"\n  A list of issues that track this issue\n  \"\"\"\n  trackedInIssues(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): IssueConnection!\n\n  \"\"\"\n  A list of issues tracked inside the current issue\n  \"\"\"\n  trackedIssues(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): IssueConnection!\n\n  \"\"\"\n  The number of tracked issues for this issue\n  \"\"\"\n  trackedIssuesCount(\n    \"\"\"\n    Limit the count to tracked issues with the specified states.\n    \"\"\"\n    states: [TrackedIssueStates]\n  ): Int!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this issue\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  A list of edits to this content.\n  \"\"\"\n  userContentEdits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserContentEditConnection\n\n  \"\"\"\n  Indicates if the object can be closed by the viewer.\n  \"\"\"\n  viewerCanClose: Boolean!\n\n  \"\"\"\n  Check if the current viewer can delete this object.\n  \"\"\"\n  viewerCanDelete: Boolean!\n\n  \"\"\"\n  Can user react to this subject\n  \"\"\"\n  viewerCanReact: Boolean!\n\n  \"\"\"\n  Indicates if the object can be reopened by the viewer.\n  \"\"\"\n  viewerCanReopen: Boolean!\n\n  \"\"\"\n  Check if the viewer is able to change their subscription status for the repository.\n  \"\"\"\n  viewerCanSubscribe: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n\n  \"\"\"\n  Reasons why the current viewer can not update this comment.\n  \"\"\"\n  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!\n\n  \"\"\"\n  Did the viewer author this comment.\n  \"\"\"\n  viewerDidAuthor: Boolean!\n\n  \"\"\"\n  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.\n  \"\"\"\n  viewerSubscription: SubscriptionState\n\n  \"\"\"\n  Identifies the viewer's thread subscription form action.\n  \"\"\"\n  viewerThreadSubscriptionFormAction: ThreadSubscriptionFormAction\n\n  \"\"\"\n  Identifies the viewer's thread subscription status.\n  \"\"\"\n  viewerThreadSubscriptionStatus: ThreadSubscriptionState\n}\n\n\"\"\"\nThe possible state reasons of a closed issue.\n\"\"\"\nenum IssueClosedStateReason {\n  \"\"\"\n  An issue that has been closed as completed\n  \"\"\"\n  COMPLETED\n\n  \"\"\"\n  An issue that has been closed as not planned\n  \"\"\"\n  NOT_PLANNED\n}\n\n\"\"\"\nRepresents a comment on an Issue.\n\"\"\"\ntype IssueComment implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment {\n  \"\"\"\n  The actor who authored the comment.\n  \"\"\"\n  author: Actor\n\n  \"\"\"\n  Author's association with the subject of the comment.\n  \"\"\"\n  authorAssociation: CommentAuthorAssociation!\n\n  \"\"\"\n  The body as Markdown.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The body rendered to text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Check if this comment was created via an email reply.\n  \"\"\"\n  createdViaEmail: Boolean!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The actor who edited the comment.\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  Identifies the primary key from the database as a BigInt.\n  \"\"\"\n  fullDatabaseId: BigInt\n\n  \"\"\"\n  The Node ID of the IssueComment object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if this comment was edited and includes an edit with the creation data\n  \"\"\"\n  includesCreatedEdit: Boolean!\n\n  \"\"\"\n  Returns whether or not a comment has been minimized.\n  \"\"\"\n  isMinimized: Boolean!\n\n  \"\"\"\n  Identifies the issue associated with the comment.\n  \"\"\"\n  issue: Issue!\n\n  \"\"\"\n  The moment the editor made the last edit\n  \"\"\"\n  lastEditedAt: DateTime\n\n  \"\"\"\n  Returns why the comment was minimized. One of `abuse`, `off-topic`,\n  `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and\n  formatting of these values differs from the inputs to the `MinimizeComment` mutation.\n  \"\"\"\n  minimizedReason: String\n\n  \"\"\"\n  Identifies when the comment was published at.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  Returns the pull request associated with the comment, if this comment was made on a\n  pull request.\n  \"\"\"\n  pullRequest: PullRequest\n\n  \"\"\"\n  A list of reactions grouped by content left on the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  A list of Reactions left on the Issue.\n  \"\"\"\n  reactions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Allows filtering Reactions by emoji.\n    \"\"\"\n    content: ReactionContent\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows specifying the order in which reactions are returned.\n    \"\"\"\n    orderBy: ReactionOrder\n  ): ReactionConnection!\n\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for this issue comment\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this issue comment\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  A list of edits to this content.\n  \"\"\"\n  userContentEdits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserContentEditConnection\n\n  \"\"\"\n  Check if the current viewer can delete this object.\n  \"\"\"\n  viewerCanDelete: Boolean!\n\n  \"\"\"\n  Check if the current viewer can minimize this object.\n  \"\"\"\n  viewerCanMinimize: Boolean!\n\n  \"\"\"\n  Can user react to this subject\n  \"\"\"\n  viewerCanReact: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n\n  \"\"\"\n  Reasons why the current viewer can not update this comment.\n  \"\"\"\n  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!\n\n  \"\"\"\n  Did the viewer author this comment.\n  \"\"\"\n  viewerDidAuthor: Boolean!\n}\n\n\"\"\"\nThe connection type for IssueComment.\n\"\"\"\ntype IssueCommentConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [IssueCommentEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [IssueComment]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype IssueCommentEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: IssueComment\n}\n\n\"\"\"\nWays in which lists of issue comments can be ordered upon return.\n\"\"\"\ninput IssueCommentOrder {\n  \"\"\"\n  The direction in which to order issue comments by the specified field.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field in which to order issue comments by.\n  \"\"\"\n  field: IssueCommentOrderField!\n}\n\n\"\"\"\nProperties by which issue comment connections can be ordered.\n\"\"\"\nenum IssueCommentOrderField {\n  \"\"\"\n  Order issue comments by update time\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nThe connection type for Issue.\n\"\"\"\ntype IssueConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [IssueEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Issue]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nThis aggregates issues opened by a user within one repository.\n\"\"\"\ntype IssueContributionsByRepository {\n  \"\"\"\n  The issue contributions.\n  \"\"\"\n  contributions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for contributions returned from the connection.\n    \"\"\"\n    orderBy: ContributionOrder = {direction: DESC}\n  ): CreatedIssueContributionConnection!\n\n  \"\"\"\n  The repository in which the issues were opened.\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype IssueEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Issue\n}\n\n\"\"\"\nWays in which to filter lists of issues.\n\"\"\"\ninput IssueFilters {\n  \"\"\"\n  List issues assigned to given name. Pass in `null` for issues with no assigned\n  user, and `*` for issues assigned to any user.\n  \"\"\"\n  assignee: String\n\n  \"\"\"\n  List issues created by given name.\n  \"\"\"\n  createdBy: String\n\n  \"\"\"\n  List issues where the list of label names exist on the issue.\n  \"\"\"\n  labels: [String!]\n\n  \"\"\"\n  List issues where the given name is mentioned in the issue.\n  \"\"\"\n  mentioned: String\n\n  \"\"\"\n  List issues by given milestone argument. If an string representation of an\n  integer is passed, it should refer to a milestone by its database ID. Pass in\n  `null` for issues with no milestone, and `*` for issues that are assigned to any milestone.\n  \"\"\"\n  milestone: String\n\n  \"\"\"\n  List issues by given milestone argument. If an string representation of an\n  integer is passed, it should refer to a milestone by its number field. Pass in\n  `null` for issues with no milestone, and `*` for issues that are assigned to any milestone.\n  \"\"\"\n  milestoneNumber: String\n\n  \"\"\"\n  List issues that have been updated at or after the given date.\n  \"\"\"\n  since: DateTime\n\n  \"\"\"\n  List issues filtered by the list of states given.\n  \"\"\"\n  states: [IssueState!]\n\n  \"\"\"\n  List issues subscribed to by viewer.\n  \"\"\"\n  viewerSubscribed: Boolean = false\n}\n\n\"\"\"\nUsed for return value of Repository.issueOrPullRequest.\n\"\"\"\nunion IssueOrPullRequest = Issue | PullRequest\n\n\"\"\"\nWays in which lists of issues can be ordered upon return.\n\"\"\"\ninput IssueOrder {\n  \"\"\"\n  The direction in which to order issues by the specified field.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field in which to order issues by.\n  \"\"\"\n  field: IssueOrderField!\n}\n\n\"\"\"\nProperties by which issue connections can be ordered.\n\"\"\"\nenum IssueOrderField {\n  \"\"\"\n  Order issues by comment count\n  \"\"\"\n  COMMENTS\n\n  \"\"\"\n  Order issues by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order issues by update time\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nThe possible states of an issue.\n\"\"\"\nenum IssueState {\n  \"\"\"\n  An issue that has been closed\n  \"\"\"\n  CLOSED\n\n  \"\"\"\n  An issue that is still open\n  \"\"\"\n  OPEN\n}\n\n\"\"\"\nThe possible state reasons of an issue.\n\"\"\"\nenum IssueStateReason {\n  \"\"\"\n  An issue that has been closed as completed\n  \"\"\"\n  COMPLETED\n\n  \"\"\"\n  An issue that has been closed as not planned\n  \"\"\"\n  NOT_PLANNED\n\n  \"\"\"\n  An issue that has been reopened\n  \"\"\"\n  REOPENED\n}\n\n\"\"\"\nA repository issue template.\n\"\"\"\ntype IssueTemplate {\n  \"\"\"\n  The template purpose.\n  \"\"\"\n  about: String\n\n  \"\"\"\n  The suggested assignees.\n  \"\"\"\n  assignees(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserConnection!\n\n  \"\"\"\n  The suggested issue body.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  The template filename.\n  \"\"\"\n  filename: String!\n\n  \"\"\"\n  The suggested issue labels\n  \"\"\"\n  labels(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for labels returned from the connection.\n    \"\"\"\n    orderBy: LabelOrder = {field: CREATED_AT, direction: ASC}\n  ): LabelConnection\n\n  \"\"\"\n  The template name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The suggested issue title.\n  \"\"\"\n  title: String\n}\n\n\"\"\"\nThe connection type for IssueTimelineItem.\n\"\"\"\ntype IssueTimelineConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [IssueTimelineItemEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [IssueTimelineItem]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn item in an issue timeline\n\"\"\"\nunion IssueTimelineItem =\n    AssignedEvent\n  | ClosedEvent\n  | Commit\n  | CrossReferencedEvent\n  | DemilestonedEvent\n  | IssueComment\n  | LabeledEvent\n  | LockedEvent\n  | MilestonedEvent\n  | ReferencedEvent\n  | RenamedTitleEvent\n  | ReopenedEvent\n  | SubscribedEvent\n  | TransferredEvent\n  | UnassignedEvent\n  | UnlabeledEvent\n  | UnlockedEvent\n  | UnsubscribedEvent\n  | UserBlockedEvent\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype IssueTimelineItemEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: IssueTimelineItem\n}\n\n\"\"\"\nAn item in an issue timeline\n\"\"\"\nunion IssueTimelineItems =\n    AddedToProjectEvent\n  | AssignedEvent\n  | ClosedEvent\n  | CommentDeletedEvent\n  | ConnectedEvent\n  | ConvertedNoteToIssueEvent\n  | ConvertedToDiscussionEvent\n  | CrossReferencedEvent\n  | DemilestonedEvent\n  | DisconnectedEvent\n  | IssueComment\n  | LabeledEvent\n  | LockedEvent\n  | MarkedAsDuplicateEvent\n  | MentionedEvent\n  | MilestonedEvent\n  | MovedColumnsInProjectEvent\n  | PinnedEvent\n  | ReferencedEvent\n  | RemovedFromProjectEvent\n  | RenamedTitleEvent\n  | ReopenedEvent\n  | SubscribedEvent\n  | TransferredEvent\n  | UnassignedEvent\n  | UnlabeledEvent\n  | UnlockedEvent\n  | UnmarkedAsDuplicateEvent\n  | UnpinnedEvent\n  | UnsubscribedEvent\n  | UserBlockedEvent\n\n\"\"\"\nThe connection type for IssueTimelineItems.\n\"\"\"\ntype IssueTimelineItemsConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [IssueTimelineItemsEdge]\n\n  \"\"\"\n  Identifies the count of items after applying `before` and `after` filters.\n  \"\"\"\n  filteredCount: Int!\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [IssueTimelineItems]\n\n  \"\"\"\n  Identifies the count of items after applying `before`/`after` filters and `first`/`last`/`skip` slicing.\n  \"\"\"\n  pageCount: Int!\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n\n  \"\"\"\n  Identifies the date and time when the timeline was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype IssueTimelineItemsEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: IssueTimelineItems\n}\n\n\"\"\"\nThe possible item types found in a timeline.\n\"\"\"\nenum IssueTimelineItemsItemType {\n  \"\"\"\n  Represents a 'added_to_project' event on a given issue or pull request.\n  \"\"\"\n  ADDED_TO_PROJECT_EVENT\n\n  \"\"\"\n  Represents an 'assigned' event on any assignable object.\n  \"\"\"\n  ASSIGNED_EVENT\n\n  \"\"\"\n  Represents a 'closed' event on any `Closable`.\n  \"\"\"\n  CLOSED_EVENT\n\n  \"\"\"\n  Represents a 'comment_deleted' event on a given issue or pull request.\n  \"\"\"\n  COMMENT_DELETED_EVENT\n\n  \"\"\"\n  Represents a 'connected' event on a given issue or pull request.\n  \"\"\"\n  CONNECTED_EVENT\n\n  \"\"\"\n  Represents a 'converted_note_to_issue' event on a given issue or pull request.\n  \"\"\"\n  CONVERTED_NOTE_TO_ISSUE_EVENT\n\n  \"\"\"\n  Represents a 'converted_to_discussion' event on a given issue.\n  \"\"\"\n  CONVERTED_TO_DISCUSSION_EVENT\n\n  \"\"\"\n  Represents a mention made by one issue or pull request to another.\n  \"\"\"\n  CROSS_REFERENCED_EVENT\n\n  \"\"\"\n  Represents a 'demilestoned' event on a given issue or pull request.\n  \"\"\"\n  DEMILESTONED_EVENT\n\n  \"\"\"\n  Represents a 'disconnected' event on a given issue or pull request.\n  \"\"\"\n  DISCONNECTED_EVENT\n\n  \"\"\"\n  Represents a comment on an Issue.\n  \"\"\"\n  ISSUE_COMMENT\n\n  \"\"\"\n  Represents a 'labeled' event on a given issue or pull request.\n  \"\"\"\n  LABELED_EVENT\n\n  \"\"\"\n  Represents a 'locked' event on a given issue or pull request.\n  \"\"\"\n  LOCKED_EVENT\n\n  \"\"\"\n  Represents a 'marked_as_duplicate' event on a given issue or pull request.\n  \"\"\"\n  MARKED_AS_DUPLICATE_EVENT\n\n  \"\"\"\n  Represents a 'mentioned' event on a given issue or pull request.\n  \"\"\"\n  MENTIONED_EVENT\n\n  \"\"\"\n  Represents a 'milestoned' event on a given issue or pull request.\n  \"\"\"\n  MILESTONED_EVENT\n\n  \"\"\"\n  Represents a 'moved_columns_in_project' event on a given issue or pull request.\n  \"\"\"\n  MOVED_COLUMNS_IN_PROJECT_EVENT\n\n  \"\"\"\n  Represents a 'pinned' event on a given issue or pull request.\n  \"\"\"\n  PINNED_EVENT\n\n  \"\"\"\n  Represents a 'referenced' event on a given `ReferencedSubject`.\n  \"\"\"\n  REFERENCED_EVENT\n\n  \"\"\"\n  Represents a 'removed_from_project' event on a given issue or pull request.\n  \"\"\"\n  REMOVED_FROM_PROJECT_EVENT\n\n  \"\"\"\n  Represents a 'renamed' event on a given issue or pull request\n  \"\"\"\n  RENAMED_TITLE_EVENT\n\n  \"\"\"\n  Represents a 'reopened' event on any `Closable`.\n  \"\"\"\n  REOPENED_EVENT\n\n  \"\"\"\n  Represents a 'subscribed' event on a given `Subscribable`.\n  \"\"\"\n  SUBSCRIBED_EVENT\n\n  \"\"\"\n  Represents a 'transferred' event on a given issue or pull request.\n  \"\"\"\n  TRANSFERRED_EVENT\n\n  \"\"\"\n  Represents an 'unassigned' event on any assignable object.\n  \"\"\"\n  UNASSIGNED_EVENT\n\n  \"\"\"\n  Represents an 'unlabeled' event on a given issue or pull request.\n  \"\"\"\n  UNLABELED_EVENT\n\n  \"\"\"\n  Represents an 'unlocked' event on a given issue or pull request.\n  \"\"\"\n  UNLOCKED_EVENT\n\n  \"\"\"\n  Represents an 'unmarked_as_duplicate' event on a given issue or pull request.\n  \"\"\"\n  UNMARKED_AS_DUPLICATE_EVENT\n\n  \"\"\"\n  Represents an 'unpinned' event on a given issue or pull request.\n  \"\"\"\n  UNPINNED_EVENT\n\n  \"\"\"\n  Represents an 'unsubscribed' event on a given `Subscribable`.\n  \"\"\"\n  UNSUBSCRIBED_EVENT\n\n  \"\"\"\n  Represents a 'user_blocked' event on a given user.\n  \"\"\"\n  USER_BLOCKED_EVENT\n}\n\n\"\"\"\nRepresents a user signing up for a GitHub account.\n\"\"\"\ntype JoinedGitHubContribution implements Contribution {\n  \"\"\"\n  Whether this contribution is associated with a record you do not have access to. For\n  example, your own 'first issue' contribution may have been made on a repository you can no\n  longer access.\n  \"\"\"\n  isRestricted: Boolean!\n\n  \"\"\"\n  When this contribution was made.\n  \"\"\"\n  occurredAt: DateTime!\n\n  \"\"\"\n  The HTTP path for this contribution.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this contribution.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  The user who made this contribution.\n  \"\"\"\n  user: User!\n}\n\n\"\"\"\nA label for categorizing Issues, Pull Requests, Milestones, or Discussions with a given Repository.\n\"\"\"\ntype Label implements Node {\n  \"\"\"\n  Identifies the label color.\n  \"\"\"\n  color: String!\n\n  \"\"\"\n  Identifies the date and time when the label was created.\n  \"\"\"\n  createdAt: DateTime\n\n  \"\"\"\n  A brief description of this label.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The Node ID of the Label object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Indicates whether or not this is a default label.\n  \"\"\"\n  isDefault: Boolean!\n\n  \"\"\"\n  A list of issues associated with this label.\n  \"\"\"\n  issues(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Filtering options for issues returned from the connection.\n    \"\"\"\n    filterBy: IssueFilters\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    A list of label names to filter the pull requests by.\n    \"\"\"\n    labels: [String!]\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for issues returned from the connection.\n    \"\"\"\n    orderBy: IssueOrder\n\n    \"\"\"\n    A list of states to filter the issues by.\n    \"\"\"\n    states: [IssueState!]\n  ): IssueConnection!\n\n  \"\"\"\n  Identifies the label name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  A list of pull requests associated with this label.\n  \"\"\"\n  pullRequests(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    The base ref name to filter the pull requests by.\n    \"\"\"\n    baseRefName: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    The head ref name to filter the pull requests by.\n    \"\"\"\n    headRefName: String\n\n    \"\"\"\n    A list of label names to filter the pull requests by.\n    \"\"\"\n    labels: [String!]\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for pull requests returned from the connection.\n    \"\"\"\n    orderBy: IssueOrder\n\n    \"\"\"\n    A list of states to filter the pull requests by.\n    \"\"\"\n    states: [PullRequestState!]\n  ): PullRequestConnection!\n\n  \"\"\"\n  The repository associated with this label.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for this label.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the date and time when the label was last updated.\n  \"\"\"\n  updatedAt: DateTime\n\n  \"\"\"\n  The HTTP URL for this label.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nThe connection type for Label.\n\"\"\"\ntype LabelConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [LabelEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Label]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype LabelEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Label\n}\n\n\"\"\"\nWays in which lists of labels can be ordered upon return.\n\"\"\"\ninput LabelOrder {\n  \"\"\"\n  The direction in which to order labels by the specified field.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field in which to order labels by.\n  \"\"\"\n  field: LabelOrderField!\n}\n\n\"\"\"\nProperties by which label connections can be ordered.\n\"\"\"\nenum LabelOrderField {\n  \"\"\"\n  Order labels by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order labels by name\n  \"\"\"\n  NAME\n}\n\n\"\"\"\nAn object that can have labels assigned to it.\n\"\"\"\ninterface Labelable {\n  \"\"\"\n  A list of labels associated with the object.\n  \"\"\"\n  labels(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for labels returned from the connection.\n    \"\"\"\n    orderBy: LabelOrder = {field: CREATED_AT, direction: ASC}\n  ): LabelConnection\n}\n\n\"\"\"\nRepresents a 'labeled' event on a given issue or pull request.\n\"\"\"\ntype LabeledEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the LabeledEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the label associated with the 'labeled' event.\n  \"\"\"\n  label: Label!\n\n  \"\"\"\n  Identifies the `Labelable` associated with the event.\n  \"\"\"\n  labelable: Labelable!\n}\n\n\"\"\"\nRepresents a given language found in repositories.\n\"\"\"\ntype Language implements Node {\n  \"\"\"\n  The color defined for the current language.\n  \"\"\"\n  color: String\n\n  \"\"\"\n  The Node ID of the Language object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The name of the current language.\n  \"\"\"\n  name: String!\n}\n\n\"\"\"\nA list of languages associated with the parent.\n\"\"\"\ntype LanguageConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [LanguageEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Language]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n\n  \"\"\"\n  The total size in bytes of files written in that language.\n  \"\"\"\n  totalSize: Int!\n}\n\n\"\"\"\nRepresents the language of a repository.\n\"\"\"\ntype LanguageEdge {\n  cursor: String!\n  node: Language!\n\n  \"\"\"\n  The number of bytes of code written in the language.\n  \"\"\"\n  size: Int!\n}\n\n\"\"\"\nOrdering options for language connections.\n\"\"\"\ninput LanguageOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order languages by.\n  \"\"\"\n  field: LanguageOrderField!\n}\n\n\"\"\"\nProperties by which language connections can be ordered.\n\"\"\"\nenum LanguageOrderField {\n  \"\"\"\n  Order languages by the size of all files containing the language\n  \"\"\"\n  SIZE\n}\n\n\"\"\"\nA repository's open source license\n\"\"\"\ntype License implements Node {\n  \"\"\"\n  The full text of the license\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The conditions set by the license\n  \"\"\"\n  conditions: [LicenseRule]!\n\n  \"\"\"\n  A human-readable description of the license\n  \"\"\"\n  description: String\n\n  \"\"\"\n  Whether the license should be featured\n  \"\"\"\n  featured: Boolean!\n\n  \"\"\"\n  Whether the license should be displayed in license pickers\n  \"\"\"\n  hidden: Boolean!\n\n  \"\"\"\n  The Node ID of the License object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Instructions on how to implement the license\n  \"\"\"\n  implementation: String\n\n  \"\"\"\n  The lowercased SPDX ID of the license\n  \"\"\"\n  key: String!\n\n  \"\"\"\n  The limitations set by the license\n  \"\"\"\n  limitations: [LicenseRule]!\n\n  \"\"\"\n  The license full name specified by <https://spdx.org/licenses>\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  Customary short name if applicable (e.g, GPLv3)\n  \"\"\"\n  nickname: String\n\n  \"\"\"\n  The permissions set by the license\n  \"\"\"\n  permissions: [LicenseRule]!\n\n  \"\"\"\n  Whether the license is a pseudo-license placeholder (e.g., other, no-license)\n  \"\"\"\n  pseudoLicense: Boolean!\n\n  \"\"\"\n  Short identifier specified by <https://spdx.org/licenses>\n  \"\"\"\n  spdxId: String\n\n  \"\"\"\n  URL to the license on <https://choosealicense.com>\n  \"\"\"\n  url: URI\n}\n\n\"\"\"\nDescribes a License's conditions, permissions, and limitations\n\"\"\"\ntype LicenseRule {\n  \"\"\"\n  A description of the rule\n  \"\"\"\n  description: String!\n\n  \"\"\"\n  The machine-readable rule key\n  \"\"\"\n  key: String!\n\n  \"\"\"\n  The human-readable rule label\n  \"\"\"\n  label: String!\n}\n\n\"\"\"\nAutogenerated input type of LinkProjectV2ToRepository\n\"\"\"\ninput LinkProjectV2ToRepositoryInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the project to link to the repository.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n\n  \"\"\"\n  The ID of the repository to link to the project.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of LinkProjectV2ToRepository\n\"\"\"\ntype LinkProjectV2ToRepositoryPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The repository the project is linked to.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nAutogenerated input type of LinkProjectV2ToTeam\n\"\"\"\ninput LinkProjectV2ToTeamInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the project to link to the team.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n\n  \"\"\"\n  The ID of the team to link to the project.\n  \"\"\"\n  teamId: ID! @possibleTypes(concreteTypes: [\"Team\"])\n}\n\n\"\"\"\nAutogenerated return type of LinkProjectV2ToTeam\n\"\"\"\ntype LinkProjectV2ToTeamPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The team the project is linked to\n  \"\"\"\n  team: Team\n}\n\n\"\"\"\nAutogenerated input type of LinkRepositoryToProject\n\"\"\"\ninput LinkRepositoryToProjectInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the Project to link to a Repository\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"Project\"])\n\n  \"\"\"\n  The ID of the Repository to link to a Project.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of LinkRepositoryToProject\n\"\"\"\ntype LinkRepositoryToProjectPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The linked Project.\n  \"\"\"\n  project: Project\n\n  \"\"\"\n  The linked Repository.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nA branch linked to an issue.\n\"\"\"\ntype LinkedBranch implements Node {\n  \"\"\"\n  The Node ID of the LinkedBranch object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The branch's ref.\n  \"\"\"\n  ref: Ref\n}\n\n\"\"\"\nThe connection type for LinkedBranch.\n\"\"\"\ntype LinkedBranchConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [LinkedBranchEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [LinkedBranch]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype LinkedBranchEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: LinkedBranch\n}\n\n\"\"\"\nAutogenerated input type of LockLockable\n\"\"\"\ninput LockLockableInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A reason for why the item will be locked.\n  \"\"\"\n  lockReason: LockReason\n\n  \"\"\"\n  ID of the item to be locked.\n  \"\"\"\n  lockableId: ID! @possibleTypes(concreteTypes: [\"Discussion\", \"Issue\", \"PullRequest\"], abstractType: \"Lockable\")\n}\n\n\"\"\"\nAutogenerated return type of LockLockable\n\"\"\"\ntype LockLockablePayload {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The item that was locked.\n  \"\"\"\n  lockedRecord: Lockable\n}\n\n\"\"\"\nThe possible reasons that an issue or pull request was locked.\n\"\"\"\nenum LockReason {\n  \"\"\"\n  The issue or pull request was locked because the conversation was off-topic.\n  \"\"\"\n  OFF_TOPIC\n\n  \"\"\"\n  The issue or pull request was locked because the conversation was resolved.\n  \"\"\"\n  RESOLVED\n\n  \"\"\"\n  The issue or pull request was locked because the conversation was spam.\n  \"\"\"\n  SPAM\n\n  \"\"\"\n  The issue or pull request was locked because the conversation was too heated.\n  \"\"\"\n  TOO_HEATED\n}\n\n\"\"\"\nAn object that can be locked.\n\"\"\"\ninterface Lockable {\n  \"\"\"\n  Reason that the conversation was locked.\n  \"\"\"\n  activeLockReason: LockReason\n\n  \"\"\"\n  `true` if the object is locked\n  \"\"\"\n  locked: Boolean!\n}\n\n\"\"\"\nRepresents a 'locked' event on a given issue or pull request.\n\"\"\"\ntype LockedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the LockedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Reason that the conversation was locked (optional).\n  \"\"\"\n  lockReason: LockReason\n\n  \"\"\"\n  Object that was locked.\n  \"\"\"\n  lockable: Lockable!\n}\n\n\"\"\"\nA placeholder user for attribution of imported data on GitHub.\n\"\"\"\ntype Mannequin implements Actor & Node & UniformResourceLocatable {\n  \"\"\"\n  A URL pointing to the GitHub App's public avatar.\n  \"\"\"\n  avatarUrl(\n    \"\"\"\n    The size of the resulting square image.\n    \"\"\"\n    size: Int\n  ): URI!\n\n  \"\"\"\n  The user that has claimed the data attributed to this mannequin.\n  \"\"\"\n  claimant: User\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The mannequin's email on the source instance.\n  \"\"\"\n  email: String\n\n  \"\"\"\n  The Node ID of the Mannequin object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The username of the actor.\n  \"\"\"\n  login: String!\n\n  \"\"\"\n  The HTML path to this resource.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The URL to this resource.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nThe connection type for Mannequin.\n\"\"\"\ntype MannequinConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [MannequinEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Mannequin]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nRepresents a mannequin.\n\"\"\"\ntype MannequinEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Mannequin\n}\n\n\"\"\"\nOrdering options for mannequins.\n\"\"\"\ninput MannequinOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order mannequins by.\n  \"\"\"\n  field: MannequinOrderField!\n}\n\n\"\"\"\nProperties by which mannequins can be ordered.\n\"\"\"\nenum MannequinOrderField {\n  \"\"\"\n  Order mannequins why when they were created.\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order mannequins alphabetically by their source login.\n  \"\"\"\n  LOGIN\n}\n\n\"\"\"\nAutogenerated input type of MarkDiscussionCommentAsAnswer\n\"\"\"\ninput MarkDiscussionCommentAsAnswerInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the discussion comment to mark as an answer.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"DiscussionComment\"])\n}\n\n\"\"\"\nAutogenerated return type of MarkDiscussionCommentAsAnswer\n\"\"\"\ntype MarkDiscussionCommentAsAnswerPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The discussion that includes the chosen comment.\n  \"\"\"\n  discussion: Discussion\n}\n\n\"\"\"\nAutogenerated input type of MarkFileAsViewed\n\"\"\"\ninput MarkFileAsViewedInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The path of the file to mark as viewed\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  The Node ID of the pull request.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n}\n\n\"\"\"\nAutogenerated return type of MarkFileAsViewed\n\"\"\"\ntype MarkFileAsViewedPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated pull request.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nAutogenerated input type of MarkProjectV2AsTemplate\n\"\"\"\ninput MarkProjectV2AsTemplateInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the Project to mark as a template.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n}\n\n\"\"\"\nAutogenerated return type of MarkProjectV2AsTemplate\n\"\"\"\ntype MarkProjectV2AsTemplatePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The project.\n  \"\"\"\n  projectV2: ProjectV2\n}\n\n\"\"\"\nAutogenerated input type of MarkPullRequestReadyForReview\n\"\"\"\ninput MarkPullRequestReadyForReviewInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the pull request to be marked as ready for review.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n}\n\n\"\"\"\nAutogenerated return type of MarkPullRequestReadyForReview\n\"\"\"\ntype MarkPullRequestReadyForReviewPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The pull request that is ready for review.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nRepresents a 'marked_as_duplicate' event on a given issue or pull request.\n\"\"\"\ntype MarkedAsDuplicateEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  The authoritative issue or pull request which has been duplicated by another.\n  \"\"\"\n  canonical: IssueOrPullRequest\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The issue or pull request which has been marked as a duplicate of another.\n  \"\"\"\n  duplicate: IssueOrPullRequest\n\n  \"\"\"\n  The Node ID of the MarkedAsDuplicateEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Canonical and duplicate belong to different repositories.\n  \"\"\"\n  isCrossRepository: Boolean!\n}\n\n\"\"\"\nA public description of a Marketplace category.\n\"\"\"\ntype MarketplaceCategory implements Node {\n  \"\"\"\n  The category's description.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The technical description of how apps listed in this category work with GitHub.\n  \"\"\"\n  howItWorks: String\n\n  \"\"\"\n  The Node ID of the MarketplaceCategory object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The category's name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  How many Marketplace listings have this as their primary category.\n  \"\"\"\n  primaryListingCount: Int!\n\n  \"\"\"\n  The HTTP path for this Marketplace category.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  How many Marketplace listings have this as their secondary category.\n  \"\"\"\n  secondaryListingCount: Int!\n\n  \"\"\"\n  The short name of the category used in its URL.\n  \"\"\"\n  slug: String!\n\n  \"\"\"\n  The HTTP URL for this Marketplace category.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nA listing in the GitHub integration marketplace.\n\"\"\"\ntype MarketplaceListing implements Node {\n  \"\"\"\n  The GitHub App this listing represents.\n  \"\"\"\n  app: App\n\n  \"\"\"\n  URL to the listing owner's company site.\n  \"\"\"\n  companyUrl: URI\n\n  \"\"\"\n  The HTTP path for configuring access to the listing's integration or OAuth app\n  \"\"\"\n  configurationResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for configuring access to the listing's integration or OAuth app\n  \"\"\"\n  configurationUrl: URI!\n\n  \"\"\"\n  URL to the listing's documentation.\n  \"\"\"\n  documentationUrl: URI\n\n  \"\"\"\n  The listing's detailed description.\n  \"\"\"\n  extendedDescription: String\n\n  \"\"\"\n  The listing's detailed description rendered to HTML.\n  \"\"\"\n  extendedDescriptionHTML: HTML!\n\n  \"\"\"\n  The listing's introductory description.\n  \"\"\"\n  fullDescription: String!\n\n  \"\"\"\n  The listing's introductory description rendered to HTML.\n  \"\"\"\n  fullDescriptionHTML: HTML!\n\n  \"\"\"\n  Does this listing have any plans with a free trial?\n  \"\"\"\n  hasPublishedFreeTrialPlans: Boolean!\n\n  \"\"\"\n  Does this listing have a terms of service link?\n  \"\"\"\n  hasTermsOfService: Boolean!\n\n  \"\"\"\n  Whether the creator of the app is a verified org\n  \"\"\"\n  hasVerifiedOwner: Boolean!\n\n  \"\"\"\n  A technical description of how this app works with GitHub.\n  \"\"\"\n  howItWorks: String\n\n  \"\"\"\n  The listing's technical description rendered to HTML.\n  \"\"\"\n  howItWorksHTML: HTML!\n\n  \"\"\"\n  The Node ID of the MarketplaceListing object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  URL to install the product to the viewer's account or organization.\n  \"\"\"\n  installationUrl: URI\n\n  \"\"\"\n  Whether this listing's app has been installed for the current viewer\n  \"\"\"\n  installedForViewer: Boolean!\n\n  \"\"\"\n  Whether this listing has been removed from the Marketplace.\n  \"\"\"\n  isArchived: Boolean!\n\n  \"\"\"\n  Whether this listing is still an editable draft that has not been submitted\n  for review and is not publicly visible in the Marketplace.\n  \"\"\"\n  isDraft: Boolean!\n\n  \"\"\"\n  Whether the product this listing represents is available as part of a paid plan.\n  \"\"\"\n  isPaid: Boolean!\n\n  \"\"\"\n  Whether this listing has been approved for display in the Marketplace.\n  \"\"\"\n  isPublic: Boolean!\n\n  \"\"\"\n  Whether this listing has been rejected by GitHub for display in the Marketplace.\n  \"\"\"\n  isRejected: Boolean!\n\n  \"\"\"\n  Whether this listing has been approved for unverified display in the Marketplace.\n  \"\"\"\n  isUnverified: Boolean!\n\n  \"\"\"\n  Whether this draft listing has been submitted for review for approval to be unverified in the Marketplace.\n  \"\"\"\n  isUnverifiedPending: Boolean!\n\n  \"\"\"\n  Whether this draft listing has been submitted for review from GitHub for approval to be verified in the Marketplace.\n  \"\"\"\n  isVerificationPendingFromDraft: Boolean!\n\n  \"\"\"\n  Whether this unverified listing has been submitted for review from GitHub for approval to be verified in the Marketplace.\n  \"\"\"\n  isVerificationPendingFromUnverified: Boolean!\n\n  \"\"\"\n  Whether this listing has been approved for verified display in the Marketplace.\n  \"\"\"\n  isVerified: Boolean!\n\n  \"\"\"\n  The hex color code, without the leading '#', for the logo background.\n  \"\"\"\n  logoBackgroundColor: String!\n\n  \"\"\"\n  URL for the listing's logo image.\n  \"\"\"\n  logoUrl(\n    \"\"\"\n    The size in pixels of the resulting square image.\n    \"\"\"\n    size: Int = 400\n  ): URI\n\n  \"\"\"\n  The listing's full name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The listing's very short description without a trailing period or ampersands.\n  \"\"\"\n  normalizedShortDescription: String!\n\n  \"\"\"\n  URL to the listing's detailed pricing.\n  \"\"\"\n  pricingUrl: URI\n\n  \"\"\"\n  The category that best describes the listing.\n  \"\"\"\n  primaryCategory: MarketplaceCategory!\n\n  \"\"\"\n  URL to the listing's privacy policy, may return an empty string for listings that do not require a privacy policy URL.\n  \"\"\"\n  privacyPolicyUrl: URI!\n\n  \"\"\"\n  The HTTP path for the Marketplace listing.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The URLs for the listing's screenshots.\n  \"\"\"\n  screenshotUrls: [String]!\n\n  \"\"\"\n  An alternate category that describes the listing.\n  \"\"\"\n  secondaryCategory: MarketplaceCategory\n\n  \"\"\"\n  The listing's very short description.\n  \"\"\"\n  shortDescription: String!\n\n  \"\"\"\n  The short name of the listing used in its URL.\n  \"\"\"\n  slug: String!\n\n  \"\"\"\n  URL to the listing's status page.\n  \"\"\"\n  statusUrl: URI\n\n  \"\"\"\n  An email address for support for this listing's app.\n  \"\"\"\n  supportEmail: String\n\n  \"\"\"\n  Either a URL or an email address for support for this listing's app, may\n  return an empty string for listings that do not require a support URL.\n  \"\"\"\n  supportUrl: URI!\n\n  \"\"\"\n  URL to the listing's terms of service.\n  \"\"\"\n  termsOfServiceUrl: URI\n\n  \"\"\"\n  The HTTP URL for the Marketplace listing.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Can the current viewer add plans for this Marketplace listing.\n  \"\"\"\n  viewerCanAddPlans: Boolean!\n\n  \"\"\"\n  Can the current viewer approve this Marketplace listing.\n  \"\"\"\n  viewerCanApprove: Boolean!\n\n  \"\"\"\n  Can the current viewer delist this Marketplace listing.\n  \"\"\"\n  viewerCanDelist: Boolean!\n\n  \"\"\"\n  Can the current viewer edit this Marketplace listing.\n  \"\"\"\n  viewerCanEdit: Boolean!\n\n  \"\"\"\n  Can the current viewer edit the primary and secondary category of this\n  Marketplace listing.\n  \"\"\"\n  viewerCanEditCategories: Boolean!\n\n  \"\"\"\n  Can the current viewer edit the plans for this Marketplace listing.\n  \"\"\"\n  viewerCanEditPlans: Boolean!\n\n  \"\"\"\n  Can the current viewer return this Marketplace listing to draft state\n  so it becomes editable again.\n  \"\"\"\n  viewerCanRedraft: Boolean!\n\n  \"\"\"\n  Can the current viewer reject this Marketplace listing by returning it to\n  an editable draft state or rejecting it entirely.\n  \"\"\"\n  viewerCanReject: Boolean!\n\n  \"\"\"\n  Can the current viewer request this listing be reviewed for display in\n  the Marketplace as verified.\n  \"\"\"\n  viewerCanRequestApproval: Boolean!\n\n  \"\"\"\n  Indicates whether the current user has an active subscription to this Marketplace listing.\n  \"\"\"\n  viewerHasPurchased: Boolean!\n\n  \"\"\"\n  Indicates if the current user has purchased a subscription to this Marketplace listing\n  for all of the organizations the user owns.\n  \"\"\"\n  viewerHasPurchasedForAllOrganizations: Boolean!\n\n  \"\"\"\n  Does the current viewer role allow them to administer this Marketplace listing.\n  \"\"\"\n  viewerIsListingAdmin: Boolean!\n}\n\n\"\"\"\nLook up Marketplace Listings\n\"\"\"\ntype MarketplaceListingConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [MarketplaceListingEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [MarketplaceListing]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype MarketplaceListingEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: MarketplaceListing\n}\n\n\"\"\"\nRepresents a member feature request notification\n\"\"\"\ntype MemberFeatureRequestNotification implements Node {\n  \"\"\"\n  Represents member feature request body containing organization name and the number of feature requests\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The Node ID of the MemberFeatureRequestNotification object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Represents member feature request notification title\n  \"\"\"\n  title: String!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nEntities that have members who can set status messages.\n\"\"\"\ninterface MemberStatusable {\n  \"\"\"\n  Get the status messages members of this entity have set that are either public or visible only to the organization.\n  \"\"\"\n  memberStatuses(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for user statuses returned from the connection.\n    \"\"\"\n    orderBy: UserStatusOrder = {field: UPDATED_AT, direction: DESC}\n  ): UserStatusConnection!\n}\n\n\"\"\"\nAudit log entry for a members_can_delete_repos.clear event.\n\"\"\"\ntype MembersCanDeleteReposClearAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The HTTP path for this enterprise.\n  \"\"\"\n  enterpriseResourcePath: URI\n\n  \"\"\"\n  The slug of the enterprise.\n  \"\"\"\n  enterpriseSlug: String\n\n  \"\"\"\n  The HTTP URL for this enterprise.\n  \"\"\"\n  enterpriseUrl: URI\n\n  \"\"\"\n  The Node ID of the MembersCanDeleteReposClearAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a members_can_delete_repos.disable event.\n\"\"\"\ntype MembersCanDeleteReposDisableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The HTTP path for this enterprise.\n  \"\"\"\n  enterpriseResourcePath: URI\n\n  \"\"\"\n  The slug of the enterprise.\n  \"\"\"\n  enterpriseSlug: String\n\n  \"\"\"\n  The HTTP URL for this enterprise.\n  \"\"\"\n  enterpriseUrl: URI\n\n  \"\"\"\n  The Node ID of the MembersCanDeleteReposDisableAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a members_can_delete_repos.enable event.\n\"\"\"\ntype MembersCanDeleteReposEnableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The HTTP path for this enterprise.\n  \"\"\"\n  enterpriseResourcePath: URI\n\n  \"\"\"\n  The slug of the enterprise.\n  \"\"\"\n  enterpriseSlug: String\n\n  \"\"\"\n  The HTTP URL for this enterprise.\n  \"\"\"\n  enterpriseUrl: URI\n\n  \"\"\"\n  The Node ID of the MembersCanDeleteReposEnableAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nRepresents a 'mentioned' event on a given issue or pull request.\n\"\"\"\ntype MentionedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the MentionedEvent object\n  \"\"\"\n  id: ID!\n}\n\n\"\"\"\nAutogenerated input type of MergeBranch\n\"\"\"\ninput MergeBranchInput {\n  \"\"\"\n  The email address to associate with this commit.\n  \"\"\"\n  authorEmail: String\n\n  \"\"\"\n  The name of the base branch that the provided head will be merged into.\n  \"\"\"\n  base: String!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Message to use for the merge commit. If omitted, a default will be used.\n  \"\"\"\n  commitMessage: String\n\n  \"\"\"\n  The head to merge into the base branch. This can be a branch name or a commit GitObjectID.\n  \"\"\"\n  head: String!\n\n  \"\"\"\n  The Node ID of the Repository containing the base branch that will be modified.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of MergeBranch\n\"\"\"\ntype MergeBranchPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The resulting merge Commit.\n  \"\"\"\n  mergeCommit: Commit\n}\n\n\"\"\"\nThe possible default commit messages for merges.\n\"\"\"\nenum MergeCommitMessage {\n  \"\"\"\n  Default to a blank commit message.\n  \"\"\"\n  BLANK\n\n  \"\"\"\n  Default to the pull request's body.\n  \"\"\"\n  PR_BODY\n\n  \"\"\"\n  Default to the pull request's title.\n  \"\"\"\n  PR_TITLE\n}\n\n\"\"\"\nThe possible default commit titles for merges.\n\"\"\"\nenum MergeCommitTitle {\n  \"\"\"\n  Default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).\n  \"\"\"\n  MERGE_MESSAGE\n\n  \"\"\"\n  Default to the pull request's title.\n  \"\"\"\n  PR_TITLE\n}\n\n\"\"\"\nAutogenerated input type of MergePullRequest\n\"\"\"\ninput MergePullRequestInput {\n  \"\"\"\n  The email address to associate with this merge.\n  \"\"\"\n  authorEmail: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Commit body to use for the merge commit; if omitted, a default message will be used\n  \"\"\"\n  commitBody: String\n\n  \"\"\"\n  Commit headline to use for the merge commit; if omitted, a default message will be used.\n  \"\"\"\n  commitHeadline: String\n\n  \"\"\"\n  OID that the pull request head ref must match to allow merge; if omitted, no check is performed.\n  \"\"\"\n  expectedHeadOid: GitObjectID\n\n  \"\"\"\n  The merge method to use. If omitted, defaults to 'MERGE'\n  \"\"\"\n  mergeMethod: PullRequestMergeMethod = MERGE\n\n  \"\"\"\n  ID of the pull request to be merged.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n}\n\n\"\"\"\nAutogenerated return type of MergePullRequest\n\"\"\"\ntype MergePullRequestPayload {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The pull request that was merged.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nThe queue of pull request entries to be merged into a protected branch in a repository.\n\"\"\"\ntype MergeQueue implements Node {\n  \"\"\"\n  The configuration for this merge queue\n  \"\"\"\n  configuration: MergeQueueConfiguration\n\n  \"\"\"\n  The entries in the queue\n  \"\"\"\n  entries(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): MergeQueueEntryConnection\n\n  \"\"\"\n  The Node ID of the MergeQueue object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The estimated time in seconds until a newly added entry would be merged\n  \"\"\"\n  nextEntryEstimatedTimeToMerge: Int\n\n  \"\"\"\n  The repository this merge queue belongs to\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The HTTP path for this merge queue\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this merge queue\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nConfiguration for a MergeQueue\n\"\"\"\ntype MergeQueueConfiguration {\n  \"\"\"\n  The amount of time in minutes to wait for a check response before considering it a failure.\n  \"\"\"\n  checkResponseTimeout: Int\n\n  \"\"\"\n  The maximum number of entries to build at once.\n  \"\"\"\n  maximumEntriesToBuild: Int\n\n  \"\"\"\n  The maximum number of entries to merge at once.\n  \"\"\"\n  maximumEntriesToMerge: Int\n\n  \"\"\"\n  The merge method to use for this queue.\n  \"\"\"\n  mergeMethod: PullRequestMergeMethod\n\n  \"\"\"\n  The strategy to use when merging entries.\n  \"\"\"\n  mergingStrategy: MergeQueueMergingStrategy\n\n  \"\"\"\n  The minimum number of entries required to merge at once.\n  \"\"\"\n  minimumEntriesToMerge: Int\n\n  \"\"\"\n  The amount of time in minutes to wait before ignoring the minimum number of\n  entries in the queue requirement and merging a collection of entries\n  \"\"\"\n  minimumEntriesToMergeWaitTime: Int\n}\n\n\"\"\"\nEntries in a MergeQueue\n\"\"\"\ntype MergeQueueEntry implements Node {\n  \"\"\"\n  The base commit for this entry\n  \"\"\"\n  baseCommit: Commit\n\n  \"\"\"\n  The date and time this entry was added to the merge queue\n  \"\"\"\n  enqueuedAt: DateTime!\n\n  \"\"\"\n  The actor that enqueued this entry\n  \"\"\"\n  enqueuer: Actor!\n\n  \"\"\"\n  The estimated time in seconds until this entry will be merged\n  \"\"\"\n  estimatedTimeToMerge: Int\n\n  \"\"\"\n  The head commit for this entry\n  \"\"\"\n  headCommit: Commit\n\n  \"\"\"\n  The Node ID of the MergeQueueEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether this pull request should jump the queue\n  \"\"\"\n  jump: Boolean!\n\n  \"\"\"\n  The merge queue that this entry belongs to\n  \"\"\"\n  mergeQueue: MergeQueue\n\n  \"\"\"\n  The position of this entry in the queue\n  \"\"\"\n  position: Int!\n\n  \"\"\"\n  The pull request that will be added to a merge group\n  \"\"\"\n  pullRequest: PullRequest\n\n  \"\"\"\n  Does this pull request need to be deployed on its own\n  \"\"\"\n  solo: Boolean!\n\n  \"\"\"\n  The state of this entry in the queue\n  \"\"\"\n  state: MergeQueueEntryState!\n}\n\n\"\"\"\nThe connection type for MergeQueueEntry.\n\"\"\"\ntype MergeQueueEntryConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [MergeQueueEntryEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [MergeQueueEntry]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype MergeQueueEntryEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: MergeQueueEntry\n}\n\n\"\"\"\nThe possible states for a merge queue entry.\n\"\"\"\nenum MergeQueueEntryState {\n  \"\"\"\n  The entry is currently waiting for checks to pass.\n  \"\"\"\n  AWAITING_CHECKS\n\n  \"\"\"\n  The entry is currently locked.\n  \"\"\"\n  LOCKED\n\n  \"\"\"\n  The entry is currently mergeable.\n  \"\"\"\n  MERGEABLE\n\n  \"\"\"\n  The entry is currently queued.\n  \"\"\"\n  QUEUED\n\n  \"\"\"\n  The entry is currently unmergeable.\n  \"\"\"\n  UNMERGEABLE\n}\n\n\"\"\"\nThe possible merging strategies for a merge queue.\n\"\"\"\nenum MergeQueueMergingStrategy {\n  \"\"\"\n  Entries only allowed to merge if they are passing.\n  \"\"\"\n  ALLGREEN\n\n  \"\"\"\n  Failing Entires are allowed to merge if they are with a passing entry.\n  \"\"\"\n  HEADGREEN\n}\n\n\"\"\"\nDetailed status information about a pull request merge.\n\"\"\"\nenum MergeStateStatus {\n  \"\"\"\n  The head ref is out of date.\n  \"\"\"\n  BEHIND\n\n  \"\"\"\n  The merge is blocked.\n  \"\"\"\n  BLOCKED\n\n  \"\"\"\n  Mergeable and passing commit status.\n  \"\"\"\n  CLEAN\n\n  \"\"\"\n  The merge commit cannot be cleanly created.\n  \"\"\"\n  DIRTY\n\n  \"\"\"\n  The merge is blocked due to the pull request being a draft.\n  \"\"\"\n  DRAFT\n    @deprecated(\n      reason: \"DRAFT state will be removed from this enum and `isDraft` should be used instead Use PullRequest.isDraft instead. Removal on 2021-01-01 UTC.\"\n    )\n\n  \"\"\"\n  Mergeable with passing commit status and pre-receive hooks.\n  \"\"\"\n  HAS_HOOKS\n\n  \"\"\"\n  The state cannot currently be determined.\n  \"\"\"\n  UNKNOWN\n\n  \"\"\"\n  Mergeable with non-passing commit status.\n  \"\"\"\n  UNSTABLE\n}\n\n\"\"\"\nWhether or not a PullRequest can be merged.\n\"\"\"\nenum MergeableState {\n  \"\"\"\n  The pull request cannot be merged due to merge conflicts.\n  \"\"\"\n  CONFLICTING\n\n  \"\"\"\n  The pull request can be merged.\n  \"\"\"\n  MERGEABLE\n\n  \"\"\"\n  The mergeability of the pull request is still being calculated.\n  \"\"\"\n  UNKNOWN\n}\n\n\"\"\"\nRepresents a 'merged' event on a given pull request.\n\"\"\"\ntype MergedEvent implements Node & UniformResourceLocatable {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the commit associated with the `merge` event.\n  \"\"\"\n  commit: Commit\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the MergedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the Ref associated with the `merge` event.\n  \"\"\"\n  mergeRef: Ref\n\n  \"\"\"\n  Identifies the name of the Ref associated with the `merge` event.\n  \"\"\"\n  mergeRefName: String!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  The HTTP path for this merged event.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this merged event.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nRepresents a GitHub Enterprise Importer (GEI) migration.\n\"\"\"\ninterface Migration {\n  \"\"\"\n  The migration flag to continue on error.\n  \"\"\"\n  continueOnError: Boolean!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: String\n\n  \"\"\"\n  The reason the migration failed.\n  \"\"\"\n  failureReason: String\n\n  \"\"\"\n  The Node ID of the Migration object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The URL for the migration log (expires 1 day after migration completes).\n  \"\"\"\n  migrationLogUrl: URI\n\n  \"\"\"\n  The migration source.\n  \"\"\"\n  migrationSource: MigrationSource!\n\n  \"\"\"\n  The target repository name.\n  \"\"\"\n  repositoryName: String!\n\n  \"\"\"\n  The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`.\n  \"\"\"\n  sourceUrl: URI!\n\n  \"\"\"\n  The migration state.\n  \"\"\"\n  state: MigrationState!\n\n  \"\"\"\n  The number of warnings encountered for this migration. To review the warnings,\n  check the [Migration Log](https://docs.github.com/en/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/accessing-your-migration-logs-for-github-enterprise-importer).\n  \"\"\"\n  warningsCount: Int!\n}\n\n\"\"\"\nA GitHub Enterprise Importer (GEI) migration source.\n\"\"\"\ntype MigrationSource implements Node {\n  \"\"\"\n  The Node ID of the MigrationSource object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The migration source name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The migration source type.\n  \"\"\"\n  type: MigrationSourceType!\n\n  \"\"\"\n  The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nRepresents the different GitHub Enterprise Importer (GEI) migration sources.\n\"\"\"\nenum MigrationSourceType {\n  \"\"\"\n  An Azure DevOps migration source.\n  \"\"\"\n  AZURE_DEVOPS\n\n  \"\"\"\n  A Bitbucket Server migration source.\n  \"\"\"\n  BITBUCKET_SERVER\n\n  \"\"\"\n  A GitHub Migration API source.\n  \"\"\"\n  GITHUB_ARCHIVE\n}\n\n\"\"\"\nThe GitHub Enterprise Importer (GEI) migration state.\n\"\"\"\nenum MigrationState {\n  \"\"\"\n  The migration has failed.\n  \"\"\"\n  FAILED\n\n  \"\"\"\n  The migration has invalid credentials.\n  \"\"\"\n  FAILED_VALIDATION\n\n  \"\"\"\n  The migration is in progress.\n  \"\"\"\n  IN_PROGRESS\n\n  \"\"\"\n  The migration has not started.\n  \"\"\"\n  NOT_STARTED\n\n  \"\"\"\n  The migration needs to have its credentials validated.\n  \"\"\"\n  PENDING_VALIDATION\n\n  \"\"\"\n  The migration has been queued.\n  \"\"\"\n  QUEUED\n\n  \"\"\"\n  The migration has succeeded.\n  \"\"\"\n  SUCCEEDED\n}\n\n\"\"\"\nRepresents a Milestone object on a given repository.\n\"\"\"\ntype Milestone implements Closable & Node & UniformResourceLocatable {\n  \"\"\"\n  Indicates if the object is closed (definition of closed may depend on type)\n  \"\"\"\n  closed: Boolean!\n\n  \"\"\"\n  Identifies the date and time when the object was closed.\n  \"\"\"\n  closedAt: DateTime\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the actor who created the milestone.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  Identifies the description of the milestone.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  Identifies the due date of the milestone.\n  \"\"\"\n  dueOn: DateTime\n\n  \"\"\"\n  The Node ID of the Milestone object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  A list of issues associated with the milestone.\n  \"\"\"\n  issues(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Filtering options for issues returned from the connection.\n    \"\"\"\n    filterBy: IssueFilters\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    A list of label names to filter the pull requests by.\n    \"\"\"\n    labels: [String!]\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for issues returned from the connection.\n    \"\"\"\n    orderBy: IssueOrder\n\n    \"\"\"\n    A list of states to filter the issues by.\n    \"\"\"\n    states: [IssueState!]\n  ): IssueConnection!\n\n  \"\"\"\n  Identifies the number of the milestone.\n  \"\"\"\n  number: Int!\n\n  \"\"\"\n  Identifies the percentage complete for the milestone\n  \"\"\"\n  progressPercentage: Float!\n\n  \"\"\"\n  A list of pull requests associated with the milestone.\n  \"\"\"\n  pullRequests(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    The base ref name to filter the pull requests by.\n    \"\"\"\n    baseRefName: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    The head ref name to filter the pull requests by.\n    \"\"\"\n    headRefName: String\n\n    \"\"\"\n    A list of label names to filter the pull requests by.\n    \"\"\"\n    labels: [String!]\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for pull requests returned from the connection.\n    \"\"\"\n    orderBy: IssueOrder\n\n    \"\"\"\n    A list of states to filter the pull requests by.\n    \"\"\"\n    states: [PullRequestState!]\n  ): PullRequestConnection!\n\n  \"\"\"\n  The repository associated with this milestone.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for this milestone\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the state of the milestone.\n  \"\"\"\n  state: MilestoneState!\n\n  \"\"\"\n  Identifies the title of the milestone.\n  \"\"\"\n  title: String!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this milestone\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Indicates if the object can be closed by the viewer.\n  \"\"\"\n  viewerCanClose: Boolean!\n\n  \"\"\"\n  Indicates if the object can be reopened by the viewer.\n  \"\"\"\n  viewerCanReopen: Boolean!\n}\n\n\"\"\"\nThe connection type for Milestone.\n\"\"\"\ntype MilestoneConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [MilestoneEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Milestone]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype MilestoneEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Milestone\n}\n\n\"\"\"\nTypes that can be inside a Milestone.\n\"\"\"\nunion MilestoneItem = Issue | PullRequest\n\n\"\"\"\nOrdering options for milestone connections.\n\"\"\"\ninput MilestoneOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order milestones by.\n  \"\"\"\n  field: MilestoneOrderField!\n}\n\n\"\"\"\nProperties by which milestone connections can be ordered.\n\"\"\"\nenum MilestoneOrderField {\n  \"\"\"\n  Order milestones by when they were created.\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order milestones by when they are due.\n  \"\"\"\n  DUE_DATE\n\n  \"\"\"\n  Order milestones by their number.\n  \"\"\"\n  NUMBER\n\n  \"\"\"\n  Order milestones by when they were last updated.\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nThe possible states of a milestone.\n\"\"\"\nenum MilestoneState {\n  \"\"\"\n  A milestone that has been closed.\n  \"\"\"\n  CLOSED\n\n  \"\"\"\n  A milestone that is still open.\n  \"\"\"\n  OPEN\n}\n\n\"\"\"\nRepresents a 'milestoned' event on a given issue or pull request.\n\"\"\"\ntype MilestonedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the MilestonedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the milestone title associated with the 'milestoned' event.\n  \"\"\"\n  milestoneTitle: String!\n\n  \"\"\"\n  Object referenced by event.\n  \"\"\"\n  subject: MilestoneItem!\n}\n\n\"\"\"\nEntities that can be minimized.\n\"\"\"\ninterface Minimizable {\n  \"\"\"\n  Returns whether or not a comment has been minimized.\n  \"\"\"\n  isMinimized: Boolean!\n\n  \"\"\"\n  Returns why the comment was minimized. One of `abuse`, `off-topic`,\n  `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and\n  formatting of these values differs from the inputs to the `MinimizeComment` mutation.\n  \"\"\"\n  minimizedReason: String\n\n  \"\"\"\n  Check if the current viewer can minimize this object.\n  \"\"\"\n  viewerCanMinimize: Boolean!\n}\n\n\"\"\"\nAutogenerated input type of MinimizeComment\n\"\"\"\ninput MinimizeCommentInput {\n  \"\"\"\n  The classification of comment\n  \"\"\"\n  classifier: ReportedContentClassifiers!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the subject to modify.\n  \"\"\"\n  subjectId: ID!\n    @possibleTypes(\n      concreteTypes: [\n        \"CommitComment\"\n        \"DiscussionComment\"\n        \"GistComment\"\n        \"IssueComment\"\n        \"PullRequestReview\"\n        \"PullRequestReviewComment\"\n      ]\n      abstractType: \"Minimizable\"\n    )\n}\n\n\"\"\"\nAutogenerated return type of MinimizeComment\n\"\"\"\ntype MinimizeCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The comment that was minimized.\n  \"\"\"\n  minimizedComment: Minimizable\n}\n\n\"\"\"\nAutogenerated input type of MoveProjectCard\n\"\"\"\ninput MoveProjectCardInput {\n  \"\"\"\n  Place the new card after the card with this id. Pass null to place it at the top.\n  \"\"\"\n  afterCardId: ID @possibleTypes(concreteTypes: [\"ProjectCard\"])\n\n  \"\"\"\n  The id of the card to move.\n  \"\"\"\n  cardId: ID! @possibleTypes(concreteTypes: [\"ProjectCard\"])\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The id of the column to move it into.\n  \"\"\"\n  columnId: ID! @possibleTypes(concreteTypes: [\"ProjectColumn\"])\n}\n\n\"\"\"\nAutogenerated return type of MoveProjectCard\n\"\"\"\ntype MoveProjectCardPayload {\n  \"\"\"\n  The new edge of the moved card.\n  \"\"\"\n  cardEdge: ProjectCardEdge\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of MoveProjectColumn\n\"\"\"\ninput MoveProjectColumnInput {\n  \"\"\"\n  Place the new column after the column with this id. Pass null to place it at the front.\n  \"\"\"\n  afterColumnId: ID @possibleTypes(concreteTypes: [\"ProjectColumn\"])\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The id of the column to move.\n  \"\"\"\n  columnId: ID! @possibleTypes(concreteTypes: [\"ProjectColumn\"])\n}\n\n\"\"\"\nAutogenerated return type of MoveProjectColumn\n\"\"\"\ntype MoveProjectColumnPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new edge of the moved column.\n  \"\"\"\n  columnEdge: ProjectColumnEdge\n}\n\n\"\"\"\nRepresents a 'moved_columns_in_project' event on a given issue or pull request.\n\"\"\"\ntype MovedColumnsInProjectEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the MovedColumnsInProjectEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Column name the issue or pull request was moved from.\n  \"\"\"\n  previousProjectColumnName: String! @preview(toggledBy: \"starfox-preview\")\n\n  \"\"\"\n  Project referenced by event.\n  \"\"\"\n  project: Project @preview(toggledBy: \"starfox-preview\")\n\n  \"\"\"\n  Project card referenced by this project event.\n  \"\"\"\n  projectCard: ProjectCard @preview(toggledBy: \"starfox-preview\")\n\n  \"\"\"\n  Column name the issue or pull request was moved to.\n  \"\"\"\n  projectColumnName: String! @preview(toggledBy: \"starfox-preview\")\n}\n\n\"\"\"\nThe root query for implementing GraphQL mutations.\n\"\"\"\ntype Mutation {\n  \"\"\"\n  Clear all of a customer's queued migrations\n  \"\"\"\n  abortQueuedMigrations(\n    \"\"\"\n    Parameters for AbortQueuedMigrations\n    \"\"\"\n    input: AbortQueuedMigrationsInput!\n  ): AbortQueuedMigrationsPayload\n\n  \"\"\"\n  Abort a repository migration queued or in progress.\n  \"\"\"\n  abortRepositoryMigration(\n    \"\"\"\n    Parameters for AbortRepositoryMigration\n    \"\"\"\n    input: AbortRepositoryMigrationInput!\n  ): AbortRepositoryMigrationPayload\n\n  \"\"\"\n  Accepts a pending invitation for a user to become an administrator of an enterprise.\n  \"\"\"\n  acceptEnterpriseAdministratorInvitation(\n    \"\"\"\n    Parameters for AcceptEnterpriseAdministratorInvitation\n    \"\"\"\n    input: AcceptEnterpriseAdministratorInvitationInput!\n  ): AcceptEnterpriseAdministratorInvitationPayload\n\n  \"\"\"\n  Applies a suggested topic to the repository.\n  \"\"\"\n  acceptTopicSuggestion(\n    \"\"\"\n    Parameters for AcceptTopicSuggestion\n    \"\"\"\n    input: AcceptTopicSuggestionInput!\n  ): AcceptTopicSuggestionPayload\n\n  \"\"\"\n  Adds assignees to an assignable object.\n  \"\"\"\n  addAssigneesToAssignable(\n    \"\"\"\n    Parameters for AddAssigneesToAssignable\n    \"\"\"\n    input: AddAssigneesToAssignableInput!\n  ): AddAssigneesToAssignablePayload\n\n  \"\"\"\n  Adds a comment to an Issue or Pull Request.\n  \"\"\"\n  addComment(\n    \"\"\"\n    Parameters for AddComment\n    \"\"\"\n    input: AddCommentInput!\n  ): AddCommentPayload\n\n  \"\"\"\n  Adds a comment to a Discussion, possibly as a reply to another comment.\n  \"\"\"\n  addDiscussionComment(\n    \"\"\"\n    Parameters for AddDiscussionComment\n    \"\"\"\n    input: AddDiscussionCommentInput!\n  ): AddDiscussionCommentPayload\n\n  \"\"\"\n  Vote for an option in a discussion poll.\n  \"\"\"\n  addDiscussionPollVote(\n    \"\"\"\n    Parameters for AddDiscussionPollVote\n    \"\"\"\n    input: AddDiscussionPollVoteInput!\n  ): AddDiscussionPollVotePayload\n\n  \"\"\"\n  Adds enterprise members to an organization within the enterprise.\n  \"\"\"\n  addEnterpriseOrganizationMember(\n    \"\"\"\n    Parameters for AddEnterpriseOrganizationMember\n    \"\"\"\n    input: AddEnterpriseOrganizationMemberInput!\n  ): AddEnterpriseOrganizationMemberPayload\n\n  \"\"\"\n  Adds a support entitlement to an enterprise member.\n  \"\"\"\n  addEnterpriseSupportEntitlement(\n    \"\"\"\n    Parameters for AddEnterpriseSupportEntitlement\n    \"\"\"\n    input: AddEnterpriseSupportEntitlementInput!\n  ): AddEnterpriseSupportEntitlementPayload\n\n  \"\"\"\n  Adds labels to a labelable object.\n  \"\"\"\n  addLabelsToLabelable(\n    \"\"\"\n    Parameters for AddLabelsToLabelable\n    \"\"\"\n    input: AddLabelsToLabelableInput!\n  ): AddLabelsToLabelablePayload\n\n  \"\"\"\n  Adds a card to a ProjectColumn. Either `contentId` or `note` must be provided but **not** both.\n  \"\"\"\n  addProjectCard(\n    \"\"\"\n    Parameters for AddProjectCard\n    \"\"\"\n    input: AddProjectCardInput!\n  ): AddProjectCardPayload\n\n  \"\"\"\n  Adds a column to a Project.\n  \"\"\"\n  addProjectColumn(\n    \"\"\"\n    Parameters for AddProjectColumn\n    \"\"\"\n    input: AddProjectColumnInput!\n  ): AddProjectColumnPayload\n\n  \"\"\"\n  Creates a new draft issue and add it to a Project.\n  \"\"\"\n  addProjectV2DraftIssue(\n    \"\"\"\n    Parameters for AddProjectV2DraftIssue\n    \"\"\"\n    input: AddProjectV2DraftIssueInput!\n  ): AddProjectV2DraftIssuePayload\n\n  \"\"\"\n  Links an existing content instance to a Project.\n  \"\"\"\n  addProjectV2ItemById(\n    \"\"\"\n    Parameters for AddProjectV2ItemById\n    \"\"\"\n    input: AddProjectV2ItemByIdInput!\n  ): AddProjectV2ItemByIdPayload\n\n  \"\"\"\n  Adds a review to a Pull Request.\n  \"\"\"\n  addPullRequestReview(\n    \"\"\"\n    Parameters for AddPullRequestReview\n    \"\"\"\n    input: AddPullRequestReviewInput!\n  ): AddPullRequestReviewPayload\n\n  \"\"\"\n  Adds a comment to a review.\n  \"\"\"\n  addPullRequestReviewComment(\n    \"\"\"\n    Parameters for AddPullRequestReviewComment\n    \"\"\"\n    input: AddPullRequestReviewCommentInput!\n  ): AddPullRequestReviewCommentPayload\n\n  \"\"\"\n  Adds a new thread to a pending Pull Request Review.\n  \"\"\"\n  addPullRequestReviewThread(\n    \"\"\"\n    Parameters for AddPullRequestReviewThread\n    \"\"\"\n    input: AddPullRequestReviewThreadInput!\n  ): AddPullRequestReviewThreadPayload\n\n  \"\"\"\n  Adds a reply to an existing Pull Request Review Thread.\n  \"\"\"\n  addPullRequestReviewThreadReply(\n    \"\"\"\n    Parameters for AddPullRequestReviewThreadReply\n    \"\"\"\n    input: AddPullRequestReviewThreadReplyInput!\n  ): AddPullRequestReviewThreadReplyPayload\n\n  \"\"\"\n  Adds a reaction to a subject.\n  \"\"\"\n  addReaction(\n    \"\"\"\n    Parameters for AddReaction\n    \"\"\"\n    input: AddReactionInput!\n  ): AddReactionPayload\n\n  \"\"\"\n  Adds a star to a Starrable.\n  \"\"\"\n  addStar(\n    \"\"\"\n    Parameters for AddStar\n    \"\"\"\n    input: AddStarInput!\n  ): AddStarPayload\n\n  \"\"\"\n  Add an upvote to a discussion or discussion comment.\n  \"\"\"\n  addUpvote(\n    \"\"\"\n    Parameters for AddUpvote\n    \"\"\"\n    input: AddUpvoteInput!\n  ): AddUpvotePayload\n\n  \"\"\"\n  Adds a verifiable domain to an owning account.\n  \"\"\"\n  addVerifiableDomain(\n    \"\"\"\n    Parameters for AddVerifiableDomain\n    \"\"\"\n    input: AddVerifiableDomainInput!\n  ): AddVerifiableDomainPayload\n\n  \"\"\"\n  Approve all pending deployments under one or more environments\n  \"\"\"\n  approveDeployments(\n    \"\"\"\n    Parameters for ApproveDeployments\n    \"\"\"\n    input: ApproveDeploymentsInput!\n  ): ApproveDeploymentsPayload\n\n  \"\"\"\n  Approve a verifiable domain for notification delivery.\n  \"\"\"\n  approveVerifiableDomain(\n    \"\"\"\n    Parameters for ApproveVerifiableDomain\n    \"\"\"\n    input: ApproveVerifiableDomainInput!\n  ): ApproveVerifiableDomainPayload\n\n  \"\"\"\n  Archives a ProjectV2Item\n  \"\"\"\n  archiveProjectV2Item(\n    \"\"\"\n    Parameters for ArchiveProjectV2Item\n    \"\"\"\n    input: ArchiveProjectV2ItemInput!\n  ): ArchiveProjectV2ItemPayload\n\n  \"\"\"\n  Marks a repository as archived.\n  \"\"\"\n  archiveRepository(\n    \"\"\"\n    Parameters for ArchiveRepository\n    \"\"\"\n    input: ArchiveRepositoryInput!\n  ): ArchiveRepositoryPayload\n\n  \"\"\"\n  Cancels a pending invitation for an administrator to join an enterprise.\n  \"\"\"\n  cancelEnterpriseAdminInvitation(\n    \"\"\"\n    Parameters for CancelEnterpriseAdminInvitation\n    \"\"\"\n    input: CancelEnterpriseAdminInvitationInput!\n  ): CancelEnterpriseAdminInvitationPayload\n\n  \"\"\"\n  Cancel an active sponsorship.\n  \"\"\"\n  cancelSponsorship(\n    \"\"\"\n    Parameters for CancelSponsorship\n    \"\"\"\n    input: CancelSponsorshipInput!\n  ): CancelSponsorshipPayload\n\n  \"\"\"\n  Update your status on GitHub.\n  \"\"\"\n  changeUserStatus(\n    \"\"\"\n    Parameters for ChangeUserStatus\n    \"\"\"\n    input: ChangeUserStatusInput!\n  ): ChangeUserStatusPayload\n\n  \"\"\"\n  Clears all labels from a labelable object.\n  \"\"\"\n  clearLabelsFromLabelable(\n    \"\"\"\n    Parameters for ClearLabelsFromLabelable\n    \"\"\"\n    input: ClearLabelsFromLabelableInput!\n  ): ClearLabelsFromLabelablePayload\n\n  \"\"\"\n  This mutation clears the value of a field for an item in a Project. Currently\n  only text, number, date, assignees, labels, single-select, iteration and\n  milestone fields are supported.\n  \"\"\"\n  clearProjectV2ItemFieldValue(\n    \"\"\"\n    Parameters for ClearProjectV2ItemFieldValue\n    \"\"\"\n    input: ClearProjectV2ItemFieldValueInput!\n  ): ClearProjectV2ItemFieldValuePayload\n\n  \"\"\"\n  Creates a new project by cloning configuration from an existing project.\n  \"\"\"\n  cloneProject(\n    \"\"\"\n    Parameters for CloneProject\n    \"\"\"\n    input: CloneProjectInput!\n  ): CloneProjectPayload\n\n  \"\"\"\n  Create a new repository with the same files and directory structure as a template repository.\n  \"\"\"\n  cloneTemplateRepository(\n    \"\"\"\n    Parameters for CloneTemplateRepository\n    \"\"\"\n    input: CloneTemplateRepositoryInput!\n  ): CloneTemplateRepositoryPayload\n\n  \"\"\"\n  Close a discussion.\n  \"\"\"\n  closeDiscussion(\n    \"\"\"\n    Parameters for CloseDiscussion\n    \"\"\"\n    input: CloseDiscussionInput!\n  ): CloseDiscussionPayload\n\n  \"\"\"\n  Close an issue.\n  \"\"\"\n  closeIssue(\n    \"\"\"\n    Parameters for CloseIssue\n    \"\"\"\n    input: CloseIssueInput!\n  ): CloseIssuePayload\n\n  \"\"\"\n  Close a pull request.\n  \"\"\"\n  closePullRequest(\n    \"\"\"\n    Parameters for ClosePullRequest\n    \"\"\"\n    input: ClosePullRequestInput!\n  ): ClosePullRequestPayload\n\n  \"\"\"\n  Convert a project note card to one associated with a newly created issue.\n  \"\"\"\n  convertProjectCardNoteToIssue(\n    \"\"\"\n    Parameters for ConvertProjectCardNoteToIssue\n    \"\"\"\n    input: ConvertProjectCardNoteToIssueInput!\n  ): ConvertProjectCardNoteToIssuePayload\n\n  \"\"\"\n  Converts a pull request to draft\n  \"\"\"\n  convertPullRequestToDraft(\n    \"\"\"\n    Parameters for ConvertPullRequestToDraft\n    \"\"\"\n    input: ConvertPullRequestToDraftInput!\n  ): ConvertPullRequestToDraftPayload\n\n  \"\"\"\n  Copy a project.\n  \"\"\"\n  copyProjectV2(\n    \"\"\"\n    Parameters for CopyProjectV2\n    \"\"\"\n    input: CopyProjectV2Input!\n  ): CopyProjectV2Payload\n\n  \"\"\"\n  Invites a user to claim reattributable data\n  \"\"\"\n  createAttributionInvitation(\n    \"\"\"\n    Parameters for CreateAttributionInvitation\n    \"\"\"\n    input: CreateAttributionInvitationInput!\n  ): CreateAttributionInvitationPayload\n\n  \"\"\"\n  Create a new branch protection rule\n  \"\"\"\n  createBranchProtectionRule(\n    \"\"\"\n    Parameters for CreateBranchProtectionRule\n    \"\"\"\n    input: CreateBranchProtectionRuleInput!\n  ): CreateBranchProtectionRulePayload\n\n  \"\"\"\n  Create a check run.\n  \"\"\"\n  createCheckRun(\n    \"\"\"\n    Parameters for CreateCheckRun\n    \"\"\"\n    input: CreateCheckRunInput!\n  ): CreateCheckRunPayload\n\n  \"\"\"\n  Create a check suite\n  \"\"\"\n  createCheckSuite(\n    \"\"\"\n    Parameters for CreateCheckSuite\n    \"\"\"\n    input: CreateCheckSuiteInput!\n  ): CreateCheckSuitePayload\n\n  \"\"\"\n  Appends a commit to the given branch as the authenticated user.\n\n  This mutation creates a commit whose parent is the HEAD of the provided\n  branch and also updates that branch to point to the new commit.\n  It can be thought of as similar to `git commit`.\n\n  ### Locating a Branch\n\n  Commits are appended to a `branch` of type `Ref`.\n  This must refer to a git branch (i.e.  the fully qualified path must\n  begin with `refs/heads/`, although including this prefix is optional.\n\n  Callers may specify the `branch` to commit to either by its global node\n  ID or by passing both of `repositoryNameWithOwner` and `refName`.  For\n  more details see the documentation for `CommittableBranch`.\n\n  ### Describing Changes\n\n  `fileChanges` are specified as a `FilesChanges` object describing\n  `FileAdditions` and `FileDeletions`.\n\n  Please see the documentation for `FileChanges` for more information on\n  how to use this argument to describe any set of file changes.\n\n  ### Authorship\n\n  Similar to the web commit interface, this mutation does not support\n  specifying the author or committer of the commit and will not add\n  support for this in the future.\n\n  A commit created by a successful execution of this mutation will be\n  authored by the owner of the credential which authenticates the API\n  request.  The committer will be identical to that of commits authored\n  using the web interface.\n\n  If you need full control over author and committer information, please\n  use the Git Database REST API instead.\n\n  ### Commit Signing\n\n  Commits made using this mutation are automatically signed by GitHub if\n  supported and will be marked as verified in the user interface.\n  \"\"\"\n  createCommitOnBranch(\n    \"\"\"\n    Parameters for CreateCommitOnBranch\n    \"\"\"\n    input: CreateCommitOnBranchInput!\n  ): CreateCommitOnBranchPayload\n\n  \"\"\"\n  Creates a new deployment event.\n  \"\"\"\n  createDeployment(\n    \"\"\"\n    Parameters for CreateDeployment\n    \"\"\"\n    input: CreateDeploymentInput!\n  ): CreateDeploymentPayload @preview(toggledBy: \"flash-preview\")\n\n  \"\"\"\n  Create a deployment status.\n  \"\"\"\n  createDeploymentStatus(\n    \"\"\"\n    Parameters for CreateDeploymentStatus\n    \"\"\"\n    input: CreateDeploymentStatusInput!\n  ): CreateDeploymentStatusPayload @preview(toggledBy: \"flash-preview\")\n\n  \"\"\"\n  Create a discussion.\n  \"\"\"\n  createDiscussion(\n    \"\"\"\n    Parameters for CreateDiscussion\n    \"\"\"\n    input: CreateDiscussionInput!\n  ): CreateDiscussionPayload\n\n  \"\"\"\n  Creates an organization as part of an enterprise account. A personal access\n  token used to create an organization is implicitly permitted to update the\n  organization it created, if the organization is part of an enterprise that has\n  SAML enabled or uses Enterprise Managed Users. If the organization is not part\n  of such an enterprise, and instead has SAML enabled for it individually, the\n  token will then require SAML authorization to continue working against that organization.\n  \"\"\"\n  createEnterpriseOrganization(\n    \"\"\"\n    Parameters for CreateEnterpriseOrganization\n    \"\"\"\n    input: CreateEnterpriseOrganizationInput!\n  ): CreateEnterpriseOrganizationPayload\n\n  \"\"\"\n  Creates an environment or simply returns it if already exists.\n  \"\"\"\n  createEnvironment(\n    \"\"\"\n    Parameters for CreateEnvironment\n    \"\"\"\n    input: CreateEnvironmentInput!\n  ): CreateEnvironmentPayload\n\n  \"\"\"\n  Creates a new IP allow list entry.\n  \"\"\"\n  createIpAllowListEntry(\n    \"\"\"\n    Parameters for CreateIpAllowListEntry\n    \"\"\"\n    input: CreateIpAllowListEntryInput!\n  ): CreateIpAllowListEntryPayload\n\n  \"\"\"\n  Creates a new issue.\n  \"\"\"\n  createIssue(\n    \"\"\"\n    Parameters for CreateIssue\n    \"\"\"\n    input: CreateIssueInput!\n  ): CreateIssuePayload\n\n  \"\"\"\n  Creates a new label.\n  \"\"\"\n  createLabel(\n    \"\"\"\n    Parameters for CreateLabel\n    \"\"\"\n    input: CreateLabelInput!\n  ): CreateLabelPayload @preview(toggledBy: \"bane-preview\")\n\n  \"\"\"\n  Create a branch linked to an issue.\n  \"\"\"\n  createLinkedBranch(\n    \"\"\"\n    Parameters for CreateLinkedBranch\n    \"\"\"\n    input: CreateLinkedBranchInput!\n  ): CreateLinkedBranchPayload\n\n  \"\"\"\n  Creates a GitHub Enterprise Importer (GEI) migration source.\n  \"\"\"\n  createMigrationSource(\n    \"\"\"\n    Parameters for CreateMigrationSource\n    \"\"\"\n    input: CreateMigrationSourceInput!\n  ): CreateMigrationSourcePayload\n\n  \"\"\"\n  Creates a new project.\n  \"\"\"\n  createProject(\n    \"\"\"\n    Parameters for CreateProject\n    \"\"\"\n    input: CreateProjectInput!\n  ): CreateProjectPayload\n\n  \"\"\"\n  Creates a new project.\n  \"\"\"\n  createProjectV2(\n    \"\"\"\n    Parameters for CreateProjectV2\n    \"\"\"\n    input: CreateProjectV2Input!\n  ): CreateProjectV2Payload\n\n  \"\"\"\n  Create a new project field.\n  \"\"\"\n  createProjectV2Field(\n    \"\"\"\n    Parameters for CreateProjectV2Field\n    \"\"\"\n    input: CreateProjectV2FieldInput!\n  ): CreateProjectV2FieldPayload\n\n  \"\"\"\n  Create a new pull request\n  \"\"\"\n  createPullRequest(\n    \"\"\"\n    Parameters for CreatePullRequest\n    \"\"\"\n    input: CreatePullRequestInput!\n  ): CreatePullRequestPayload\n\n  \"\"\"\n  Create a new Git Ref.\n  \"\"\"\n  createRef(\n    \"\"\"\n    Parameters for CreateRef\n    \"\"\"\n    input: CreateRefInput!\n  ): CreateRefPayload\n\n  \"\"\"\n  Create a new repository.\n  \"\"\"\n  createRepository(\n    \"\"\"\n    Parameters for CreateRepository\n    \"\"\"\n    input: CreateRepositoryInput!\n  ): CreateRepositoryPayload\n\n  \"\"\"\n  Create a repository ruleset\n  \"\"\"\n  createRepositoryRuleset(\n    \"\"\"\n    Parameters for CreateRepositoryRuleset\n    \"\"\"\n    input: CreateRepositoryRulesetInput!\n  ): CreateRepositoryRulesetPayload\n\n  \"\"\"\n  Create a GitHub Sponsors profile to allow others to sponsor you or your organization.\n  \"\"\"\n  createSponsorsListing(\n    \"\"\"\n    Parameters for CreateSponsorsListing\n    \"\"\"\n    input: CreateSponsorsListingInput!\n  ): CreateSponsorsListingPayload\n\n  \"\"\"\n  Create a new payment tier for your GitHub Sponsors profile.\n  \"\"\"\n  createSponsorsTier(\n    \"\"\"\n    Parameters for CreateSponsorsTier\n    \"\"\"\n    input: CreateSponsorsTierInput!\n  ): CreateSponsorsTierPayload\n\n  \"\"\"\n  Start a new sponsorship of a maintainer in GitHub Sponsors, or reactivate a past sponsorship.\n  \"\"\"\n  createSponsorship(\n    \"\"\"\n    Parameters for CreateSponsorship\n    \"\"\"\n    input: CreateSponsorshipInput!\n  ): CreateSponsorshipPayload\n\n  \"\"\"\n  Make many one-time sponsorships for different sponsorable users or\n  organizations at once. Can only sponsor those who have a public GitHub\n  Sponsors profile.\n  \"\"\"\n  createSponsorships(\n    \"\"\"\n    Parameters for CreateSponsorships\n    \"\"\"\n    input: CreateSponsorshipsInput!\n  ): CreateSponsorshipsPayload\n\n  \"\"\"\n  Creates a new team discussion.\n  \"\"\"\n  createTeamDiscussion(\n    \"\"\"\n    Parameters for CreateTeamDiscussion\n    \"\"\"\n    input: CreateTeamDiscussionInput!\n  ): CreateTeamDiscussionPayload\n\n  \"\"\"\n  Creates a new team discussion comment.\n  \"\"\"\n  createTeamDiscussionComment(\n    \"\"\"\n    Parameters for CreateTeamDiscussionComment\n    \"\"\"\n    input: CreateTeamDiscussionCommentInput!\n  ): CreateTeamDiscussionCommentPayload\n\n  \"\"\"\n  Creates a new user list.\n  \"\"\"\n  createUserList(\n    \"\"\"\n    Parameters for CreateUserList\n    \"\"\"\n    input: CreateUserListInput!\n  ): CreateUserListPayload\n\n  \"\"\"\n  Rejects a suggested topic for the repository.\n  \"\"\"\n  declineTopicSuggestion(\n    \"\"\"\n    Parameters for DeclineTopicSuggestion\n    \"\"\"\n    input: DeclineTopicSuggestionInput!\n  ): DeclineTopicSuggestionPayload\n\n  \"\"\"\n  Delete a branch protection rule\n  \"\"\"\n  deleteBranchProtectionRule(\n    \"\"\"\n    Parameters for DeleteBranchProtectionRule\n    \"\"\"\n    input: DeleteBranchProtectionRuleInput!\n  ): DeleteBranchProtectionRulePayload\n\n  \"\"\"\n  Deletes a deployment.\n  \"\"\"\n  deleteDeployment(\n    \"\"\"\n    Parameters for DeleteDeployment\n    \"\"\"\n    input: DeleteDeploymentInput!\n  ): DeleteDeploymentPayload\n\n  \"\"\"\n  Delete a discussion and all of its replies.\n  \"\"\"\n  deleteDiscussion(\n    \"\"\"\n    Parameters for DeleteDiscussion\n    \"\"\"\n    input: DeleteDiscussionInput!\n  ): DeleteDiscussionPayload\n\n  \"\"\"\n  Delete a discussion comment. If it has replies, wipe it instead.\n  \"\"\"\n  deleteDiscussionComment(\n    \"\"\"\n    Parameters for DeleteDiscussionComment\n    \"\"\"\n    input: DeleteDiscussionCommentInput!\n  ): DeleteDiscussionCommentPayload\n\n  \"\"\"\n  Deletes an environment\n  \"\"\"\n  deleteEnvironment(\n    \"\"\"\n    Parameters for DeleteEnvironment\n    \"\"\"\n    input: DeleteEnvironmentInput!\n  ): DeleteEnvironmentPayload\n\n  \"\"\"\n  Deletes an IP allow list entry.\n  \"\"\"\n  deleteIpAllowListEntry(\n    \"\"\"\n    Parameters for DeleteIpAllowListEntry\n    \"\"\"\n    input: DeleteIpAllowListEntryInput!\n  ): DeleteIpAllowListEntryPayload\n\n  \"\"\"\n  Deletes an Issue object.\n  \"\"\"\n  deleteIssue(\n    \"\"\"\n    Parameters for DeleteIssue\n    \"\"\"\n    input: DeleteIssueInput!\n  ): DeleteIssuePayload\n\n  \"\"\"\n  Deletes an IssueComment object.\n  \"\"\"\n  deleteIssueComment(\n    \"\"\"\n    Parameters for DeleteIssueComment\n    \"\"\"\n    input: DeleteIssueCommentInput!\n  ): DeleteIssueCommentPayload\n\n  \"\"\"\n  Deletes a label.\n  \"\"\"\n  deleteLabel(\n    \"\"\"\n    Parameters for DeleteLabel\n    \"\"\"\n    input: DeleteLabelInput!\n  ): DeleteLabelPayload @preview(toggledBy: \"bane-preview\")\n\n  \"\"\"\n  Unlink a branch from an issue.\n  \"\"\"\n  deleteLinkedBranch(\n    \"\"\"\n    Parameters for DeleteLinkedBranch\n    \"\"\"\n    input: DeleteLinkedBranchInput!\n  ): DeleteLinkedBranchPayload\n\n  \"\"\"\n  Delete a package version.\n  \"\"\"\n  deletePackageVersion(\n    \"\"\"\n    Parameters for DeletePackageVersion\n    \"\"\"\n    input: DeletePackageVersionInput!\n  ): DeletePackageVersionPayload @preview(toggledBy: \"package-deletes-preview\")\n\n  \"\"\"\n  Deletes a project.\n  \"\"\"\n  deleteProject(\n    \"\"\"\n    Parameters for DeleteProject\n    \"\"\"\n    input: DeleteProjectInput!\n  ): DeleteProjectPayload\n\n  \"\"\"\n  Deletes a project card.\n  \"\"\"\n  deleteProjectCard(\n    \"\"\"\n    Parameters for DeleteProjectCard\n    \"\"\"\n    input: DeleteProjectCardInput!\n  ): DeleteProjectCardPayload\n\n  \"\"\"\n  Deletes a project column.\n  \"\"\"\n  deleteProjectColumn(\n    \"\"\"\n    Parameters for DeleteProjectColumn\n    \"\"\"\n    input: DeleteProjectColumnInput!\n  ): DeleteProjectColumnPayload\n\n  \"\"\"\n  Delete a project.\n  \"\"\"\n  deleteProjectV2(\n    \"\"\"\n    Parameters for DeleteProjectV2\n    \"\"\"\n    input: DeleteProjectV2Input!\n  ): DeleteProjectV2Payload\n\n  \"\"\"\n  Delete a project field.\n  \"\"\"\n  deleteProjectV2Field(\n    \"\"\"\n    Parameters for DeleteProjectV2Field\n    \"\"\"\n    input: DeleteProjectV2FieldInput!\n  ): DeleteProjectV2FieldPayload\n\n  \"\"\"\n  Deletes an item from a Project.\n  \"\"\"\n  deleteProjectV2Item(\n    \"\"\"\n    Parameters for DeleteProjectV2Item\n    \"\"\"\n    input: DeleteProjectV2ItemInput!\n  ): DeleteProjectV2ItemPayload\n\n  \"\"\"\n  Deletes a project workflow.\n  \"\"\"\n  deleteProjectV2Workflow(\n    \"\"\"\n    Parameters for DeleteProjectV2Workflow\n    \"\"\"\n    input: DeleteProjectV2WorkflowInput!\n  ): DeleteProjectV2WorkflowPayload\n\n  \"\"\"\n  Deletes a pull request review.\n  \"\"\"\n  deletePullRequestReview(\n    \"\"\"\n    Parameters for DeletePullRequestReview\n    \"\"\"\n    input: DeletePullRequestReviewInput!\n  ): DeletePullRequestReviewPayload\n\n  \"\"\"\n  Deletes a pull request review comment.\n  \"\"\"\n  deletePullRequestReviewComment(\n    \"\"\"\n    Parameters for DeletePullRequestReviewComment\n    \"\"\"\n    input: DeletePullRequestReviewCommentInput!\n  ): DeletePullRequestReviewCommentPayload\n\n  \"\"\"\n  Delete a Git Ref.\n  \"\"\"\n  deleteRef(\n    \"\"\"\n    Parameters for DeleteRef\n    \"\"\"\n    input: DeleteRefInput!\n  ): DeleteRefPayload\n\n  \"\"\"\n  Delete a repository ruleset\n  \"\"\"\n  deleteRepositoryRuleset(\n    \"\"\"\n    Parameters for DeleteRepositoryRuleset\n    \"\"\"\n    input: DeleteRepositoryRulesetInput!\n  ): DeleteRepositoryRulesetPayload\n\n  \"\"\"\n  Deletes a team discussion.\n  \"\"\"\n  deleteTeamDiscussion(\n    \"\"\"\n    Parameters for DeleteTeamDiscussion\n    \"\"\"\n    input: DeleteTeamDiscussionInput!\n  ): DeleteTeamDiscussionPayload\n\n  \"\"\"\n  Deletes a team discussion comment.\n  \"\"\"\n  deleteTeamDiscussionComment(\n    \"\"\"\n    Parameters for DeleteTeamDiscussionComment\n    \"\"\"\n    input: DeleteTeamDiscussionCommentInput!\n  ): DeleteTeamDiscussionCommentPayload\n\n  \"\"\"\n  Deletes a user list.\n  \"\"\"\n  deleteUserList(\n    \"\"\"\n    Parameters for DeleteUserList\n    \"\"\"\n    input: DeleteUserListInput!\n  ): DeleteUserListPayload\n\n  \"\"\"\n  Deletes a verifiable domain.\n  \"\"\"\n  deleteVerifiableDomain(\n    \"\"\"\n    Parameters for DeleteVerifiableDomain\n    \"\"\"\n    input: DeleteVerifiableDomainInput!\n  ): DeleteVerifiableDomainPayload\n\n  \"\"\"\n  Remove a pull request from the merge queue.\n  \"\"\"\n  dequeuePullRequest(\n    \"\"\"\n    Parameters for DequeuePullRequest\n    \"\"\"\n    input: DequeuePullRequestInput!\n  ): DequeuePullRequestPayload\n\n  \"\"\"\n  Disable auto merge on the given pull request\n  \"\"\"\n  disablePullRequestAutoMerge(\n    \"\"\"\n    Parameters for DisablePullRequestAutoMerge\n    \"\"\"\n    input: DisablePullRequestAutoMergeInput!\n  ): DisablePullRequestAutoMergePayload\n\n  \"\"\"\n  Dismisses an approved or rejected pull request review.\n  \"\"\"\n  dismissPullRequestReview(\n    \"\"\"\n    Parameters for DismissPullRequestReview\n    \"\"\"\n    input: DismissPullRequestReviewInput!\n  ): DismissPullRequestReviewPayload\n\n  \"\"\"\n  Dismisses the Dependabot alert.\n  \"\"\"\n  dismissRepositoryVulnerabilityAlert(\n    \"\"\"\n    Parameters for DismissRepositoryVulnerabilityAlert\n    \"\"\"\n    input: DismissRepositoryVulnerabilityAlertInput!\n  ): DismissRepositoryVulnerabilityAlertPayload\n\n  \"\"\"\n  Enable the default auto-merge on a pull request.\n  \"\"\"\n  enablePullRequestAutoMerge(\n    \"\"\"\n    Parameters for EnablePullRequestAutoMerge\n    \"\"\"\n    input: EnablePullRequestAutoMergeInput!\n  ): EnablePullRequestAutoMergePayload\n\n  \"\"\"\n  Add a pull request to the merge queue.\n  \"\"\"\n  enqueuePullRequest(\n    \"\"\"\n    Parameters for EnqueuePullRequest\n    \"\"\"\n    input: EnqueuePullRequestInput!\n  ): EnqueuePullRequestPayload\n\n  \"\"\"\n  Follow an organization.\n  \"\"\"\n  followOrganization(\n    \"\"\"\n    Parameters for FollowOrganization\n    \"\"\"\n    input: FollowOrganizationInput!\n  ): FollowOrganizationPayload\n\n  \"\"\"\n  Follow a user.\n  \"\"\"\n  followUser(\n    \"\"\"\n    Parameters for FollowUser\n    \"\"\"\n    input: FollowUserInput!\n  ): FollowUserPayload\n\n  \"\"\"\n  Grant the migrator role to a user for all organizations under an enterprise account.\n  \"\"\"\n  grantEnterpriseOrganizationsMigratorRole(\n    \"\"\"\n    Parameters for GrantEnterpriseOrganizationsMigratorRole\n    \"\"\"\n    input: GrantEnterpriseOrganizationsMigratorRoleInput!\n  ): GrantEnterpriseOrganizationsMigratorRolePayload\n\n  \"\"\"\n  Grant the migrator role to a user or a team.\n  \"\"\"\n  grantMigratorRole(\n    \"\"\"\n    Parameters for GrantMigratorRole\n    \"\"\"\n    input: GrantMigratorRoleInput!\n  ): GrantMigratorRolePayload\n\n  \"\"\"\n  Creates a new project by importing columns and a list of issues/PRs.\n  \"\"\"\n  importProject(\n    \"\"\"\n    Parameters for ImportProject\n    \"\"\"\n    input: ImportProjectInput!\n  ): ImportProjectPayload @preview(toggledBy: \"slothette-preview\")\n\n  \"\"\"\n  Invite someone to become an administrator of the enterprise.\n  \"\"\"\n  inviteEnterpriseAdmin(\n    \"\"\"\n    Parameters for InviteEnterpriseAdmin\n    \"\"\"\n    input: InviteEnterpriseAdminInput!\n  ): InviteEnterpriseAdminPayload\n\n  \"\"\"\n  Links a project to a repository.\n  \"\"\"\n  linkProjectV2ToRepository(\n    \"\"\"\n    Parameters for LinkProjectV2ToRepository\n    \"\"\"\n    input: LinkProjectV2ToRepositoryInput!\n  ): LinkProjectV2ToRepositoryPayload\n\n  \"\"\"\n  Links a project to a team.\n  \"\"\"\n  linkProjectV2ToTeam(\n    \"\"\"\n    Parameters for LinkProjectV2ToTeam\n    \"\"\"\n    input: LinkProjectV2ToTeamInput!\n  ): LinkProjectV2ToTeamPayload\n\n  \"\"\"\n  Creates a repository link for a project.\n  \"\"\"\n  linkRepositoryToProject(\n    \"\"\"\n    Parameters for LinkRepositoryToProject\n    \"\"\"\n    input: LinkRepositoryToProjectInput!\n  ): LinkRepositoryToProjectPayload\n\n  \"\"\"\n  Lock a lockable object\n  \"\"\"\n  lockLockable(\n    \"\"\"\n    Parameters for LockLockable\n    \"\"\"\n    input: LockLockableInput!\n  ): LockLockablePayload\n\n  \"\"\"\n  Mark a discussion comment as the chosen answer for discussions in an answerable category.\n  \"\"\"\n  markDiscussionCommentAsAnswer(\n    \"\"\"\n    Parameters for MarkDiscussionCommentAsAnswer\n    \"\"\"\n    input: MarkDiscussionCommentAsAnswerInput!\n  ): MarkDiscussionCommentAsAnswerPayload\n\n  \"\"\"\n  Mark a pull request file as viewed\n  \"\"\"\n  markFileAsViewed(\n    \"\"\"\n    Parameters for MarkFileAsViewed\n    \"\"\"\n    input: MarkFileAsViewedInput!\n  ): MarkFileAsViewedPayload\n\n  \"\"\"\n  Mark a project as a template. Note that only projects which are owned by an Organization can be marked as a template.\n  \"\"\"\n  markProjectV2AsTemplate(\n    \"\"\"\n    Parameters for MarkProjectV2AsTemplate\n    \"\"\"\n    input: MarkProjectV2AsTemplateInput!\n  ): MarkProjectV2AsTemplatePayload\n\n  \"\"\"\n  Marks a pull request ready for review.\n  \"\"\"\n  markPullRequestReadyForReview(\n    \"\"\"\n    Parameters for MarkPullRequestReadyForReview\n    \"\"\"\n    input: MarkPullRequestReadyForReviewInput!\n  ): MarkPullRequestReadyForReviewPayload\n\n  \"\"\"\n  Merge a head into a branch.\n  \"\"\"\n  mergeBranch(\n    \"\"\"\n    Parameters for MergeBranch\n    \"\"\"\n    input: MergeBranchInput!\n  ): MergeBranchPayload\n\n  \"\"\"\n  Merge a pull request.\n  \"\"\"\n  mergePullRequest(\n    \"\"\"\n    Parameters for MergePullRequest\n    \"\"\"\n    input: MergePullRequestInput!\n  ): MergePullRequestPayload\n\n  \"\"\"\n  Minimizes a comment on an Issue, Commit, Pull Request, or Gist\n  \"\"\"\n  minimizeComment(\n    \"\"\"\n    Parameters for MinimizeComment\n    \"\"\"\n    input: MinimizeCommentInput!\n  ): MinimizeCommentPayload\n\n  \"\"\"\n  Moves a project card to another place.\n  \"\"\"\n  moveProjectCard(\n    \"\"\"\n    Parameters for MoveProjectCard\n    \"\"\"\n    input: MoveProjectCardInput!\n  ): MoveProjectCardPayload\n\n  \"\"\"\n  Moves a project column to another place.\n  \"\"\"\n  moveProjectColumn(\n    \"\"\"\n    Parameters for MoveProjectColumn\n    \"\"\"\n    input: MoveProjectColumnInput!\n  ): MoveProjectColumnPayload\n\n  \"\"\"\n  Pin an issue to a repository\n  \"\"\"\n  pinIssue(\n    \"\"\"\n    Parameters for PinIssue\n    \"\"\"\n    input: PinIssueInput!\n  ): PinIssuePayload\n\n  \"\"\"\n  Publish an existing sponsorship tier that is currently still a draft to a GitHub Sponsors profile.\n  \"\"\"\n  publishSponsorsTier(\n    \"\"\"\n    Parameters for PublishSponsorsTier\n    \"\"\"\n    input: PublishSponsorsTierInput!\n  ): PublishSponsorsTierPayload\n\n  \"\"\"\n  Regenerates the identity provider recovery codes for an enterprise\n  \"\"\"\n  regenerateEnterpriseIdentityProviderRecoveryCodes(\n    \"\"\"\n    Parameters for RegenerateEnterpriseIdentityProviderRecoveryCodes\n    \"\"\"\n    input: RegenerateEnterpriseIdentityProviderRecoveryCodesInput!\n  ): RegenerateEnterpriseIdentityProviderRecoveryCodesPayload\n\n  \"\"\"\n  Regenerates a verifiable domain's verification token.\n  \"\"\"\n  regenerateVerifiableDomainToken(\n    \"\"\"\n    Parameters for RegenerateVerifiableDomainToken\n    \"\"\"\n    input: RegenerateVerifiableDomainTokenInput!\n  ): RegenerateVerifiableDomainTokenPayload\n\n  \"\"\"\n  Reject all pending deployments under one or more environments\n  \"\"\"\n  rejectDeployments(\n    \"\"\"\n    Parameters for RejectDeployments\n    \"\"\"\n    input: RejectDeploymentsInput!\n  ): RejectDeploymentsPayload\n\n  \"\"\"\n  Removes assignees from an assignable object.\n  \"\"\"\n  removeAssigneesFromAssignable(\n    \"\"\"\n    Parameters for RemoveAssigneesFromAssignable\n    \"\"\"\n    input: RemoveAssigneesFromAssignableInput!\n  ): RemoveAssigneesFromAssignablePayload\n\n  \"\"\"\n  Removes an administrator from the enterprise.\n  \"\"\"\n  removeEnterpriseAdmin(\n    \"\"\"\n    Parameters for RemoveEnterpriseAdmin\n    \"\"\"\n    input: RemoveEnterpriseAdminInput!\n  ): RemoveEnterpriseAdminPayload\n\n  \"\"\"\n  Removes the identity provider from an enterprise\n  \"\"\"\n  removeEnterpriseIdentityProvider(\n    \"\"\"\n    Parameters for RemoveEnterpriseIdentityProvider\n    \"\"\"\n    input: RemoveEnterpriseIdentityProviderInput!\n  ): RemoveEnterpriseIdentityProviderPayload\n\n  \"\"\"\n  Removes a user from all organizations within the enterprise\n  \"\"\"\n  removeEnterpriseMember(\n    \"\"\"\n    Parameters for RemoveEnterpriseMember\n    \"\"\"\n    input: RemoveEnterpriseMemberInput!\n  ): RemoveEnterpriseMemberPayload\n\n  \"\"\"\n  Removes an organization from the enterprise\n  \"\"\"\n  removeEnterpriseOrganization(\n    \"\"\"\n    Parameters for RemoveEnterpriseOrganization\n    \"\"\"\n    input: RemoveEnterpriseOrganizationInput!\n  ): RemoveEnterpriseOrganizationPayload\n\n  \"\"\"\n  Removes a support entitlement from an enterprise member.\n  \"\"\"\n  removeEnterpriseSupportEntitlement(\n    \"\"\"\n    Parameters for RemoveEnterpriseSupportEntitlement\n    \"\"\"\n    input: RemoveEnterpriseSupportEntitlementInput!\n  ): RemoveEnterpriseSupportEntitlementPayload\n\n  \"\"\"\n  Removes labels from a Labelable object.\n  \"\"\"\n  removeLabelsFromLabelable(\n    \"\"\"\n    Parameters for RemoveLabelsFromLabelable\n    \"\"\"\n    input: RemoveLabelsFromLabelableInput!\n  ): RemoveLabelsFromLabelablePayload\n\n  \"\"\"\n  Removes outside collaborator from all repositories in an organization.\n  \"\"\"\n  removeOutsideCollaborator(\n    \"\"\"\n    Parameters for RemoveOutsideCollaborator\n    \"\"\"\n    input: RemoveOutsideCollaboratorInput!\n  ): RemoveOutsideCollaboratorPayload\n\n  \"\"\"\n  Removes a reaction from a subject.\n  \"\"\"\n  removeReaction(\n    \"\"\"\n    Parameters for RemoveReaction\n    \"\"\"\n    input: RemoveReactionInput!\n  ): RemoveReactionPayload\n\n  \"\"\"\n  Removes a star from a Starrable.\n  \"\"\"\n  removeStar(\n    \"\"\"\n    Parameters for RemoveStar\n    \"\"\"\n    input: RemoveStarInput!\n  ): RemoveStarPayload\n\n  \"\"\"\n  Remove an upvote to a discussion or discussion comment.\n  \"\"\"\n  removeUpvote(\n    \"\"\"\n    Parameters for RemoveUpvote\n    \"\"\"\n    input: RemoveUpvoteInput!\n  ): RemoveUpvotePayload\n\n  \"\"\"\n  Reopen a discussion.\n  \"\"\"\n  reopenDiscussion(\n    \"\"\"\n    Parameters for ReopenDiscussion\n    \"\"\"\n    input: ReopenDiscussionInput!\n  ): ReopenDiscussionPayload\n\n  \"\"\"\n  Reopen a issue.\n  \"\"\"\n  reopenIssue(\n    \"\"\"\n    Parameters for ReopenIssue\n    \"\"\"\n    input: ReopenIssueInput!\n  ): ReopenIssuePayload\n\n  \"\"\"\n  Reopen a pull request.\n  \"\"\"\n  reopenPullRequest(\n    \"\"\"\n    Parameters for ReopenPullRequest\n    \"\"\"\n    input: ReopenPullRequestInput!\n  ): ReopenPullRequestPayload\n\n  \"\"\"\n  Set review requests on a pull request.\n  \"\"\"\n  requestReviews(\n    \"\"\"\n    Parameters for RequestReviews\n    \"\"\"\n    input: RequestReviewsInput!\n  ): RequestReviewsPayload\n\n  \"\"\"\n  Rerequests an existing check suite.\n  \"\"\"\n  rerequestCheckSuite(\n    \"\"\"\n    Parameters for RerequestCheckSuite\n    \"\"\"\n    input: RerequestCheckSuiteInput!\n  ): RerequestCheckSuitePayload\n\n  \"\"\"\n  Marks a review thread as resolved.\n  \"\"\"\n  resolveReviewThread(\n    \"\"\"\n    Parameters for ResolveReviewThread\n    \"\"\"\n    input: ResolveReviewThreadInput!\n  ): ResolveReviewThreadPayload\n\n  \"\"\"\n  Retire a published payment tier from your GitHub Sponsors profile so it cannot be used to start new sponsorships.\n  \"\"\"\n  retireSponsorsTier(\n    \"\"\"\n    Parameters for RetireSponsorsTier\n    \"\"\"\n    input: RetireSponsorsTierInput!\n  ): RetireSponsorsTierPayload\n\n  \"\"\"\n  Create a pull request that reverts the changes from a merged pull request.\n  \"\"\"\n  revertPullRequest(\n    \"\"\"\n    Parameters for RevertPullRequest\n    \"\"\"\n    input: RevertPullRequestInput!\n  ): RevertPullRequestPayload\n\n  \"\"\"\n  Revoke the migrator role to a user for all organizations under an enterprise account.\n  \"\"\"\n  revokeEnterpriseOrganizationsMigratorRole(\n    \"\"\"\n    Parameters for RevokeEnterpriseOrganizationsMigratorRole\n    \"\"\"\n    input: RevokeEnterpriseOrganizationsMigratorRoleInput!\n  ): RevokeEnterpriseOrganizationsMigratorRolePayload\n\n  \"\"\"\n  Revoke the migrator role from a user or a team.\n  \"\"\"\n  revokeMigratorRole(\n    \"\"\"\n    Parameters for RevokeMigratorRole\n    \"\"\"\n    input: RevokeMigratorRoleInput!\n  ): RevokeMigratorRolePayload\n\n  \"\"\"\n  Creates or updates the identity provider for an enterprise.\n  \"\"\"\n  setEnterpriseIdentityProvider(\n    \"\"\"\n    Parameters for SetEnterpriseIdentityProvider\n    \"\"\"\n    input: SetEnterpriseIdentityProviderInput!\n  ): SetEnterpriseIdentityProviderPayload\n\n  \"\"\"\n  Set an organization level interaction limit for an organization's public repositories.\n  \"\"\"\n  setOrganizationInteractionLimit(\n    \"\"\"\n    Parameters for SetOrganizationInteractionLimit\n    \"\"\"\n    input: SetOrganizationInteractionLimitInput!\n  ): SetOrganizationInteractionLimitPayload\n\n  \"\"\"\n  Sets an interaction limit setting for a repository.\n  \"\"\"\n  setRepositoryInteractionLimit(\n    \"\"\"\n    Parameters for SetRepositoryInteractionLimit\n    \"\"\"\n    input: SetRepositoryInteractionLimitInput!\n  ): SetRepositoryInteractionLimitPayload\n\n  \"\"\"\n  Set a user level interaction limit for an user's public repositories.\n  \"\"\"\n  setUserInteractionLimit(\n    \"\"\"\n    Parameters for SetUserInteractionLimit\n    \"\"\"\n    input: SetUserInteractionLimitInput!\n  ): SetUserInteractionLimitPayload\n\n  \"\"\"\n  Starts a GitHub Enterprise Importer organization migration.\n  \"\"\"\n  startOrganizationMigration(\n    \"\"\"\n    Parameters for StartOrganizationMigration\n    \"\"\"\n    input: StartOrganizationMigrationInput!\n  ): StartOrganizationMigrationPayload\n\n  \"\"\"\n  Starts a GitHub Enterprise Importer (GEI) repository migration.\n  \"\"\"\n  startRepositoryMigration(\n    \"\"\"\n    Parameters for StartRepositoryMigration\n    \"\"\"\n    input: StartRepositoryMigrationInput!\n  ): StartRepositoryMigrationPayload\n\n  \"\"\"\n  Submits a pending pull request review.\n  \"\"\"\n  submitPullRequestReview(\n    \"\"\"\n    Parameters for SubmitPullRequestReview\n    \"\"\"\n    input: SubmitPullRequestReviewInput!\n  ): SubmitPullRequestReviewPayload\n\n  \"\"\"\n  Transfer an organization from one enterprise to another enterprise.\n  \"\"\"\n  transferEnterpriseOrganization(\n    \"\"\"\n    Parameters for TransferEnterpriseOrganization\n    \"\"\"\n    input: TransferEnterpriseOrganizationInput!\n  ): TransferEnterpriseOrganizationPayload\n\n  \"\"\"\n  Transfer an issue to a different repository\n  \"\"\"\n  transferIssue(\n    \"\"\"\n    Parameters for TransferIssue\n    \"\"\"\n    input: TransferIssueInput!\n  ): TransferIssuePayload\n\n  \"\"\"\n  Unarchives a ProjectV2Item\n  \"\"\"\n  unarchiveProjectV2Item(\n    \"\"\"\n    Parameters for UnarchiveProjectV2Item\n    \"\"\"\n    input: UnarchiveProjectV2ItemInput!\n  ): UnarchiveProjectV2ItemPayload\n\n  \"\"\"\n  Unarchives a repository.\n  \"\"\"\n  unarchiveRepository(\n    \"\"\"\n    Parameters for UnarchiveRepository\n    \"\"\"\n    input: UnarchiveRepositoryInput!\n  ): UnarchiveRepositoryPayload\n\n  \"\"\"\n  Unfollow an organization.\n  \"\"\"\n  unfollowOrganization(\n    \"\"\"\n    Parameters for UnfollowOrganization\n    \"\"\"\n    input: UnfollowOrganizationInput!\n  ): UnfollowOrganizationPayload\n\n  \"\"\"\n  Unfollow a user.\n  \"\"\"\n  unfollowUser(\n    \"\"\"\n    Parameters for UnfollowUser\n    \"\"\"\n    input: UnfollowUserInput!\n  ): UnfollowUserPayload\n\n  \"\"\"\n  Unlinks a project from a repository.\n  \"\"\"\n  unlinkProjectV2FromRepository(\n    \"\"\"\n    Parameters for UnlinkProjectV2FromRepository\n    \"\"\"\n    input: UnlinkProjectV2FromRepositoryInput!\n  ): UnlinkProjectV2FromRepositoryPayload\n\n  \"\"\"\n  Unlinks a project to a team.\n  \"\"\"\n  unlinkProjectV2FromTeam(\n    \"\"\"\n    Parameters for UnlinkProjectV2FromTeam\n    \"\"\"\n    input: UnlinkProjectV2FromTeamInput!\n  ): UnlinkProjectV2FromTeamPayload\n\n  \"\"\"\n  Deletes a repository link from a project.\n  \"\"\"\n  unlinkRepositoryFromProject(\n    \"\"\"\n    Parameters for UnlinkRepositoryFromProject\n    \"\"\"\n    input: UnlinkRepositoryFromProjectInput!\n  ): UnlinkRepositoryFromProjectPayload\n\n  \"\"\"\n  Unlock a lockable object\n  \"\"\"\n  unlockLockable(\n    \"\"\"\n    Parameters for UnlockLockable\n    \"\"\"\n    input: UnlockLockableInput!\n  ): UnlockLockablePayload\n\n  \"\"\"\n  Unmark a discussion comment as the chosen answer for discussions in an answerable category.\n  \"\"\"\n  unmarkDiscussionCommentAsAnswer(\n    \"\"\"\n    Parameters for UnmarkDiscussionCommentAsAnswer\n    \"\"\"\n    input: UnmarkDiscussionCommentAsAnswerInput!\n  ): UnmarkDiscussionCommentAsAnswerPayload\n\n  \"\"\"\n  Unmark a pull request file as viewed\n  \"\"\"\n  unmarkFileAsViewed(\n    \"\"\"\n    Parameters for UnmarkFileAsViewed\n    \"\"\"\n    input: UnmarkFileAsViewedInput!\n  ): UnmarkFileAsViewedPayload\n\n  \"\"\"\n  Unmark an issue as a duplicate of another issue.\n  \"\"\"\n  unmarkIssueAsDuplicate(\n    \"\"\"\n    Parameters for UnmarkIssueAsDuplicate\n    \"\"\"\n    input: UnmarkIssueAsDuplicateInput!\n  ): UnmarkIssueAsDuplicatePayload\n\n  \"\"\"\n  Unmark a project as a template.\n  \"\"\"\n  unmarkProjectV2AsTemplate(\n    \"\"\"\n    Parameters for UnmarkProjectV2AsTemplate\n    \"\"\"\n    input: UnmarkProjectV2AsTemplateInput!\n  ): UnmarkProjectV2AsTemplatePayload\n\n  \"\"\"\n  Unminimizes a comment on an Issue, Commit, Pull Request, or Gist\n  \"\"\"\n  unminimizeComment(\n    \"\"\"\n    Parameters for UnminimizeComment\n    \"\"\"\n    input: UnminimizeCommentInput!\n  ): UnminimizeCommentPayload\n\n  \"\"\"\n  Unpin a pinned issue from a repository\n  \"\"\"\n  unpinIssue(\n    \"\"\"\n    Parameters for UnpinIssue\n    \"\"\"\n    input: UnpinIssueInput!\n  ): UnpinIssuePayload\n\n  \"\"\"\n  Marks a review thread as unresolved.\n  \"\"\"\n  unresolveReviewThread(\n    \"\"\"\n    Parameters for UnresolveReviewThread\n    \"\"\"\n    input: UnresolveReviewThreadInput!\n  ): UnresolveReviewThreadPayload\n\n  \"\"\"\n  Unsubscribes from notifications\n  \"\"\"\n  unsubscribeFromNotifications(\n    \"\"\"\n    Parameters for UnsubscribeFromNotifications\n    \"\"\"\n    input: UnsubscribeFromNotificationsInput!\n  ): UnsubscribeFromNotificationsPayload\n\n  \"\"\"\n  Update a branch protection rule\n  \"\"\"\n  updateBranchProtectionRule(\n    \"\"\"\n    Parameters for UpdateBranchProtectionRule\n    \"\"\"\n    input: UpdateBranchProtectionRuleInput!\n  ): UpdateBranchProtectionRulePayload\n\n  \"\"\"\n  Update a check run\n  \"\"\"\n  updateCheckRun(\n    \"\"\"\n    Parameters for UpdateCheckRun\n    \"\"\"\n    input: UpdateCheckRunInput!\n  ): UpdateCheckRunPayload\n\n  \"\"\"\n  Modifies the settings of an existing check suite\n  \"\"\"\n  updateCheckSuitePreferences(\n    \"\"\"\n    Parameters for UpdateCheckSuitePreferences\n    \"\"\"\n    input: UpdateCheckSuitePreferencesInput!\n  ): UpdateCheckSuitePreferencesPayload\n\n  \"\"\"\n  Update a discussion\n  \"\"\"\n  updateDiscussion(\n    \"\"\"\n    Parameters for UpdateDiscussion\n    \"\"\"\n    input: UpdateDiscussionInput!\n  ): UpdateDiscussionPayload\n\n  \"\"\"\n  Update the contents of a comment on a Discussion\n  \"\"\"\n  updateDiscussionComment(\n    \"\"\"\n    Parameters for UpdateDiscussionComment\n    \"\"\"\n    input: UpdateDiscussionCommentInput!\n  ): UpdateDiscussionCommentPayload\n\n  \"\"\"\n  Updates the role of an enterprise administrator.\n  \"\"\"\n  updateEnterpriseAdministratorRole(\n    \"\"\"\n    Parameters for UpdateEnterpriseAdministratorRole\n    \"\"\"\n    input: UpdateEnterpriseAdministratorRoleInput!\n  ): UpdateEnterpriseAdministratorRolePayload\n\n  \"\"\"\n  Sets whether private repository forks are enabled for an enterprise.\n  \"\"\"\n  updateEnterpriseAllowPrivateRepositoryForkingSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseAllowPrivateRepositoryForkingSetting\n    \"\"\"\n    input: UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput!\n  ): UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload\n\n  \"\"\"\n  Sets the base repository permission for organizations in an enterprise.\n  \"\"\"\n  updateEnterpriseDefaultRepositoryPermissionSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseDefaultRepositoryPermissionSetting\n    \"\"\"\n    input: UpdateEnterpriseDefaultRepositoryPermissionSettingInput!\n  ): UpdateEnterpriseDefaultRepositoryPermissionSettingPayload\n\n  \"\"\"\n  Sets whether organization members with admin permissions on a repository can change repository visibility.\n  \"\"\"\n  updateEnterpriseMembersCanChangeRepositoryVisibilitySetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting\n    \"\"\"\n    input: UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput!\n  ): UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload\n\n  \"\"\"\n  Sets the members can create repositories setting for an enterprise.\n  \"\"\"\n  updateEnterpriseMembersCanCreateRepositoriesSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseMembersCanCreateRepositoriesSetting\n    \"\"\"\n    input: UpdateEnterpriseMembersCanCreateRepositoriesSettingInput!\n  ): UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload\n\n  \"\"\"\n  Sets the members can delete issues setting for an enterprise.\n  \"\"\"\n  updateEnterpriseMembersCanDeleteIssuesSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseMembersCanDeleteIssuesSetting\n    \"\"\"\n    input: UpdateEnterpriseMembersCanDeleteIssuesSettingInput!\n  ): UpdateEnterpriseMembersCanDeleteIssuesSettingPayload\n\n  \"\"\"\n  Sets the members can delete repositories setting for an enterprise.\n  \"\"\"\n  updateEnterpriseMembersCanDeleteRepositoriesSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseMembersCanDeleteRepositoriesSetting\n    \"\"\"\n    input: UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput!\n  ): UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload\n\n  \"\"\"\n  Sets whether members can invite collaborators are enabled for an enterprise.\n  \"\"\"\n  updateEnterpriseMembersCanInviteCollaboratorsSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseMembersCanInviteCollaboratorsSetting\n    \"\"\"\n    input: UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput!\n  ): UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload\n\n  \"\"\"\n  Sets whether or not an organization owner can make purchases.\n  \"\"\"\n  updateEnterpriseMembersCanMakePurchasesSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseMembersCanMakePurchasesSetting\n    \"\"\"\n    input: UpdateEnterpriseMembersCanMakePurchasesSettingInput!\n  ): UpdateEnterpriseMembersCanMakePurchasesSettingPayload\n\n  \"\"\"\n  Sets the members can update protected branches setting for an enterprise.\n  \"\"\"\n  updateEnterpriseMembersCanUpdateProtectedBranchesSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting\n    \"\"\"\n    input: UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput!\n  ): UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload\n\n  \"\"\"\n  Sets the members can view dependency insights for an enterprise.\n  \"\"\"\n  updateEnterpriseMembersCanViewDependencyInsightsSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseMembersCanViewDependencyInsightsSetting\n    \"\"\"\n    input: UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput!\n  ): UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload\n\n  \"\"\"\n  Sets whether organization projects are enabled for an enterprise.\n  \"\"\"\n  updateEnterpriseOrganizationProjectsSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseOrganizationProjectsSetting\n    \"\"\"\n    input: UpdateEnterpriseOrganizationProjectsSettingInput!\n  ): UpdateEnterpriseOrganizationProjectsSettingPayload\n\n  \"\"\"\n  Updates the role of an enterprise owner with an organization.\n  \"\"\"\n  updateEnterpriseOwnerOrganizationRole(\n    \"\"\"\n    Parameters for UpdateEnterpriseOwnerOrganizationRole\n    \"\"\"\n    input: UpdateEnterpriseOwnerOrganizationRoleInput!\n  ): UpdateEnterpriseOwnerOrganizationRolePayload\n\n  \"\"\"\n  Updates an enterprise's profile.\n  \"\"\"\n  updateEnterpriseProfile(\n    \"\"\"\n    Parameters for UpdateEnterpriseProfile\n    \"\"\"\n    input: UpdateEnterpriseProfileInput!\n  ): UpdateEnterpriseProfilePayload\n\n  \"\"\"\n  Sets whether repository projects are enabled for a enterprise.\n  \"\"\"\n  updateEnterpriseRepositoryProjectsSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseRepositoryProjectsSetting\n    \"\"\"\n    input: UpdateEnterpriseRepositoryProjectsSettingInput!\n  ): UpdateEnterpriseRepositoryProjectsSettingPayload\n\n  \"\"\"\n  Sets whether team discussions are enabled for an enterprise.\n  \"\"\"\n  updateEnterpriseTeamDiscussionsSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseTeamDiscussionsSetting\n    \"\"\"\n    input: UpdateEnterpriseTeamDiscussionsSettingInput!\n  ): UpdateEnterpriseTeamDiscussionsSettingPayload\n\n  \"\"\"\n  Sets whether two factor authentication is required for all users in an enterprise.\n  \"\"\"\n  updateEnterpriseTwoFactorAuthenticationRequiredSetting(\n    \"\"\"\n    Parameters for UpdateEnterpriseTwoFactorAuthenticationRequiredSetting\n    \"\"\"\n    input: UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput!\n  ): UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload\n\n  \"\"\"\n  Updates an environment.\n  \"\"\"\n  updateEnvironment(\n    \"\"\"\n    Parameters for UpdateEnvironment\n    \"\"\"\n    input: UpdateEnvironmentInput!\n  ): UpdateEnvironmentPayload\n\n  \"\"\"\n  Sets whether an IP allow list is enabled on an owner.\n  \"\"\"\n  updateIpAllowListEnabledSetting(\n    \"\"\"\n    Parameters for UpdateIpAllowListEnabledSetting\n    \"\"\"\n    input: UpdateIpAllowListEnabledSettingInput!\n  ): UpdateIpAllowListEnabledSettingPayload\n\n  \"\"\"\n  Updates an IP allow list entry.\n  \"\"\"\n  updateIpAllowListEntry(\n    \"\"\"\n    Parameters for UpdateIpAllowListEntry\n    \"\"\"\n    input: UpdateIpAllowListEntryInput!\n  ): UpdateIpAllowListEntryPayload\n\n  \"\"\"\n  Sets whether IP allow list configuration for installed GitHub Apps is enabled on an owner.\n  \"\"\"\n  updateIpAllowListForInstalledAppsEnabledSetting(\n    \"\"\"\n    Parameters for UpdateIpAllowListForInstalledAppsEnabledSetting\n    \"\"\"\n    input: UpdateIpAllowListForInstalledAppsEnabledSettingInput!\n  ): UpdateIpAllowListForInstalledAppsEnabledSettingPayload\n\n  \"\"\"\n  Updates an Issue.\n  \"\"\"\n  updateIssue(\n    \"\"\"\n    Parameters for UpdateIssue\n    \"\"\"\n    input: UpdateIssueInput!\n  ): UpdateIssuePayload\n\n  \"\"\"\n  Updates an IssueComment object.\n  \"\"\"\n  updateIssueComment(\n    \"\"\"\n    Parameters for UpdateIssueComment\n    \"\"\"\n    input: UpdateIssueCommentInput!\n  ): UpdateIssueCommentPayload\n\n  \"\"\"\n  Updates an existing label.\n  \"\"\"\n  updateLabel(\n    \"\"\"\n    Parameters for UpdateLabel\n    \"\"\"\n    input: UpdateLabelInput!\n  ): UpdateLabelPayload @preview(toggledBy: \"bane-preview\")\n\n  \"\"\"\n  Update the setting to restrict notifications to only verified or approved domains available to an owner.\n  \"\"\"\n  updateNotificationRestrictionSetting(\n    \"\"\"\n    Parameters for UpdateNotificationRestrictionSetting\n    \"\"\"\n    input: UpdateNotificationRestrictionSettingInput!\n  ): UpdateNotificationRestrictionSettingPayload\n\n  \"\"\"\n  Sets whether private repository forks are enabled for an organization.\n  \"\"\"\n  updateOrganizationAllowPrivateRepositoryForkingSetting(\n    \"\"\"\n    Parameters for UpdateOrganizationAllowPrivateRepositoryForkingSetting\n    \"\"\"\n    input: UpdateOrganizationAllowPrivateRepositoryForkingSettingInput!\n  ): UpdateOrganizationAllowPrivateRepositoryForkingSettingPayload\n\n  \"\"\"\n  Sets whether contributors are required to sign off on web-based commits for repositories in an organization.\n  \"\"\"\n  updateOrganizationWebCommitSignoffSetting(\n    \"\"\"\n    Parameters for UpdateOrganizationWebCommitSignoffSetting\n    \"\"\"\n    input: UpdateOrganizationWebCommitSignoffSettingInput!\n  ): UpdateOrganizationWebCommitSignoffSettingPayload\n\n  \"\"\"\n  Toggle the setting for your GitHub Sponsors profile that allows other GitHub\n  accounts to sponsor you on GitHub while paying for the sponsorship on Patreon.\n  Only applicable when you have a GitHub Sponsors profile and have connected\n  your GitHub account with Patreon.\n  \"\"\"\n  updatePatreonSponsorability(\n    \"\"\"\n    Parameters for UpdatePatreonSponsorability\n    \"\"\"\n    input: UpdatePatreonSponsorabilityInput!\n  ): UpdatePatreonSponsorabilityPayload\n\n  \"\"\"\n  Updates an existing project.\n  \"\"\"\n  updateProject(\n    \"\"\"\n    Parameters for UpdateProject\n    \"\"\"\n    input: UpdateProjectInput!\n  ): UpdateProjectPayload\n\n  \"\"\"\n  Updates an existing project card.\n  \"\"\"\n  updateProjectCard(\n    \"\"\"\n    Parameters for UpdateProjectCard\n    \"\"\"\n    input: UpdateProjectCardInput!\n  ): UpdateProjectCardPayload\n\n  \"\"\"\n  Updates an existing project column.\n  \"\"\"\n  updateProjectColumn(\n    \"\"\"\n    Parameters for UpdateProjectColumn\n    \"\"\"\n    input: UpdateProjectColumnInput!\n  ): UpdateProjectColumnPayload\n\n  \"\"\"\n  Updates an existing project.\n  \"\"\"\n  updateProjectV2(\n    \"\"\"\n    Parameters for UpdateProjectV2\n    \"\"\"\n    input: UpdateProjectV2Input!\n  ): UpdateProjectV2Payload\n\n  \"\"\"\n  Update the collaborators on a team or a project\n  \"\"\"\n  updateProjectV2Collaborators(\n    \"\"\"\n    Parameters for UpdateProjectV2Collaborators\n    \"\"\"\n    input: UpdateProjectV2CollaboratorsInput!\n  ): UpdateProjectV2CollaboratorsPayload\n\n  \"\"\"\n  Updates a draft issue within a Project.\n  \"\"\"\n  updateProjectV2DraftIssue(\n    \"\"\"\n    Parameters for UpdateProjectV2DraftIssue\n    \"\"\"\n    input: UpdateProjectV2DraftIssueInput!\n  ): UpdateProjectV2DraftIssuePayload\n\n  \"\"\"\n  This mutation updates the value of a field for an item in a Project. Currently\n  only single-select, text, number, date, and iteration fields are supported.\n  \"\"\"\n  updateProjectV2ItemFieldValue(\n    \"\"\"\n    Parameters for UpdateProjectV2ItemFieldValue\n    \"\"\"\n    input: UpdateProjectV2ItemFieldValueInput!\n  ): UpdateProjectV2ItemFieldValuePayload\n\n  \"\"\"\n  This mutation updates the position of the item in the project, where the position represents the priority of an item.\n  \"\"\"\n  updateProjectV2ItemPosition(\n    \"\"\"\n    Parameters for UpdateProjectV2ItemPosition\n    \"\"\"\n    input: UpdateProjectV2ItemPositionInput!\n  ): UpdateProjectV2ItemPositionPayload\n\n  \"\"\"\n  Update a pull request\n  \"\"\"\n  updatePullRequest(\n    \"\"\"\n    Parameters for UpdatePullRequest\n    \"\"\"\n    input: UpdatePullRequestInput!\n  ): UpdatePullRequestPayload\n\n  \"\"\"\n  Merge or Rebase HEAD from upstream branch into pull request branch\n  \"\"\"\n  updatePullRequestBranch(\n    \"\"\"\n    Parameters for UpdatePullRequestBranch\n    \"\"\"\n    input: UpdatePullRequestBranchInput!\n  ): UpdatePullRequestBranchPayload\n\n  \"\"\"\n  Updates the body of a pull request review.\n  \"\"\"\n  updatePullRequestReview(\n    \"\"\"\n    Parameters for UpdatePullRequestReview\n    \"\"\"\n    input: UpdatePullRequestReviewInput!\n  ): UpdatePullRequestReviewPayload\n\n  \"\"\"\n  Updates a pull request review comment.\n  \"\"\"\n  updatePullRequestReviewComment(\n    \"\"\"\n    Parameters for UpdatePullRequestReviewComment\n    \"\"\"\n    input: UpdatePullRequestReviewCommentInput!\n  ): UpdatePullRequestReviewCommentPayload\n\n  \"\"\"\n  Update a Git Ref.\n  \"\"\"\n  updateRef(\n    \"\"\"\n    Parameters for UpdateRef\n    \"\"\"\n    input: UpdateRefInput!\n  ): UpdateRefPayload\n\n  \"\"\"\n  Creates, updates and/or deletes multiple refs in a repository.\n\n  This mutation takes a list of `RefUpdate`s and performs these updates\n  on the repository. All updates are performed atomically, meaning that\n  if one of them is rejected, no other ref will be modified.\n\n  `RefUpdate.beforeOid` specifies that the given reference needs to point\n  to the given value before performing any updates. A value of\n  `0000000000000000000000000000000000000000` can be used to verify that\n  the references should not exist.\n\n  `RefUpdate.afterOid` specifies the value that the given reference\n  will point to after performing all updates. A value of\n  `0000000000000000000000000000000000000000` can be used to delete a\n  reference.\n\n  If `RefUpdate.force` is set to `true`, a non-fast-forward updates\n  for the given reference will be allowed.\n  \"\"\"\n  updateRefs(\n    \"\"\"\n    Parameters for UpdateRefs\n    \"\"\"\n    input: UpdateRefsInput!\n  ): UpdateRefsPayload @preview(toggledBy: \"update-refs-preview\")\n\n  \"\"\"\n  Update information about a repository.\n  \"\"\"\n  updateRepository(\n    \"\"\"\n    Parameters for UpdateRepository\n    \"\"\"\n    input: UpdateRepositoryInput!\n  ): UpdateRepositoryPayload\n\n  \"\"\"\n  Update a repository ruleset\n  \"\"\"\n  updateRepositoryRuleset(\n    \"\"\"\n    Parameters for UpdateRepositoryRuleset\n    \"\"\"\n    input: UpdateRepositoryRulesetInput!\n  ): UpdateRepositoryRulesetPayload\n\n  \"\"\"\n  Sets whether contributors are required to sign off on web-based commits for a repository.\n  \"\"\"\n  updateRepositoryWebCommitSignoffSetting(\n    \"\"\"\n    Parameters for UpdateRepositoryWebCommitSignoffSetting\n    \"\"\"\n    input: UpdateRepositoryWebCommitSignoffSettingInput!\n  ): UpdateRepositoryWebCommitSignoffSettingPayload\n\n  \"\"\"\n  Change visibility of your sponsorship and opt in or out of email updates from the maintainer.\n  \"\"\"\n  updateSponsorshipPreferences(\n    \"\"\"\n    Parameters for UpdateSponsorshipPreferences\n    \"\"\"\n    input: UpdateSponsorshipPreferencesInput!\n  ): UpdateSponsorshipPreferencesPayload\n\n  \"\"\"\n  Updates the state for subscribable subjects.\n  \"\"\"\n  updateSubscription(\n    \"\"\"\n    Parameters for UpdateSubscription\n    \"\"\"\n    input: UpdateSubscriptionInput!\n  ): UpdateSubscriptionPayload\n\n  \"\"\"\n  Updates a team discussion.\n  \"\"\"\n  updateTeamDiscussion(\n    \"\"\"\n    Parameters for UpdateTeamDiscussion\n    \"\"\"\n    input: UpdateTeamDiscussionInput!\n  ): UpdateTeamDiscussionPayload\n\n  \"\"\"\n  Updates a discussion comment.\n  \"\"\"\n  updateTeamDiscussionComment(\n    \"\"\"\n    Parameters for UpdateTeamDiscussionComment\n    \"\"\"\n    input: UpdateTeamDiscussionCommentInput!\n  ): UpdateTeamDiscussionCommentPayload\n\n  \"\"\"\n  Updates team review assignment.\n  \"\"\"\n  updateTeamReviewAssignment(\n    \"\"\"\n    Parameters for UpdateTeamReviewAssignment\n    \"\"\"\n    input: UpdateTeamReviewAssignmentInput!\n  ): UpdateTeamReviewAssignmentPayload @preview(toggledBy: \"stone-crop-preview\")\n\n  \"\"\"\n  Update team repository.\n  \"\"\"\n  updateTeamsRepository(\n    \"\"\"\n    Parameters for UpdateTeamsRepository\n    \"\"\"\n    input: UpdateTeamsRepositoryInput!\n  ): UpdateTeamsRepositoryPayload\n\n  \"\"\"\n  Replaces the repository's topics with the given topics.\n  \"\"\"\n  updateTopics(\n    \"\"\"\n    Parameters for UpdateTopics\n    \"\"\"\n    input: UpdateTopicsInput!\n  ): UpdateTopicsPayload\n\n  \"\"\"\n  Updates an existing user list.\n  \"\"\"\n  updateUserList(\n    \"\"\"\n    Parameters for UpdateUserList\n    \"\"\"\n    input: UpdateUserListInput!\n  ): UpdateUserListPayload\n\n  \"\"\"\n  Updates which of the viewer's lists an item belongs to\n  \"\"\"\n  updateUserListsForItem(\n    \"\"\"\n    Parameters for UpdateUserListsForItem\n    \"\"\"\n    input: UpdateUserListsForItemInput!\n  ): UpdateUserListsForItemPayload\n\n  \"\"\"\n  Verify that a verifiable domain has the expected DNS record.\n  \"\"\"\n  verifyVerifiableDomain(\n    \"\"\"\n    Parameters for VerifyVerifiableDomain\n    \"\"\"\n    input: VerifyVerifiableDomainInput!\n  ): VerifyVerifiableDomainPayload\n}\n\n\"\"\"\nAn object with an ID.\n\"\"\"\ninterface Node {\n  \"\"\"\n  ID of the object.\n  \"\"\"\n  id: ID!\n}\n\n\"\"\"\nThe possible values for the notification restriction setting.\n\"\"\"\nenum NotificationRestrictionSettingValue {\n  \"\"\"\n  The setting is disabled for the owner.\n  \"\"\"\n  DISABLED\n\n  \"\"\"\n  The setting is enabled for the owner.\n  \"\"\"\n  ENABLED\n}\n\n\"\"\"\nAn OIDC identity provider configured to provision identities for an enterprise.\nVisible to enterprise owners or enterprise owners' personal access tokens\n(classic) with read:enterprise or admin:enterprise scope.\n\"\"\"\ntype OIDCProvider implements Node {\n  \"\"\"\n  The enterprise this identity provider belongs to.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  ExternalIdentities provisioned by this identity provider.\n  \"\"\"\n  externalIdentities(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter to external identities with the users login\n    \"\"\"\n    login: String\n\n    \"\"\"\n    Filter to external identities with valid org membership only\n    \"\"\"\n    membersOnly: Boolean\n\n    \"\"\"\n    Filter to external identities with the users userName/NameID attribute\n    \"\"\"\n    userName: String\n  ): ExternalIdentityConnection!\n\n  \"\"\"\n  The Node ID of the OIDCProvider object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The OIDC identity provider type\n  \"\"\"\n  providerType: OIDCProviderType!\n\n  \"\"\"\n  The id of the tenant this provider is attached to\n  \"\"\"\n  tenantId: String!\n}\n\n\"\"\"\nThe OIDC identity provider type\n\"\"\"\nenum OIDCProviderType {\n  \"\"\"\n  Azure Active Directory\n  \"\"\"\n  AAD\n}\n\n\"\"\"\nMetadata for an audit entry with action oauth_application.*\n\"\"\"\ninterface OauthApplicationAuditEntryData {\n  \"\"\"\n  The name of the OAuth application.\n  \"\"\"\n  oauthApplicationName: String\n\n  \"\"\"\n  The HTTP path for the OAuth application\n  \"\"\"\n  oauthApplicationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the OAuth application\n  \"\"\"\n  oauthApplicationUrl: URI\n}\n\n\"\"\"\nAudit log entry for a oauth_application.create event.\n\"\"\"\ntype OauthApplicationCreateAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The application URL of the OAuth application.\n  \"\"\"\n  applicationUrl: URI\n\n  \"\"\"\n  The callback URL of the OAuth application.\n  \"\"\"\n  callbackUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OauthApplicationCreateAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The name of the OAuth application.\n  \"\"\"\n  oauthApplicationName: String\n\n  \"\"\"\n  The HTTP path for the OAuth application\n  \"\"\"\n  oauthApplicationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the OAuth application\n  \"\"\"\n  oauthApplicationUrl: URI\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The rate limit of the OAuth application.\n  \"\"\"\n  rateLimit: Int\n\n  \"\"\"\n  The state of the OAuth application.\n  \"\"\"\n  state: OauthApplicationCreateAuditEntryState\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nThe state of an OAuth application when it was created.\n\"\"\"\nenum OauthApplicationCreateAuditEntryState {\n  \"\"\"\n  The OAuth application was active and allowed to have OAuth Accesses.\n  \"\"\"\n  ACTIVE\n\n  \"\"\"\n  The OAuth application was in the process of being deleted.\n  \"\"\"\n  PENDING_DELETION\n\n  \"\"\"\n  The OAuth application was suspended from generating OAuth Accesses due to abuse or security concerns.\n  \"\"\"\n  SUSPENDED\n}\n\n\"\"\"\nThe corresponding operation type for the action\n\"\"\"\nenum OperationType {\n  \"\"\"\n  An existing resource was accessed\n  \"\"\"\n  ACCESS\n\n  \"\"\"\n  A resource performed an authentication event\n  \"\"\"\n  AUTHENTICATION\n\n  \"\"\"\n  A new resource was created\n  \"\"\"\n  CREATE\n\n  \"\"\"\n  An existing resource was modified\n  \"\"\"\n  MODIFY\n\n  \"\"\"\n  An existing resource was removed\n  \"\"\"\n  REMOVE\n\n  \"\"\"\n  An existing resource was restored\n  \"\"\"\n  RESTORE\n\n  \"\"\"\n  An existing resource was transferred between multiple resources\n  \"\"\"\n  TRANSFER\n}\n\n\"\"\"\nPossible directions in which to order a list of items when provided an `orderBy` argument.\n\"\"\"\nenum OrderDirection {\n  \"\"\"\n  Specifies an ascending order for a given `orderBy` argument.\n  \"\"\"\n  ASC\n\n  \"\"\"\n  Specifies a descending order for a given `orderBy` argument.\n  \"\"\"\n  DESC\n}\n\n\"\"\"\nAudit log entry for a org.add_billing_manager\n\"\"\"\ntype OrgAddBillingManagerAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgAddBillingManagerAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The email address used to invite a billing manager for the organization.\n  \"\"\"\n  invitationEmail: String\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.add_member\n\"\"\"\ntype OrgAddMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgAddMemberAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The permission level of the member added to the organization.\n  \"\"\"\n  permission: OrgAddMemberAuditEntryPermission\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nThe permissions available to members on an Organization.\n\"\"\"\nenum OrgAddMemberAuditEntryPermission {\n  \"\"\"\n  Can read, clone, push, and add collaborators to repositories.\n  \"\"\"\n  ADMIN\n\n  \"\"\"\n  Can read and clone repositories.\n  \"\"\"\n  READ\n}\n\n\"\"\"\nAudit log entry for a org.block_user\n\"\"\"\ntype OrgBlockUserAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The blocked user.\n  \"\"\"\n  blockedUser: User\n\n  \"\"\"\n  The username of the blocked user.\n  \"\"\"\n  blockedUserName: String\n\n  \"\"\"\n  The HTTP path for the blocked user.\n  \"\"\"\n  blockedUserResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the blocked user.\n  \"\"\"\n  blockedUserUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgBlockUserAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.config.disable_collaborators_only event.\n\"\"\"\ntype OrgConfigDisableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgConfigDisableCollaboratorsOnlyAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.config.enable_collaborators_only event.\n\"\"\"\ntype OrgConfigEnableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgConfigEnableCollaboratorsOnlyAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.create event.\n\"\"\"\ntype OrgCreateAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The billing plan for the Organization.\n  \"\"\"\n  billingPlan: OrgCreateAuditEntryBillingPlan\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgCreateAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nThe billing plans available for organizations.\n\"\"\"\nenum OrgCreateAuditEntryBillingPlan {\n  \"\"\"\n  Team Plan\n  \"\"\"\n  BUSINESS\n\n  \"\"\"\n  Enterprise Cloud Plan\n  \"\"\"\n  BUSINESS_PLUS\n\n  \"\"\"\n  Free Plan\n  \"\"\"\n  FREE\n\n  \"\"\"\n  Tiered Per Seat Plan\n  \"\"\"\n  TIERED_PER_SEAT\n\n  \"\"\"\n  Legacy Unlimited Plan\n  \"\"\"\n  UNLIMITED\n}\n\n\"\"\"\nAudit log entry for a org.disable_oauth_app_restrictions event.\n\"\"\"\ntype OrgDisableOauthAppRestrictionsAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgDisableOauthAppRestrictionsAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.disable_saml event.\n\"\"\"\ntype OrgDisableSamlAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The SAML provider's digest algorithm URL.\n  \"\"\"\n  digestMethodUrl: URI\n\n  \"\"\"\n  The Node ID of the OrgDisableSamlAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The SAML provider's issuer URL.\n  \"\"\"\n  issuerUrl: URI\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The SAML provider's signature algorithm URL.\n  \"\"\"\n  signatureMethodUrl: URI\n\n  \"\"\"\n  The SAML provider's single sign-on URL.\n  \"\"\"\n  singleSignOnUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.disable_two_factor_requirement event.\n\"\"\"\ntype OrgDisableTwoFactorRequirementAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgDisableTwoFactorRequirementAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.enable_oauth_app_restrictions event.\n\"\"\"\ntype OrgEnableOauthAppRestrictionsAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgEnableOauthAppRestrictionsAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.enable_saml event.\n\"\"\"\ntype OrgEnableSamlAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The SAML provider's digest algorithm URL.\n  \"\"\"\n  digestMethodUrl: URI\n\n  \"\"\"\n  The Node ID of the OrgEnableSamlAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The SAML provider's issuer URL.\n  \"\"\"\n  issuerUrl: URI\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The SAML provider's signature algorithm URL.\n  \"\"\"\n  signatureMethodUrl: URI\n\n  \"\"\"\n  The SAML provider's single sign-on URL.\n  \"\"\"\n  singleSignOnUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.enable_two_factor_requirement event.\n\"\"\"\ntype OrgEnableTwoFactorRequirementAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgEnableTwoFactorRequirementAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nOrdering options for an organization's enterprise owner connections.\n\"\"\"\ninput OrgEnterpriseOwnerOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order enterprise owners by.\n  \"\"\"\n  field: OrgEnterpriseOwnerOrderField!\n}\n\n\"\"\"\nProperties by which enterprise owners can be ordered.\n\"\"\"\nenum OrgEnterpriseOwnerOrderField {\n  \"\"\"\n  Order enterprise owners by login.\n  \"\"\"\n  LOGIN\n}\n\n\"\"\"\nAudit log entry for a org.invite_member event.\n\"\"\"\ntype OrgInviteMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The email address of the organization invitation.\n  \"\"\"\n  email: String\n\n  \"\"\"\n  The Node ID of the OrgInviteMemberAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The organization invitation.\n  \"\"\"\n  organizationInvitation: OrganizationInvitation\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.invite_to_business event.\n\"\"\"\ntype OrgInviteToBusinessAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The HTTP path for this enterprise.\n  \"\"\"\n  enterpriseResourcePath: URI\n\n  \"\"\"\n  The slug of the enterprise.\n  \"\"\"\n  enterpriseSlug: String\n\n  \"\"\"\n  The HTTP URL for this enterprise.\n  \"\"\"\n  enterpriseUrl: URI\n\n  \"\"\"\n  The Node ID of the OrgInviteToBusinessAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.oauth_app_access_approved event.\n\"\"\"\ntype OrgOauthAppAccessApprovedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgOauthAppAccessApprovedAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The name of the OAuth application.\n  \"\"\"\n  oauthApplicationName: String\n\n  \"\"\"\n  The HTTP path for the OAuth application\n  \"\"\"\n  oauthApplicationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the OAuth application\n  \"\"\"\n  oauthApplicationUrl: URI\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.oauth_app_access_blocked event.\n\"\"\"\ntype OrgOauthAppAccessBlockedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgOauthAppAccessBlockedAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The name of the OAuth application.\n  \"\"\"\n  oauthApplicationName: String\n\n  \"\"\"\n  The HTTP path for the OAuth application\n  \"\"\"\n  oauthApplicationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the OAuth application\n  \"\"\"\n  oauthApplicationUrl: URI\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.oauth_app_access_denied event.\n\"\"\"\ntype OrgOauthAppAccessDeniedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgOauthAppAccessDeniedAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The name of the OAuth application.\n  \"\"\"\n  oauthApplicationName: String\n\n  \"\"\"\n  The HTTP path for the OAuth application\n  \"\"\"\n  oauthApplicationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the OAuth application\n  \"\"\"\n  oauthApplicationUrl: URI\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.oauth_app_access_requested event.\n\"\"\"\ntype OrgOauthAppAccessRequestedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgOauthAppAccessRequestedAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The name of the OAuth application.\n  \"\"\"\n  oauthApplicationName: String\n\n  \"\"\"\n  The HTTP path for the OAuth application\n  \"\"\"\n  oauthApplicationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the OAuth application\n  \"\"\"\n  oauthApplicationUrl: URI\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.oauth_app_access_unblocked event.\n\"\"\"\ntype OrgOauthAppAccessUnblockedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgOauthAppAccessUnblockedAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The name of the OAuth application.\n  \"\"\"\n  oauthApplicationName: String\n\n  \"\"\"\n  The HTTP path for the OAuth application\n  \"\"\"\n  oauthApplicationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the OAuth application\n  \"\"\"\n  oauthApplicationUrl: URI\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.remove_billing_manager event.\n\"\"\"\ntype OrgRemoveBillingManagerAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgRemoveBillingManagerAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The reason for the billing manager being removed.\n  \"\"\"\n  reason: OrgRemoveBillingManagerAuditEntryReason\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nThe reason a billing manager was removed from an Organization.\n\"\"\"\nenum OrgRemoveBillingManagerAuditEntryReason {\n  \"\"\"\n  SAML external identity missing\n  \"\"\"\n  SAML_EXTERNAL_IDENTITY_MISSING\n\n  \"\"\"\n  SAML SSO enforcement requires an external identity\n  \"\"\"\n  SAML_SSO_ENFORCEMENT_REQUIRES_EXTERNAL_IDENTITY\n\n  \"\"\"\n  The organization required 2FA of its billing managers and this user did not have 2FA enabled.\n  \"\"\"\n  TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE\n}\n\n\"\"\"\nAudit log entry for a org.remove_member event.\n\"\"\"\ntype OrgRemoveMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgRemoveMemberAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The types of membership the member has with the organization.\n  \"\"\"\n  membershipTypes: [OrgRemoveMemberAuditEntryMembershipType!]\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The reason for the member being removed.\n  \"\"\"\n  reason: OrgRemoveMemberAuditEntryReason\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nThe type of membership a user has with an Organization.\n\"\"\"\nenum OrgRemoveMemberAuditEntryMembershipType {\n  \"\"\"\n  Organization owners have full access and can change several settings,\n  including the names of repositories that belong to the Organization and Owners\n  team membership. In addition, organization owners can delete the organization\n  and all of its repositories.\n  \"\"\"\n  ADMIN\n\n  \"\"\"\n  A billing manager is a user who manages the billing settings for the Organization, such as updating payment information.\n  \"\"\"\n  BILLING_MANAGER\n\n  \"\"\"\n  A direct member is a user that is a member of the Organization.\n  \"\"\"\n  DIRECT_MEMBER\n\n  \"\"\"\n  An outside collaborator is a person who isn't explicitly a member of the\n  Organization, but who has Read, Write, or Admin permissions to one or more\n  repositories in the organization.\n  \"\"\"\n  OUTSIDE_COLLABORATOR\n\n  \"\"\"\n  A suspended member.\n  \"\"\"\n  SUSPENDED\n\n  \"\"\"\n  An unaffiliated collaborator is a person who is not a member of the\n  Organization and does not have access to any repositories in the Organization.\n  \"\"\"\n  UNAFFILIATED\n}\n\n\"\"\"\nThe reason a member was removed from an Organization.\n\"\"\"\nenum OrgRemoveMemberAuditEntryReason {\n  \"\"\"\n  SAML external identity missing\n  \"\"\"\n  SAML_EXTERNAL_IDENTITY_MISSING\n\n  \"\"\"\n  SAML SSO enforcement requires an external identity\n  \"\"\"\n  SAML_SSO_ENFORCEMENT_REQUIRES_EXTERNAL_IDENTITY\n\n  \"\"\"\n  User was removed from organization during account recovery\n  \"\"\"\n  TWO_FACTOR_ACCOUNT_RECOVERY\n\n  \"\"\"\n  The organization required 2FA of its billing managers and this user did not have 2FA enabled.\n  \"\"\"\n  TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE\n\n  \"\"\"\n  User account has been deleted\n  \"\"\"\n  USER_ACCOUNT_DELETED\n}\n\n\"\"\"\nAudit log entry for a org.remove_outside_collaborator event.\n\"\"\"\ntype OrgRemoveOutsideCollaboratorAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgRemoveOutsideCollaboratorAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The types of membership the outside collaborator has with the organization.\n  \"\"\"\n  membershipTypes: [OrgRemoveOutsideCollaboratorAuditEntryMembershipType!]\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The reason for the outside collaborator being removed from the Organization.\n  \"\"\"\n  reason: OrgRemoveOutsideCollaboratorAuditEntryReason\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nThe type of membership a user has with an Organization.\n\"\"\"\nenum OrgRemoveOutsideCollaboratorAuditEntryMembershipType {\n  \"\"\"\n  A billing manager is a user who manages the billing settings for the Organization, such as updating payment information.\n  \"\"\"\n  BILLING_MANAGER\n\n  \"\"\"\n  An outside collaborator is a person who isn't explicitly a member of the\n  Organization, but who has Read, Write, or Admin permissions to one or more\n  repositories in the organization.\n  \"\"\"\n  OUTSIDE_COLLABORATOR\n\n  \"\"\"\n  An unaffiliated collaborator is a person who is not a member of the\n  Organization and does not have access to any repositories in the organization.\n  \"\"\"\n  UNAFFILIATED\n}\n\n\"\"\"\nThe reason an outside collaborator was removed from an Organization.\n\"\"\"\nenum OrgRemoveOutsideCollaboratorAuditEntryReason {\n  \"\"\"\n  SAML external identity missing\n  \"\"\"\n  SAML_EXTERNAL_IDENTITY_MISSING\n\n  \"\"\"\n  The organization required 2FA of its billing managers and this user did not have 2FA enabled.\n  \"\"\"\n  TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE\n}\n\n\"\"\"\nAudit log entry for a org.restore_member event.\n\"\"\"\ntype OrgRestoreMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgRestoreMemberAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The number of custom email routings for the restored member.\n  \"\"\"\n  restoredCustomEmailRoutingsCount: Int\n\n  \"\"\"\n  The number of issue assignments for the restored member.\n  \"\"\"\n  restoredIssueAssignmentsCount: Int\n\n  \"\"\"\n  Restored organization membership objects.\n  \"\"\"\n  restoredMemberships: [OrgRestoreMemberAuditEntryMembership!]\n\n  \"\"\"\n  The number of restored memberships.\n  \"\"\"\n  restoredMembershipsCount: Int\n\n  \"\"\"\n  The number of repositories of the restored member.\n  \"\"\"\n  restoredRepositoriesCount: Int\n\n  \"\"\"\n  The number of starred repositories for the restored member.\n  \"\"\"\n  restoredRepositoryStarsCount: Int\n\n  \"\"\"\n  The number of watched repositories for the restored member.\n  \"\"\"\n  restoredRepositoryWatchesCount: Int\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nTypes of memberships that can be restored for an Organization member.\n\"\"\"\nunion OrgRestoreMemberAuditEntryMembership =\n    OrgRestoreMemberMembershipOrganizationAuditEntryData\n  | OrgRestoreMemberMembershipRepositoryAuditEntryData\n  | OrgRestoreMemberMembershipTeamAuditEntryData\n\n\"\"\"\nMetadata for an organization membership for org.restore_member actions\n\"\"\"\ntype OrgRestoreMemberMembershipOrganizationAuditEntryData implements OrganizationAuditEntryData {\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n}\n\n\"\"\"\nMetadata for a repository membership for org.restore_member actions\n\"\"\"\ntype OrgRestoreMemberMembershipRepositoryAuditEntryData implements RepositoryAuditEntryData {\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n}\n\n\"\"\"\nMetadata for a team membership for org.restore_member actions\n\"\"\"\ntype OrgRestoreMemberMembershipTeamAuditEntryData implements TeamAuditEntryData {\n  \"\"\"\n  The team associated with the action\n  \"\"\"\n  team: Team\n\n  \"\"\"\n  The name of the team\n  \"\"\"\n  teamName: String\n\n  \"\"\"\n  The HTTP path for this team\n  \"\"\"\n  teamResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for this team\n  \"\"\"\n  teamUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.unblock_user\n\"\"\"\ntype OrgUnblockUserAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The user being unblocked by the organization.\n  \"\"\"\n  blockedUser: User\n\n  \"\"\"\n  The username of the blocked user.\n  \"\"\"\n  blockedUserName: String\n\n  \"\"\"\n  The HTTP path for the blocked user.\n  \"\"\"\n  blockedUserResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the blocked user.\n  \"\"\"\n  blockedUserUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgUnblockUserAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a org.update_default_repository_permission\n\"\"\"\ntype OrgUpdateDefaultRepositoryPermissionAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgUpdateDefaultRepositoryPermissionAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The new base repository permission level for the organization.\n  \"\"\"\n  permission: OrgUpdateDefaultRepositoryPermissionAuditEntryPermission\n\n  \"\"\"\n  The former base repository permission level for the organization.\n  \"\"\"\n  permissionWas: OrgUpdateDefaultRepositoryPermissionAuditEntryPermission\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nThe default permission a repository can have in an Organization.\n\"\"\"\nenum OrgUpdateDefaultRepositoryPermissionAuditEntryPermission {\n  \"\"\"\n  Can read, clone, push, and add collaborators to repositories.\n  \"\"\"\n  ADMIN\n\n  \"\"\"\n  No default permission value.\n  \"\"\"\n  NONE\n\n  \"\"\"\n  Can read and clone repositories.\n  \"\"\"\n  READ\n\n  \"\"\"\n  Can read, clone and push to repositories.\n  \"\"\"\n  WRITE\n}\n\n\"\"\"\nAudit log entry for a org.update_member event.\n\"\"\"\ntype OrgUpdateMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgUpdateMemberAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The new member permission level for the organization.\n  \"\"\"\n  permission: OrgUpdateMemberAuditEntryPermission\n\n  \"\"\"\n  The former member permission level for the organization.\n  \"\"\"\n  permissionWas: OrgUpdateMemberAuditEntryPermission\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nThe permissions available to members on an Organization.\n\"\"\"\nenum OrgUpdateMemberAuditEntryPermission {\n  \"\"\"\n  Can read, clone, push, and add collaborators to repositories.\n  \"\"\"\n  ADMIN\n\n  \"\"\"\n  Can read and clone repositories.\n  \"\"\"\n  READ\n}\n\n\"\"\"\nAudit log entry for a org.update_member_repository_creation_permission event.\n\"\"\"\ntype OrgUpdateMemberRepositoryCreationPermissionAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  Can members create repositories in the organization.\n  \"\"\"\n  canCreateRepositories: Boolean\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgUpdateMemberRepositoryCreationPermissionAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n\n  \"\"\"\n  The permission for visibility level of repositories for this organization.\n  \"\"\"\n  visibility: OrgUpdateMemberRepositoryCreationPermissionAuditEntryVisibility\n}\n\n\"\"\"\nThe permissions available for repository creation on an Organization.\n\"\"\"\nenum OrgUpdateMemberRepositoryCreationPermissionAuditEntryVisibility {\n  \"\"\"\n  All organization members are restricted from creating any repositories.\n  \"\"\"\n  ALL\n\n  \"\"\"\n  All organization members are restricted from creating internal repositories.\n  \"\"\"\n  INTERNAL\n\n  \"\"\"\n  All organization members are allowed to create any repositories.\n  \"\"\"\n  NONE\n\n  \"\"\"\n  All organization members are restricted from creating private repositories.\n  \"\"\"\n  PRIVATE\n\n  \"\"\"\n  All organization members are restricted from creating private or internal repositories.\n  \"\"\"\n  PRIVATE_INTERNAL\n\n  \"\"\"\n  All organization members are restricted from creating public repositories.\n  \"\"\"\n  PUBLIC\n\n  \"\"\"\n  All organization members are restricted from creating public or internal repositories.\n  \"\"\"\n  PUBLIC_INTERNAL\n\n  \"\"\"\n  All organization members are restricted from creating public or private repositories.\n  \"\"\"\n  PUBLIC_PRIVATE\n}\n\n\"\"\"\nAudit log entry for a org.update_member_repository_invitation_permission event.\n\"\"\"\ntype OrgUpdateMemberRepositoryInvitationPermissionAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  Can outside collaborators be invited to repositories in the organization.\n  \"\"\"\n  canInviteOutsideCollaboratorsToRepositories: Boolean\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the OrgUpdateMemberRepositoryInvitationPermissionAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAn account on GitHub, with one or more owners, that has repositories, members and teams.\n\"\"\"\ntype Organization implements Actor & AnnouncementBanner & MemberStatusable & Node & PackageOwner & ProfileOwner & ProjectOwner & ProjectV2Owner & ProjectV2Recent & RepositoryDiscussionAuthor & RepositoryDiscussionCommentAuthor & RepositoryOwner & Sponsorable & UniformResourceLocatable {\n  \"\"\"\n  The text of the announcement\n  \"\"\"\n  announcement: String\n\n  \"\"\"\n  The expiration date of the announcement, if any\n  \"\"\"\n  announcementExpiresAt: DateTime\n\n  \"\"\"\n  Whether the announcement can be dismissed by the user\n  \"\"\"\n  announcementUserDismissible: Boolean\n\n  \"\"\"\n  Determine if this repository owner has any items that can be pinned to their profile.\n  \"\"\"\n  anyPinnableItems(\n    \"\"\"\n    Filter to only a particular kind of pinnable item.\n    \"\"\"\n    type: PinnableItemType\n  ): Boolean!\n\n  \"\"\"\n  Identifies the date and time when the organization was archived.\n  \"\"\"\n  archivedAt: DateTime\n\n  \"\"\"\n  Audit log entries of the organization\n  \"\"\"\n  auditLog(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the returned audit log entries.\n    \"\"\"\n    orderBy: AuditLogOrder = {field: CREATED_AT, direction: DESC}\n\n    \"\"\"\n    The query string to filter audit entries\n    \"\"\"\n    query: String\n  ): OrganizationAuditEntryConnection!\n\n  \"\"\"\n  A URL pointing to the organization's public avatar.\n  \"\"\"\n  avatarUrl(\n    \"\"\"\n    The size of the resulting square image.\n    \"\"\"\n    size: Int\n  ): URI!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The organization's public profile description.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The organization's public profile description rendered to HTML.\n  \"\"\"\n  descriptionHTML: String\n\n  \"\"\"\n  A list of domains owned by the organization.\n  \"\"\"\n  domains(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Filter by if the domain is approved.\n    \"\"\"\n    isApproved: Boolean = null\n\n    \"\"\"\n    Filter by if the domain is verified.\n    \"\"\"\n    isVerified: Boolean = null\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for verifiable domains returned.\n    \"\"\"\n    orderBy: VerifiableDomainOrder = {field: DOMAIN, direction: ASC}\n  ): VerifiableDomainConnection\n\n  \"\"\"\n  The organization's public email.\n  \"\"\"\n  email: String\n\n  \"\"\"\n  A list of owners of the organization's enterprise account.\n  \"\"\"\n  enterpriseOwners(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for enterprise owners returned from the connection.\n    \"\"\"\n    orderBy: OrgEnterpriseOwnerOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    The organization role to filter by.\n    \"\"\"\n    organizationRole: RoleInOrganization\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String\n  ): OrganizationEnterpriseOwnerConnection!\n\n  \"\"\"\n  The estimated next GitHub Sponsors payout for this user/organization in cents (USD).\n  \"\"\"\n  estimatedNextSponsorsPayoutInCents: Int!\n\n  \"\"\"\n  True if this user/organization has a GitHub Sponsors listing.\n  \"\"\"\n  hasSponsorsListing: Boolean!\n\n  \"\"\"\n  The Node ID of the Organization object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The interaction ability settings for this organization.\n  \"\"\"\n  interactionAbility: RepositoryInteractionAbility\n\n  \"\"\"\n  The setting value for whether the organization has an IP allow list enabled.\n  \"\"\"\n  ipAllowListEnabledSetting: IpAllowListEnabledSettingValue!\n\n  \"\"\"\n  The IP addresses that are allowed to access resources owned by the organization.\n  \"\"\"\n  ipAllowListEntries(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for IP allow list entries returned.\n    \"\"\"\n    orderBy: IpAllowListEntryOrder = {field: ALLOW_LIST_VALUE, direction: ASC}\n  ): IpAllowListEntryConnection!\n\n  \"\"\"\n  The setting value for whether the organization has IP allow list configuration for installed GitHub Apps enabled.\n  \"\"\"\n  ipAllowListForInstalledAppsEnabledSetting: IpAllowListForInstalledAppsEnabledSettingValue!\n\n  \"\"\"\n  Whether the given account is sponsoring this user/organization.\n  \"\"\"\n  isSponsoredBy(\n    \"\"\"\n    The target account's login.\n    \"\"\"\n    accountLogin: String!\n  ): Boolean!\n\n  \"\"\"\n  True if the viewer is sponsored by this user/organization.\n  \"\"\"\n  isSponsoringViewer: Boolean!\n\n  \"\"\"\n  Whether the organization has verified its profile email and website.\n  \"\"\"\n  isVerified: Boolean!\n\n  \"\"\"\n  Showcases a selection of repositories and gists that the profile owner has\n  either curated or that have been selected automatically based on popularity.\n  \"\"\"\n  itemShowcase: ProfileItemShowcase!\n\n  \"\"\"\n  The organization's public profile location.\n  \"\"\"\n  location: String\n\n  \"\"\"\n  The organization's login name.\n  \"\"\"\n  login: String!\n\n  \"\"\"\n  A list of all mannequins for this organization.\n  \"\"\"\n  mannequins(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter mannequins by login.\n    \"\"\"\n    login: String\n\n    \"\"\"\n    Ordering options for mannequins returned from the connection.\n    \"\"\"\n    orderBy: MannequinOrder = {field: CREATED_AT, direction: ASC}\n  ): MannequinConnection!\n\n  \"\"\"\n  Get the status messages members of this entity have set that are either public or visible only to the organization.\n  \"\"\"\n  memberStatuses(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for user statuses returned from the connection.\n    \"\"\"\n    orderBy: UserStatusOrder = {field: UPDATED_AT, direction: DESC}\n  ): UserStatusConnection!\n\n  \"\"\"\n  Members can fork private repositories in this organization\n  \"\"\"\n  membersCanForkPrivateRepositories: Boolean!\n\n  \"\"\"\n  A list of users who are members of this organization.\n  \"\"\"\n  membersWithRole(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): OrganizationMemberConnection!\n\n  \"\"\"\n  The estimated monthly GitHub Sponsors income for this user/organization in cents (USD).\n  \"\"\"\n  monthlyEstimatedSponsorsIncomeInCents: Int!\n\n  \"\"\"\n  The organization's public profile name.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  The HTTP path creating a new team\n  \"\"\"\n  newTeamResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL creating a new team\n  \"\"\"\n  newTeamUrl: URI!\n\n  \"\"\"\n  Indicates if email notification delivery for this organization is restricted to verified or approved domains.\n  \"\"\"\n  notificationDeliveryRestrictionEnabledSetting: NotificationRestrictionSettingValue!\n\n  \"\"\"\n  The billing email for the organization.\n  \"\"\"\n  organizationBillingEmail: String\n\n  \"\"\"\n  A list of packages under the owner.\n  \"\"\"\n  packages(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Find packages by their names.\n    \"\"\"\n    names: [String]\n\n    \"\"\"\n    Ordering of the returned packages.\n    \"\"\"\n    orderBy: PackageOrder = {field: CREATED_AT, direction: DESC}\n\n    \"\"\"\n    Filter registry package by type.\n    \"\"\"\n    packageType: PackageType\n\n    \"\"\"\n    Find packages in a repository by ID.\n    \"\"\"\n    repositoryId: ID\n  ): PackageConnection!\n\n  \"\"\"\n  A list of users who have been invited to join this organization.\n  \"\"\"\n  pendingMembers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserConnection!\n\n  \"\"\"\n  A list of repositories and gists this profile owner can pin to their profile.\n  \"\"\"\n  pinnableItems(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter the types of pinnable items that are returned.\n    \"\"\"\n    types: [PinnableItemType!]\n  ): PinnableItemConnection!\n\n  \"\"\"\n  A list of repositories and gists this profile owner has pinned to their profile\n  \"\"\"\n  pinnedItems(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter the types of pinned items that are returned.\n    \"\"\"\n    types: [PinnableItemType!]\n  ): PinnableItemConnection!\n\n  \"\"\"\n  Returns how many more items this profile owner can pin to their profile.\n  \"\"\"\n  pinnedItemsRemaining: Int!\n\n  \"\"\"\n  Find project by number.\n  \"\"\"\n  project(\n    \"\"\"\n    The project number to find.\n    \"\"\"\n    number: Int!\n  ): Project\n\n  \"\"\"\n  Find a project by number.\n  \"\"\"\n  projectV2(\n    \"\"\"\n    The project number.\n    \"\"\"\n    number: Int!\n  ): ProjectV2\n\n  \"\"\"\n  A list of projects under the owner.\n  \"\"\"\n  projects(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for projects returned from the connection\n    \"\"\"\n    orderBy: ProjectOrder\n\n    \"\"\"\n    Query to search projects by, currently only searching by name.\n    \"\"\"\n    search: String\n\n    \"\"\"\n    A list of states to filter the projects by.\n    \"\"\"\n    states: [ProjectState!]\n  ): ProjectConnection!\n\n  \"\"\"\n  The HTTP path listing organization's projects\n  \"\"\"\n  projectsResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL listing organization's projects\n  \"\"\"\n  projectsUrl: URI!\n\n  \"\"\"\n  A list of projects under the owner.\n  \"\"\"\n  projectsV2(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    How to order the returned projects.\n    \"\"\"\n    orderBy: ProjectV2Order = {field: NUMBER, direction: DESC}\n\n    \"\"\"\n    A project to search for under the the owner.\n    \"\"\"\n    query: String\n  ): ProjectV2Connection!\n\n  \"\"\"\n  Recent projects that this user has modified in the context of the owner.\n  \"\"\"\n  recentProjects(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectV2Connection!\n\n  \"\"\"\n  A list of repositories that the user owns.\n  \"\"\"\n  repositories(\n    \"\"\"\n    Array of viewer's affiliation options for repositories returned from the\n    connection. For example, OWNER will include only repositories that the\n    current viewer owns.\n    \"\"\"\n    affiliations: [RepositoryAffiliation]\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have issues enabled\n    \"\"\"\n    hasIssuesEnabled: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they are archived and not maintained\n    \"\"\"\n    isArchived: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they are forks of another repository\n    \"\"\"\n    isFork: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have been locked\n    \"\"\"\n    isLocked: Boolean\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for repositories returned from the connection\n    \"\"\"\n    orderBy: RepositoryOrder\n\n    \"\"\"\n    Array of owner's affiliation options for repositories returned from the\n    connection. For example, OWNER will include only repositories that the\n    organization or user being viewed owns.\n    \"\"\"\n    ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR]\n\n    \"\"\"\n    If non-null, filters repositories according to privacy\n    \"\"\"\n    privacy: RepositoryPrivacy\n  ): RepositoryConnection!\n\n  \"\"\"\n  Find Repository.\n  \"\"\"\n  repository(\n    \"\"\"\n    Follow repository renames. If disabled, a repository referenced by its old name will return an error.\n    \"\"\"\n    followRenames: Boolean = true\n\n    \"\"\"\n    Name of Repository to find.\n    \"\"\"\n    name: String!\n  ): Repository\n\n  \"\"\"\n  Discussion comments this user has authored.\n  \"\"\"\n  repositoryDiscussionComments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter discussion comments to only those that were marked as the answer\n    \"\"\"\n    onlyAnswers: Boolean = false\n\n    \"\"\"\n    Filter discussion comments to only those in a specific repository.\n    \"\"\"\n    repositoryId: ID\n  ): DiscussionCommentConnection!\n\n  \"\"\"\n  Discussions this user has started.\n  \"\"\"\n  repositoryDiscussions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Filter discussions to only those that have been answered or not. Defaults to\n    including both answered and unanswered discussions.\n    \"\"\"\n    answered: Boolean = null\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for discussions returned from the connection.\n    \"\"\"\n    orderBy: DiscussionOrder = {field: CREATED_AT, direction: DESC}\n\n    \"\"\"\n    Filter discussions to only those in a specific repository.\n    \"\"\"\n    repositoryId: ID\n\n    \"\"\"\n    A list of states to filter the discussions by.\n    \"\"\"\n    states: [DiscussionState!] = []\n  ): DiscussionConnection!\n\n  \"\"\"\n  A list of all repository migrations for this organization.\n  \"\"\"\n  repositoryMigrations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for repository migrations returned.\n    \"\"\"\n    orderBy: RepositoryMigrationOrder = {field: CREATED_AT, direction: ASC}\n\n    \"\"\"\n    Filter repository migrations by repository name.\n    \"\"\"\n    repositoryName: String\n\n    \"\"\"\n    Filter repository migrations by state.\n    \"\"\"\n    state: MigrationState\n  ): RepositoryMigrationConnection!\n\n  \"\"\"\n  When true the organization requires all members, billing managers, and outside\n  collaborators to enable two-factor authentication.\n  \"\"\"\n  requiresTwoFactorAuthentication: Boolean\n\n  \"\"\"\n  The HTTP path for this organization.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Returns a single ruleset from the current organization by ID.\n  \"\"\"\n  ruleset(\n    \"\"\"\n    The ID of the ruleset to be returned.\n    \"\"\"\n    databaseId: Int!\n  ): RepositoryRuleset\n\n  \"\"\"\n  A list of rulesets for this organization.\n  \"\"\"\n  rulesets(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Return rulesets configured at higher levels that apply to this organization\n    \"\"\"\n    includeParents: Boolean = true\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): RepositoryRulesetConnection\n\n  \"\"\"\n  The Organization's SAML identity provider. Visible to (1) organization owners,\n  (2) organization owners' personal access tokens (classic) with read:org or\n  admin:org scope, (3) GitHub App with an installation token with read or write\n  access to members.\n  \"\"\"\n  samlIdentityProvider: OrganizationIdentityProvider\n\n  \"\"\"\n  List of users and organizations this entity is sponsoring.\n  \"\"\"\n  sponsoring(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the users and organizations returned from the connection.\n    \"\"\"\n    orderBy: SponsorOrder = {field: RELEVANCE, direction: DESC}\n  ): SponsorConnection!\n\n  \"\"\"\n  List of sponsors for this user or organization.\n  \"\"\"\n  sponsors(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for sponsors returned from the connection.\n    \"\"\"\n    orderBy: SponsorOrder = {field: RELEVANCE, direction: DESC}\n\n    \"\"\"\n    If given, will filter for sponsors at the given tier. Will only return\n    sponsors whose tier the viewer is permitted to see.\n    \"\"\"\n    tierId: ID\n  ): SponsorConnection!\n\n  \"\"\"\n  Events involving this sponsorable, such as new sponsorships.\n  \"\"\"\n  sponsorsActivities(\n    \"\"\"\n    Filter activities to only the specified actions.\n    \"\"\"\n    actions: [SponsorsActivityAction!] = []\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Whether to include those events where this sponsorable acted as the sponsor.\n    Defaults to only including events where this sponsorable was the recipient\n    of a sponsorship.\n    \"\"\"\n    includeAsSponsor: Boolean = false\n\n    \"\"\"\n    Whether or not to include private activities in the result set. Defaults to including public and private activities.\n    \"\"\"\n    includePrivate: Boolean = true\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for activity returned from the connection.\n    \"\"\"\n    orderBy: SponsorsActivityOrder = {field: TIMESTAMP, direction: DESC}\n\n    \"\"\"\n    Filter activities returned to only those that occurred in the most recent\n    specified time period. Set to ALL to avoid filtering by when the activity\n    occurred. Will be ignored if `since` or `until` is given.\n    \"\"\"\n    period: SponsorsActivityPeriod = MONTH\n\n    \"\"\"\n    Filter activities to those that occurred on or after this time.\n    \"\"\"\n    since: DateTime\n\n    \"\"\"\n    Filter activities to those that occurred before this time.\n    \"\"\"\n    until: DateTime\n  ): SponsorsActivityConnection!\n\n  \"\"\"\n  The GitHub Sponsors listing for this user or organization.\n  \"\"\"\n  sponsorsListing: SponsorsListing\n\n  \"\"\"\n  The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor.\n  \"\"\"\n  sponsorshipForViewerAsSponsor(\n    \"\"\"\n    Whether to return the sponsorship only if it's still active. Pass false to\n    get the viewer's sponsorship back even if it has been cancelled.\n    \"\"\"\n    activeOnly: Boolean = true\n  ): Sponsorship\n\n  \"\"\"\n  The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving.\n  \"\"\"\n  sponsorshipForViewerAsSponsorable(\n    \"\"\"\n    Whether to return the sponsorship only if it's still active. Pass false to\n    get the sponsorship back even if it has been cancelled.\n    \"\"\"\n    activeOnly: Boolean = true\n  ): Sponsorship\n\n  \"\"\"\n  List of sponsorship updates sent from this sponsorable to sponsors.\n  \"\"\"\n  sponsorshipNewsletters(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for sponsorship updates returned from the connection.\n    \"\"\"\n    orderBy: SponsorshipNewsletterOrder = {field: CREATED_AT, direction: DESC}\n  ): SponsorshipNewsletterConnection!\n\n  \"\"\"\n  The sponsorships where this user or organization is the maintainer receiving the funds.\n  \"\"\"\n  sponsorshipsAsMaintainer(\n    \"\"\"\n    Whether to include only sponsorships that are active right now, versus all\n    sponsorships this maintainer has ever received.\n    \"\"\"\n    activeOnly: Boolean = true\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Whether or not to include private sponsorships in the result set\n    \"\"\"\n    includePrivate: Boolean = false\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for sponsorships returned from this connection. If left\n    blank, the sponsorships will be ordered based on relevancy to the viewer.\n    \"\"\"\n    orderBy: SponsorshipOrder\n  ): SponsorshipConnection!\n\n  \"\"\"\n  The sponsorships where this user or organization is the funder.\n  \"\"\"\n  sponsorshipsAsSponsor(\n    \"\"\"\n    Whether to include only sponsorships that are active right now, versus all sponsorships this sponsor has ever made.\n    \"\"\"\n    activeOnly: Boolean = true\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter sponsorships returned to those for the specified maintainers. That\n    is, the recipient of the sponsorship is a user or organization with one of\n    the given logins.\n    \"\"\"\n    maintainerLogins: [String!]\n\n    \"\"\"\n    Ordering options for sponsorships returned from this connection. If left\n    blank, the sponsorships will be ordered based on relevancy to the viewer.\n    \"\"\"\n    orderBy: SponsorshipOrder\n  ): SponsorshipConnection!\n\n  \"\"\"\n  Find an organization's team by its slug.\n  \"\"\"\n  team(\n    \"\"\"\n    The name or slug of the team to find.\n    \"\"\"\n    slug: String!\n  ): Team\n\n  \"\"\"\n  A list of teams in this organization.\n  \"\"\"\n  teams(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    If true, filters teams that are mapped to an LDAP Group (Enterprise only)\n    \"\"\"\n    ldapMapped: Boolean\n\n    \"\"\"\n    If non-null, filters teams according to notification setting\n    \"\"\"\n    notificationSetting: TeamNotificationSetting\n\n    \"\"\"\n    Ordering options for teams returned from the connection\n    \"\"\"\n    orderBy: TeamOrder\n\n    \"\"\"\n    If non-null, filters teams according to privacy\n    \"\"\"\n    privacy: TeamPrivacy\n\n    \"\"\"\n    If non-null, filters teams with query on team name and team slug\n    \"\"\"\n    query: String\n\n    \"\"\"\n    If non-null, filters teams according to whether the viewer is an admin or member on team\n    \"\"\"\n    role: TeamRole\n\n    \"\"\"\n    If true, restrict to only root teams\n    \"\"\"\n    rootTeamsOnly: Boolean = false\n\n    \"\"\"\n    User logins to filter by\n    \"\"\"\n    userLogins: [String!]\n  ): TeamConnection!\n\n  \"\"\"\n  The HTTP path listing organization's teams\n  \"\"\"\n  teamsResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL listing organization's teams\n  \"\"\"\n  teamsUrl: URI!\n\n  \"\"\"\n  The amount in United States cents (e.g., 500 = $5.00 USD) that this entity has\n  spent on GitHub to fund sponsorships. Only returns a value when viewed by the\n  user themselves or by a user who can manage sponsorships for the requested organization.\n  \"\"\"\n  totalSponsorshipAmountAsSponsorInCents(\n    \"\"\"\n    Filter payments to those that occurred on or after this time.\n    \"\"\"\n    since: DateTime\n\n    \"\"\"\n    Filter payments to those made to the users or organizations with the specified usernames.\n    \"\"\"\n    sponsorableLogins: [String!] = []\n\n    \"\"\"\n    Filter payments to those that occurred before this time.\n    \"\"\"\n    until: DateTime\n  ): Int\n\n  \"\"\"\n  The organization's Twitter username.\n  \"\"\"\n  twitterUsername: String\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this organization.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Organization is adminable by the viewer.\n  \"\"\"\n  viewerCanAdminister: Boolean!\n\n  \"\"\"\n  Can the viewer pin repositories and gists to the profile?\n  \"\"\"\n  viewerCanChangePinnedItems: Boolean!\n\n  \"\"\"\n  Can the current viewer create new projects on this owner.\n  \"\"\"\n  viewerCanCreateProjects: Boolean!\n\n  \"\"\"\n  Viewer can create repositories on this organization\n  \"\"\"\n  viewerCanCreateRepositories: Boolean!\n\n  \"\"\"\n  Viewer can create teams on this organization.\n  \"\"\"\n  viewerCanCreateTeams: Boolean!\n\n  \"\"\"\n  Whether or not the viewer is able to sponsor this user/organization.\n  \"\"\"\n  viewerCanSponsor: Boolean!\n\n  \"\"\"\n  Viewer is an active member of this organization.\n  \"\"\"\n  viewerIsAMember: Boolean!\n\n  \"\"\"\n  Whether or not this Organization is followed by the viewer.\n  \"\"\"\n  viewerIsFollowing: Boolean!\n\n  \"\"\"\n  True if the viewer is sponsoring this user/organization.\n  \"\"\"\n  viewerIsSponsoring: Boolean!\n\n  \"\"\"\n  Whether contributors are required to sign off on web-based commits for repositories in this organization.\n  \"\"\"\n  webCommitSignoffRequired: Boolean!\n\n  \"\"\"\n  The organization's public profile URL.\n  \"\"\"\n  websiteUrl: URI\n}\n\n\"\"\"\nAn audit entry in an organization audit log.\n\"\"\"\nunion OrganizationAuditEntry =\n    MembersCanDeleteReposClearAuditEntry\n  | MembersCanDeleteReposDisableAuditEntry\n  | MembersCanDeleteReposEnableAuditEntry\n  | OauthApplicationCreateAuditEntry\n  | OrgAddBillingManagerAuditEntry\n  | OrgAddMemberAuditEntry\n  | OrgBlockUserAuditEntry\n  | OrgConfigDisableCollaboratorsOnlyAuditEntry\n  | OrgConfigEnableCollaboratorsOnlyAuditEntry\n  | OrgCreateAuditEntry\n  | OrgDisableOauthAppRestrictionsAuditEntry\n  | OrgDisableSamlAuditEntry\n  | OrgDisableTwoFactorRequirementAuditEntry\n  | OrgEnableOauthAppRestrictionsAuditEntry\n  | OrgEnableSamlAuditEntry\n  | OrgEnableTwoFactorRequirementAuditEntry\n  | OrgInviteMemberAuditEntry\n  | OrgInviteToBusinessAuditEntry\n  | OrgOauthAppAccessApprovedAuditEntry\n  | OrgOauthAppAccessBlockedAuditEntry\n  | OrgOauthAppAccessDeniedAuditEntry\n  | OrgOauthAppAccessRequestedAuditEntry\n  | OrgOauthAppAccessUnblockedAuditEntry\n  | OrgRemoveBillingManagerAuditEntry\n  | OrgRemoveMemberAuditEntry\n  | OrgRemoveOutsideCollaboratorAuditEntry\n  | OrgRestoreMemberAuditEntry\n  | OrgUnblockUserAuditEntry\n  | OrgUpdateDefaultRepositoryPermissionAuditEntry\n  | OrgUpdateMemberAuditEntry\n  | OrgUpdateMemberRepositoryCreationPermissionAuditEntry\n  | OrgUpdateMemberRepositoryInvitationPermissionAuditEntry\n  | PrivateRepositoryForkingDisableAuditEntry\n  | PrivateRepositoryForkingEnableAuditEntry\n  | RepoAccessAuditEntry\n  | RepoAddMemberAuditEntry\n  | RepoAddTopicAuditEntry\n  | RepoArchivedAuditEntry\n  | RepoChangeMergeSettingAuditEntry\n  | RepoConfigDisableAnonymousGitAccessAuditEntry\n  | RepoConfigDisableCollaboratorsOnlyAuditEntry\n  | RepoConfigDisableContributorsOnlyAuditEntry\n  | RepoConfigDisableSockpuppetDisallowedAuditEntry\n  | RepoConfigEnableAnonymousGitAccessAuditEntry\n  | RepoConfigEnableCollaboratorsOnlyAuditEntry\n  | RepoConfigEnableContributorsOnlyAuditEntry\n  | RepoConfigEnableSockpuppetDisallowedAuditEntry\n  | RepoConfigLockAnonymousGitAccessAuditEntry\n  | RepoConfigUnlockAnonymousGitAccessAuditEntry\n  | RepoCreateAuditEntry\n  | RepoDestroyAuditEntry\n  | RepoRemoveMemberAuditEntry\n  | RepoRemoveTopicAuditEntry\n  | RepositoryVisibilityChangeDisableAuditEntry\n  | RepositoryVisibilityChangeEnableAuditEntry\n  | TeamAddMemberAuditEntry\n  | TeamAddRepositoryAuditEntry\n  | TeamChangeParentTeamAuditEntry\n  | TeamRemoveMemberAuditEntry\n  | TeamRemoveRepositoryAuditEntry\n\n\"\"\"\nThe connection type for OrganizationAuditEntry.\n\"\"\"\ntype OrganizationAuditEntryConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [OrganizationAuditEntryEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [OrganizationAuditEntry]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nMetadata for an audit entry with action org.*\n\"\"\"\ninterface OrganizationAuditEntryData {\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype OrganizationAuditEntryEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: OrganizationAuditEntry\n}\n\n\"\"\"\nA list of organizations managed by an enterprise.\n\"\"\"\ntype OrganizationConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [OrganizationEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Organization]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype OrganizationEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Organization\n}\n\n\"\"\"\nThe connection type for User.\n\"\"\"\ntype OrganizationEnterpriseOwnerConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [OrganizationEnterpriseOwnerEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [User]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn enterprise owner in the context of an organization that is part of the enterprise.\n\"\"\"\ntype OrganizationEnterpriseOwnerEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: User\n\n  \"\"\"\n  The role of the owner with respect to the organization.\n  \"\"\"\n  organizationRole: RoleInOrganization!\n}\n\n\"\"\"\nAn Identity Provider configured to provision SAML and SCIM identities for\nOrganizations. Visible to (1) organization owners, (2) organization owners'\npersonal access tokens (classic) with read:org or admin:org scope, (3) GitHub\nApp with an installation token with read or write access to members.\n\"\"\"\ntype OrganizationIdentityProvider implements Node {\n  \"\"\"\n  The digest algorithm used to sign SAML requests for the Identity Provider.\n  \"\"\"\n  digestMethod: URI\n\n  \"\"\"\n  External Identities provisioned by this Identity Provider\n  \"\"\"\n  externalIdentities(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter to external identities with the users login\n    \"\"\"\n    login: String\n\n    \"\"\"\n    Filter to external identities with valid org membership only\n    \"\"\"\n    membersOnly: Boolean\n\n    \"\"\"\n    Filter to external identities with the users userName/NameID attribute\n    \"\"\"\n    userName: String\n  ): ExternalIdentityConnection!\n\n  \"\"\"\n  The Node ID of the OrganizationIdentityProvider object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The x509 certificate used by the Identity Provider to sign assertions and responses.\n  \"\"\"\n  idpCertificate: X509Certificate\n\n  \"\"\"\n  The Issuer Entity ID for the SAML Identity Provider\n  \"\"\"\n  issuer: String\n\n  \"\"\"\n  Organization this Identity Provider belongs to\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The signature algorithm used to sign SAML requests for the Identity Provider.\n  \"\"\"\n  signatureMethod: URI\n\n  \"\"\"\n  The URL endpoint for the Identity Provider's SAML SSO.\n  \"\"\"\n  ssoUrl: URI\n}\n\n\"\"\"\nAn Invitation for a user to an organization.\n\"\"\"\ntype OrganizationInvitation implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The email address of the user invited to the organization.\n  \"\"\"\n  email: String\n\n  \"\"\"\n  The Node ID of the OrganizationInvitation object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The source of the invitation.\n  \"\"\"\n  invitationSource: OrganizationInvitationSource!\n\n  \"\"\"\n  The type of invitation that was sent (e.g. email, user).\n  \"\"\"\n  invitationType: OrganizationInvitationType!\n\n  \"\"\"\n  The user who was invited to the organization.\n  \"\"\"\n  invitee: User\n\n  \"\"\"\n  The user who created the invitation.\n  \"\"\"\n  inviter: User!\n\n  \"\"\"\n  The organization the invite is for\n  \"\"\"\n  organization: Organization!\n\n  \"\"\"\n  The user's pending role in the organization (e.g. member, owner).\n  \"\"\"\n  role: OrganizationInvitationRole!\n}\n\n\"\"\"\nThe connection type for OrganizationInvitation.\n\"\"\"\ntype OrganizationInvitationConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [OrganizationInvitationEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [OrganizationInvitation]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype OrganizationInvitationEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: OrganizationInvitation\n}\n\n\"\"\"\nThe possible organization invitation roles.\n\"\"\"\nenum OrganizationInvitationRole {\n  \"\"\"\n  The user is invited to be an admin of the organization.\n  \"\"\"\n  ADMIN\n\n  \"\"\"\n  The user is invited to be a billing manager of the organization.\n  \"\"\"\n  BILLING_MANAGER\n\n  \"\"\"\n  The user is invited to be a direct member of the organization.\n  \"\"\"\n  DIRECT_MEMBER\n\n  \"\"\"\n  The user's previous role will be reinstated.\n  \"\"\"\n  REINSTATE\n}\n\n\"\"\"\nThe possible organization invitation sources.\n\"\"\"\nenum OrganizationInvitationSource {\n  \"\"\"\n  The invitation was created from the web interface or from API\n  \"\"\"\n  MEMBER\n\n  \"\"\"\n  The invitation was created from SCIM\n  \"\"\"\n  SCIM\n\n  \"\"\"\n  The invitation was sent before this feature was added\n  \"\"\"\n  UNKNOWN\n}\n\n\"\"\"\nThe possible organization invitation types.\n\"\"\"\nenum OrganizationInvitationType {\n  \"\"\"\n  The invitation was to an email address.\n  \"\"\"\n  EMAIL\n\n  \"\"\"\n  The invitation was to an existing user.\n  \"\"\"\n  USER\n}\n\n\"\"\"\nThe connection type for User.\n\"\"\"\ntype OrganizationMemberConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [OrganizationMemberEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [User]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nRepresents a user within an organization.\n\"\"\"\ntype OrganizationMemberEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  Whether the organization member has two factor enabled or not. Returns null if information is not available to viewer.\n  \"\"\"\n  hasTwoFactorEnabled: Boolean\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: User\n\n  \"\"\"\n  The role this user has in the organization.\n  \"\"\"\n  role: OrganizationMemberRole\n}\n\n\"\"\"\nThe possible roles within an organization for its members.\n\"\"\"\nenum OrganizationMemberRole {\n  \"\"\"\n  The user is an administrator of the organization.\n  \"\"\"\n  ADMIN\n\n  \"\"\"\n  The user is a member of the organization.\n  \"\"\"\n  MEMBER\n}\n\n\"\"\"\nThe possible values for the members can create repositories setting on an organization.\n\"\"\"\nenum OrganizationMembersCanCreateRepositoriesSettingValue {\n  \"\"\"\n  Members will be able to create public and private repositories.\n  \"\"\"\n  ALL\n\n  \"\"\"\n  Members will not be able to create public or private repositories.\n  \"\"\"\n  DISABLED\n\n  \"\"\"\n  Members will be able to create only internal repositories.\n  \"\"\"\n  INTERNAL\n\n  \"\"\"\n  Members will be able to create only private repositories.\n  \"\"\"\n  PRIVATE\n}\n\n\"\"\"\nA GitHub Enterprise Importer (GEI) organization migration.\n\"\"\"\ntype OrganizationMigration implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: String\n\n  \"\"\"\n  The reason the organization migration failed.\n  \"\"\"\n  failureReason: String\n\n  \"\"\"\n  The Node ID of the OrganizationMigration object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The remaining amount of repos to be migrated.\n  \"\"\"\n  remainingRepositoriesCount: Int\n\n  \"\"\"\n  The name of the source organization to be migrated.\n  \"\"\"\n  sourceOrgName: String!\n\n  \"\"\"\n  The URL of the source organization to migrate.\n  \"\"\"\n  sourceOrgUrl: URI!\n\n  \"\"\"\n  The migration state.\n  \"\"\"\n  state: OrganizationMigrationState!\n\n  \"\"\"\n  The name of the target organization.\n  \"\"\"\n  targetOrgName: String!\n\n  \"\"\"\n  The total amount of repositories to be migrated.\n  \"\"\"\n  totalRepositoriesCount: Int\n}\n\n\"\"\"\nThe Octoshift Organization migration state.\n\"\"\"\nenum OrganizationMigrationState {\n  \"\"\"\n  The Octoshift migration has failed.\n  \"\"\"\n  FAILED\n\n  \"\"\"\n  The Octoshift migration has invalid credentials.\n  \"\"\"\n  FAILED_VALIDATION\n\n  \"\"\"\n  The Octoshift migration is in progress.\n  \"\"\"\n  IN_PROGRESS\n\n  \"\"\"\n  The Octoshift migration has not started.\n  \"\"\"\n  NOT_STARTED\n\n  \"\"\"\n  The Octoshift migration needs to have its credentials validated.\n  \"\"\"\n  PENDING_VALIDATION\n\n  \"\"\"\n  The Octoshift migration is performing post repository migrations.\n  \"\"\"\n  POST_REPO_MIGRATION\n\n  \"\"\"\n  The Octoshift migration is performing pre repository migrations.\n  \"\"\"\n  PRE_REPO_MIGRATION\n\n  \"\"\"\n  The Octoshift migration has been queued.\n  \"\"\"\n  QUEUED\n\n  \"\"\"\n  The Octoshift org migration is performing repository migrations.\n  \"\"\"\n  REPO_MIGRATION\n\n  \"\"\"\n  The Octoshift migration has succeeded.\n  \"\"\"\n  SUCCEEDED\n}\n\n\"\"\"\nUsed for argument of CreateProjectV2 mutation.\n\"\"\"\nunion OrganizationOrUser = Organization | User\n\n\"\"\"\nOrdering options for organization connections.\n\"\"\"\ninput OrganizationOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order organizations by.\n  \"\"\"\n  field: OrganizationOrderField!\n}\n\n\"\"\"\nProperties by which organization connections can be ordered.\n\"\"\"\nenum OrganizationOrderField {\n  \"\"\"\n  Order organizations by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order organizations by login\n  \"\"\"\n  LOGIN\n}\n\n\"\"\"\nAn organization teams hovercard context\n\"\"\"\ntype OrganizationTeamsHovercardContext implements HovercardContext {\n  \"\"\"\n  A string describing this context\n  \"\"\"\n  message: String!\n\n  \"\"\"\n  An octicon to accompany this context\n  \"\"\"\n  octicon: String!\n\n  \"\"\"\n  Teams in this organization the user is a member of that are relevant\n  \"\"\"\n  relevantTeams(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): TeamConnection!\n\n  \"\"\"\n  The path for the full team list for this user\n  \"\"\"\n  teamsResourcePath: URI!\n\n  \"\"\"\n  The URL for the full team list for this user\n  \"\"\"\n  teamsUrl: URI!\n\n  \"\"\"\n  The total number of teams the user is on in the organization\n  \"\"\"\n  totalTeamCount: Int!\n}\n\n\"\"\"\nAn organization list hovercard context\n\"\"\"\ntype OrganizationsHovercardContext implements HovercardContext {\n  \"\"\"\n  A string describing this context\n  \"\"\"\n  message: String!\n\n  \"\"\"\n  An octicon to accompany this context\n  \"\"\"\n  octicon: String!\n\n  \"\"\"\n  Organizations this user is a member of that are relevant\n  \"\"\"\n  relevantOrganizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the User's organizations.\n    \"\"\"\n    orderBy: OrganizationOrder = null\n  ): OrganizationConnection!\n\n  \"\"\"\n  The total number of organizations this user is in\n  \"\"\"\n  totalOrganizationCount: Int!\n}\n\n\"\"\"\nInformation for an uploaded package.\n\"\"\"\ntype Package implements Node {\n  \"\"\"\n  The Node ID of the Package object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Find the latest version for the package.\n  \"\"\"\n  latestVersion: PackageVersion\n\n  \"\"\"\n  Identifies the name of the package.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  Identifies the type of the package.\n  \"\"\"\n  packageType: PackageType!\n\n  \"\"\"\n  The repository this package belongs to.\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  Statistics about package activity.\n  \"\"\"\n  statistics: PackageStatistics\n\n  \"\"\"\n  Find package version by version string.\n  \"\"\"\n  version(\n    \"\"\"\n    The package version.\n    \"\"\"\n    version: String!\n  ): PackageVersion\n\n  \"\"\"\n  list of versions for this package\n  \"\"\"\n  versions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering of the returned packages.\n    \"\"\"\n    orderBy: PackageVersionOrder = {field: CREATED_AT, direction: DESC}\n  ): PackageVersionConnection!\n}\n\n\"\"\"\nThe connection type for Package.\n\"\"\"\ntype PackageConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PackageEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Package]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PackageEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Package\n}\n\n\"\"\"\nA file in a package version.\n\"\"\"\ntype PackageFile implements Node {\n  \"\"\"\n  The Node ID of the PackageFile object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  MD5 hash of the file.\n  \"\"\"\n  md5: String\n\n  \"\"\"\n  Name of the file.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The package version this file belongs to.\n  \"\"\"\n  packageVersion: PackageVersion\n\n  \"\"\"\n  SHA1 hash of the file.\n  \"\"\"\n  sha1: String\n\n  \"\"\"\n  SHA256 hash of the file.\n  \"\"\"\n  sha256: String\n\n  \"\"\"\n  Size of the file in bytes.\n  \"\"\"\n  size: Int\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  URL to download the asset.\n  \"\"\"\n  url: URI\n}\n\n\"\"\"\nThe connection type for PackageFile.\n\"\"\"\ntype PackageFileConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PackageFileEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PackageFile]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PackageFileEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PackageFile\n}\n\n\"\"\"\nWays in which lists of package files can be ordered upon return.\n\"\"\"\ninput PackageFileOrder {\n  \"\"\"\n  The direction in which to order package files by the specified field.\n  \"\"\"\n  direction: OrderDirection\n\n  \"\"\"\n  The field in which to order package files by.\n  \"\"\"\n  field: PackageFileOrderField\n}\n\n\"\"\"\nProperties by which package file connections can be ordered.\n\"\"\"\nenum PackageFileOrderField {\n  \"\"\"\n  Order package files by creation time\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nWays in which lists of packages can be ordered upon return.\n\"\"\"\ninput PackageOrder {\n  \"\"\"\n  The direction in which to order packages by the specified field.\n  \"\"\"\n  direction: OrderDirection\n\n  \"\"\"\n  The field in which to order packages by.\n  \"\"\"\n  field: PackageOrderField\n}\n\n\"\"\"\nProperties by which package connections can be ordered.\n\"\"\"\nenum PackageOrderField {\n  \"\"\"\n  Order packages by creation time\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nRepresents an owner of a package.\n\"\"\"\ninterface PackageOwner {\n  \"\"\"\n  The Node ID of the PackageOwner object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  A list of packages under the owner.\n  \"\"\"\n  packages(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Find packages by their names.\n    \"\"\"\n    names: [String]\n\n    \"\"\"\n    Ordering of the returned packages.\n    \"\"\"\n    orderBy: PackageOrder = {field: CREATED_AT, direction: DESC}\n\n    \"\"\"\n    Filter registry package by type.\n    \"\"\"\n    packageType: PackageType\n\n    \"\"\"\n    Find packages in a repository by ID.\n    \"\"\"\n    repositoryId: ID\n  ): PackageConnection!\n}\n\n\"\"\"\nRepresents a object that contains package activity statistics such as downloads.\n\"\"\"\ntype PackageStatistics {\n  \"\"\"\n  Number of times the package was downloaded since it was created.\n  \"\"\"\n  downloadsTotalCount: Int!\n}\n\n\"\"\"\nA version tag contains the mapping between a tag name and a version.\n\"\"\"\ntype PackageTag implements Node {\n  \"\"\"\n  The Node ID of the PackageTag object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the tag name of the version.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  Version that the tag is associated with.\n  \"\"\"\n  version: PackageVersion\n}\n\n\"\"\"\nThe possible types of a package.\n\"\"\"\nenum PackageType {\n  \"\"\"\n  A debian package.\n  \"\"\"\n  DEBIAN\n\n  \"\"\"\n  A docker image.\n  \"\"\"\n  DOCKER\n    @deprecated(\n      reason: \"DOCKER will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2021-06-21 UTC.\"\n    )\n\n  \"\"\"\n  A maven package.\n  \"\"\"\n  MAVEN\n    @deprecated(\n      reason: \"MAVEN will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2023-02-10 UTC.\"\n    )\n\n  \"\"\"\n  An npm package.\n  \"\"\"\n  NPM\n    @deprecated(\n      reason: \"NPM will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2022-11-21 UTC.\"\n    )\n\n  \"\"\"\n  A nuget package.\n  \"\"\"\n  NUGET\n    @deprecated(\n      reason: \"NUGET will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2022-11-21 UTC.\"\n    )\n\n  \"\"\"\n  A python package.\n  \"\"\"\n  PYPI\n\n  \"\"\"\n  A rubygems package.\n  \"\"\"\n  RUBYGEMS\n    @deprecated(\n      reason: \"RUBYGEMS will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2022-12-28 UTC.\"\n    )\n}\n\n\"\"\"\nInformation about a specific package version.\n\"\"\"\ntype PackageVersion implements Node {\n  \"\"\"\n  List of files associated with this package version\n  \"\"\"\n  files(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering of the returned package files.\n    \"\"\"\n    orderBy: PackageFileOrder = {field: CREATED_AT, direction: ASC}\n  ): PackageFileConnection!\n\n  \"\"\"\n  The Node ID of the PackageVersion object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The package associated with this version.\n  \"\"\"\n  package: Package\n\n  \"\"\"\n  The platform this version was built for.\n  \"\"\"\n  platform: String\n\n  \"\"\"\n  Whether or not this version is a pre-release.\n  \"\"\"\n  preRelease: Boolean!\n\n  \"\"\"\n  The README of this package version.\n  \"\"\"\n  readme: String\n\n  \"\"\"\n  The release associated with this package version.\n  \"\"\"\n  release: Release\n\n  \"\"\"\n  Statistics about package activity.\n  \"\"\"\n  statistics: PackageVersionStatistics\n\n  \"\"\"\n  The package version summary.\n  \"\"\"\n  summary: String\n\n  \"\"\"\n  The version string.\n  \"\"\"\n  version: String!\n}\n\n\"\"\"\nThe connection type for PackageVersion.\n\"\"\"\ntype PackageVersionConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PackageVersionEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PackageVersion]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PackageVersionEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PackageVersion\n}\n\n\"\"\"\nWays in which lists of package versions can be ordered upon return.\n\"\"\"\ninput PackageVersionOrder {\n  \"\"\"\n  The direction in which to order package versions by the specified field.\n  \"\"\"\n  direction: OrderDirection\n\n  \"\"\"\n  The field in which to order package versions by.\n  \"\"\"\n  field: PackageVersionOrderField\n}\n\n\"\"\"\nProperties by which package version connections can be ordered.\n\"\"\"\nenum PackageVersionOrderField {\n  \"\"\"\n  Order package versions by creation time\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nRepresents a object that contains package version activity statistics such as downloads.\n\"\"\"\ntype PackageVersionStatistics {\n  \"\"\"\n  Number of times the package was downloaded since it was created.\n  \"\"\"\n  downloadsTotalCount: Int!\n}\n\n\"\"\"\nInformation about pagination in a connection.\n\"\"\"\ntype PageInfo {\n  \"\"\"\n  When paginating forwards, the cursor to continue.\n  \"\"\"\n  endCursor: String\n\n  \"\"\"\n  When paginating forwards, are there more items?\n  \"\"\"\n  hasNextPage: Boolean!\n\n  \"\"\"\n  When paginating backwards, are there more items?\n  \"\"\"\n  hasPreviousPage: Boolean!\n\n  \"\"\"\n  When paginating backwards, the cursor to continue.\n  \"\"\"\n  startCursor: String\n}\n\n\"\"\"\nThe possible types of patch statuses.\n\"\"\"\nenum PatchStatus {\n  \"\"\"\n  The file was added. Git status 'A'.\n  \"\"\"\n  ADDED\n\n  \"\"\"\n  The file's type was changed. Git status 'T'.\n  \"\"\"\n  CHANGED\n\n  \"\"\"\n  The file was copied. Git status 'C'.\n  \"\"\"\n  COPIED\n\n  \"\"\"\n  The file was deleted. Git status 'D'.\n  \"\"\"\n  DELETED\n\n  \"\"\"\n  The file's contents were changed. Git status 'M'.\n  \"\"\"\n  MODIFIED\n\n  \"\"\"\n  The file was renamed. Git status 'R'.\n  \"\"\"\n  RENAMED\n}\n\n\"\"\"\nTypes that can grant permissions on a repository to a user\n\"\"\"\nunion PermissionGranter = Organization | Repository | Team\n\n\"\"\"\nA level of permission and source for a user's access to a repository.\n\"\"\"\ntype PermissionSource {\n  \"\"\"\n  The organization the repository belongs to.\n  \"\"\"\n  organization: Organization!\n\n  \"\"\"\n  The level of access this source has granted to the user.\n  \"\"\"\n  permission: DefaultRepositoryPermissionField!\n\n  \"\"\"\n  The name of the role this source has granted to the user.\n  \"\"\"\n  roleName: String\n\n  \"\"\"\n  The source of this permission.\n  \"\"\"\n  source: PermissionGranter!\n}\n\n\"\"\"\nAutogenerated input type of PinIssue\n\"\"\"\ninput PinIssueInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the issue to be pinned\n  \"\"\"\n  issueId: ID! @possibleTypes(concreteTypes: [\"Issue\"])\n}\n\n\"\"\"\nAutogenerated return type of PinIssue\n\"\"\"\ntype PinIssuePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The issue that was pinned\n  \"\"\"\n  issue: Issue\n}\n\n\"\"\"\nTypes that can be pinned to a profile page.\n\"\"\"\nunion PinnableItem = Gist | Repository\n\n\"\"\"\nThe connection type for PinnableItem.\n\"\"\"\ntype PinnableItemConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PinnableItemEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PinnableItem]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PinnableItemEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PinnableItem\n}\n\n\"\"\"\nRepresents items that can be pinned to a profile page or dashboard.\n\"\"\"\nenum PinnableItemType {\n  \"\"\"\n  A gist.\n  \"\"\"\n  GIST\n\n  \"\"\"\n  An issue.\n  \"\"\"\n  ISSUE\n\n  \"\"\"\n  An organization.\n  \"\"\"\n  ORGANIZATION\n\n  \"\"\"\n  A project.\n  \"\"\"\n  PROJECT\n\n  \"\"\"\n  A pull request.\n  \"\"\"\n  PULL_REQUEST\n\n  \"\"\"\n  A repository.\n  \"\"\"\n  REPOSITORY\n\n  \"\"\"\n  A team.\n  \"\"\"\n  TEAM\n\n  \"\"\"\n  A user.\n  \"\"\"\n  USER\n}\n\n\"\"\"\nA Pinned Discussion is a discussion pinned to a repository's index page.\n\"\"\"\ntype PinnedDiscussion implements Node & RepositoryNode {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The discussion that was pinned.\n  \"\"\"\n  discussion: Discussion!\n\n  \"\"\"\n  Color stops of the chosen gradient\n  \"\"\"\n  gradientStopColors: [String!]!\n\n  \"\"\"\n  The Node ID of the PinnedDiscussion object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Background texture pattern\n  \"\"\"\n  pattern: PinnedDiscussionPattern!\n\n  \"\"\"\n  The actor that pinned this discussion.\n  \"\"\"\n  pinnedBy: Actor!\n\n  \"\"\"\n  Preconfigured background gradient option\n  \"\"\"\n  preconfiguredGradient: PinnedDiscussionGradient\n\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe connection type for PinnedDiscussion.\n\"\"\"\ntype PinnedDiscussionConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PinnedDiscussionEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PinnedDiscussion]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PinnedDiscussionEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PinnedDiscussion\n}\n\n\"\"\"\nPreconfigured gradients that may be used to style discussions pinned within a repository.\n\"\"\"\nenum PinnedDiscussionGradient {\n  \"\"\"\n  A gradient of blue to mint\n  \"\"\"\n  BLUE_MINT\n\n  \"\"\"\n  A gradient of blue to purple\n  \"\"\"\n  BLUE_PURPLE\n\n  \"\"\"\n  A gradient of pink to blue\n  \"\"\"\n  PINK_BLUE\n\n  \"\"\"\n  A gradient of purple to coral\n  \"\"\"\n  PURPLE_CORAL\n\n  \"\"\"\n  A gradient of red to orange\n  \"\"\"\n  RED_ORANGE\n}\n\n\"\"\"\nPreconfigured background patterns that may be used to style discussions pinned within a repository.\n\"\"\"\nenum PinnedDiscussionPattern {\n  \"\"\"\n  An upward-facing chevron pattern\n  \"\"\"\n  CHEVRON_UP\n\n  \"\"\"\n  A hollow dot pattern\n  \"\"\"\n  DOT\n\n  \"\"\"\n  A solid dot pattern\n  \"\"\"\n  DOT_FILL\n\n  \"\"\"\n  A heart pattern\n  \"\"\"\n  HEART_FILL\n\n  \"\"\"\n  A plus sign pattern\n  \"\"\"\n  PLUS\n\n  \"\"\"\n  A lightning bolt pattern\n  \"\"\"\n  ZAP\n}\n\n\"\"\"\nRepresents a 'pinned' event on a given issue or pull request.\n\"\"\"\ntype PinnedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the PinnedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the issue associated with the event.\n  \"\"\"\n  issue: Issue!\n}\n\n\"\"\"\nA Pinned Issue is a issue pinned to a repository's index page.\n\"\"\"\ntype PinnedIssue implements Node {\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  Identifies the primary key from the database as a BigInt.\n  \"\"\"\n  fullDatabaseId: BigInt\n\n  \"\"\"\n  The Node ID of the PinnedIssue object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The issue that was pinned.\n  \"\"\"\n  issue: Issue!\n\n  \"\"\"\n  The actor that pinned this issue.\n  \"\"\"\n  pinnedBy: Actor!\n\n  \"\"\"\n  The repository that this issue was pinned to.\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nThe connection type for PinnedIssue.\n\"\"\"\ntype PinnedIssueConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PinnedIssueEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PinnedIssue]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PinnedIssueEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PinnedIssue\n}\n\n\"\"\"\nAn ISO-8601 encoded UTC date string with millisecond precision.\n\"\"\"\nscalar PreciseDateTime\n\n\"\"\"\nAudit log entry for a private_repository_forking.disable event.\n\"\"\"\ntype PrivateRepositoryForkingDisableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The HTTP path for this enterprise.\n  \"\"\"\n  enterpriseResourcePath: URI\n\n  \"\"\"\n  The slug of the enterprise.\n  \"\"\"\n  enterpriseSlug: String\n\n  \"\"\"\n  The HTTP URL for this enterprise.\n  \"\"\"\n  enterpriseUrl: URI\n\n  \"\"\"\n  The Node ID of the PrivateRepositoryForkingDisableAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a private_repository_forking.enable event.\n\"\"\"\ntype PrivateRepositoryForkingEnableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The HTTP path for this enterprise.\n  \"\"\"\n  enterpriseResourcePath: URI\n\n  \"\"\"\n  The slug of the enterprise.\n  \"\"\"\n  enterpriseSlug: String\n\n  \"\"\"\n  The HTTP URL for this enterprise.\n  \"\"\"\n  enterpriseUrl: URI\n\n  \"\"\"\n  The Node ID of the PrivateRepositoryForkingEnableAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nA curatable list of repositories relating to a repository owner, which defaults\nto showing the most popular repositories they own.\n\"\"\"\ntype ProfileItemShowcase {\n  \"\"\"\n  Whether or not the owner has pinned any repositories or gists.\n  \"\"\"\n  hasPinnedItems: Boolean!\n\n  \"\"\"\n  The repositories and gists in the showcase. If the profile owner has any\n  pinned items, those will be returned. Otherwise, the profile owner's popular\n  repositories will be returned.\n  \"\"\"\n  items(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): PinnableItemConnection!\n}\n\n\"\"\"\nRepresents any entity on GitHub that has a profile page.\n\"\"\"\ninterface ProfileOwner {\n  \"\"\"\n  Determine if this repository owner has any items that can be pinned to their profile.\n  \"\"\"\n  anyPinnableItems(\n    \"\"\"\n    Filter to only a particular kind of pinnable item.\n    \"\"\"\n    type: PinnableItemType\n  ): Boolean!\n\n  \"\"\"\n  The public profile email.\n  \"\"\"\n  email: String\n\n  \"\"\"\n  The Node ID of the ProfileOwner object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Showcases a selection of repositories and gists that the profile owner has\n  either curated or that have been selected automatically based on popularity.\n  \"\"\"\n  itemShowcase: ProfileItemShowcase!\n\n  \"\"\"\n  The public profile location.\n  \"\"\"\n  location: String\n\n  \"\"\"\n  The username used to login.\n  \"\"\"\n  login: String!\n\n  \"\"\"\n  The public profile name.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  A list of repositories and gists this profile owner can pin to their profile.\n  \"\"\"\n  pinnableItems(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter the types of pinnable items that are returned.\n    \"\"\"\n    types: [PinnableItemType!]\n  ): PinnableItemConnection!\n\n  \"\"\"\n  A list of repositories and gists this profile owner has pinned to their profile\n  \"\"\"\n  pinnedItems(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter the types of pinned items that are returned.\n    \"\"\"\n    types: [PinnableItemType!]\n  ): PinnableItemConnection!\n\n  \"\"\"\n  Returns how many more items this profile owner can pin to their profile.\n  \"\"\"\n  pinnedItemsRemaining: Int!\n\n  \"\"\"\n  Can the viewer pin repositories and gists to the profile?\n  \"\"\"\n  viewerCanChangePinnedItems: Boolean!\n\n  \"\"\"\n  The public profile website URL.\n  \"\"\"\n  websiteUrl: URI\n}\n\n\"\"\"\nProjects manage issues, pull requests and notes within a project owner.\n\"\"\"\ntype Project implements Closable & Node & Updatable {\n  \"\"\"\n  The project's description body.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  The projects description body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  Indicates if the object is closed (definition of closed may depend on type)\n  \"\"\"\n  closed: Boolean!\n\n  \"\"\"\n  Identifies the date and time when the object was closed.\n  \"\"\"\n  closedAt: DateTime\n\n  \"\"\"\n  List of columns in the project\n  \"\"\"\n  columns(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectColumnConnection!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The actor who originally created the project.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the Project object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project's name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The project's number.\n  \"\"\"\n  number: Int!\n\n  \"\"\"\n  The project's owner. Currently limited to repositories, organizations, and users.\n  \"\"\"\n  owner: ProjectOwner!\n\n  \"\"\"\n  List of pending cards in this project\n  \"\"\"\n  pendingCards(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    A list of archived states to filter the cards by\n    \"\"\"\n    archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED]\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectCardConnection!\n\n  \"\"\"\n  Project progress details.\n  \"\"\"\n  progress: ProjectProgress!\n\n  \"\"\"\n  The HTTP path for this project\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Whether the project is open or closed.\n  \"\"\"\n  state: ProjectState!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this project\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Indicates if the object can be closed by the viewer.\n  \"\"\"\n  viewerCanClose: Boolean!\n\n  \"\"\"\n  Indicates if the object can be reopened by the viewer.\n  \"\"\"\n  viewerCanReopen: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n}\n\n\"\"\"\nA card in a project.\n\"\"\"\ntype ProjectCard implements Node {\n  \"\"\"\n  The project column this card is associated under. A card may only belong to one\n  project column at a time. The column field will be null if the card is created\n  in a pending state and has yet to be associated with a column. Once cards are\n  associated with a column, they will not become pending in the future.\n  \"\"\"\n  column: ProjectColumn\n\n  \"\"\"\n  The card content item\n  \"\"\"\n  content: ProjectCardItem\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The actor who created this card\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the ProjectCard object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether the card is archived\n  \"\"\"\n  isArchived: Boolean!\n\n  \"\"\"\n  The card note\n  \"\"\"\n  note: String\n\n  \"\"\"\n  The project that contains this card.\n  \"\"\"\n  project: Project!\n\n  \"\"\"\n  The HTTP path for this card\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The state of ProjectCard\n  \"\"\"\n  state: ProjectCardState\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this card\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nThe possible archived states of a project card.\n\"\"\"\nenum ProjectCardArchivedState {\n  \"\"\"\n  A project card that is archived\n  \"\"\"\n  ARCHIVED\n\n  \"\"\"\n  A project card that is not archived\n  \"\"\"\n  NOT_ARCHIVED\n}\n\n\"\"\"\nThe connection type for ProjectCard.\n\"\"\"\ntype ProjectCardConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectCardEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ProjectCard]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectCardEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ProjectCard\n}\n\n\"\"\"\nAn issue or PR and its owning repository to be used in a project card.\n\"\"\"\ninput ProjectCardImport {\n  \"\"\"\n  The issue or pull request number.\n  \"\"\"\n  number: Int!\n\n  \"\"\"\n  Repository name with owner (owner/repository).\n  \"\"\"\n  repository: String!\n}\n\n\"\"\"\nTypes that can be inside Project Cards.\n\"\"\"\nunion ProjectCardItem = Issue | PullRequest\n\n\"\"\"\nVarious content states of a ProjectCard\n\"\"\"\nenum ProjectCardState {\n  \"\"\"\n  The card has content only.\n  \"\"\"\n  CONTENT_ONLY\n\n  \"\"\"\n  The card has a note only.\n  \"\"\"\n  NOTE_ONLY\n\n  \"\"\"\n  The card is redacted.\n  \"\"\"\n  REDACTED\n}\n\n\"\"\"\nA column inside a project.\n\"\"\"\ntype ProjectColumn implements Node {\n  \"\"\"\n  List of cards in the column\n  \"\"\"\n  cards(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    A list of archived states to filter the cards by\n    \"\"\"\n    archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED]\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectCardConnection!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the ProjectColumn object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project column's name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The project that contains this column.\n  \"\"\"\n  project: Project!\n\n  \"\"\"\n  The semantic purpose of the column\n  \"\"\"\n  purpose: ProjectColumnPurpose\n\n  \"\"\"\n  The HTTP path for this project column\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this project column\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nThe connection type for ProjectColumn.\n\"\"\"\ntype ProjectColumnConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectColumnEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ProjectColumn]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectColumnEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ProjectColumn\n}\n\n\"\"\"\nA project column and a list of its issues and PRs.\n\"\"\"\ninput ProjectColumnImport {\n  \"\"\"\n  The name of the column.\n  \"\"\"\n  columnName: String!\n\n  \"\"\"\n  A list of issues and pull requests in the column.\n  \"\"\"\n  issues: [ProjectCardImport!]\n\n  \"\"\"\n  The position of the column, starting from 0.\n  \"\"\"\n  position: Int!\n}\n\n\"\"\"\nThe semantic purpose of the column - todo, in progress, or done.\n\"\"\"\nenum ProjectColumnPurpose {\n  \"\"\"\n  The column contains cards which are complete\n  \"\"\"\n  DONE\n\n  \"\"\"\n  The column contains cards which are currently being worked on\n  \"\"\"\n  IN_PROGRESS\n\n  \"\"\"\n  The column contains cards still to be worked on\n  \"\"\"\n  TODO\n}\n\n\"\"\"\nA list of projects associated with the owner.\n\"\"\"\ntype ProjectConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Project]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Project\n}\n\n\"\"\"\nWays in which lists of projects can be ordered upon return.\n\"\"\"\ninput ProjectOrder {\n  \"\"\"\n  The direction in which to order projects by the specified field.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field in which to order projects by.\n  \"\"\"\n  field: ProjectOrderField!\n}\n\n\"\"\"\nProperties by which project connections can be ordered.\n\"\"\"\nenum ProjectOrderField {\n  \"\"\"\n  Order projects by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order projects by name\n  \"\"\"\n  NAME\n\n  \"\"\"\n  Order projects by update time\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nRepresents an owner of a Project.\n\"\"\"\ninterface ProjectOwner {\n  \"\"\"\n  The Node ID of the ProjectOwner object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Find project by number.\n  \"\"\"\n  project(\n    \"\"\"\n    The project number to find.\n    \"\"\"\n    number: Int!\n  ): Project\n\n  \"\"\"\n  A list of projects under the owner.\n  \"\"\"\n  projects(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for projects returned from the connection\n    \"\"\"\n    orderBy: ProjectOrder\n\n    \"\"\"\n    Query to search projects by, currently only searching by name.\n    \"\"\"\n    search: String\n\n    \"\"\"\n    A list of states to filter the projects by.\n    \"\"\"\n    states: [ProjectState!]\n  ): ProjectConnection!\n\n  \"\"\"\n  The HTTP path listing owners projects\n  \"\"\"\n  projectsResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL listing owners projects\n  \"\"\"\n  projectsUrl: URI!\n\n  \"\"\"\n  Can the current viewer create new projects on this owner.\n  \"\"\"\n  viewerCanCreateProjects: Boolean!\n}\n\n\"\"\"\nProject progress stats.\n\"\"\"\ntype ProjectProgress {\n  \"\"\"\n  The number of done cards.\n  \"\"\"\n  doneCount: Int!\n\n  \"\"\"\n  The percentage of done cards.\n  \"\"\"\n  donePercentage: Float!\n\n  \"\"\"\n  Whether progress tracking is enabled and cards with purpose exist for this project\n  \"\"\"\n  enabled: Boolean!\n\n  \"\"\"\n  The number of in-progress cards.\n  \"\"\"\n  inProgressCount: Int!\n\n  \"\"\"\n  The percentage of in-progress cards.\n  \"\"\"\n  inProgressPercentage: Float!\n\n  \"\"\"\n  The number of to do cards.\n  \"\"\"\n  todoCount: Int!\n\n  \"\"\"\n  The percentage of to do cards.\n  \"\"\"\n  todoPercentage: Float!\n}\n\n\"\"\"\nState of the project; either 'open' or 'closed'\n\"\"\"\nenum ProjectState {\n  \"\"\"\n  The project is closed.\n  \"\"\"\n  CLOSED\n\n  \"\"\"\n  The project is open.\n  \"\"\"\n  OPEN\n}\n\n\"\"\"\nGitHub-provided templates for Projects\n\"\"\"\nenum ProjectTemplate {\n  \"\"\"\n  Create a board with v2 triggers to automatically move cards across To do, In progress and Done columns.\n  \"\"\"\n  AUTOMATED_KANBAN_V2\n\n  \"\"\"\n  Create a board with triggers to automatically move cards across columns with review automation.\n  \"\"\"\n  AUTOMATED_REVIEWS_KANBAN\n\n  \"\"\"\n  Create a board with columns for To do, In progress and Done.\n  \"\"\"\n  BASIC_KANBAN\n\n  \"\"\"\n  Create a board to triage and prioritize bugs with To do, priority, and Done columns.\n  \"\"\"\n  BUG_TRIAGE\n}\n\n\"\"\"\nNew projects that manage issues, pull requests and drafts using tables and boards.\n\"\"\"\ntype ProjectV2 implements Closable & Node & Updatable {\n  \"\"\"\n  Returns true if the project is closed.\n  \"\"\"\n  closed: Boolean!\n\n  \"\"\"\n  Identifies the date and time when the object was closed.\n  \"\"\"\n  closedAt: DateTime\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The actor who originally created the project.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  A field of the project\n  \"\"\"\n  field(\n    \"\"\"\n    The name of the field\n    \"\"\"\n    name: String!\n  ): ProjectV2FieldConfiguration\n\n  \"\"\"\n  List of fields and their constraints in the project\n  \"\"\"\n  fields(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for project v2 fields returned from the connection\n    \"\"\"\n    orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC}\n  ): ProjectV2FieldConfigurationConnection!\n\n  \"\"\"\n  The Node ID of the ProjectV2 object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  List of items in the project\n  \"\"\"\n  items(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for project v2 items returned from the connection\n    \"\"\"\n    orderBy: ProjectV2ItemOrder = {field: POSITION, direction: ASC}\n  ): ProjectV2ItemConnection!\n\n  \"\"\"\n  The project's number.\n  \"\"\"\n  number: Int!\n\n  \"\"\"\n  The project's owner. Currently limited to organizations and users.\n  \"\"\"\n  owner: ProjectV2Owner!\n\n  \"\"\"\n  Returns true if the project is public.\n  \"\"\"\n  public: Boolean!\n\n  \"\"\"\n  The project's readme.\n  \"\"\"\n  readme: String\n\n  \"\"\"\n  The repositories the project is linked to.\n  \"\"\"\n  repositories(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for repositories returned from the connection\n    \"\"\"\n    orderBy: RepositoryOrder = {field: CREATED_AT, direction: DESC}\n  ): RepositoryConnection!\n\n  \"\"\"\n  The HTTP path for this project\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The project's short description.\n  \"\"\"\n  shortDescription: String\n\n  \"\"\"\n  The teams the project is linked to.\n  \"\"\"\n  teams(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for teams returned from this connection.\n    \"\"\"\n    orderBy: TeamOrder = {field: NAME, direction: ASC}\n  ): TeamConnection!\n\n  \"\"\"\n  Returns true if this project is a template.\n  \"\"\"\n  template: Boolean!\n\n  \"\"\"\n  The project's name.\n  \"\"\"\n  title: String!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this project\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  A view of the project\n  \"\"\"\n  view(\n    \"\"\"\n    The number of a view belonging to the project\n    \"\"\"\n    number: Int!\n  ): ProjectV2View\n\n  \"\"\"\n  Indicates if the object can be closed by the viewer.\n  \"\"\"\n  viewerCanClose: Boolean!\n\n  \"\"\"\n  Indicates if the object can be reopened by the viewer.\n  \"\"\"\n  viewerCanReopen: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n\n  \"\"\"\n  List of views in the project\n  \"\"\"\n  views(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for project v2 views returned from the connection\n    \"\"\"\n    orderBy: ProjectV2ViewOrder = {field: POSITION, direction: ASC}\n  ): ProjectV2ViewConnection!\n\n  \"\"\"\n  A workflow of the project\n  \"\"\"\n  workflow(\n    \"\"\"\n    The number of a workflow belonging to the project\n    \"\"\"\n    number: Int!\n  ): ProjectV2Workflow\n\n  \"\"\"\n  List of the workflows in the project\n  \"\"\"\n  workflows(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for project v2 workflows returned from the connection\n    \"\"\"\n    orderBy: ProjectV2WorkflowOrder = {field: NAME, direction: ASC}\n  ): ProjectV2WorkflowConnection!\n}\n\n\"\"\"\nPossible collaborators for a project.\n\"\"\"\nunion ProjectV2Actor = Team | User\n\n\"\"\"\nThe connection type for ProjectV2Actor.\n\"\"\"\ntype ProjectV2ActorConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectV2ActorEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ProjectV2Actor]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectV2ActorEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ProjectV2Actor\n}\n\n\"\"\"\nA collaborator to update on a project. Only one of the userId or teamId should be provided.\n\"\"\"\ninput ProjectV2Collaborator {\n  \"\"\"\n  The role to grant the collaborator\n  \"\"\"\n  role: ProjectV2Roles!\n\n  \"\"\"\n  The ID of the team as a collaborator.\n  \"\"\"\n  teamId: ID @possibleTypes(concreteTypes: [\"Team\"])\n\n  \"\"\"\n  The ID of the user as a collaborator.\n  \"\"\"\n  userId: ID @possibleTypes(concreteTypes: [\"User\"])\n}\n\n\"\"\"\nThe connection type for ProjectV2.\n\"\"\"\ntype ProjectV2Connection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectV2Edge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ProjectV2]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nThe type of a project field.\n\"\"\"\nenum ProjectV2CustomFieldType {\n  \"\"\"\n  Date\n  \"\"\"\n  DATE\n\n  \"\"\"\n  Number\n  \"\"\"\n  NUMBER\n\n  \"\"\"\n  Single Select\n  \"\"\"\n  SINGLE_SELECT\n\n  \"\"\"\n  Text\n  \"\"\"\n  TEXT\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectV2Edge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ProjectV2\n}\n\n\"\"\"\nA field inside a project.\n\"\"\"\ntype ProjectV2Field implements Node & ProjectV2FieldCommon {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The field's type.\n  \"\"\"\n  dataType: ProjectV2FieldType!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the ProjectV2Field object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project field's name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The project that contains this field.\n  \"\"\"\n  project: ProjectV2!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nCommon fields across different project field types\n\"\"\"\ninterface ProjectV2FieldCommon {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The field's type.\n  \"\"\"\n  dataType: ProjectV2FieldType!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the ProjectV2FieldCommon object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project field's name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The project that contains this field.\n  \"\"\"\n  project: ProjectV2!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nConfigurations for project fields.\n\"\"\"\nunion ProjectV2FieldConfiguration = ProjectV2Field | ProjectV2IterationField | ProjectV2SingleSelectField\n\n\"\"\"\nThe connection type for ProjectV2FieldConfiguration.\n\"\"\"\ntype ProjectV2FieldConfigurationConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectV2FieldConfigurationEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ProjectV2FieldConfiguration]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectV2FieldConfigurationEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ProjectV2FieldConfiguration\n}\n\n\"\"\"\nThe connection type for ProjectV2Field.\n\"\"\"\ntype ProjectV2FieldConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectV2FieldEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ProjectV2Field]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectV2FieldEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ProjectV2Field\n}\n\n\"\"\"\nOrdering options for project v2 field connections\n\"\"\"\ninput ProjectV2FieldOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order the project v2 fields by.\n  \"\"\"\n  field: ProjectV2FieldOrderField!\n}\n\n\"\"\"\nProperties by which project v2 field connections can be ordered.\n\"\"\"\nenum ProjectV2FieldOrderField {\n  \"\"\"\n  Order project v2 fields by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order project v2 fields by name\n  \"\"\"\n  NAME\n\n  \"\"\"\n  Order project v2 fields by position\n  \"\"\"\n  POSITION\n}\n\n\"\"\"\nThe type of a project field.\n\"\"\"\nenum ProjectV2FieldType {\n  \"\"\"\n  Assignees\n  \"\"\"\n  ASSIGNEES\n\n  \"\"\"\n  Date\n  \"\"\"\n  DATE\n\n  \"\"\"\n  Iteration\n  \"\"\"\n  ITERATION\n\n  \"\"\"\n  Labels\n  \"\"\"\n  LABELS\n\n  \"\"\"\n  Linked Pull Requests\n  \"\"\"\n  LINKED_PULL_REQUESTS\n\n  \"\"\"\n  Milestone\n  \"\"\"\n  MILESTONE\n\n  \"\"\"\n  Number\n  \"\"\"\n  NUMBER\n\n  \"\"\"\n  Repository\n  \"\"\"\n  REPOSITORY\n\n  \"\"\"\n  Reviewers\n  \"\"\"\n  REVIEWERS\n\n  \"\"\"\n  Single Select\n  \"\"\"\n  SINGLE_SELECT\n\n  \"\"\"\n  Text\n  \"\"\"\n  TEXT\n\n  \"\"\"\n  Title\n  \"\"\"\n  TITLE\n\n  \"\"\"\n  Tracked by\n  \"\"\"\n  TRACKED_BY\n\n  \"\"\"\n  Tracks\n  \"\"\"\n  TRACKS\n}\n\n\"\"\"\nThe values that can be used to update a field of an item inside a Project. Only 1 value can be updated at a time.\n\"\"\"\ninput ProjectV2FieldValue {\n  \"\"\"\n  The ISO 8601 date to set on the field.\n  \"\"\"\n  date: Date\n\n  \"\"\"\n  The id of the iteration to set on the field.\n  \"\"\"\n  iterationId: String\n\n  \"\"\"\n  The number to set on the field.\n  \"\"\"\n  number: Float\n\n  \"\"\"\n  The id of the single select option to set on the field.\n  \"\"\"\n  singleSelectOptionId: String\n\n  \"\"\"\n  The text to set on the field.\n  \"\"\"\n  text: String\n}\n\n\"\"\"\nWays in which to filter lists of projects.\n\"\"\"\ninput ProjectV2Filters {\n  \"\"\"\n  List project v2 filtered by the state given.\n  \"\"\"\n  state: ProjectV2State\n}\n\n\"\"\"\nAn item within a Project.\n\"\"\"\ntype ProjectV2Item implements Node {\n  \"\"\"\n  The content of the referenced draft issue, issue, or pull request\n  \"\"\"\n  content: ProjectV2ItemContent\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The actor who created the item.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The field value of the first project field which matches the 'name' argument that is set on the item.\n  \"\"\"\n  fieldValueByName(\n    \"\"\"\n    The name of the field to return the field value of\n    \"\"\"\n    name: String!\n  ): ProjectV2ItemFieldValue\n\n  \"\"\"\n  The field values that are set on the item.\n  \"\"\"\n  fieldValues(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for project v2 item field values returned from the connection\n    \"\"\"\n    orderBy: ProjectV2ItemFieldValueOrder = {field: POSITION, direction: ASC}\n  ): ProjectV2ItemFieldValueConnection!\n\n  \"\"\"\n  The Node ID of the ProjectV2Item object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether the item is archived.\n  \"\"\"\n  isArchived: Boolean!\n\n  \"\"\"\n  The project that contains this item.\n  \"\"\"\n  project: ProjectV2!\n\n  \"\"\"\n  The type of the item.\n  \"\"\"\n  type: ProjectV2ItemType!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe connection type for ProjectV2Item.\n\"\"\"\ntype ProjectV2ItemConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectV2ItemEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ProjectV2Item]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nTypes that can be inside Project Items.\n\"\"\"\nunion ProjectV2ItemContent = DraftIssue | Issue | PullRequest\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectV2ItemEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ProjectV2Item\n}\n\n\"\"\"\nThe value of a date field in a Project item.\n\"\"\"\ntype ProjectV2ItemFieldDateValue implements Node & ProjectV2ItemFieldValueCommon {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The actor who created the item.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  Date value for the field\n  \"\"\"\n  date: Date\n\n  \"\"\"\n  The project field that contains this value.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n\n  \"\"\"\n  The Node ID of the ProjectV2ItemFieldDateValue object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project item that contains this value.\n  \"\"\"\n  item: ProjectV2Item!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe value of an iteration field in a Project item.\n\"\"\"\ntype ProjectV2ItemFieldIterationValue implements Node & ProjectV2ItemFieldValueCommon {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The actor who created the item.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The duration of the iteration in days.\n  \"\"\"\n  duration: Int!\n\n  \"\"\"\n  The project field that contains this value.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n\n  \"\"\"\n  The Node ID of the ProjectV2ItemFieldIterationValue object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project item that contains this value.\n  \"\"\"\n  item: ProjectV2Item!\n\n  \"\"\"\n  The ID of the iteration.\n  \"\"\"\n  iterationId: String!\n\n  \"\"\"\n  The start date of the iteration.\n  \"\"\"\n  startDate: Date!\n\n  \"\"\"\n  The title of the iteration.\n  \"\"\"\n  title: String!\n\n  \"\"\"\n  The title of the iteration, with HTML.\n  \"\"\"\n  titleHTML: String!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe value of the labels field in a Project item.\n\"\"\"\ntype ProjectV2ItemFieldLabelValue {\n  \"\"\"\n  The field that contains this value.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n\n  \"\"\"\n  Labels value of a field\n  \"\"\"\n  labels(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): LabelConnection\n}\n\n\"\"\"\nThe value of a milestone field in a Project item.\n\"\"\"\ntype ProjectV2ItemFieldMilestoneValue {\n  \"\"\"\n  The field that contains this value.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n\n  \"\"\"\n  Milestone value of a field\n  \"\"\"\n  milestone: Milestone\n}\n\n\"\"\"\nThe value of a number field in a Project item.\n\"\"\"\ntype ProjectV2ItemFieldNumberValue implements Node & ProjectV2ItemFieldValueCommon {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The actor who created the item.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The project field that contains this value.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n\n  \"\"\"\n  The Node ID of the ProjectV2ItemFieldNumberValue object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project item that contains this value.\n  \"\"\"\n  item: ProjectV2Item!\n\n  \"\"\"\n  Number as a float(8)\n  \"\"\"\n  number: Float\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe value of a pull request field in a Project item.\n\"\"\"\ntype ProjectV2ItemFieldPullRequestValue {\n  \"\"\"\n  The field that contains this value.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n\n  \"\"\"\n  The pull requests for this field\n  \"\"\"\n  pullRequests(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for pull requests.\n    \"\"\"\n    orderBy: PullRequestOrder = {field: CREATED_AT, direction: ASC}\n  ): PullRequestConnection\n}\n\n\"\"\"\nThe value of a repository field in a Project item.\n\"\"\"\ntype ProjectV2ItemFieldRepositoryValue {\n  \"\"\"\n  The field that contains this value.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n\n  \"\"\"\n  The repository for this field.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nThe value of a reviewers field in a Project item.\n\"\"\"\ntype ProjectV2ItemFieldReviewerValue {\n  \"\"\"\n  The field that contains this value.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n\n  \"\"\"\n  The reviewers for this field.\n  \"\"\"\n  reviewers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): RequestedReviewerConnection\n}\n\n\"\"\"\nThe value of a single select field in a Project item.\n\"\"\"\ntype ProjectV2ItemFieldSingleSelectValue implements Node & ProjectV2ItemFieldValueCommon {\n  \"\"\"\n  The color applied to the selected single-select option.\n  \"\"\"\n  color: ProjectV2SingleSelectFieldOptionColor!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The actor who created the item.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  A plain-text description of the selected single-select option, such as what the option means.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The description of the selected single-select option, including HTML tags.\n  \"\"\"\n  descriptionHTML: String\n\n  \"\"\"\n  The project field that contains this value.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n\n  \"\"\"\n  The Node ID of the ProjectV2ItemFieldSingleSelectValue object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project item that contains this value.\n  \"\"\"\n  item: ProjectV2Item!\n\n  \"\"\"\n  The name of the selected single select option.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  The html name of the selected single select option.\n  \"\"\"\n  nameHTML: String\n\n  \"\"\"\n  The id of the selected single select option.\n  \"\"\"\n  optionId: String\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe value of a text field in a Project item.\n\"\"\"\ntype ProjectV2ItemFieldTextValue implements Node & ProjectV2ItemFieldValueCommon {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The actor who created the item.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The project field that contains this value.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n\n  \"\"\"\n  The Node ID of the ProjectV2ItemFieldTextValue object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project item that contains this value.\n  \"\"\"\n  item: ProjectV2Item!\n\n  \"\"\"\n  Text value of a field\n  \"\"\"\n  text: String\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe value of a user field in a Project item.\n\"\"\"\ntype ProjectV2ItemFieldUserValue {\n  \"\"\"\n  The field that contains this value.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n\n  \"\"\"\n  The users for this field\n  \"\"\"\n  users(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserConnection\n}\n\n\"\"\"\nProject field values\n\"\"\"\nunion ProjectV2ItemFieldValue =\n    ProjectV2ItemFieldDateValue\n  | ProjectV2ItemFieldIterationValue\n  | ProjectV2ItemFieldLabelValue\n  | ProjectV2ItemFieldMilestoneValue\n  | ProjectV2ItemFieldNumberValue\n  | ProjectV2ItemFieldPullRequestValue\n  | ProjectV2ItemFieldRepositoryValue\n  | ProjectV2ItemFieldReviewerValue\n  | ProjectV2ItemFieldSingleSelectValue\n  | ProjectV2ItemFieldTextValue\n  | ProjectV2ItemFieldUserValue\n\n\"\"\"\nCommon fields across different project field value types\n\"\"\"\ninterface ProjectV2ItemFieldValueCommon {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The actor who created the item.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The project field that contains this value.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n\n  \"\"\"\n  The Node ID of the ProjectV2ItemFieldValueCommon object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project item that contains this value.\n  \"\"\"\n  item: ProjectV2Item!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe connection type for ProjectV2ItemFieldValue.\n\"\"\"\ntype ProjectV2ItemFieldValueConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectV2ItemFieldValueEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ProjectV2ItemFieldValue]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectV2ItemFieldValueEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ProjectV2ItemFieldValue\n}\n\n\"\"\"\nOrdering options for project v2 item field value connections\n\"\"\"\ninput ProjectV2ItemFieldValueOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order the project v2 item field values by.\n  \"\"\"\n  field: ProjectV2ItemFieldValueOrderField!\n}\n\n\"\"\"\nProperties by which project v2 item field value connections can be ordered.\n\"\"\"\nenum ProjectV2ItemFieldValueOrderField {\n  \"\"\"\n  Order project v2 item field values by the their position in the project\n  \"\"\"\n  POSITION\n}\n\n\"\"\"\nOrdering options for project v2 item connections\n\"\"\"\ninput ProjectV2ItemOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order the project v2 items by.\n  \"\"\"\n  field: ProjectV2ItemOrderField!\n}\n\n\"\"\"\nProperties by which project v2 item connections can be ordered.\n\"\"\"\nenum ProjectV2ItemOrderField {\n  \"\"\"\n  Order project v2 items by the their position in the project\n  \"\"\"\n  POSITION\n}\n\n\"\"\"\nThe type of a project item.\n\"\"\"\nenum ProjectV2ItemType {\n  \"\"\"\n  Draft Issue\n  \"\"\"\n  DRAFT_ISSUE\n\n  \"\"\"\n  Issue\n  \"\"\"\n  ISSUE\n\n  \"\"\"\n  Pull Request\n  \"\"\"\n  PULL_REQUEST\n\n  \"\"\"\n  Redacted Item\n  \"\"\"\n  REDACTED\n}\n\n\"\"\"\nAn iteration field inside a project.\n\"\"\"\ntype ProjectV2IterationField implements Node & ProjectV2FieldCommon {\n  \"\"\"\n  Iteration configuration settings\n  \"\"\"\n  configuration: ProjectV2IterationFieldConfiguration!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The field's type.\n  \"\"\"\n  dataType: ProjectV2FieldType!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the ProjectV2IterationField object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project field's name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The project that contains this field.\n  \"\"\"\n  project: ProjectV2!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nIteration field configuration for a project.\n\"\"\"\ntype ProjectV2IterationFieldConfiguration {\n  \"\"\"\n  The iteration's completed iterations\n  \"\"\"\n  completedIterations: [ProjectV2IterationFieldIteration!]!\n\n  \"\"\"\n  The iteration's duration in days\n  \"\"\"\n  duration: Int!\n\n  \"\"\"\n  The iteration's iterations\n  \"\"\"\n  iterations: [ProjectV2IterationFieldIteration!]!\n\n  \"\"\"\n  The iteration's start day of the week\n  \"\"\"\n  startDay: Int!\n}\n\n\"\"\"\nIteration field iteration settings for a project.\n\"\"\"\ntype ProjectV2IterationFieldIteration {\n  \"\"\"\n  The iteration's duration in days\n  \"\"\"\n  duration: Int!\n\n  \"\"\"\n  The iteration's ID.\n  \"\"\"\n  id: String!\n\n  \"\"\"\n  The iteration's start date\n  \"\"\"\n  startDate: Date!\n\n  \"\"\"\n  The iteration's title.\n  \"\"\"\n  title: String!\n\n  \"\"\"\n  The iteration's html title.\n  \"\"\"\n  titleHTML: String!\n}\n\n\"\"\"\nWays in which lists of projects can be ordered upon return.\n\"\"\"\ninput ProjectV2Order {\n  \"\"\"\n  The direction in which to order projects by the specified field.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field in which to order projects by.\n  \"\"\"\n  field: ProjectV2OrderField!\n}\n\n\"\"\"\nProperties by which projects can be ordered.\n\"\"\"\nenum ProjectV2OrderField {\n  \"\"\"\n  The project's date and time of creation\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  The project's number\n  \"\"\"\n  NUMBER\n\n  \"\"\"\n  The project's title\n  \"\"\"\n  TITLE\n\n  \"\"\"\n  The project's date and time of update\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nRepresents an owner of a project.\n\"\"\"\ninterface ProjectV2Owner {\n  \"\"\"\n  The Node ID of the ProjectV2Owner object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Find a project by number.\n  \"\"\"\n  projectV2(\n    \"\"\"\n    The project number.\n    \"\"\"\n    number: Int!\n  ): ProjectV2\n\n  \"\"\"\n  A list of projects under the owner.\n  \"\"\"\n  projectsV2(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    How to order the returned projects.\n    \"\"\"\n    orderBy: ProjectV2Order = {field: NUMBER, direction: DESC}\n\n    \"\"\"\n    A project to search for under the the owner.\n    \"\"\"\n    query: String\n  ): ProjectV2Connection!\n}\n\n\"\"\"\nRecent projects for the owner.\n\"\"\"\ninterface ProjectV2Recent {\n  \"\"\"\n  Recent projects that this user has modified in the context of the owner.\n  \"\"\"\n  recentProjects(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectV2Connection!\n}\n\n\"\"\"\nThe possible roles of a collaborator on a project.\n\"\"\"\nenum ProjectV2Roles {\n  \"\"\"\n  The collaborator can view, edit, and maange the settings of the project\n  \"\"\"\n  ADMIN\n\n  \"\"\"\n  The collaborator has no direct access to the project\n  \"\"\"\n  NONE\n\n  \"\"\"\n  The collaborator can view the project\n  \"\"\"\n  READER\n\n  \"\"\"\n  The collaborator can view and edit the project\n  \"\"\"\n  WRITER\n}\n\n\"\"\"\nA single select field inside a project.\n\"\"\"\ntype ProjectV2SingleSelectField implements Node & ProjectV2FieldCommon {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The field's type.\n  \"\"\"\n  dataType: ProjectV2FieldType!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the ProjectV2SingleSelectField object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project field's name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  Options for the single select field\n  \"\"\"\n  options(\n    \"\"\"\n    Filter returned options to only those matching these names, case insensitive.\n    \"\"\"\n    names: [String!]\n  ): [ProjectV2SingleSelectFieldOption!]!\n\n  \"\"\"\n  The project that contains this field.\n  \"\"\"\n  project: ProjectV2!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nSingle select field option for a configuration for a project.\n\"\"\"\ntype ProjectV2SingleSelectFieldOption {\n  \"\"\"\n  The option's display color.\n  \"\"\"\n  color: ProjectV2SingleSelectFieldOptionColor!\n\n  \"\"\"\n  The option's plain-text description.\n  \"\"\"\n  description: String!\n\n  \"\"\"\n  The option's description, possibly containing HTML.\n  \"\"\"\n  descriptionHTML: String!\n\n  \"\"\"\n  The option's ID.\n  \"\"\"\n  id: String!\n\n  \"\"\"\n  The option's name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The option's html name.\n  \"\"\"\n  nameHTML: String!\n}\n\n\"\"\"\nThe display color of a single-select field option.\n\"\"\"\nenum ProjectV2SingleSelectFieldOptionColor {\n  \"\"\"\n  BLUE\n  \"\"\"\n  BLUE\n\n  \"\"\"\n  GRAY\n  \"\"\"\n  GRAY\n\n  \"\"\"\n  GREEN\n  \"\"\"\n  GREEN\n\n  \"\"\"\n  ORANGE\n  \"\"\"\n  ORANGE\n\n  \"\"\"\n  PINK\n  \"\"\"\n  PINK\n\n  \"\"\"\n  PURPLE\n  \"\"\"\n  PURPLE\n\n  \"\"\"\n  RED\n  \"\"\"\n  RED\n\n  \"\"\"\n  YELLOW\n  \"\"\"\n  YELLOW\n}\n\n\"\"\"\nRepresents a single select field option\n\"\"\"\ninput ProjectV2SingleSelectFieldOptionInput {\n  \"\"\"\n  The display color of the option\n  \"\"\"\n  color: ProjectV2SingleSelectFieldOptionColor!\n\n  \"\"\"\n  The description text of the option\n  \"\"\"\n  description: String!\n\n  \"\"\"\n  The name of the option\n  \"\"\"\n  name: String!\n}\n\n\"\"\"\nRepresents a sort by field and direction.\n\"\"\"\ntype ProjectV2SortBy {\n  \"\"\"\n  The direction of the sorting. Possible values are ASC and DESC.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field by which items are sorted.\n  \"\"\"\n  field: ProjectV2Field!\n}\n\n\"\"\"\nThe connection type for ProjectV2SortBy.\n\"\"\"\ntype ProjectV2SortByConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectV2SortByEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ProjectV2SortBy]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectV2SortByEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ProjectV2SortBy\n}\n\n\"\"\"\nRepresents a sort by field and direction.\n\"\"\"\ntype ProjectV2SortByField {\n  \"\"\"\n  The direction of the sorting. Possible values are ASC and DESC.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field by which items are sorted.\n  \"\"\"\n  field: ProjectV2FieldConfiguration!\n}\n\n\"\"\"\nThe connection type for ProjectV2SortByField.\n\"\"\"\ntype ProjectV2SortByFieldConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectV2SortByFieldEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ProjectV2SortByField]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectV2SortByFieldEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ProjectV2SortByField\n}\n\n\"\"\"\nThe possible states of a project v2.\n\"\"\"\nenum ProjectV2State {\n  \"\"\"\n  A project v2 that has been closed\n  \"\"\"\n  CLOSED\n\n  \"\"\"\n  A project v2 that is still open\n  \"\"\"\n  OPEN\n}\n\n\"\"\"\nA view within a ProjectV2.\n\"\"\"\ntype ProjectV2View implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The view's visible fields.\n  \"\"\"\n  fields(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the project v2 fields returned from the connection.\n    \"\"\"\n    orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC}\n  ): ProjectV2FieldConfigurationConnection\n\n  \"\"\"\n  The project view's filter.\n  \"\"\"\n  filter: String\n\n  \"\"\"\n  The view's group-by field.\n  \"\"\"\n  groupBy(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the project v2 fields returned from the connection.\n    \"\"\"\n    orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC}\n  ): ProjectV2FieldConnection\n    @deprecated(\n      reason: \"The `ProjectV2View#order_by` API is deprecated in favour of the more capable `ProjectV2View#group_by_field` API. Check out the `ProjectV2View#group_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC.\"\n    )\n\n  \"\"\"\n  The view's group-by field.\n  \"\"\"\n  groupByFields(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the project v2 fields returned from the connection.\n    \"\"\"\n    orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC}\n  ): ProjectV2FieldConfigurationConnection\n\n  \"\"\"\n  The Node ID of the ProjectV2View object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The project view's layout.\n  \"\"\"\n  layout: ProjectV2ViewLayout!\n\n  \"\"\"\n  The project view's name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The project view's number.\n  \"\"\"\n  number: Int!\n\n  \"\"\"\n  The project that contains this view.\n  \"\"\"\n  project: ProjectV2!\n\n  \"\"\"\n  The view's sort-by config.\n  \"\"\"\n  sortBy(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectV2SortByConnection\n    @deprecated(\n      reason: \"The `ProjectV2View#sort_by` API is deprecated in favour of the more capable `ProjectV2View#sort_by_fields` API. Check out the `ProjectV2View#sort_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC.\"\n    )\n\n  \"\"\"\n  The view's sort-by config.\n  \"\"\"\n  sortByFields(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectV2SortByFieldConnection\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The view's vertical-group-by field.\n  \"\"\"\n  verticalGroupBy(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the project v2 fields returned from the connection.\n    \"\"\"\n    orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC}\n  ): ProjectV2FieldConnection\n    @deprecated(\n      reason: \"The `ProjectV2View#vertical_group_by` API is deprecated in favour of the more capable `ProjectV2View#vertical_group_by_fields` API. Check out the `ProjectV2View#vertical_group_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC.\"\n    )\n\n  \"\"\"\n  The view's vertical-group-by field.\n  \"\"\"\n  verticalGroupByFields(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the project v2 fields returned from the connection.\n    \"\"\"\n    orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC}\n  ): ProjectV2FieldConfigurationConnection\n\n  \"\"\"\n  The view's visible fields.\n  \"\"\"\n  visibleFields(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the project v2 fields returned from the connection.\n    \"\"\"\n    orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC}\n  ): ProjectV2FieldConnection\n    @deprecated(\n      reason: \"The `ProjectV2View#visibleFields` API is deprecated in favour of the more capable `ProjectV2View#fields` API. Check out the `ProjectV2View#fields` API as an example for the more capable alternative. Removal on 2023-01-01 UTC.\"\n    )\n}\n\n\"\"\"\nThe connection type for ProjectV2View.\n\"\"\"\ntype ProjectV2ViewConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectV2ViewEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ProjectV2View]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectV2ViewEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ProjectV2View\n}\n\n\"\"\"\nThe layout of a project v2 view.\n\"\"\"\nenum ProjectV2ViewLayout {\n  \"\"\"\n  Board layout\n  \"\"\"\n  BOARD_LAYOUT\n\n  \"\"\"\n  Roadmap layout\n  \"\"\"\n  ROADMAP_LAYOUT\n\n  \"\"\"\n  Table layout\n  \"\"\"\n  TABLE_LAYOUT\n}\n\n\"\"\"\nOrdering options for project v2 view connections\n\"\"\"\ninput ProjectV2ViewOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order the project v2 views by.\n  \"\"\"\n  field: ProjectV2ViewOrderField!\n}\n\n\"\"\"\nProperties by which project v2 view connections can be ordered.\n\"\"\"\nenum ProjectV2ViewOrderField {\n  \"\"\"\n  Order project v2 views by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order project v2 views by name\n  \"\"\"\n  NAME\n\n  \"\"\"\n  Order project v2 views by position\n  \"\"\"\n  POSITION\n}\n\n\"\"\"\nA workflow inside a project.\n\"\"\"\ntype ProjectV2Workflow implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  Whether the workflow is enabled.\n  \"\"\"\n  enabled: Boolean!\n\n  \"\"\"\n  The Node ID of the ProjectV2Workflow object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The name of the workflow.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The number of the workflow.\n  \"\"\"\n  number: Int!\n\n  \"\"\"\n  The project that contains this workflow.\n  \"\"\"\n  project: ProjectV2!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe connection type for ProjectV2Workflow.\n\"\"\"\ntype ProjectV2WorkflowConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ProjectV2WorkflowEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ProjectV2Workflow]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ProjectV2WorkflowEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ProjectV2Workflow\n}\n\n\"\"\"\nOrdering options for project v2 workflows connections\n\"\"\"\ninput ProjectV2WorkflowOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order the project v2 workflows by.\n  \"\"\"\n  field: ProjectV2WorkflowsOrderField!\n}\n\n\"\"\"\nProperties by which project workflows can be ordered.\n\"\"\"\nenum ProjectV2WorkflowsOrderField {\n  \"\"\"\n  The date and time of the workflow creation\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  The name of the workflow\n  \"\"\"\n  NAME\n\n  \"\"\"\n  The number of the workflow\n  \"\"\"\n  NUMBER\n\n  \"\"\"\n  The date and time of the workflow update\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nA user's public key.\n\"\"\"\ntype PublicKey implements Node {\n  \"\"\"\n  The last time this authorization was used to perform an action. Values will be null for keys not owned by the user.\n  \"\"\"\n  accessedAt: DateTime\n\n  \"\"\"\n  Identifies the date and time when the key was created. Keys created before\n  March 5th, 2014 have inaccurate values. Values will be null for keys not owned by the user.\n  \"\"\"\n  createdAt: DateTime\n\n  \"\"\"\n  The fingerprint for this PublicKey.\n  \"\"\"\n  fingerprint: String!\n\n  \"\"\"\n  The Node ID of the PublicKey object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether this PublicKey is read-only or not. Values will be null for keys not owned by the user.\n  \"\"\"\n  isReadOnly: Boolean\n\n  \"\"\"\n  The public key string.\n  \"\"\"\n  key: String!\n\n  \"\"\"\n  Identifies the date and time when the key was updated. Keys created before\n  March 5th, 2014 may have inaccurate values. Values will be null for keys not\n  owned by the user.\n  \"\"\"\n  updatedAt: DateTime\n}\n\n\"\"\"\nThe connection type for PublicKey.\n\"\"\"\ntype PublicKeyConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PublicKeyEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PublicKey]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PublicKeyEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PublicKey\n}\n\n\"\"\"\nAutogenerated input type of PublishSponsorsTier\n\"\"\"\ninput PublishSponsorsTierInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the draft tier to publish.\n  \"\"\"\n  tierId: ID! @possibleTypes(concreteTypes: [\"SponsorsTier\"])\n}\n\n\"\"\"\nAutogenerated return type of PublishSponsorsTier\n\"\"\"\ntype PublishSponsorsTierPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The tier that was published.\n  \"\"\"\n  sponsorsTier: SponsorsTier\n}\n\n\"\"\"\nA repository pull request.\n\"\"\"\ntype PullRequest implements Assignable & Closable & Comment & Labelable & Lockable & Node & ProjectV2Owner & Reactable & RepositoryNode & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment {\n  \"\"\"\n  Reason that the conversation was locked.\n  \"\"\"\n  activeLockReason: LockReason\n\n  \"\"\"\n  The number of additions in this pull request.\n  \"\"\"\n  additions: Int!\n\n  \"\"\"\n  A list of Users assigned to this object.\n  \"\"\"\n  assignees(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserConnection!\n\n  \"\"\"\n  The actor who authored the comment.\n  \"\"\"\n  author: Actor\n\n  \"\"\"\n  Author's association with the subject of the comment.\n  \"\"\"\n  authorAssociation: CommentAuthorAssociation!\n\n  \"\"\"\n  Returns the auto-merge request object if one exists for this pull request.\n  \"\"\"\n  autoMergeRequest: AutoMergeRequest\n\n  \"\"\"\n  Identifies the base Ref associated with the pull request.\n  \"\"\"\n  baseRef: Ref\n\n  \"\"\"\n  Identifies the name of the base Ref associated with the pull request, even if the ref has been deleted.\n  \"\"\"\n  baseRefName: String!\n\n  \"\"\"\n  Identifies the oid of the base ref associated with the pull request, even if the ref has been deleted.\n  \"\"\"\n  baseRefOid: GitObjectID!\n\n  \"\"\"\n  The repository associated with this pull request's base Ref.\n  \"\"\"\n  baseRepository: Repository\n\n  \"\"\"\n  The body as Markdown.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The body rendered to text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  Whether or not the pull request is rebaseable.\n  \"\"\"\n  canBeRebased: Boolean! @preview(toggledBy: \"merge-info-preview\")\n\n  \"\"\"\n  The number of changed files in this pull request.\n  \"\"\"\n  changedFiles: Int!\n\n  \"\"\"\n  The HTTP path for the checks of this pull request.\n  \"\"\"\n  checksResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for the checks of this pull request.\n  \"\"\"\n  checksUrl: URI!\n\n  \"\"\"\n  `true` if the pull request is closed\n  \"\"\"\n  closed: Boolean!\n\n  \"\"\"\n  Identifies the date and time when the object was closed.\n  \"\"\"\n  closedAt: DateTime\n\n  \"\"\"\n  List of issues that were may be closed by this pull request\n  \"\"\"\n  closingIssuesReferences(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for issues returned from the connection\n    \"\"\"\n    orderBy: IssueOrder\n\n    \"\"\"\n    Return only manually linked Issues\n    \"\"\"\n    userLinkedOnly: Boolean = false\n  ): IssueConnection\n\n  \"\"\"\n  A list of comments associated with the pull request.\n  \"\"\"\n  comments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for issue comments returned from the connection.\n    \"\"\"\n    orderBy: IssueCommentOrder\n  ): IssueCommentConnection!\n\n  \"\"\"\n  A list of commits present in this pull request's head branch not present in the base branch.\n  \"\"\"\n  commits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): PullRequestCommitConnection!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Check if this comment was created via an email reply.\n  \"\"\"\n  createdViaEmail: Boolean!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The number of deletions in this pull request.\n  \"\"\"\n  deletions: Int!\n\n  \"\"\"\n  The actor who edited this pull request's body.\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  Lists the files changed within this pull request.\n  \"\"\"\n  files(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): PullRequestChangedFileConnection\n\n  \"\"\"\n  Identifies the head Ref associated with the pull request.\n  \"\"\"\n  headRef: Ref\n\n  \"\"\"\n  Identifies the name of the head Ref associated with the pull request, even if the ref has been deleted.\n  \"\"\"\n  headRefName: String!\n\n  \"\"\"\n  Identifies the oid of the head ref associated with the pull request, even if the ref has been deleted.\n  \"\"\"\n  headRefOid: GitObjectID!\n\n  \"\"\"\n  The repository associated with this pull request's head Ref.\n  \"\"\"\n  headRepository: Repository\n\n  \"\"\"\n  The owner of the repository associated with this pull request's head Ref.\n  \"\"\"\n  headRepositoryOwner: RepositoryOwner\n\n  \"\"\"\n  The hovercard information for this issue\n  \"\"\"\n  hovercard(\n    \"\"\"\n    Whether or not to include notification contexts\n    \"\"\"\n    includeNotificationContexts: Boolean = true\n  ): Hovercard!\n\n  \"\"\"\n  The Node ID of the PullRequest object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if this comment was edited and includes an edit with the creation data\n  \"\"\"\n  includesCreatedEdit: Boolean!\n\n  \"\"\"\n  The head and base repositories are different.\n  \"\"\"\n  isCrossRepository: Boolean!\n\n  \"\"\"\n  Identifies if the pull request is a draft.\n  \"\"\"\n  isDraft: Boolean!\n\n  \"\"\"\n  Is this pull request read by the viewer\n  \"\"\"\n  isReadByViewer: Boolean\n\n  \"\"\"\n  A list of labels associated with the object.\n  \"\"\"\n  labels(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for labels returned from the connection.\n    \"\"\"\n    orderBy: LabelOrder = {field: CREATED_AT, direction: ASC}\n  ): LabelConnection\n\n  \"\"\"\n  The moment the editor made the last edit\n  \"\"\"\n  lastEditedAt: DateTime\n\n  \"\"\"\n  A list of latest reviews per user associated with the pull request.\n  \"\"\"\n  latestOpinionatedReviews(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Only return reviews from user who have write access to the repository\n    \"\"\"\n    writersOnly: Boolean = false\n  ): PullRequestReviewConnection\n\n  \"\"\"\n  A list of latest reviews per user associated with the pull request that are not also pending review.\n  \"\"\"\n  latestReviews(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): PullRequestReviewConnection\n\n  \"\"\"\n  `true` if the pull request is locked\n  \"\"\"\n  locked: Boolean!\n\n  \"\"\"\n  Indicates whether maintainers can modify the pull request.\n  \"\"\"\n  maintainerCanModify: Boolean!\n\n  \"\"\"\n  The commit that was created when this pull request was merged.\n  \"\"\"\n  mergeCommit: Commit\n\n  \"\"\"\n  The merge queue entry of the pull request in the base branch's merge queue\n  \"\"\"\n  mergeQueueEntry: MergeQueueEntry\n\n  \"\"\"\n  Detailed information about the current pull request merge state status.\n  \"\"\"\n  mergeStateStatus: MergeStateStatus! @preview(toggledBy: \"merge-info-preview\")\n\n  \"\"\"\n  Whether or not the pull request can be merged based on the existence of merge conflicts.\n  \"\"\"\n  mergeable: MergeableState!\n\n  \"\"\"\n  Whether or not the pull request was merged.\n  \"\"\"\n  merged: Boolean!\n\n  \"\"\"\n  The date and time that the pull request was merged.\n  \"\"\"\n  mergedAt: DateTime\n\n  \"\"\"\n  The actor who merged the pull request.\n  \"\"\"\n  mergedBy: Actor\n\n  \"\"\"\n  Identifies the milestone associated with the pull request.\n  \"\"\"\n  milestone: Milestone\n\n  \"\"\"\n  Identifies the pull request number.\n  \"\"\"\n  number: Int!\n\n  \"\"\"\n  A list of Users that are participating in the Pull Request conversation.\n  \"\"\"\n  participants(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserConnection!\n\n  \"\"\"\n  The permalink to the pull request.\n  \"\"\"\n  permalink: URI!\n\n  \"\"\"\n  The commit that GitHub automatically generated to test if this pull request\n  could be merged. This field will not return a value if the pull request is\n  merged, or if the test merge commit is still being generated. See the\n  `mergeable` field for more details on the mergeability of the pull request.\n  \"\"\"\n  potentialMergeCommit: Commit\n\n  \"\"\"\n  List of project cards associated with this pull request.\n  \"\"\"\n  projectCards(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    A list of archived states to filter the cards by\n    \"\"\"\n    archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED]\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectCardConnection!\n\n  \"\"\"\n  List of project items associated with this pull request.\n  \"\"\"\n  projectItems(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Include archived items.\n    \"\"\"\n    includeArchived: Boolean = true\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectV2ItemConnection!\n\n  \"\"\"\n  Find a project by number.\n  \"\"\"\n  projectV2(\n    \"\"\"\n    The project number.\n    \"\"\"\n    number: Int!\n  ): ProjectV2\n\n  \"\"\"\n  A list of projects under the owner.\n  \"\"\"\n  projectsV2(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    How to order the returned projects.\n    \"\"\"\n    orderBy: ProjectV2Order = {field: NUMBER, direction: DESC}\n\n    \"\"\"\n    A project to search for under the the owner.\n    \"\"\"\n    query: String\n  ): ProjectV2Connection!\n\n  \"\"\"\n  Identifies when the comment was published at.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  A list of reactions grouped by content left on the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  A list of Reactions left on the Issue.\n  \"\"\"\n  reactions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Allows filtering Reactions by emoji.\n    \"\"\"\n    content: ReactionContent\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows specifying the order in which reactions are returned.\n    \"\"\"\n    orderBy: ReactionOrder\n  ): ReactionConnection!\n\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for this pull request.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP path for reverting this pull request.\n  \"\"\"\n  revertResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for reverting this pull request.\n  \"\"\"\n  revertUrl: URI!\n\n  \"\"\"\n  The current status of this pull request with respect to code review.\n  \"\"\"\n  reviewDecision: PullRequestReviewDecision\n\n  \"\"\"\n  A list of review requests associated with the pull request.\n  \"\"\"\n  reviewRequests(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ReviewRequestConnection\n\n  \"\"\"\n  The list of all review threads for this pull request.\n  \"\"\"\n  reviewThreads(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): PullRequestReviewThreadConnection!\n\n  \"\"\"\n  A list of reviews associated with the pull request.\n  \"\"\"\n  reviews(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Filter by author of the review.\n    \"\"\"\n    author: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    A list of states to filter the reviews.\n    \"\"\"\n    states: [PullRequestReviewState!]\n  ): PullRequestReviewConnection\n\n  \"\"\"\n  Identifies the state of the pull request.\n  \"\"\"\n  state: PullRequestState!\n\n  \"\"\"\n  A list of reviewer suggestions based on commit history and past review comments.\n  \"\"\"\n  suggestedReviewers: [SuggestedReviewer]!\n\n  \"\"\"\n  A list of events, comments, commits, etc. associated with the pull request.\n  \"\"\"\n  timeline(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows filtering timeline events by a `since` timestamp.\n    \"\"\"\n    since: DateTime\n  ): PullRequestTimelineConnection!\n    @deprecated(reason: \"`timeline` will be removed Use PullRequest.timelineItems instead. Removal on 2020-10-01 UTC.\")\n\n  \"\"\"\n  A list of events, comments, commits, etc. associated with the pull request.\n  \"\"\"\n  timelineItems(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Filter timeline items by type.\n    \"\"\"\n    itemTypes: [PullRequestTimelineItemsItemType!]\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter timeline items by a `since` timestamp.\n    \"\"\"\n    since: DateTime\n\n    \"\"\"\n    Skips the first _n_ elements in the list.\n    \"\"\"\n    skip: Int\n  ): PullRequestTimelineItemsConnection!\n\n  \"\"\"\n  Identifies the pull request title.\n  \"\"\"\n  title: String!\n\n  \"\"\"\n  Identifies the pull request title rendered to HTML.\n  \"\"\"\n  titleHTML: HTML!\n\n  \"\"\"\n  Returns a count of how many comments this pull request has received.\n  \"\"\"\n  totalCommentsCount: Int\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this pull request.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  A list of edits to this content.\n  \"\"\"\n  userContentEdits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserContentEditConnection\n\n  \"\"\"\n  Whether or not the viewer can apply suggestion.\n  \"\"\"\n  viewerCanApplySuggestion: Boolean!\n\n  \"\"\"\n  Indicates if the object can be closed by the viewer.\n  \"\"\"\n  viewerCanClose: Boolean!\n\n  \"\"\"\n  Check if the viewer can restore the deleted head ref.\n  \"\"\"\n  viewerCanDeleteHeadRef: Boolean!\n\n  \"\"\"\n  Whether or not the viewer can disable auto-merge\n  \"\"\"\n  viewerCanDisableAutoMerge: Boolean!\n\n  \"\"\"\n  Can the viewer edit files within this pull request.\n  \"\"\"\n  viewerCanEditFiles: Boolean!\n\n  \"\"\"\n  Whether or not the viewer can enable auto-merge\n  \"\"\"\n  viewerCanEnableAutoMerge: Boolean!\n\n  \"\"\"\n  Indicates whether the viewer can bypass branch protections and merge the pull request immediately\n  \"\"\"\n  viewerCanMergeAsAdmin: Boolean!\n\n  \"\"\"\n  Can user react to this subject\n  \"\"\"\n  viewerCanReact: Boolean!\n\n  \"\"\"\n  Indicates if the object can be reopened by the viewer.\n  \"\"\"\n  viewerCanReopen: Boolean!\n\n  \"\"\"\n  Check if the viewer is able to change their subscription status for the repository.\n  \"\"\"\n  viewerCanSubscribe: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n\n  \"\"\"\n  Whether or not the viewer can update the head ref of this PR, by merging or rebasing the base ref.\n  If the head ref is up to date or unable to be updated by this user, this will return false.\n  \"\"\"\n  viewerCanUpdateBranch: Boolean!\n\n  \"\"\"\n  Reasons why the current viewer can not update this comment.\n  \"\"\"\n  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!\n\n  \"\"\"\n  Did the viewer author this comment.\n  \"\"\"\n  viewerDidAuthor: Boolean!\n\n  \"\"\"\n  The latest review given from the viewer.\n  \"\"\"\n  viewerLatestReview: PullRequestReview\n\n  \"\"\"\n  The person who has requested the viewer for review on this pull request.\n  \"\"\"\n  viewerLatestReviewRequest: ReviewRequest\n\n  \"\"\"\n  The merge body text for the viewer and method.\n  \"\"\"\n  viewerMergeBodyText(\n    \"\"\"\n    The merge method for the message.\n    \"\"\"\n    mergeType: PullRequestMergeMethod\n  ): String!\n\n  \"\"\"\n  The merge headline text for the viewer and method.\n  \"\"\"\n  viewerMergeHeadlineText(\n    \"\"\"\n    The merge method for the message.\n    \"\"\"\n    mergeType: PullRequestMergeMethod\n  ): String!\n\n  \"\"\"\n  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.\n  \"\"\"\n  viewerSubscription: SubscriptionState\n}\n\n\"\"\"\nThe possible methods for updating a pull request's head branch with the base branch.\n\"\"\"\nenum PullRequestBranchUpdateMethod {\n  \"\"\"\n  Update branch via merge\n  \"\"\"\n  MERGE\n\n  \"\"\"\n  Update branch via rebase\n  \"\"\"\n  REBASE\n}\n\n\"\"\"\nA file changed in a pull request.\n\"\"\"\ntype PullRequestChangedFile {\n  \"\"\"\n  The number of additions to the file.\n  \"\"\"\n  additions: Int!\n\n  \"\"\"\n  How the file was changed in this PullRequest\n  \"\"\"\n  changeType: PatchStatus!\n\n  \"\"\"\n  The number of deletions to the file.\n  \"\"\"\n  deletions: Int!\n\n  \"\"\"\n  The path of the file.\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  The state of the file for the viewer.\n  \"\"\"\n  viewerViewedState: FileViewedState!\n}\n\n\"\"\"\nThe connection type for PullRequestChangedFile.\n\"\"\"\ntype PullRequestChangedFileConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PullRequestChangedFileEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PullRequestChangedFile]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PullRequestChangedFileEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PullRequestChangedFile\n}\n\n\"\"\"\nRepresents a Git commit part of a pull request.\n\"\"\"\ntype PullRequestCommit implements Node & UniformResourceLocatable {\n  \"\"\"\n  The Git commit object\n  \"\"\"\n  commit: Commit!\n\n  \"\"\"\n  The Node ID of the PullRequestCommit object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The pull request this commit belongs to\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  The HTTP path for this pull request commit\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this pull request commit\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nRepresents a commit comment thread part of a pull request.\n\"\"\"\ntype PullRequestCommitCommentThread implements Node & RepositoryNode {\n  \"\"\"\n  The comments that exist in this thread.\n  \"\"\"\n  comments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): CommitCommentConnection!\n\n  \"\"\"\n  The commit the comments were made on.\n  \"\"\"\n  commit: Commit!\n\n  \"\"\"\n  The Node ID of the PullRequestCommitCommentThread object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The file the comments were made on.\n  \"\"\"\n  path: String\n\n  \"\"\"\n  The position in the diff for the commit that the comment was made on.\n  \"\"\"\n  position: Int\n\n  \"\"\"\n  The pull request this commit comment thread belongs to\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nThe connection type for PullRequestCommit.\n\"\"\"\ntype PullRequestCommitConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PullRequestCommitEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PullRequestCommit]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PullRequestCommitEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PullRequestCommit\n}\n\n\"\"\"\nThe connection type for PullRequest.\n\"\"\"\ntype PullRequestConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PullRequestEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PullRequest]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nThis aggregates pull requests opened by a user within one repository.\n\"\"\"\ntype PullRequestContributionsByRepository {\n  \"\"\"\n  The pull request contributions.\n  \"\"\"\n  contributions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for contributions returned from the connection.\n    \"\"\"\n    orderBy: ContributionOrder = {direction: DESC}\n  ): CreatedPullRequestContributionConnection!\n\n  \"\"\"\n  The repository in which the pull requests were opened.\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PullRequestEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PullRequest\n}\n\n\"\"\"\nRepresents available types of methods to use when merging a pull request.\n\"\"\"\nenum PullRequestMergeMethod {\n  \"\"\"\n  Add all commits from the head branch to the base branch with a merge commit.\n  \"\"\"\n  MERGE\n\n  \"\"\"\n  Add all commits from the head branch onto the base branch individually.\n  \"\"\"\n  REBASE\n\n  \"\"\"\n  Combine all commits from the head branch into a single commit in the base branch.\n  \"\"\"\n  SQUASH\n}\n\n\"\"\"\nWays in which lists of issues can be ordered upon return.\n\"\"\"\ninput PullRequestOrder {\n  \"\"\"\n  The direction in which to order pull requests by the specified field.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field in which to order pull requests by.\n  \"\"\"\n  field: PullRequestOrderField!\n}\n\n\"\"\"\nProperties by which pull_requests connections can be ordered.\n\"\"\"\nenum PullRequestOrderField {\n  \"\"\"\n  Order pull_requests by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order pull_requests by update time\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nRequire all commits be made to a non-target branch and submitted via a pull request before they can be merged.\n\"\"\"\ntype PullRequestParameters {\n  \"\"\"\n  New, reviewable commits pushed will dismiss previous pull request review approvals.\n  \"\"\"\n  dismissStaleReviewsOnPush: Boolean!\n\n  \"\"\"\n  Require an approving review in pull requests that modify files that have a designated code owner.\n  \"\"\"\n  requireCodeOwnerReview: Boolean!\n\n  \"\"\"\n  Whether the most recent reviewable push must be approved by someone other than the person who pushed it.\n  \"\"\"\n  requireLastPushApproval: Boolean!\n\n  \"\"\"\n  The number of approving reviews that are required before a pull request can be merged.\n  \"\"\"\n  requiredApprovingReviewCount: Int!\n\n  \"\"\"\n  All conversations on code must be resolved before a pull request can be merged.\n  \"\"\"\n  requiredReviewThreadResolution: Boolean!\n}\n\n\"\"\"\nRequire all commits be made to a non-target branch and submitted via a pull request before they can be merged.\n\"\"\"\ninput PullRequestParametersInput {\n  \"\"\"\n  New, reviewable commits pushed will dismiss previous pull request review approvals.\n  \"\"\"\n  dismissStaleReviewsOnPush: Boolean!\n\n  \"\"\"\n  Require an approving review in pull requests that modify files that have a designated code owner.\n  \"\"\"\n  requireCodeOwnerReview: Boolean!\n\n  \"\"\"\n  Whether the most recent reviewable push must be approved by someone other than the person who pushed it.\n  \"\"\"\n  requireLastPushApproval: Boolean!\n\n  \"\"\"\n  The number of approving reviews that are required before a pull request can be merged.\n  \"\"\"\n  requiredApprovingReviewCount: Int!\n\n  \"\"\"\n  All conversations on code must be resolved before a pull request can be merged.\n  \"\"\"\n  requiredReviewThreadResolution: Boolean!\n}\n\n\"\"\"\nA review object for a given pull request.\n\"\"\"\ntype PullRequestReview implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment {\n  \"\"\"\n  The actor who authored the comment.\n  \"\"\"\n  author: Actor\n\n  \"\"\"\n  Author's association with the subject of the comment.\n  \"\"\"\n  authorAssociation: CommentAuthorAssociation!\n\n  \"\"\"\n  Indicates whether the author of this review has push access to the repository.\n  \"\"\"\n  authorCanPushToRepository: Boolean!\n\n  \"\"\"\n  Identifies the pull request review body.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The body of this review rendered as plain text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  A list of review comments for the current pull request review.\n  \"\"\"\n  comments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): PullRequestReviewCommentConnection!\n\n  \"\"\"\n  Identifies the commit associated with this pull request review.\n  \"\"\"\n  commit: Commit\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Check if this comment was created via an email reply.\n  \"\"\"\n  createdViaEmail: Boolean!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The actor who edited the comment.\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  The Node ID of the PullRequestReview object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if this comment was edited and includes an edit with the creation data\n  \"\"\"\n  includesCreatedEdit: Boolean!\n\n  \"\"\"\n  Returns whether or not a comment has been minimized.\n  \"\"\"\n  isMinimized: Boolean!\n\n  \"\"\"\n  The moment the editor made the last edit\n  \"\"\"\n  lastEditedAt: DateTime\n\n  \"\"\"\n  Returns why the comment was minimized. One of `abuse`, `off-topic`,\n  `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and\n  formatting of these values differs from the inputs to the `MinimizeComment` mutation.\n  \"\"\"\n  minimizedReason: String\n\n  \"\"\"\n  A list of teams that this review was made on behalf of.\n  \"\"\"\n  onBehalfOf(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): TeamConnection!\n\n  \"\"\"\n  Identifies when the comment was published at.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  Identifies the pull request associated with this pull request review.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  A list of reactions grouped by content left on the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  A list of Reactions left on the Issue.\n  \"\"\"\n  reactions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Allows filtering Reactions by emoji.\n    \"\"\"\n    content: ReactionContent\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows specifying the order in which reactions are returned.\n    \"\"\"\n    orderBy: ReactionOrder\n  ): ReactionConnection!\n\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path permalink for this PullRequestReview.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the current state of the pull request review.\n  \"\"\"\n  state: PullRequestReviewState!\n\n  \"\"\"\n  Identifies when the Pull Request Review was submitted\n  \"\"\"\n  submittedAt: DateTime\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL permalink for this PullRequestReview.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  A list of edits to this content.\n  \"\"\"\n  userContentEdits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserContentEditConnection\n\n  \"\"\"\n  Check if the current viewer can delete this object.\n  \"\"\"\n  viewerCanDelete: Boolean!\n\n  \"\"\"\n  Check if the current viewer can minimize this object.\n  \"\"\"\n  viewerCanMinimize: Boolean!\n\n  \"\"\"\n  Can user react to this subject\n  \"\"\"\n  viewerCanReact: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n\n  \"\"\"\n  Reasons why the current viewer can not update this comment.\n  \"\"\"\n  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!\n\n  \"\"\"\n  Did the viewer author this comment.\n  \"\"\"\n  viewerDidAuthor: Boolean!\n}\n\n\"\"\"\nA review comment associated with a given repository pull request.\n\"\"\"\ntype PullRequestReviewComment implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment {\n  \"\"\"\n  The actor who authored the comment.\n  \"\"\"\n  author: Actor\n\n  \"\"\"\n  Author's association with the subject of the comment.\n  \"\"\"\n  authorAssociation: CommentAuthorAssociation!\n\n  \"\"\"\n  The comment body of this review comment.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The comment body of this review comment rendered as plain text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  Identifies the commit associated with the comment.\n  \"\"\"\n  commit: Commit\n\n  \"\"\"\n  Identifies when the comment was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Check if this comment was created via an email reply.\n  \"\"\"\n  createdViaEmail: Boolean!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The diff hunk to which the comment applies.\n  \"\"\"\n  diffHunk: String!\n\n  \"\"\"\n  Identifies when the comment was created in a draft state.\n  \"\"\"\n  draftedAt: DateTime!\n\n  \"\"\"\n  The actor who edited the comment.\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  The Node ID of the PullRequestReviewComment object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if this comment was edited and includes an edit with the creation data\n  \"\"\"\n  includesCreatedEdit: Boolean!\n\n  \"\"\"\n  Returns whether or not a comment has been minimized.\n  \"\"\"\n  isMinimized: Boolean!\n\n  \"\"\"\n  The moment the editor made the last edit\n  \"\"\"\n  lastEditedAt: DateTime\n\n  \"\"\"\n  The end line number on the file to which the comment applies\n  \"\"\"\n  line: Int\n\n  \"\"\"\n  Returns why the comment was minimized. One of `abuse`, `off-topic`,\n  `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and\n  formatting of these values differs from the inputs to the `MinimizeComment` mutation.\n  \"\"\"\n  minimizedReason: String\n\n  \"\"\"\n  Identifies the original commit associated with the comment.\n  \"\"\"\n  originalCommit: Commit\n\n  \"\"\"\n  The end line number on the file to which the comment applied when it was first created\n  \"\"\"\n  originalLine: Int\n\n  \"\"\"\n  The original line index in the diff to which the comment applies.\n  \"\"\"\n  originalPosition: Int!\n    @deprecated(reason: \"We are phasing out diff-relative positioning for PR comments Removal on 2023-10-01 UTC.\")\n\n  \"\"\"\n  The start line number on the file to which the comment applied when it was first created\n  \"\"\"\n  originalStartLine: Int\n\n  \"\"\"\n  Identifies when the comment body is outdated\n  \"\"\"\n  outdated: Boolean!\n\n  \"\"\"\n  The path to which the comment applies.\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  The line index in the diff to which the comment applies.\n  \"\"\"\n  position: Int\n    @deprecated(\n      reason: \"We are phasing out diff-relative positioning for PR comments Use the `line` and `startLine` fields instead, which are file line numbers instead of diff line numbers Removal on 2023-10-01 UTC.\"\n    )\n\n  \"\"\"\n  Identifies when the comment was published at.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  The pull request associated with this review comment.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  The pull request review associated with this review comment.\n  \"\"\"\n  pullRequestReview: PullRequestReview\n\n  \"\"\"\n  A list of reactions grouped by content left on the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  A list of Reactions left on the Issue.\n  \"\"\"\n  reactions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Allows filtering Reactions by emoji.\n    \"\"\"\n    content: ReactionContent\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows specifying the order in which reactions are returned.\n    \"\"\"\n    orderBy: ReactionOrder\n  ): ReactionConnection!\n\n  \"\"\"\n  The comment this is a reply to.\n  \"\"\"\n  replyTo: PullRequestReviewComment\n\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path permalink for this review comment.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The start line number on the file to which the comment applies\n  \"\"\"\n  startLine: Int\n\n  \"\"\"\n  Identifies the state of the comment.\n  \"\"\"\n  state: PullRequestReviewCommentState!\n\n  \"\"\"\n  The level at which the comments in the corresponding thread are targeted, can be a diff line or a file\n  \"\"\"\n  subjectType: PullRequestReviewThreadSubjectType!\n\n  \"\"\"\n  Identifies when the comment was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL permalink for this review comment.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  A list of edits to this content.\n  \"\"\"\n  userContentEdits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserContentEditConnection\n\n  \"\"\"\n  Check if the current viewer can delete this object.\n  \"\"\"\n  viewerCanDelete: Boolean!\n\n  \"\"\"\n  Check if the current viewer can minimize this object.\n  \"\"\"\n  viewerCanMinimize: Boolean!\n\n  \"\"\"\n  Can user react to this subject\n  \"\"\"\n  viewerCanReact: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n\n  \"\"\"\n  Reasons why the current viewer can not update this comment.\n  \"\"\"\n  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!\n\n  \"\"\"\n  Did the viewer author this comment.\n  \"\"\"\n  viewerDidAuthor: Boolean!\n}\n\n\"\"\"\nThe connection type for PullRequestReviewComment.\n\"\"\"\ntype PullRequestReviewCommentConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PullRequestReviewCommentEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PullRequestReviewComment]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PullRequestReviewCommentEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PullRequestReviewComment\n}\n\n\"\"\"\nThe possible states of a pull request review comment.\n\"\"\"\nenum PullRequestReviewCommentState {\n  \"\"\"\n  A comment that is part of a pending review\n  \"\"\"\n  PENDING\n\n  \"\"\"\n  A comment that is part of a submitted review\n  \"\"\"\n  SUBMITTED\n}\n\n\"\"\"\nThe connection type for PullRequestReview.\n\"\"\"\ntype PullRequestReviewConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PullRequestReviewEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PullRequestReview]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nThis aggregates pull request reviews made by a user within one repository.\n\"\"\"\ntype PullRequestReviewContributionsByRepository {\n  \"\"\"\n  The pull request review contributions.\n  \"\"\"\n  contributions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for contributions returned from the connection.\n    \"\"\"\n    orderBy: ContributionOrder = {direction: DESC}\n  ): CreatedPullRequestReviewContributionConnection!\n\n  \"\"\"\n  The repository in which the pull request reviews were made.\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nThe review status of a pull request.\n\"\"\"\nenum PullRequestReviewDecision {\n  \"\"\"\n  The pull request has received an approving review.\n  \"\"\"\n  APPROVED\n\n  \"\"\"\n  Changes have been requested on the pull request.\n  \"\"\"\n  CHANGES_REQUESTED\n\n  \"\"\"\n  A review is required before the pull request can be merged.\n  \"\"\"\n  REVIEW_REQUIRED\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PullRequestReviewEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PullRequestReview\n}\n\n\"\"\"\nThe possible events to perform on a pull request review.\n\"\"\"\nenum PullRequestReviewEvent {\n  \"\"\"\n  Submit feedback and approve merging these changes.\n  \"\"\"\n  APPROVE\n\n  \"\"\"\n  Submit general feedback without explicit approval.\n  \"\"\"\n  COMMENT\n\n  \"\"\"\n  Dismiss review so it now longer effects merging.\n  \"\"\"\n  DISMISS\n\n  \"\"\"\n  Submit feedback that must be addressed before merging.\n  \"\"\"\n  REQUEST_CHANGES\n}\n\n\"\"\"\nThe possible states of a pull request review.\n\"\"\"\nenum PullRequestReviewState {\n  \"\"\"\n  A review allowing the pull request to merge.\n  \"\"\"\n  APPROVED\n\n  \"\"\"\n  A review blocking the pull request from merging.\n  \"\"\"\n  CHANGES_REQUESTED\n\n  \"\"\"\n  An informational review.\n  \"\"\"\n  COMMENTED\n\n  \"\"\"\n  A review that has been dismissed.\n  \"\"\"\n  DISMISSED\n\n  \"\"\"\n  A review that has not yet been submitted.\n  \"\"\"\n  PENDING\n}\n\n\"\"\"\nA threaded list of comments for a given pull request.\n\"\"\"\ntype PullRequestReviewThread implements Node {\n  \"\"\"\n  A list of pull request comments associated with the thread.\n  \"\"\"\n  comments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Skips the first _n_ elements in the list.\n    \"\"\"\n    skip: Int\n  ): PullRequestReviewCommentConnection!\n\n  \"\"\"\n  The side of the diff on which this thread was placed.\n  \"\"\"\n  diffSide: DiffSide!\n\n  \"\"\"\n  The Node ID of the PullRequestReviewThread object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether or not the thread has been collapsed (resolved)\n  \"\"\"\n  isCollapsed: Boolean!\n\n  \"\"\"\n  Indicates whether this thread was outdated by newer changes.\n  \"\"\"\n  isOutdated: Boolean!\n\n  \"\"\"\n  Whether this thread has been resolved\n  \"\"\"\n  isResolved: Boolean!\n\n  \"\"\"\n  The line in the file to which this thread refers\n  \"\"\"\n  line: Int\n\n  \"\"\"\n  The original line in the file to which this thread refers.\n  \"\"\"\n  originalLine: Int\n\n  \"\"\"\n  The original start line in the file to which this thread refers (multi-line only).\n  \"\"\"\n  originalStartLine: Int\n\n  \"\"\"\n  Identifies the file path of this thread.\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  Identifies the pull request associated with this thread.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  Identifies the repository associated with this thread.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The user who resolved this thread\n  \"\"\"\n  resolvedBy: User\n\n  \"\"\"\n  The side of the diff that the first line of the thread starts on (multi-line only)\n  \"\"\"\n  startDiffSide: DiffSide\n\n  \"\"\"\n  The start line in the file to which this thread refers (multi-line only)\n  \"\"\"\n  startLine: Int\n\n  \"\"\"\n  The level at which the comments in the corresponding thread are targeted, can be a diff line or a file\n  \"\"\"\n  subjectType: PullRequestReviewThreadSubjectType!\n\n  \"\"\"\n  Indicates whether the current viewer can reply to this thread.\n  \"\"\"\n  viewerCanReply: Boolean!\n\n  \"\"\"\n  Whether or not the viewer can resolve this thread\n  \"\"\"\n  viewerCanResolve: Boolean!\n\n  \"\"\"\n  Whether or not the viewer can unresolve this thread\n  \"\"\"\n  viewerCanUnresolve: Boolean!\n}\n\n\"\"\"\nReview comment threads for a pull request review.\n\"\"\"\ntype PullRequestReviewThreadConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PullRequestReviewThreadEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PullRequestReviewThread]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PullRequestReviewThreadEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PullRequestReviewThread\n}\n\n\"\"\"\nThe possible subject types of a pull request review comment.\n\"\"\"\nenum PullRequestReviewThreadSubjectType {\n  \"\"\"\n  A comment that has been made against the file of a pull request\n  \"\"\"\n  FILE\n\n  \"\"\"\n  A comment that has been made against the line of a pull request\n  \"\"\"\n  LINE\n}\n\n\"\"\"\nRepresents the latest point in the pull request timeline for which the viewer has seen the pull request's commits.\n\"\"\"\ntype PullRequestRevisionMarker {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The last commit the viewer has seen.\n  \"\"\"\n  lastSeenCommit: Commit!\n\n  \"\"\"\n  The pull request to which the marker belongs.\n  \"\"\"\n  pullRequest: PullRequest!\n}\n\n\"\"\"\nThe possible states of a pull request.\n\"\"\"\nenum PullRequestState {\n  \"\"\"\n  A pull request that has been closed without being merged.\n  \"\"\"\n  CLOSED\n\n  \"\"\"\n  A pull request that has been closed by being merged.\n  \"\"\"\n  MERGED\n\n  \"\"\"\n  A pull request that is still open.\n  \"\"\"\n  OPEN\n}\n\n\"\"\"\nA repository pull request template.\n\"\"\"\ntype PullRequestTemplate {\n  \"\"\"\n  The body of the template\n  \"\"\"\n  body: String\n\n  \"\"\"\n  The filename of the template\n  \"\"\"\n  filename: String\n\n  \"\"\"\n  The repository the template belongs to\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nA threaded list of comments for a given pull request.\n\"\"\"\ntype PullRequestThread implements Node {\n  \"\"\"\n  A list of pull request comments associated with the thread.\n  \"\"\"\n  comments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Skips the first _n_ elements in the list.\n    \"\"\"\n    skip: Int\n  ): PullRequestReviewCommentConnection!\n\n  \"\"\"\n  The side of the diff on which this thread was placed.\n  \"\"\"\n  diffSide: DiffSide!\n\n  \"\"\"\n  The Node ID of the PullRequestThread object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether or not the thread has been collapsed (resolved)\n  \"\"\"\n  isCollapsed: Boolean!\n\n  \"\"\"\n  Indicates whether this thread was outdated by newer changes.\n  \"\"\"\n  isOutdated: Boolean!\n\n  \"\"\"\n  Whether this thread has been resolved\n  \"\"\"\n  isResolved: Boolean!\n\n  \"\"\"\n  The line in the file to which this thread refers\n  \"\"\"\n  line: Int\n\n  \"\"\"\n  Identifies the file path of this thread.\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  Identifies the pull request associated with this thread.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  Identifies the repository associated with this thread.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The user who resolved this thread\n  \"\"\"\n  resolvedBy: User\n\n  \"\"\"\n  The side of the diff that the first line of the thread starts on (multi-line only)\n  \"\"\"\n  startDiffSide: DiffSide\n\n  \"\"\"\n  The line of the first file diff in the thread.\n  \"\"\"\n  startLine: Int\n\n  \"\"\"\n  The level at which the comments in the corresponding thread are targeted, can be a diff line or a file\n  \"\"\"\n  subjectType: PullRequestReviewThreadSubjectType!\n\n  \"\"\"\n  Indicates whether the current viewer can reply to this thread.\n  \"\"\"\n  viewerCanReply: Boolean!\n\n  \"\"\"\n  Whether or not the viewer can resolve this thread\n  \"\"\"\n  viewerCanResolve: Boolean!\n\n  \"\"\"\n  Whether or not the viewer can unresolve this thread\n  \"\"\"\n  viewerCanUnresolve: Boolean!\n}\n\n\"\"\"\nThe connection type for PullRequestTimelineItem.\n\"\"\"\ntype PullRequestTimelineConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PullRequestTimelineItemEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PullRequestTimelineItem]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn item in a pull request timeline\n\"\"\"\nunion PullRequestTimelineItem =\n    AssignedEvent\n  | BaseRefDeletedEvent\n  | BaseRefForcePushedEvent\n  | ClosedEvent\n  | Commit\n  | CommitCommentThread\n  | CrossReferencedEvent\n  | DemilestonedEvent\n  | DeployedEvent\n  | DeploymentEnvironmentChangedEvent\n  | HeadRefDeletedEvent\n  | HeadRefForcePushedEvent\n  | HeadRefRestoredEvent\n  | IssueComment\n  | LabeledEvent\n  | LockedEvent\n  | MergedEvent\n  | MilestonedEvent\n  | PullRequestReview\n  | PullRequestReviewComment\n  | PullRequestReviewThread\n  | ReferencedEvent\n  | RenamedTitleEvent\n  | ReopenedEvent\n  | ReviewDismissedEvent\n  | ReviewRequestRemovedEvent\n  | ReviewRequestedEvent\n  | SubscribedEvent\n  | UnassignedEvent\n  | UnlabeledEvent\n  | UnlockedEvent\n  | UnsubscribedEvent\n  | UserBlockedEvent\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PullRequestTimelineItemEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PullRequestTimelineItem\n}\n\n\"\"\"\nAn item in a pull request timeline\n\"\"\"\nunion PullRequestTimelineItems =\n    AddedToMergeQueueEvent\n  | AddedToProjectEvent\n  | AssignedEvent\n  | AutoMergeDisabledEvent\n  | AutoMergeEnabledEvent\n  | AutoRebaseEnabledEvent\n  | AutoSquashEnabledEvent\n  | AutomaticBaseChangeFailedEvent\n  | AutomaticBaseChangeSucceededEvent\n  | BaseRefChangedEvent\n  | BaseRefDeletedEvent\n  | BaseRefForcePushedEvent\n  | ClosedEvent\n  | CommentDeletedEvent\n  | ConnectedEvent\n  | ConvertToDraftEvent\n  | ConvertedNoteToIssueEvent\n  | ConvertedToDiscussionEvent\n  | CrossReferencedEvent\n  | DemilestonedEvent\n  | DeployedEvent\n  | DeploymentEnvironmentChangedEvent\n  | DisconnectedEvent\n  | HeadRefDeletedEvent\n  | HeadRefForcePushedEvent\n  | HeadRefRestoredEvent\n  | IssueComment\n  | LabeledEvent\n  | LockedEvent\n  | MarkedAsDuplicateEvent\n  | MentionedEvent\n  | MergedEvent\n  | MilestonedEvent\n  | MovedColumnsInProjectEvent\n  | PinnedEvent\n  | PullRequestCommit\n  | PullRequestCommitCommentThread\n  | PullRequestReview\n  | PullRequestReviewThread\n  | PullRequestRevisionMarker\n  | ReadyForReviewEvent\n  | ReferencedEvent\n  | RemovedFromMergeQueueEvent\n  | RemovedFromProjectEvent\n  | RenamedTitleEvent\n  | ReopenedEvent\n  | ReviewDismissedEvent\n  | ReviewRequestRemovedEvent\n  | ReviewRequestedEvent\n  | SubscribedEvent\n  | TransferredEvent\n  | UnassignedEvent\n  | UnlabeledEvent\n  | UnlockedEvent\n  | UnmarkedAsDuplicateEvent\n  | UnpinnedEvent\n  | UnsubscribedEvent\n  | UserBlockedEvent\n\n\"\"\"\nThe connection type for PullRequestTimelineItems.\n\"\"\"\ntype PullRequestTimelineItemsConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PullRequestTimelineItemsEdge]\n\n  \"\"\"\n  Identifies the count of items after applying `before` and `after` filters.\n  \"\"\"\n  filteredCount: Int!\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PullRequestTimelineItems]\n\n  \"\"\"\n  Identifies the count of items after applying `before`/`after` filters and `first`/`last`/`skip` slicing.\n  \"\"\"\n  pageCount: Int!\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n\n  \"\"\"\n  Identifies the date and time when the timeline was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PullRequestTimelineItemsEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PullRequestTimelineItems\n}\n\n\"\"\"\nThe possible item types found in a timeline.\n\"\"\"\nenum PullRequestTimelineItemsItemType {\n  \"\"\"\n  Represents an 'added_to_merge_queue' event on a given pull request.\n  \"\"\"\n  ADDED_TO_MERGE_QUEUE_EVENT\n\n  \"\"\"\n  Represents a 'added_to_project' event on a given issue or pull request.\n  \"\"\"\n  ADDED_TO_PROJECT_EVENT\n\n  \"\"\"\n  Represents an 'assigned' event on any assignable object.\n  \"\"\"\n  ASSIGNED_EVENT\n\n  \"\"\"\n  Represents a 'automatic_base_change_failed' event on a given pull request.\n  \"\"\"\n  AUTOMATIC_BASE_CHANGE_FAILED_EVENT\n\n  \"\"\"\n  Represents a 'automatic_base_change_succeeded' event on a given pull request.\n  \"\"\"\n  AUTOMATIC_BASE_CHANGE_SUCCEEDED_EVENT\n\n  \"\"\"\n  Represents a 'auto_merge_disabled' event on a given pull request.\n  \"\"\"\n  AUTO_MERGE_DISABLED_EVENT\n\n  \"\"\"\n  Represents a 'auto_merge_enabled' event on a given pull request.\n  \"\"\"\n  AUTO_MERGE_ENABLED_EVENT\n\n  \"\"\"\n  Represents a 'auto_rebase_enabled' event on a given pull request.\n  \"\"\"\n  AUTO_REBASE_ENABLED_EVENT\n\n  \"\"\"\n  Represents a 'auto_squash_enabled' event on a given pull request.\n  \"\"\"\n  AUTO_SQUASH_ENABLED_EVENT\n\n  \"\"\"\n  Represents a 'base_ref_changed' event on a given issue or pull request.\n  \"\"\"\n  BASE_REF_CHANGED_EVENT\n\n  \"\"\"\n  Represents a 'base_ref_deleted' event on a given pull request.\n  \"\"\"\n  BASE_REF_DELETED_EVENT\n\n  \"\"\"\n  Represents a 'base_ref_force_pushed' event on a given pull request.\n  \"\"\"\n  BASE_REF_FORCE_PUSHED_EVENT\n\n  \"\"\"\n  Represents a 'closed' event on any `Closable`.\n  \"\"\"\n  CLOSED_EVENT\n\n  \"\"\"\n  Represents a 'comment_deleted' event on a given issue or pull request.\n  \"\"\"\n  COMMENT_DELETED_EVENT\n\n  \"\"\"\n  Represents a 'connected' event on a given issue or pull request.\n  \"\"\"\n  CONNECTED_EVENT\n\n  \"\"\"\n  Represents a 'converted_note_to_issue' event on a given issue or pull request.\n  \"\"\"\n  CONVERTED_NOTE_TO_ISSUE_EVENT\n\n  \"\"\"\n  Represents a 'converted_to_discussion' event on a given issue.\n  \"\"\"\n  CONVERTED_TO_DISCUSSION_EVENT\n\n  \"\"\"\n  Represents a 'convert_to_draft' event on a given pull request.\n  \"\"\"\n  CONVERT_TO_DRAFT_EVENT\n\n  \"\"\"\n  Represents a mention made by one issue or pull request to another.\n  \"\"\"\n  CROSS_REFERENCED_EVENT\n\n  \"\"\"\n  Represents a 'demilestoned' event on a given issue or pull request.\n  \"\"\"\n  DEMILESTONED_EVENT\n\n  \"\"\"\n  Represents a 'deployed' event on a given pull request.\n  \"\"\"\n  DEPLOYED_EVENT\n\n  \"\"\"\n  Represents a 'deployment_environment_changed' event on a given pull request.\n  \"\"\"\n  DEPLOYMENT_ENVIRONMENT_CHANGED_EVENT\n\n  \"\"\"\n  Represents a 'disconnected' event on a given issue or pull request.\n  \"\"\"\n  DISCONNECTED_EVENT\n\n  \"\"\"\n  Represents a 'head_ref_deleted' event on a given pull request.\n  \"\"\"\n  HEAD_REF_DELETED_EVENT\n\n  \"\"\"\n  Represents a 'head_ref_force_pushed' event on a given pull request.\n  \"\"\"\n  HEAD_REF_FORCE_PUSHED_EVENT\n\n  \"\"\"\n  Represents a 'head_ref_restored' event on a given pull request.\n  \"\"\"\n  HEAD_REF_RESTORED_EVENT\n\n  \"\"\"\n  Represents a comment on an Issue.\n  \"\"\"\n  ISSUE_COMMENT\n\n  \"\"\"\n  Represents a 'labeled' event on a given issue or pull request.\n  \"\"\"\n  LABELED_EVENT\n\n  \"\"\"\n  Represents a 'locked' event on a given issue or pull request.\n  \"\"\"\n  LOCKED_EVENT\n\n  \"\"\"\n  Represents a 'marked_as_duplicate' event on a given issue or pull request.\n  \"\"\"\n  MARKED_AS_DUPLICATE_EVENT\n\n  \"\"\"\n  Represents a 'mentioned' event on a given issue or pull request.\n  \"\"\"\n  MENTIONED_EVENT\n\n  \"\"\"\n  Represents a 'merged' event on a given pull request.\n  \"\"\"\n  MERGED_EVENT\n\n  \"\"\"\n  Represents a 'milestoned' event on a given issue or pull request.\n  \"\"\"\n  MILESTONED_EVENT\n\n  \"\"\"\n  Represents a 'moved_columns_in_project' event on a given issue or pull request.\n  \"\"\"\n  MOVED_COLUMNS_IN_PROJECT_EVENT\n\n  \"\"\"\n  Represents a 'pinned' event on a given issue or pull request.\n  \"\"\"\n  PINNED_EVENT\n\n  \"\"\"\n  Represents a Git commit part of a pull request.\n  \"\"\"\n  PULL_REQUEST_COMMIT\n\n  \"\"\"\n  Represents a commit comment thread part of a pull request.\n  \"\"\"\n  PULL_REQUEST_COMMIT_COMMENT_THREAD\n\n  \"\"\"\n  A review object for a given pull request.\n  \"\"\"\n  PULL_REQUEST_REVIEW\n\n  \"\"\"\n  A threaded list of comments for a given pull request.\n  \"\"\"\n  PULL_REQUEST_REVIEW_THREAD\n\n  \"\"\"\n  Represents the latest point in the pull request timeline for which the viewer has seen the pull request's commits.\n  \"\"\"\n  PULL_REQUEST_REVISION_MARKER\n\n  \"\"\"\n  Represents a 'ready_for_review' event on a given pull request.\n  \"\"\"\n  READY_FOR_REVIEW_EVENT\n\n  \"\"\"\n  Represents a 'referenced' event on a given `ReferencedSubject`.\n  \"\"\"\n  REFERENCED_EVENT\n\n  \"\"\"\n  Represents a 'removed_from_merge_queue' event on a given pull request.\n  \"\"\"\n  REMOVED_FROM_MERGE_QUEUE_EVENT\n\n  \"\"\"\n  Represents a 'removed_from_project' event on a given issue or pull request.\n  \"\"\"\n  REMOVED_FROM_PROJECT_EVENT\n\n  \"\"\"\n  Represents a 'renamed' event on a given issue or pull request\n  \"\"\"\n  RENAMED_TITLE_EVENT\n\n  \"\"\"\n  Represents a 'reopened' event on any `Closable`.\n  \"\"\"\n  REOPENED_EVENT\n\n  \"\"\"\n  Represents a 'review_dismissed' event on a given issue or pull request.\n  \"\"\"\n  REVIEW_DISMISSED_EVENT\n\n  \"\"\"\n  Represents an 'review_requested' event on a given pull request.\n  \"\"\"\n  REVIEW_REQUESTED_EVENT\n\n  \"\"\"\n  Represents an 'review_request_removed' event on a given pull request.\n  \"\"\"\n  REVIEW_REQUEST_REMOVED_EVENT\n\n  \"\"\"\n  Represents a 'subscribed' event on a given `Subscribable`.\n  \"\"\"\n  SUBSCRIBED_EVENT\n\n  \"\"\"\n  Represents a 'transferred' event on a given issue or pull request.\n  \"\"\"\n  TRANSFERRED_EVENT\n\n  \"\"\"\n  Represents an 'unassigned' event on any assignable object.\n  \"\"\"\n  UNASSIGNED_EVENT\n\n  \"\"\"\n  Represents an 'unlabeled' event on a given issue or pull request.\n  \"\"\"\n  UNLABELED_EVENT\n\n  \"\"\"\n  Represents an 'unlocked' event on a given issue or pull request.\n  \"\"\"\n  UNLOCKED_EVENT\n\n  \"\"\"\n  Represents an 'unmarked_as_duplicate' event on a given issue or pull request.\n  \"\"\"\n  UNMARKED_AS_DUPLICATE_EVENT\n\n  \"\"\"\n  Represents an 'unpinned' event on a given issue or pull request.\n  \"\"\"\n  UNPINNED_EVENT\n\n  \"\"\"\n  Represents an 'unsubscribed' event on a given `Subscribable`.\n  \"\"\"\n  UNSUBSCRIBED_EVENT\n\n  \"\"\"\n  Represents a 'user_blocked' event on a given user.\n  \"\"\"\n  USER_BLOCKED_EVENT\n}\n\n\"\"\"\nThe possible target states when updating a pull request.\n\"\"\"\nenum PullRequestUpdateState {\n  \"\"\"\n  A pull request that has been closed without being merged.\n  \"\"\"\n  CLOSED\n\n  \"\"\"\n  A pull request that is still open.\n  \"\"\"\n  OPEN\n}\n\n\"\"\"\nA Git push.\n\"\"\"\ntype Push implements Node {\n  \"\"\"\n  The Node ID of the Push object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The SHA after the push\n  \"\"\"\n  nextSha: GitObjectID\n\n  \"\"\"\n  The permalink for this push.\n  \"\"\"\n  permalink: URI!\n\n  \"\"\"\n  The SHA before the push\n  \"\"\"\n  previousSha: GitObjectID\n\n  \"\"\"\n  The actor who pushed\n  \"\"\"\n  pusher: Actor!\n\n  \"\"\"\n  The repository that was pushed to\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nA team, user, or app who has the ability to push to a protected branch.\n\"\"\"\ntype PushAllowance implements Node {\n  \"\"\"\n  The actor that can push.\n  \"\"\"\n  actor: PushAllowanceActor\n\n  \"\"\"\n  Identifies the branch protection rule associated with the allowed user, team, or app.\n  \"\"\"\n  branchProtectionRule: BranchProtectionRule\n\n  \"\"\"\n  The Node ID of the PushAllowance object\n  \"\"\"\n  id: ID!\n}\n\n\"\"\"\nTypes that can be an actor.\n\"\"\"\nunion PushAllowanceActor = App | Team | User\n\n\"\"\"\nThe connection type for PushAllowance.\n\"\"\"\ntype PushAllowanceConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [PushAllowanceEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [PushAllowance]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype PushAllowanceEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: PushAllowance\n}\n\n\"\"\"\nThe query root of GitHub's GraphQL interface.\n\"\"\"\ntype Query {\n  \"\"\"\n  Look up a code of conduct by its key\n  \"\"\"\n  codeOfConduct(\n    \"\"\"\n    The code of conduct's key\n    \"\"\"\n    key: String!\n  ): CodeOfConduct\n\n  \"\"\"\n  Look up a code of conduct by its key\n  \"\"\"\n  codesOfConduct: [CodeOfConduct]\n\n  \"\"\"\n  Look up an enterprise by URL slug.\n  \"\"\"\n  enterprise(\n    \"\"\"\n    The enterprise invitation token.\n    \"\"\"\n    invitationToken: String\n\n    \"\"\"\n    The enterprise URL slug.\n    \"\"\"\n    slug: String!\n  ): Enterprise\n\n  \"\"\"\n  Look up a pending enterprise administrator invitation by invitee, enterprise and role.\n  \"\"\"\n  enterpriseAdministratorInvitation(\n    \"\"\"\n    The slug of the enterprise the user was invited to join.\n    \"\"\"\n    enterpriseSlug: String!\n\n    \"\"\"\n    The role for the business member invitation.\n    \"\"\"\n    role: EnterpriseAdministratorRole!\n\n    \"\"\"\n    The login of the user invited to join the business.\n    \"\"\"\n    userLogin: String!\n  ): EnterpriseAdministratorInvitation\n\n  \"\"\"\n  Look up a pending enterprise administrator invitation by invitation token.\n  \"\"\"\n  enterpriseAdministratorInvitationByToken(\n    \"\"\"\n    The invitation token sent with the invitation email.\n    \"\"\"\n    invitationToken: String!\n  ): EnterpriseAdministratorInvitation\n\n  \"\"\"\n  Look up an open source license by its key\n  \"\"\"\n  license(\n    \"\"\"\n    The license's downcased SPDX ID\n    \"\"\"\n    key: String!\n  ): License\n\n  \"\"\"\n  Return a list of known open source licenses\n  \"\"\"\n  licenses: [License]!\n\n  \"\"\"\n  Get alphabetically sorted list of Marketplace categories\n  \"\"\"\n  marketplaceCategories(\n    \"\"\"\n    Exclude categories with no listings.\n    \"\"\"\n    excludeEmpty: Boolean\n\n    \"\"\"\n    Returns top level categories only, excluding any subcategories.\n    \"\"\"\n    excludeSubcategories: Boolean\n\n    \"\"\"\n    Return only the specified categories.\n    \"\"\"\n    includeCategories: [String!]\n  ): [MarketplaceCategory!]!\n\n  \"\"\"\n  Look up a Marketplace category by its slug.\n  \"\"\"\n  marketplaceCategory(\n    \"\"\"\n    The URL slug of the category.\n    \"\"\"\n    slug: String!\n\n    \"\"\"\n    Also check topic aliases for the category slug\n    \"\"\"\n    useTopicAliases: Boolean\n  ): MarketplaceCategory\n\n  \"\"\"\n  Look up a single Marketplace listing\n  \"\"\"\n  marketplaceListing(\n    \"\"\"\n    Select the listing that matches this slug. It's the short name of the listing used in its URL.\n    \"\"\"\n    slug: String!\n  ): MarketplaceListing\n\n  \"\"\"\n  Look up Marketplace listings\n  \"\"\"\n  marketplaceListings(\n    \"\"\"\n    Select listings that can be administered by the specified user.\n    \"\"\"\n    adminId: ID\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Select listings visible to the viewer even if they are not approved. If omitted or\n    false, only approved listings will be returned.\n    \"\"\"\n    allStates: Boolean\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Select only listings with the given category.\n    \"\"\"\n    categorySlug: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Select listings for products owned by the specified organization.\n    \"\"\"\n    organizationId: ID\n\n    \"\"\"\n    Select only listings where the primary category matches the given category slug.\n    \"\"\"\n    primaryCategoryOnly: Boolean = false\n\n    \"\"\"\n    Select the listings with these slugs, if they are visible to the viewer.\n    \"\"\"\n    slugs: [String]\n\n    \"\"\"\n    Also check topic aliases for the category slug\n    \"\"\"\n    useTopicAliases: Boolean\n\n    \"\"\"\n    Select listings to which user has admin access. If omitted, listings visible to the\n    viewer are returned.\n    \"\"\"\n    viewerCanAdmin: Boolean\n\n    \"\"\"\n    Select only listings that offer a free trial.\n    \"\"\"\n    withFreeTrialsOnly: Boolean = false\n  ): MarketplaceListingConnection!\n\n  \"\"\"\n  Return information about the GitHub instance\n  \"\"\"\n  meta: GitHubMetadata!\n\n  \"\"\"\n  Fetches an object given its ID.\n  \"\"\"\n  node(\n    \"\"\"\n    ID of the object.\n    \"\"\"\n    id: ID!\n  ): Node\n\n  \"\"\"\n  Lookup nodes by a list of IDs.\n  \"\"\"\n  nodes(\n    \"\"\"\n    The list of node IDs.\n    \"\"\"\n    ids: [ID!]!\n  ): [Node]!\n\n  \"\"\"\n  Lookup a organization by login.\n  \"\"\"\n  organization(\n    \"\"\"\n    The organization's login.\n    \"\"\"\n    login: String!\n  ): Organization\n\n  \"\"\"\n  The client's rate limit information.\n  \"\"\"\n  rateLimit(\n    \"\"\"\n    If true, calculate the cost for the query without evaluating it\n    \"\"\"\n    dryRun: Boolean = false\n  ): RateLimit\n\n  \"\"\"\n  Workaround for re-exposing the root query object. (Refer to\n  https://github.com/facebook/relay/issues/112 for more information.)\n  \"\"\"\n  relay: Query!\n\n  \"\"\"\n  Lookup a given repository by the owner and repository name.\n  \"\"\"\n  repository(\n    \"\"\"\n    Follow repository renames. If disabled, a repository referenced by its old name will return an error.\n    \"\"\"\n    followRenames: Boolean = true\n\n    \"\"\"\n    The name of the repository\n    \"\"\"\n    name: String!\n\n    \"\"\"\n    The login field of a user or organization\n    \"\"\"\n    owner: String!\n  ): Repository\n\n  \"\"\"\n  Lookup a repository owner (ie. either a User or an Organization) by login.\n  \"\"\"\n  repositoryOwner(\n    \"\"\"\n    The username to lookup the owner by.\n    \"\"\"\n    login: String!\n  ): RepositoryOwner\n\n  \"\"\"\n  Lookup resource by a URL.\n  \"\"\"\n  resource(\n    \"\"\"\n    The URL.\n    \"\"\"\n    url: URI!\n  ): UniformResourceLocatable\n\n  \"\"\"\n  Perform a search across resources, returning a maximum of 1,000 results.\n  \"\"\"\n  search(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String!\n\n    \"\"\"\n    The types of search items to search within.\n    \"\"\"\n    type: SearchType!\n  ): SearchResultItemConnection!\n\n  \"\"\"\n  GitHub Security Advisories\n  \"\"\"\n  securityAdvisories(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    A list of classifications to filter advisories by.\n    \"\"\"\n    classifications: [SecurityAdvisoryClassification!]\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Filter advisories by identifier, e.g. GHSA or CVE.\n    \"\"\"\n    identifier: SecurityAdvisoryIdentifierFilter\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the returned topics.\n    \"\"\"\n    orderBy: SecurityAdvisoryOrder = {field: UPDATED_AT, direction: DESC}\n\n    \"\"\"\n    Filter advisories to those published since a time in the past.\n    \"\"\"\n    publishedSince: DateTime\n\n    \"\"\"\n    Filter advisories to those updated since a time in the past.\n    \"\"\"\n    updatedSince: DateTime\n  ): SecurityAdvisoryConnection!\n\n  \"\"\"\n  Fetch a Security Advisory by its GHSA ID\n  \"\"\"\n  securityAdvisory(\n    \"\"\"\n    GitHub Security Advisory ID.\n    \"\"\"\n    ghsaId: String!\n  ): SecurityAdvisory\n\n  \"\"\"\n  Software Vulnerabilities documented by GitHub Security Advisories\n  \"\"\"\n  securityVulnerabilities(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    A list of advisory classifications to filter vulnerabilities by.\n    \"\"\"\n    classifications: [SecurityAdvisoryClassification!]\n\n    \"\"\"\n    An ecosystem to filter vulnerabilities by.\n    \"\"\"\n    ecosystem: SecurityAdvisoryEcosystem\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the returned topics.\n    \"\"\"\n    orderBy: SecurityVulnerabilityOrder = {field: UPDATED_AT, direction: DESC}\n\n    \"\"\"\n    A package name to filter vulnerabilities by.\n    \"\"\"\n    package: String\n\n    \"\"\"\n    A list of severities to filter vulnerabilities by.\n    \"\"\"\n    severities: [SecurityAdvisorySeverity!]\n  ): SecurityVulnerabilityConnection!\n\n  \"\"\"\n  Users and organizations who can be sponsored via GitHub Sponsors.\n  \"\"\"\n  sponsorables(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Optional filter for which dependencies should be checked for sponsorable\n    owners. Only sponsorable owners of dependencies in this ecosystem will be\n    included. Used when onlyDependencies = true.\n\n    **Upcoming Change on 2022-07-01 UTC**\n    **Description:** `dependencyEcosystem` will be removed. Use the ecosystem argument instead.\n    **Reason:** The type is switching from SecurityAdvisoryEcosystem to DependencyGraphEcosystem.\n    \"\"\"\n    dependencyEcosystem: SecurityAdvisoryEcosystem\n\n    \"\"\"\n    Optional filter for which dependencies should be checked for sponsorable\n    owners. Only sponsorable owners of dependencies in this ecosystem will be\n    included. Used when onlyDependencies = true.\n    \"\"\"\n    ecosystem: DependencyGraphEcosystem\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Whether only sponsorables who own the viewer's dependencies will be\n    returned. Must be authenticated to use. Can check an organization instead\n    for their dependencies owned by sponsorables by passing\n    orgLoginForDependencies.\n    \"\"\"\n    onlyDependencies: Boolean = false\n\n    \"\"\"\n    Ordering options for users and organizations returned from the connection.\n    \"\"\"\n    orderBy: SponsorableOrder = {field: LOGIN, direction: ASC}\n\n    \"\"\"\n    Optional organization username for whose dependencies should be checked.\n    Used when onlyDependencies = true. Omit to check your own dependencies. If\n    you are not an administrator of the organization, only dependencies from its\n    public repositories will be considered.\n    \"\"\"\n    orgLoginForDependencies: String\n  ): SponsorableItemConnection!\n\n  \"\"\"\n  Look up a topic by name.\n  \"\"\"\n  topic(\n    \"\"\"\n    The topic's name.\n    \"\"\"\n    name: String!\n  ): Topic\n\n  \"\"\"\n  Lookup a user by login.\n  \"\"\"\n  user(\n    \"\"\"\n    The user's login.\n    \"\"\"\n    login: String!\n  ): User\n\n  \"\"\"\n  The currently authenticated user.\n  \"\"\"\n  viewer: User!\n}\n\n\"\"\"\nRepresents the client's rate limit.\n\"\"\"\ntype RateLimit {\n  \"\"\"\n  The point cost for the current query counting against the rate limit.\n  \"\"\"\n  cost: Int!\n\n  \"\"\"\n  The maximum number of points the client is permitted to consume in a 60 minute window.\n  \"\"\"\n  limit: Int!\n\n  \"\"\"\n  The maximum number of nodes this query may return\n  \"\"\"\n  nodeCount: Int!\n\n  \"\"\"\n  The number of points remaining in the current rate limit window.\n  \"\"\"\n  remaining: Int!\n\n  \"\"\"\n  The time at which the current rate limit window resets in UTC epoch seconds.\n  \"\"\"\n  resetAt: DateTime!\n\n  \"\"\"\n  The number of points used in the current rate limit window.\n  \"\"\"\n  used: Int!\n}\n\n\"\"\"\nRepresents a subject that can be reacted on.\n\"\"\"\ninterface Reactable {\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the Reactable object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  A list of reactions grouped by content left on the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  A list of Reactions left on the Issue.\n  \"\"\"\n  reactions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Allows filtering Reactions by emoji.\n    \"\"\"\n    content: ReactionContent\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows specifying the order in which reactions are returned.\n    \"\"\"\n    orderBy: ReactionOrder\n  ): ReactionConnection!\n\n  \"\"\"\n  Can user react to this subject\n  \"\"\"\n  viewerCanReact: Boolean!\n}\n\n\"\"\"\nThe connection type for User.\n\"\"\"\ntype ReactingUserConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ReactingUserEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [User]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nRepresents a user that's made a reaction.\n\"\"\"\ntype ReactingUserEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n  node: User!\n\n  \"\"\"\n  The moment when the user made the reaction.\n  \"\"\"\n  reactedAt: DateTime!\n}\n\n\"\"\"\nAn emoji reaction to a particular piece of content.\n\"\"\"\ntype Reaction implements Node {\n  \"\"\"\n  Identifies the emoji reaction.\n  \"\"\"\n  content: ReactionContent!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the Reaction object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The reactable piece of content\n  \"\"\"\n  reactable: Reactable!\n\n  \"\"\"\n  Identifies the user who created this reaction.\n  \"\"\"\n  user: User\n}\n\n\"\"\"\nA list of reactions that have been left on the subject.\n\"\"\"\ntype ReactionConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ReactionEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Reaction]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n\n  \"\"\"\n  Whether or not the authenticated user has left a reaction on the subject.\n  \"\"\"\n  viewerHasReacted: Boolean!\n}\n\n\"\"\"\nEmojis that can be attached to Issues, Pull Requests and Comments.\n\"\"\"\nenum ReactionContent {\n  \"\"\"\n  Represents the `:confused:` emoji.\n  \"\"\"\n  CONFUSED\n\n  \"\"\"\n  Represents the `:eyes:` emoji.\n  \"\"\"\n  EYES\n\n  \"\"\"\n  Represents the `:heart:` emoji.\n  \"\"\"\n  HEART\n\n  \"\"\"\n  Represents the `:hooray:` emoji.\n  \"\"\"\n  HOORAY\n\n  \"\"\"\n  Represents the `:laugh:` emoji.\n  \"\"\"\n  LAUGH\n\n  \"\"\"\n  Represents the `:rocket:` emoji.\n  \"\"\"\n  ROCKET\n\n  \"\"\"\n  Represents the `:-1:` emoji.\n  \"\"\"\n  THUMBS_DOWN\n\n  \"\"\"\n  Represents the `:+1:` emoji.\n  \"\"\"\n  THUMBS_UP\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ReactionEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Reaction\n}\n\n\"\"\"\nA group of emoji reactions to a particular piece of content.\n\"\"\"\ntype ReactionGroup {\n  \"\"\"\n  Identifies the emoji reaction.\n  \"\"\"\n  content: ReactionContent!\n\n  \"\"\"\n  Identifies when the reaction was created.\n  \"\"\"\n  createdAt: DateTime\n\n  \"\"\"\n  Reactors to the reaction subject with the emotion represented by this reaction group.\n  \"\"\"\n  reactors(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ReactorConnection!\n\n  \"\"\"\n  The subject that was reacted to.\n  \"\"\"\n  subject: Reactable!\n\n  \"\"\"\n  Users who have reacted to the reaction subject with the emotion represented by this reaction group\n  \"\"\"\n  users(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ReactingUserConnection!\n    @deprecated(\n      reason: \"Reactors can now be mannequins, bots, and organizations. Use the `reactors` field instead. Removal on 2021-10-01 UTC.\"\n    )\n\n  \"\"\"\n  Whether or not the authenticated user has left a reaction on the subject.\n  \"\"\"\n  viewerHasReacted: Boolean!\n}\n\n\"\"\"\nWays in which lists of reactions can be ordered upon return.\n\"\"\"\ninput ReactionOrder {\n  \"\"\"\n  The direction in which to order reactions by the specified field.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field in which to order reactions by.\n  \"\"\"\n  field: ReactionOrderField!\n}\n\n\"\"\"\nA list of fields that reactions can be ordered by.\n\"\"\"\nenum ReactionOrderField {\n  \"\"\"\n  Allows ordering a list of reactions by when they were created.\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nTypes that can be assigned to reactions.\n\"\"\"\nunion Reactor = Bot | Mannequin | Organization | User\n\n\"\"\"\nThe connection type for Reactor.\n\"\"\"\ntype ReactorConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ReactorEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Reactor]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nRepresents an author of a reaction.\n\"\"\"\ntype ReactorEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The author of the reaction.\n  \"\"\"\n  node: Reactor!\n\n  \"\"\"\n  The moment when the user made the reaction.\n  \"\"\"\n  reactedAt: DateTime!\n}\n\n\"\"\"\nRepresents a 'ready_for_review' event on a given pull request.\n\"\"\"\ntype ReadyForReviewEvent implements Node & UniformResourceLocatable {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the ReadyForReviewEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  The HTTP path for this ready for review event.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this ready for review event.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nRepresents a Git reference.\n\"\"\"\ntype Ref implements Node {\n  \"\"\"\n  A list of pull requests with this ref as the head ref.\n  \"\"\"\n  associatedPullRequests(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    The base ref name to filter the pull requests by.\n    \"\"\"\n    baseRefName: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    The head ref name to filter the pull requests by.\n    \"\"\"\n    headRefName: String\n\n    \"\"\"\n    A list of label names to filter the pull requests by.\n    \"\"\"\n    labels: [String!]\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for pull requests returned from the connection.\n    \"\"\"\n    orderBy: IssueOrder\n\n    \"\"\"\n    A list of states to filter the pull requests by.\n    \"\"\"\n    states: [PullRequestState!]\n  ): PullRequestConnection!\n\n  \"\"\"\n  Branch protection rules for this ref\n  \"\"\"\n  branchProtectionRule: BranchProtectionRule\n\n  \"\"\"\n  Compares the current ref as a base ref to another head ref, if the comparison can be made.\n  \"\"\"\n  compare(\n    \"\"\"\n    The head ref to compare against.\n    \"\"\"\n    headRef: String!\n  ): Comparison\n\n  \"\"\"\n  The Node ID of the Ref object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The ref name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The ref's prefix, such as `refs/heads/` or `refs/tags/`.\n  \"\"\"\n  prefix: String!\n\n  \"\"\"\n  Branch protection rules that are viewable by non-admins\n  \"\"\"\n  refUpdateRule: RefUpdateRule\n\n  \"\"\"\n  The repository the ref belongs to.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The object the ref points to. Returns null when object does not exist.\n  \"\"\"\n  target: GitObject\n}\n\n\"\"\"\nThe connection type for Ref.\n\"\"\"\ntype RefConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [RefEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Ref]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype RefEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Ref\n}\n\n\"\"\"\nParameters to be used for the ref_name condition\n\"\"\"\ntype RefNameConditionTarget {\n  \"\"\"\n  Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.\n  \"\"\"\n  exclude: [String!]!\n\n  \"\"\"\n  Array of ref names or patterns to include. One of these patterns must match\n  for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the\n  default branch or `~ALL` to include all branches.\n  \"\"\"\n  include: [String!]!\n}\n\n\"\"\"\nParameters to be used for the ref_name condition\n\"\"\"\ninput RefNameConditionTargetInput {\n  \"\"\"\n  Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.\n  \"\"\"\n  exclude: [String!]!\n\n  \"\"\"\n  Array of ref names or patterns to include. One of these patterns must match\n  for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the\n  default branch or `~ALL` to include all branches.\n  \"\"\"\n  include: [String!]!\n}\n\n\"\"\"\nWays in which lists of git refs can be ordered upon return.\n\"\"\"\ninput RefOrder {\n  \"\"\"\n  The direction in which to order refs by the specified field.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field in which to order refs by.\n  \"\"\"\n  field: RefOrderField!\n}\n\n\"\"\"\nProperties by which ref connections can be ordered.\n\"\"\"\nenum RefOrderField {\n  \"\"\"\n  Order refs by their alphanumeric name\n  \"\"\"\n  ALPHABETICAL\n\n  \"\"\"\n  Order refs by underlying commit date if the ref prefix is refs/tags/\n  \"\"\"\n  TAG_COMMIT_DATE\n}\n\n\"\"\"\nA ref update\n\"\"\"\ninput RefUpdate @preview(toggledBy: \"update-refs-preview\") {\n  \"\"\"\n  The value this ref should be updated to.\n  \"\"\"\n  afterOid: GitObjectID!\n\n  \"\"\"\n  The value this ref needs to point to before the update.\n  \"\"\"\n  beforeOid: GitObjectID\n\n  \"\"\"\n  Force a non fast-forward update.\n  \"\"\"\n  force: Boolean = false\n\n  \"\"\"\n  The fully qualified name of the ref to be update. For example `refs/heads/branch-name`\n  \"\"\"\n  name: GitRefname!\n}\n\n\"\"\"\nBranch protection rules that are enforced on the viewer.\n\"\"\"\ntype RefUpdateRule {\n  \"\"\"\n  Can this branch be deleted.\n  \"\"\"\n  allowsDeletions: Boolean!\n\n  \"\"\"\n  Are force pushes allowed on this branch.\n  \"\"\"\n  allowsForcePushes: Boolean!\n\n  \"\"\"\n  Can matching branches be created.\n  \"\"\"\n  blocksCreations: Boolean!\n\n  \"\"\"\n  Identifies the protection rule pattern.\n  \"\"\"\n  pattern: String!\n\n  \"\"\"\n  Number of approving reviews required to update matching branches.\n  \"\"\"\n  requiredApprovingReviewCount: Int\n\n  \"\"\"\n  List of required status check contexts that must pass for commits to be accepted to matching branches.\n  \"\"\"\n  requiredStatusCheckContexts: [String]\n\n  \"\"\"\n  Are reviews from code owners required to update matching branches.\n  \"\"\"\n  requiresCodeOwnerReviews: Boolean!\n\n  \"\"\"\n  Are conversations required to be resolved before merging.\n  \"\"\"\n  requiresConversationResolution: Boolean!\n\n  \"\"\"\n  Are merge commits prohibited from being pushed to this branch.\n  \"\"\"\n  requiresLinearHistory: Boolean!\n\n  \"\"\"\n  Are commits required to be signed.\n  \"\"\"\n  requiresSignatures: Boolean!\n\n  \"\"\"\n  Is the viewer allowed to dismiss reviews.\n  \"\"\"\n  viewerAllowedToDismissReviews: Boolean!\n\n  \"\"\"\n  Can the viewer push to the branch\n  \"\"\"\n  viewerCanPush: Boolean!\n}\n\n\"\"\"\nRepresents a 'referenced' event on a given `ReferencedSubject`.\n\"\"\"\ntype ReferencedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the commit associated with the 'referenced' event.\n  \"\"\"\n  commit: Commit\n\n  \"\"\"\n  Identifies the repository associated with the 'referenced' event.\n  \"\"\"\n  commitRepository: Repository!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the ReferencedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Reference originated in a different repository.\n  \"\"\"\n  isCrossRepository: Boolean!\n\n  \"\"\"\n  Checks if the commit message itself references the subject. Can be false in the case of a commit comment reference.\n  \"\"\"\n  isDirectReference: Boolean!\n\n  \"\"\"\n  Object referenced by event.\n  \"\"\"\n  subject: ReferencedSubject!\n}\n\n\"\"\"\nAny referencable object\n\"\"\"\nunion ReferencedSubject = Issue | PullRequest\n\n\"\"\"\nAutogenerated input type of RegenerateEnterpriseIdentityProviderRecoveryCodes\n\"\"\"\ninput RegenerateEnterpriseIdentityProviderRecoveryCodesInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set an identity provider.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n}\n\n\"\"\"\nAutogenerated return type of RegenerateEnterpriseIdentityProviderRecoveryCodes\n\"\"\"\ntype RegenerateEnterpriseIdentityProviderRecoveryCodesPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The identity provider for the enterprise.\n  \"\"\"\n  identityProvider: EnterpriseIdentityProvider\n}\n\n\"\"\"\nAutogenerated input type of RegenerateVerifiableDomainToken\n\"\"\"\ninput RegenerateVerifiableDomainTokenInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the verifiable domain to regenerate the verification token of.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"VerifiableDomain\"])\n}\n\n\"\"\"\nAutogenerated return type of RegenerateVerifiableDomainToken\n\"\"\"\ntype RegenerateVerifiableDomainTokenPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The verification token that was generated.\n  \"\"\"\n  verificationToken: String\n}\n\n\"\"\"\nAutogenerated input type of RejectDeployments\n\"\"\"\ninput RejectDeploymentsInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Optional comment for rejecting deployments\n  \"\"\"\n  comment: String = \"\"\n\n  \"\"\"\n  The ids of environments to reject deployments\n  \"\"\"\n  environmentIds: [ID!]!\n\n  \"\"\"\n  The node ID of the workflow run containing the pending deployments.\n  \"\"\"\n  workflowRunId: ID! @possibleTypes(concreteTypes: [\"WorkflowRun\"])\n}\n\n\"\"\"\nAutogenerated return type of RejectDeployments\n\"\"\"\ntype RejectDeploymentsPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The affected deployments.\n  \"\"\"\n  deployments: [Deployment!]\n}\n\n\"\"\"\nA release contains the content for a release.\n\"\"\"\ntype Release implements Node & Reactable & UniformResourceLocatable {\n  \"\"\"\n  The author of the release\n  \"\"\"\n  author: User\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The description of the release.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The description of this release rendered to HTML.\n  \"\"\"\n  descriptionHTML: HTML\n\n  \"\"\"\n  The Node ID of the Release object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether or not the release is a draft\n  \"\"\"\n  isDraft: Boolean!\n\n  \"\"\"\n  Whether or not the release is the latest releast\n  \"\"\"\n  isLatest: Boolean!\n\n  \"\"\"\n  Whether or not the release is a prerelease\n  \"\"\"\n  isPrerelease: Boolean!\n\n  \"\"\"\n  A list of users mentioned in the release description\n  \"\"\"\n  mentions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserConnection\n\n  \"\"\"\n  The title of the release.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  Identifies the date and time when the release was created.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  A list of reactions grouped by content left on the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  A list of Reactions left on the Issue.\n  \"\"\"\n  reactions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Allows filtering Reactions by emoji.\n    \"\"\"\n    content: ReactionContent\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows specifying the order in which reactions are returned.\n    \"\"\"\n    orderBy: ReactionOrder\n  ): ReactionConnection!\n\n  \"\"\"\n  List of releases assets which are dependent on this release.\n  \"\"\"\n  releaseAssets(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    A list of names to filter the assets by.\n    \"\"\"\n    name: String\n  ): ReleaseAssetConnection!\n\n  \"\"\"\n  The repository that the release belongs to.\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The HTTP path for this issue\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  A description of the release, rendered to HTML without any links in it.\n  \"\"\"\n  shortDescriptionHTML(\n    \"\"\"\n    How many characters to return.\n    \"\"\"\n    limit: Int = 200\n  ): HTML\n\n  \"\"\"\n  The Git tag the release points to\n  \"\"\"\n  tag: Ref\n\n  \"\"\"\n  The tag commit for this release.\n  \"\"\"\n  tagCommit: Commit\n\n  \"\"\"\n  The name of the release's Git tag\n  \"\"\"\n  tagName: String!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this issue\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Can user react to this subject\n  \"\"\"\n  viewerCanReact: Boolean!\n}\n\n\"\"\"\nA release asset contains the content for a release asset.\n\"\"\"\ntype ReleaseAsset implements Node {\n  \"\"\"\n  The asset's content-type\n  \"\"\"\n  contentType: String!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The number of times this asset was downloaded\n  \"\"\"\n  downloadCount: Int!\n\n  \"\"\"\n  Identifies the URL where you can download the release asset via the browser.\n  \"\"\"\n  downloadUrl: URI!\n\n  \"\"\"\n  The Node ID of the ReleaseAsset object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the title of the release asset.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  Release that the asset is associated with\n  \"\"\"\n  release: Release\n\n  \"\"\"\n  The size (in bytes) of the asset\n  \"\"\"\n  size: Int!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The user that performed the upload\n  \"\"\"\n  uploadedBy: User!\n\n  \"\"\"\n  Identifies the URL of the release asset.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nThe connection type for ReleaseAsset.\n\"\"\"\ntype ReleaseAssetConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ReleaseAssetEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ReleaseAsset]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ReleaseAssetEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ReleaseAsset\n}\n\n\"\"\"\nThe connection type for Release.\n\"\"\"\ntype ReleaseConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ReleaseEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Release]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ReleaseEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Release\n}\n\n\"\"\"\nWays in which lists of releases can be ordered upon return.\n\"\"\"\ninput ReleaseOrder {\n  \"\"\"\n  The direction in which to order releases by the specified field.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field in which to order releases by.\n  \"\"\"\n  field: ReleaseOrderField!\n}\n\n\"\"\"\nProperties by which release connections can be ordered.\n\"\"\"\nenum ReleaseOrderField {\n  \"\"\"\n  Order releases by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order releases alphabetically by name\n  \"\"\"\n  NAME\n}\n\n\"\"\"\nAutogenerated input type of RemoveAssigneesFromAssignable\n\"\"\"\ninput RemoveAssigneesFromAssignableInput {\n  \"\"\"\n  The id of the assignable object to remove assignees from.\n  \"\"\"\n  assignableId: ID! @possibleTypes(concreteTypes: [\"Issue\", \"PullRequest\"], abstractType: \"Assignable\")\n\n  \"\"\"\n  The id of users to remove as assignees.\n  \"\"\"\n  assigneeIds: [ID!]! @possibleTypes(concreteTypes: [\"User\"])\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated return type of RemoveAssigneesFromAssignable\n\"\"\"\ntype RemoveAssigneesFromAssignablePayload {\n  \"\"\"\n  The item that was unassigned.\n  \"\"\"\n  assignable: Assignable\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of RemoveEnterpriseAdmin\n\"\"\"\ninput RemoveEnterpriseAdminInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Enterprise ID from which to remove the administrator.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The login of the user to remove as an administrator.\n  \"\"\"\n  login: String!\n}\n\n\"\"\"\nAutogenerated return type of RemoveEnterpriseAdmin\n\"\"\"\ntype RemoveEnterpriseAdminPayload {\n  \"\"\"\n  The user who was removed as an administrator.\n  \"\"\"\n  admin: User\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated enterprise.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of removing an administrator.\n  \"\"\"\n  message: String\n\n  \"\"\"\n  The viewer performing the mutation.\n  \"\"\"\n  viewer: User\n}\n\n\"\"\"\nAutogenerated input type of RemoveEnterpriseIdentityProvider\n\"\"\"\ninput RemoveEnterpriseIdentityProviderInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise from which to remove the identity provider.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n}\n\n\"\"\"\nAutogenerated return type of RemoveEnterpriseIdentityProvider\n\"\"\"\ntype RemoveEnterpriseIdentityProviderPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The identity provider that was removed from the enterprise.\n  \"\"\"\n  identityProvider: EnterpriseIdentityProvider\n}\n\n\"\"\"\nAutogenerated input type of RemoveEnterpriseMember\n\"\"\"\ninput RemoveEnterpriseMemberInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise from which the user should be removed.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The ID of the user to remove from the enterprise.\n  \"\"\"\n  userId: ID! @possibleTypes(concreteTypes: [\"User\"])\n}\n\n\"\"\"\nAutogenerated return type of RemoveEnterpriseMember\n\"\"\"\ntype RemoveEnterpriseMemberPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated enterprise.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  The user that was removed from the enterprise.\n  \"\"\"\n  user: User\n\n  \"\"\"\n  The viewer performing the mutation.\n  \"\"\"\n  viewer: User\n}\n\n\"\"\"\nAutogenerated input type of RemoveEnterpriseOrganization\n\"\"\"\ninput RemoveEnterpriseOrganizationInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise from which the organization should be removed.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The ID of the organization to remove from the enterprise.\n  \"\"\"\n  organizationId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n}\n\n\"\"\"\nAutogenerated return type of RemoveEnterpriseOrganization\n\"\"\"\ntype RemoveEnterpriseOrganizationPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated enterprise.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  The organization that was removed from the enterprise.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The viewer performing the mutation.\n  \"\"\"\n  viewer: User\n}\n\n\"\"\"\nAutogenerated input type of RemoveEnterpriseSupportEntitlement\n\"\"\"\ninput RemoveEnterpriseSupportEntitlementInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the Enterprise which the admin belongs to.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The login of a member who will lose the support entitlement.\n  \"\"\"\n  login: String!\n}\n\n\"\"\"\nAutogenerated return type of RemoveEnterpriseSupportEntitlement\n\"\"\"\ntype RemoveEnterpriseSupportEntitlementPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A message confirming the result of removing the support entitlement.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of RemoveLabelsFromLabelable\n\"\"\"\ninput RemoveLabelsFromLabelableInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ids of labels to remove.\n  \"\"\"\n  labelIds: [ID!]! @possibleTypes(concreteTypes: [\"Label\"])\n\n  \"\"\"\n  The id of the Labelable to remove labels from.\n  \"\"\"\n  labelableId: ID! @possibleTypes(concreteTypes: [\"Discussion\", \"Issue\", \"PullRequest\"], abstractType: \"Labelable\")\n}\n\n\"\"\"\nAutogenerated return type of RemoveLabelsFromLabelable\n\"\"\"\ntype RemoveLabelsFromLabelablePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Labelable the labels were removed from.\n  \"\"\"\n  labelable: Labelable\n}\n\n\"\"\"\nAutogenerated input type of RemoveOutsideCollaborator\n\"\"\"\ninput RemoveOutsideCollaboratorInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the organization to remove the outside collaborator from.\n  \"\"\"\n  organizationId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n\n  \"\"\"\n  The ID of the outside collaborator to remove.\n  \"\"\"\n  userId: ID! @possibleTypes(concreteTypes: [\"User\"])\n}\n\n\"\"\"\nAutogenerated return type of RemoveOutsideCollaborator\n\"\"\"\ntype RemoveOutsideCollaboratorPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The user that was removed as an outside collaborator.\n  \"\"\"\n  removedUser: User\n}\n\n\"\"\"\nAutogenerated input type of RemoveReaction\n\"\"\"\ninput RemoveReactionInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The name of the emoji reaction to remove.\n  \"\"\"\n  content: ReactionContent!\n\n  \"\"\"\n  The Node ID of the subject to modify.\n  \"\"\"\n  subjectId: ID!\n    @possibleTypes(\n      concreteTypes: [\n        \"CommitComment\"\n        \"Discussion\"\n        \"DiscussionComment\"\n        \"Issue\"\n        \"IssueComment\"\n        \"PullRequest\"\n        \"PullRequestReview\"\n        \"PullRequestReviewComment\"\n        \"Release\"\n        \"TeamDiscussion\"\n        \"TeamDiscussionComment\"\n      ]\n      abstractType: \"Reactable\"\n    )\n}\n\n\"\"\"\nAutogenerated return type of RemoveReaction\n\"\"\"\ntype RemoveReactionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The reaction object.\n  \"\"\"\n  reaction: Reaction\n\n  \"\"\"\n  The reaction groups for the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  The reactable subject.\n  \"\"\"\n  subject: Reactable\n}\n\n\"\"\"\nAutogenerated input type of RemoveStar\n\"\"\"\ninput RemoveStarInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Starrable ID to unstar.\n  \"\"\"\n  starrableId: ID! @possibleTypes(concreteTypes: [\"Gist\", \"Repository\", \"Topic\"], abstractType: \"Starrable\")\n}\n\n\"\"\"\nAutogenerated return type of RemoveStar\n\"\"\"\ntype RemoveStarPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The starrable.\n  \"\"\"\n  starrable: Starrable\n}\n\n\"\"\"\nAutogenerated input type of RemoveUpvote\n\"\"\"\ninput RemoveUpvoteInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the discussion or comment to remove upvote.\n  \"\"\"\n  subjectId: ID! @possibleTypes(concreteTypes: [\"Discussion\", \"DiscussionComment\"], abstractType: \"Votable\")\n}\n\n\"\"\"\nAutogenerated return type of RemoveUpvote\n\"\"\"\ntype RemoveUpvotePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The votable subject.\n  \"\"\"\n  subject: Votable\n}\n\n\"\"\"\nRepresents a 'removed_from_merge_queue' event on a given pull request.\n\"\"\"\ntype RemovedFromMergeQueueEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the before commit SHA for the 'removed_from_merge_queue' event.\n  \"\"\"\n  beforeCommit: Commit\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The user who removed this Pull Request from the merge queue\n  \"\"\"\n  enqueuer: User\n\n  \"\"\"\n  The Node ID of the RemovedFromMergeQueueEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The merge queue where this pull request was removed from.\n  \"\"\"\n  mergeQueue: MergeQueue\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest\n\n  \"\"\"\n  The reason this pull request was removed from the queue.\n  \"\"\"\n  reason: String\n}\n\n\"\"\"\nRepresents a 'removed_from_project' event on a given issue or pull request.\n\"\"\"\ntype RemovedFromProjectEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the RemovedFromProjectEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Project referenced by event.\n  \"\"\"\n  project: Project @preview(toggledBy: \"starfox-preview\")\n\n  \"\"\"\n  Column name referenced by this project event.\n  \"\"\"\n  projectColumnName: String! @preview(toggledBy: \"starfox-preview\")\n}\n\n\"\"\"\nRepresents a 'renamed' event on a given issue or pull request\n\"\"\"\ntype RenamedTitleEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the current title of the issue or pull request.\n  \"\"\"\n  currentTitle: String!\n\n  \"\"\"\n  The Node ID of the RenamedTitleEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the previous title of the issue or pull request.\n  \"\"\"\n  previousTitle: String!\n\n  \"\"\"\n  Subject that was renamed.\n  \"\"\"\n  subject: RenamedTitleSubject!\n}\n\n\"\"\"\nAn object which has a renamable title\n\"\"\"\nunion RenamedTitleSubject = Issue | PullRequest\n\n\"\"\"\nAutogenerated input type of ReopenDiscussion\n\"\"\"\ninput ReopenDiscussionInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the discussion to be reopened.\n  \"\"\"\n  discussionId: ID! @possibleTypes(concreteTypes: [\"Discussion\"])\n}\n\n\"\"\"\nAutogenerated return type of ReopenDiscussion\n\"\"\"\ntype ReopenDiscussionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The discussion that was reopened.\n  \"\"\"\n  discussion: Discussion\n}\n\n\"\"\"\nAutogenerated input type of ReopenIssue\n\"\"\"\ninput ReopenIssueInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the issue to be opened.\n  \"\"\"\n  issueId: ID! @possibleTypes(concreteTypes: [\"Issue\"])\n}\n\n\"\"\"\nAutogenerated return type of ReopenIssue\n\"\"\"\ntype ReopenIssuePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The issue that was opened.\n  \"\"\"\n  issue: Issue\n}\n\n\"\"\"\nAutogenerated input type of ReopenPullRequest\n\"\"\"\ninput ReopenPullRequestInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the pull request to be reopened.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n}\n\n\"\"\"\nAutogenerated return type of ReopenPullRequest\n\"\"\"\ntype ReopenPullRequestPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The pull request that was reopened.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nRepresents a 'reopened' event on any `Closable`.\n\"\"\"\ntype ReopenedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Object that was reopened.\n  \"\"\"\n  closable: Closable!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the ReopenedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The reason the issue state was changed to open.\n  \"\"\"\n  stateReason: IssueStateReason\n}\n\n\"\"\"\nAudit log entry for a repo.access event.\n\"\"\"\ntype RepoAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoAccessAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n\n  \"\"\"\n  The visibility of the repository\n  \"\"\"\n  visibility: RepoAccessAuditEntryVisibility\n}\n\n\"\"\"\nThe privacy of a repository\n\"\"\"\nenum RepoAccessAuditEntryVisibility {\n  \"\"\"\n  The repository is visible only to users in the same business.\n  \"\"\"\n  INTERNAL\n\n  \"\"\"\n  The repository is visible only to those with explicit access.\n  \"\"\"\n  PRIVATE\n\n  \"\"\"\n  The repository is visible to everyone.\n  \"\"\"\n  PUBLIC\n}\n\n\"\"\"\nAudit log entry for a repo.add_member event.\n\"\"\"\ntype RepoAddMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoAddMemberAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n\n  \"\"\"\n  The visibility of the repository\n  \"\"\"\n  visibility: RepoAddMemberAuditEntryVisibility\n}\n\n\"\"\"\nThe privacy of a repository\n\"\"\"\nenum RepoAddMemberAuditEntryVisibility {\n  \"\"\"\n  The repository is visible only to users in the same business.\n  \"\"\"\n  INTERNAL\n\n  \"\"\"\n  The repository is visible only to those with explicit access.\n  \"\"\"\n  PRIVATE\n\n  \"\"\"\n  The repository is visible to everyone.\n  \"\"\"\n  PUBLIC\n}\n\n\"\"\"\nAudit log entry for a repo.add_topic event.\n\"\"\"\ntype RepoAddTopicAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TopicAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoAddTopicAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The name of the topic added to the repository\n  \"\"\"\n  topic: Topic\n\n  \"\"\"\n  The name of the topic added to the repository\n  \"\"\"\n  topicName: String\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a repo.archived event.\n\"\"\"\ntype RepoArchivedAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoArchivedAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n\n  \"\"\"\n  The visibility of the repository\n  \"\"\"\n  visibility: RepoArchivedAuditEntryVisibility\n}\n\n\"\"\"\nThe privacy of a repository\n\"\"\"\nenum RepoArchivedAuditEntryVisibility {\n  \"\"\"\n  The repository is visible only to users in the same business.\n  \"\"\"\n  INTERNAL\n\n  \"\"\"\n  The repository is visible only to those with explicit access.\n  \"\"\"\n  PRIVATE\n\n  \"\"\"\n  The repository is visible to everyone.\n  \"\"\"\n  PUBLIC\n}\n\n\"\"\"\nAudit log entry for a repo.change_merge_setting event.\n\"\"\"\ntype RepoChangeMergeSettingAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoChangeMergeSettingAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether the change was to enable (true) or disable (false) the merge type\n  \"\"\"\n  isEnabled: Boolean\n\n  \"\"\"\n  The merge method affected by the change\n  \"\"\"\n  mergeType: RepoChangeMergeSettingAuditEntryMergeType\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nThe merge options available for pull requests to this repository.\n\"\"\"\nenum RepoChangeMergeSettingAuditEntryMergeType {\n  \"\"\"\n  The pull request is added to the base branch in a merge commit.\n  \"\"\"\n  MERGE\n\n  \"\"\"\n  Commits from the pull request are added onto the base branch individually without a merge commit.\n  \"\"\"\n  REBASE\n\n  \"\"\"\n  The pull request's commits are squashed into a single commit before they are merged to the base branch.\n  \"\"\"\n  SQUASH\n}\n\n\"\"\"\nAudit log entry for a repo.config.disable_anonymous_git_access event.\n\"\"\"\ntype RepoConfigDisableAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoConfigDisableAnonymousGitAccessAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a repo.config.disable_collaborators_only event.\n\"\"\"\ntype RepoConfigDisableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoConfigDisableCollaboratorsOnlyAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a repo.config.disable_contributors_only event.\n\"\"\"\ntype RepoConfigDisableContributorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoConfigDisableContributorsOnlyAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a repo.config.disable_sockpuppet_disallowed event.\n\"\"\"\ntype RepoConfigDisableSockpuppetDisallowedAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoConfigDisableSockpuppetDisallowedAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a repo.config.enable_anonymous_git_access event.\n\"\"\"\ntype RepoConfigEnableAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoConfigEnableAnonymousGitAccessAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a repo.config.enable_collaborators_only event.\n\"\"\"\ntype RepoConfigEnableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoConfigEnableCollaboratorsOnlyAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a repo.config.enable_contributors_only event.\n\"\"\"\ntype RepoConfigEnableContributorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoConfigEnableContributorsOnlyAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a repo.config.enable_sockpuppet_disallowed event.\n\"\"\"\ntype RepoConfigEnableSockpuppetDisallowedAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoConfigEnableSockpuppetDisallowedAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a repo.config.lock_anonymous_git_access event.\n\"\"\"\ntype RepoConfigLockAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoConfigLockAnonymousGitAccessAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a repo.config.unlock_anonymous_git_access event.\n\"\"\"\ntype RepoConfigUnlockAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoConfigUnlockAnonymousGitAccessAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a repo.create event.\n\"\"\"\ntype RepoCreateAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The name of the parent repository for this forked repository.\n  \"\"\"\n  forkParentName: String\n\n  \"\"\"\n  The name of the root repository for this network.\n  \"\"\"\n  forkSourceName: String\n\n  \"\"\"\n  The Node ID of the RepoCreateAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n\n  \"\"\"\n  The visibility of the repository\n  \"\"\"\n  visibility: RepoCreateAuditEntryVisibility\n}\n\n\"\"\"\nThe privacy of a repository\n\"\"\"\nenum RepoCreateAuditEntryVisibility {\n  \"\"\"\n  The repository is visible only to users in the same business.\n  \"\"\"\n  INTERNAL\n\n  \"\"\"\n  The repository is visible only to those with explicit access.\n  \"\"\"\n  PRIVATE\n\n  \"\"\"\n  The repository is visible to everyone.\n  \"\"\"\n  PUBLIC\n}\n\n\"\"\"\nAudit log entry for a repo.destroy event.\n\"\"\"\ntype RepoDestroyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoDestroyAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n\n  \"\"\"\n  The visibility of the repository\n  \"\"\"\n  visibility: RepoDestroyAuditEntryVisibility\n}\n\n\"\"\"\nThe privacy of a repository\n\"\"\"\nenum RepoDestroyAuditEntryVisibility {\n  \"\"\"\n  The repository is visible only to users in the same business.\n  \"\"\"\n  INTERNAL\n\n  \"\"\"\n  The repository is visible only to those with explicit access.\n  \"\"\"\n  PRIVATE\n\n  \"\"\"\n  The repository is visible to everyone.\n  \"\"\"\n  PUBLIC\n}\n\n\"\"\"\nAudit log entry for a repo.remove_member event.\n\"\"\"\ntype RepoRemoveMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoRemoveMemberAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n\n  \"\"\"\n  The visibility of the repository\n  \"\"\"\n  visibility: RepoRemoveMemberAuditEntryVisibility\n}\n\n\"\"\"\nThe privacy of a repository\n\"\"\"\nenum RepoRemoveMemberAuditEntryVisibility {\n  \"\"\"\n  The repository is visible only to users in the same business.\n  \"\"\"\n  INTERNAL\n\n  \"\"\"\n  The repository is visible only to those with explicit access.\n  \"\"\"\n  PRIVATE\n\n  \"\"\"\n  The repository is visible to everyone.\n  \"\"\"\n  PUBLIC\n}\n\n\"\"\"\nAudit log entry for a repo.remove_topic event.\n\"\"\"\ntype RepoRemoveTopicAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TopicAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the RepoRemoveTopicAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The name of the topic added to the repository\n  \"\"\"\n  topic: Topic\n\n  \"\"\"\n  The name of the topic added to the repository\n  \"\"\"\n  topicName: String\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nThe reasons a piece of content can be reported or minimized.\n\"\"\"\nenum ReportedContentClassifiers {\n  \"\"\"\n  An abusive or harassing piece of content\n  \"\"\"\n  ABUSE\n\n  \"\"\"\n  A duplicated piece of content\n  \"\"\"\n  DUPLICATE\n\n  \"\"\"\n  An irrelevant piece of content\n  \"\"\"\n  OFF_TOPIC\n\n  \"\"\"\n  An outdated piece of content\n  \"\"\"\n  OUTDATED\n\n  \"\"\"\n  The content has been resolved\n  \"\"\"\n  RESOLVED\n\n  \"\"\"\n  A spammy piece of content\n  \"\"\"\n  SPAM\n}\n\n\"\"\"\nA repository contains the content for a project.\n\"\"\"\ntype Repository implements Node & PackageOwner & ProjectOwner & ProjectV2Recent & RepositoryInfo & Starrable & Subscribable & UniformResourceLocatable {\n  \"\"\"\n  Whether or not a pull request head branch that is behind its base branch can\n  always be updated even if it is not required to be up to date before merging.\n  \"\"\"\n  allowUpdateBranch: Boolean!\n\n  \"\"\"\n  Identifies the date and time when the repository was archived.\n  \"\"\"\n  archivedAt: DateTime\n\n  \"\"\"\n  A list of users that can be assigned to issues in this repository.\n  \"\"\"\n  assignableUsers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filters users with query on user name and login.\n    \"\"\"\n    query: String\n  ): UserConnection!\n\n  \"\"\"\n  Whether or not Auto-merge can be enabled on pull requests in this repository.\n  \"\"\"\n  autoMergeAllowed: Boolean!\n\n  \"\"\"\n  A list of branch protection rules for this repository.\n  \"\"\"\n  branchProtectionRules(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): BranchProtectionRuleConnection!\n\n  \"\"\"\n  Returns the code of conduct for this repository\n  \"\"\"\n  codeOfConduct: CodeOfConduct\n\n  \"\"\"\n  Information extracted from the repository's `CODEOWNERS` file.\n  \"\"\"\n  codeowners(\n    \"\"\"\n    The ref name used to return the associated `CODEOWNERS` file.\n    \"\"\"\n    refName: String\n  ): RepositoryCodeowners\n\n  \"\"\"\n  A list of collaborators associated with the repository.\n  \"\"\"\n  collaborators(\n    \"\"\"\n    Collaborators affiliation level with a repository.\n    \"\"\"\n    affiliation: CollaboratorAffiliation\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    The login of one specific collaborator.\n    \"\"\"\n    login: String\n\n    \"\"\"\n    Filters users with query on user name and login\n    \"\"\"\n    query: String\n  ): RepositoryCollaboratorConnection\n\n  \"\"\"\n  A list of commit comments associated with the repository.\n  \"\"\"\n  commitComments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): CommitCommentConnection!\n\n  \"\"\"\n  Returns a list of contact links associated to the repository\n  \"\"\"\n  contactLinks: [RepositoryContactLink!]\n\n  \"\"\"\n  Returns the contributing guidelines for this repository.\n  \"\"\"\n  contributingGuidelines: ContributingGuidelines\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Ref associated with the repository's default branch.\n  \"\"\"\n  defaultBranchRef: Ref\n\n  \"\"\"\n  Whether or not branches are automatically deleted when merged in this repository.\n  \"\"\"\n  deleteBranchOnMerge: Boolean!\n\n  \"\"\"\n  A list of dependency manifests contained in the repository\n  \"\"\"\n  dependencyGraphManifests(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Cursor to paginate dependencies\n    \"\"\"\n    dependenciesAfter: String\n\n    \"\"\"\n    Number of dependencies to fetch\n    \"\"\"\n    dependenciesFirst: Int\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Flag to scope to only manifests with dependencies\n    \"\"\"\n    withDependencies: Boolean\n  ): DependencyGraphManifestConnection @preview(toggledBy: \"hawkgirl-preview\")\n\n  \"\"\"\n  A list of deploy keys that are on this repository.\n  \"\"\"\n  deployKeys(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): DeployKeyConnection!\n\n  \"\"\"\n  Deployments associated with the repository\n  \"\"\"\n  deployments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Environments to list deployments for\n    \"\"\"\n    environments: [String!]\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for deployments returned from the connection.\n    \"\"\"\n    orderBy: DeploymentOrder = {field: CREATED_AT, direction: ASC}\n  ): DeploymentConnection!\n\n  \"\"\"\n  The description of the repository.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The description of the repository rendered to HTML.\n  \"\"\"\n  descriptionHTML: HTML!\n\n  \"\"\"\n  Returns a single discussion from the current repository by number.\n  \"\"\"\n  discussion(\n    \"\"\"\n    The number for the discussion to be returned.\n    \"\"\"\n    number: Int!\n  ): Discussion\n\n  \"\"\"\n  A list of discussion categories that are available in the repository.\n  \"\"\"\n  discussionCategories(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Filter by categories that are assignable by the viewer.\n    \"\"\"\n    filterByAssignable: Boolean = false\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): DiscussionCategoryConnection!\n\n  \"\"\"\n  A discussion category by slug.\n  \"\"\"\n  discussionCategory(\n    \"\"\"\n    The slug of the discussion category to be returned.\n    \"\"\"\n    slug: String!\n  ): DiscussionCategory\n\n  \"\"\"\n  A list of discussions that have been opened in the repository.\n  \"\"\"\n  discussions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Only show answered or unanswered discussions\n    \"\"\"\n    answered: Boolean = null\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Only include discussions that belong to the category with this ID.\n    \"\"\"\n    categoryId: ID = null\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for discussions returned from the connection.\n    \"\"\"\n    orderBy: DiscussionOrder = {field: UPDATED_AT, direction: DESC}\n\n    \"\"\"\n    A list of states to filter the discussions by.\n    \"\"\"\n    states: [DiscussionState!] = []\n  ): DiscussionConnection!\n\n  \"\"\"\n  The number of kilobytes this repository occupies on disk.\n  \"\"\"\n  diskUsage: Int\n\n  \"\"\"\n  Returns a single active environment from the current repository by name.\n  \"\"\"\n  environment(\n    \"\"\"\n    The name of the environment to be returned.\n    \"\"\"\n    name: String!\n  ): Environment\n\n  \"\"\"\n  A list of environments that are in this repository.\n  \"\"\"\n  environments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the environments\n    \"\"\"\n    orderBy: Environments = {field: NAME, direction: ASC}\n  ): EnvironmentConnection!\n\n  \"\"\"\n  Returns how many forks there are of this repository in the whole network.\n  \"\"\"\n  forkCount: Int!\n\n  \"\"\"\n  Whether this repository allows forks.\n  \"\"\"\n  forkingAllowed: Boolean!\n\n  \"\"\"\n  A list of direct forked repositories.\n  \"\"\"\n  forks(\n    \"\"\"\n    Array of viewer's affiliation options for repositories returned from the\n    connection. For example, OWNER will include only repositories that the\n    current viewer owns.\n    \"\"\"\n    affiliations: [RepositoryAffiliation]\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have issues enabled\n    \"\"\"\n    hasIssuesEnabled: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have been locked\n    \"\"\"\n    isLocked: Boolean\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for repositories returned from the connection\n    \"\"\"\n    orderBy: RepositoryOrder\n\n    \"\"\"\n    Array of owner's affiliation options for repositories returned from the\n    connection. For example, OWNER will include only repositories that the\n    organization or user being viewed owns.\n    \"\"\"\n    ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR]\n\n    \"\"\"\n    If non-null, filters repositories according to privacy\n    \"\"\"\n    privacy: RepositoryPrivacy\n  ): RepositoryConnection!\n\n  \"\"\"\n  The funding links for this repository\n  \"\"\"\n  fundingLinks: [FundingLink!]!\n\n  \"\"\"\n  Indicates if the repository has the Discussions feature enabled.\n  \"\"\"\n  hasDiscussionsEnabled: Boolean!\n\n  \"\"\"\n  Indicates if the repository has issues feature enabled.\n  \"\"\"\n  hasIssuesEnabled: Boolean!\n\n  \"\"\"\n  Indicates if the repository has the Projects feature enabled.\n  \"\"\"\n  hasProjectsEnabled: Boolean!\n\n  \"\"\"\n  Whether vulnerability alerts are enabled for the repository.\n  \"\"\"\n  hasVulnerabilityAlertsEnabled: Boolean!\n\n  \"\"\"\n  Indicates if the repository has wiki feature enabled.\n  \"\"\"\n  hasWikiEnabled: Boolean!\n\n  \"\"\"\n  The repository's URL.\n  \"\"\"\n  homepageUrl: URI\n\n  \"\"\"\n  The Node ID of the Repository object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The interaction ability settings for this repository.\n  \"\"\"\n  interactionAbility: RepositoryInteractionAbility\n\n  \"\"\"\n  Indicates if the repository is unmaintained.\n  \"\"\"\n  isArchived: Boolean!\n\n  \"\"\"\n  Returns true if blank issue creation is allowed\n  \"\"\"\n  isBlankIssuesEnabled: Boolean!\n\n  \"\"\"\n  Returns whether or not this repository disabled.\n  \"\"\"\n  isDisabled: Boolean!\n\n  \"\"\"\n  Returns whether or not this repository is empty.\n  \"\"\"\n  isEmpty: Boolean!\n\n  \"\"\"\n  Identifies if the repository is a fork.\n  \"\"\"\n  isFork: Boolean!\n\n  \"\"\"\n  Indicates if a repository is either owned by an organization, or is a private fork of an organization repository.\n  \"\"\"\n  isInOrganization: Boolean!\n\n  \"\"\"\n  Indicates if the repository has been locked or not.\n  \"\"\"\n  isLocked: Boolean!\n\n  \"\"\"\n  Identifies if the repository is a mirror.\n  \"\"\"\n  isMirror: Boolean!\n\n  \"\"\"\n  Identifies if the repository is private or internal.\n  \"\"\"\n  isPrivate: Boolean!\n\n  \"\"\"\n  Returns true if this repository has a security policy\n  \"\"\"\n  isSecurityPolicyEnabled: Boolean\n\n  \"\"\"\n  Identifies if the repository is a template that can be used to generate new repositories.\n  \"\"\"\n  isTemplate: Boolean!\n\n  \"\"\"\n  Is this repository a user configuration repository?\n  \"\"\"\n  isUserConfigurationRepository: Boolean!\n\n  \"\"\"\n  Returns a single issue from the current repository by number.\n  \"\"\"\n  issue(\n    \"\"\"\n    The number for the issue to be returned.\n    \"\"\"\n    number: Int!\n  ): Issue\n\n  \"\"\"\n  Returns a single issue-like object from the current repository by number.\n  \"\"\"\n  issueOrPullRequest(\n    \"\"\"\n    The number for the issue to be returned.\n    \"\"\"\n    number: Int!\n  ): IssueOrPullRequest\n\n  \"\"\"\n  Returns a list of issue templates associated to the repository\n  \"\"\"\n  issueTemplates: [IssueTemplate!]\n\n  \"\"\"\n  A list of issues that have been opened in the repository.\n  \"\"\"\n  issues(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Filtering options for issues returned from the connection.\n    \"\"\"\n    filterBy: IssueFilters\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    A list of label names to filter the pull requests by.\n    \"\"\"\n    labels: [String!]\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for issues returned from the connection.\n    \"\"\"\n    orderBy: IssueOrder\n\n    \"\"\"\n    A list of states to filter the issues by.\n    \"\"\"\n    states: [IssueState!]\n  ): IssueConnection!\n\n  \"\"\"\n  Returns a single label by name\n  \"\"\"\n  label(\n    \"\"\"\n    Label name\n    \"\"\"\n    name: String!\n  ): Label\n\n  \"\"\"\n  A list of labels associated with the repository.\n  \"\"\"\n  labels(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for labels returned from the connection.\n    \"\"\"\n    orderBy: LabelOrder = {field: CREATED_AT, direction: ASC}\n\n    \"\"\"\n    If provided, searches labels by name and description.\n    \"\"\"\n    query: String\n  ): LabelConnection\n\n  \"\"\"\n  A list containing a breakdown of the language composition of the repository.\n  \"\"\"\n  languages(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Order for connection\n    \"\"\"\n    orderBy: LanguageOrder\n  ): LanguageConnection\n\n  \"\"\"\n  Get the latest release for the repository if one exists.\n  \"\"\"\n  latestRelease: Release\n\n  \"\"\"\n  The license associated with the repository\n  \"\"\"\n  licenseInfo: License\n\n  \"\"\"\n  The reason the repository has been locked.\n  \"\"\"\n  lockReason: RepositoryLockReason\n\n  \"\"\"\n  A list of Users that can be mentioned in the context of the repository.\n  \"\"\"\n  mentionableUsers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filters users with query on user name and login\n    \"\"\"\n    query: String\n  ): UserConnection!\n\n  \"\"\"\n  Whether or not PRs are merged with a merge commit on this repository.\n  \"\"\"\n  mergeCommitAllowed: Boolean!\n\n  \"\"\"\n  How the default commit message will be generated when merging a pull request.\n  \"\"\"\n  mergeCommitMessage: MergeCommitMessage!\n\n  \"\"\"\n  How the default commit title will be generated when merging a pull request.\n  \"\"\"\n  mergeCommitTitle: MergeCommitTitle!\n\n  \"\"\"\n  The merge queue for a specified branch, otherwise the default branch if not provided.\n  \"\"\"\n  mergeQueue(\n    \"\"\"\n    The name of the branch to get the merge queue for. Case sensitive.\n    \"\"\"\n    branch: String\n  ): MergeQueue\n\n  \"\"\"\n  Returns a single milestone from the current repository by number.\n  \"\"\"\n  milestone(\n    \"\"\"\n    The number for the milestone to be returned.\n    \"\"\"\n    number: Int!\n  ): Milestone\n\n  \"\"\"\n  A list of milestones associated with the repository.\n  \"\"\"\n  milestones(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for milestones.\n    \"\"\"\n    orderBy: MilestoneOrder\n\n    \"\"\"\n    Filters milestones with a query on the title\n    \"\"\"\n    query: String\n\n    \"\"\"\n    Filter by the state of the milestones.\n    \"\"\"\n    states: [MilestoneState!]\n  ): MilestoneConnection\n\n  \"\"\"\n  The repository's original mirror URL.\n  \"\"\"\n  mirrorUrl: URI\n\n  \"\"\"\n  The name of the repository.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The repository's name with owner.\n  \"\"\"\n  nameWithOwner: String!\n\n  \"\"\"\n  A Git object in the repository\n  \"\"\"\n  object(\n    \"\"\"\n    A Git revision expression suitable for rev-parse\n    \"\"\"\n    expression: String\n\n    \"\"\"\n    The Git object ID\n    \"\"\"\n    oid: GitObjectID\n  ): GitObject\n\n  \"\"\"\n  The image used to represent this repository in Open Graph data.\n  \"\"\"\n  openGraphImageUrl: URI!\n\n  \"\"\"\n  The User owner of the repository.\n  \"\"\"\n  owner: RepositoryOwner!\n\n  \"\"\"\n  A list of packages under the owner.\n  \"\"\"\n  packages(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Find packages by their names.\n    \"\"\"\n    names: [String]\n\n    \"\"\"\n    Ordering of the returned packages.\n    \"\"\"\n    orderBy: PackageOrder = {field: CREATED_AT, direction: DESC}\n\n    \"\"\"\n    Filter registry package by type.\n    \"\"\"\n    packageType: PackageType\n\n    \"\"\"\n    Find packages in a repository by ID.\n    \"\"\"\n    repositoryId: ID\n  ): PackageConnection!\n\n  \"\"\"\n  The repository parent, if this is a fork.\n  \"\"\"\n  parent: Repository\n\n  \"\"\"\n  A list of discussions that have been pinned in this repository.\n  \"\"\"\n  pinnedDiscussions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): PinnedDiscussionConnection!\n\n  \"\"\"\n  A list of pinned issues for this repository.\n  \"\"\"\n  pinnedIssues(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): PinnedIssueConnection\n\n  \"\"\"\n  The primary language of the repository's code.\n  \"\"\"\n  primaryLanguage: Language\n\n  \"\"\"\n  Find project by number.\n  \"\"\"\n  project(\n    \"\"\"\n    The project number to find.\n    \"\"\"\n    number: Int!\n  ): Project\n\n  \"\"\"\n  Finds and returns the Project according to the provided Project number.\n  \"\"\"\n  projectV2(\n    \"\"\"\n    The Project number.\n    \"\"\"\n    number: Int!\n  ): ProjectV2\n\n  \"\"\"\n  A list of projects under the owner.\n  \"\"\"\n  projects(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for projects returned from the connection\n    \"\"\"\n    orderBy: ProjectOrder\n\n    \"\"\"\n    Query to search projects by, currently only searching by name.\n    \"\"\"\n    search: String\n\n    \"\"\"\n    A list of states to filter the projects by.\n    \"\"\"\n    states: [ProjectState!]\n  ): ProjectConnection!\n\n  \"\"\"\n  The HTTP path listing the repository's projects\n  \"\"\"\n  projectsResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL listing the repository's projects\n  \"\"\"\n  projectsUrl: URI!\n\n  \"\"\"\n  List of projects linked to this repository.\n  \"\"\"\n  projectsV2(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    How to order the returned projects.\n    \"\"\"\n    orderBy: ProjectV2Order = {field: NUMBER, direction: DESC}\n\n    \"\"\"\n    A project to search for linked to the repo.\n    \"\"\"\n    query: String\n  ): ProjectV2Connection!\n\n  \"\"\"\n  Returns a single pull request from the current repository by number.\n  \"\"\"\n  pullRequest(\n    \"\"\"\n    The number for the pull request to be returned.\n    \"\"\"\n    number: Int!\n  ): PullRequest\n\n  \"\"\"\n  Returns a list of pull request templates associated to the repository\n  \"\"\"\n  pullRequestTemplates: [PullRequestTemplate!]\n\n  \"\"\"\n  A list of pull requests that have been opened in the repository.\n  \"\"\"\n  pullRequests(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    The base ref name to filter the pull requests by.\n    \"\"\"\n    baseRefName: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    The head ref name to filter the pull requests by.\n    \"\"\"\n    headRefName: String\n\n    \"\"\"\n    A list of label names to filter the pull requests by.\n    \"\"\"\n    labels: [String!]\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for pull requests returned from the connection.\n    \"\"\"\n    orderBy: IssueOrder\n\n    \"\"\"\n    A list of states to filter the pull requests by.\n    \"\"\"\n    states: [PullRequestState!]\n  ): PullRequestConnection!\n\n  \"\"\"\n  Identifies the date and time when the repository was last pushed to.\n  \"\"\"\n  pushedAt: DateTime\n\n  \"\"\"\n  Whether or not rebase-merging is enabled on this repository.\n  \"\"\"\n  rebaseMergeAllowed: Boolean!\n\n  \"\"\"\n  Recent projects that this user has modified in the context of the owner.\n  \"\"\"\n  recentProjects(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectV2Connection!\n\n  \"\"\"\n  Fetch a given ref from the repository\n  \"\"\"\n  ref(\n    \"\"\"\n    The ref to retrieve. Fully qualified matches are checked in order\n    (`refs/heads/master`) before falling back onto checks for short name matches (`master`).\n    \"\"\"\n    qualifiedName: String!\n  ): Ref\n\n  \"\"\"\n  Fetch a list of refs from the repository\n  \"\"\"\n  refs(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    DEPRECATED: use orderBy. The ordering direction.\n    \"\"\"\n    direction: OrderDirection\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for refs returned from the connection.\n    \"\"\"\n    orderBy: RefOrder\n\n    \"\"\"\n    Filters refs with query on name\n    \"\"\"\n    query: String\n\n    \"\"\"\n    A ref name prefix like `refs/heads/`, `refs/tags/`, etc.\n    \"\"\"\n    refPrefix: String!\n  ): RefConnection\n\n  \"\"\"\n  Lookup a single release given various criteria.\n  \"\"\"\n  release(\n    \"\"\"\n    The name of the Tag the Release was created from\n    \"\"\"\n    tagName: String!\n  ): Release\n\n  \"\"\"\n  List of releases which are dependent on this repository.\n  \"\"\"\n  releases(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Order for connection\n    \"\"\"\n    orderBy: ReleaseOrder\n  ): ReleaseConnection!\n\n  \"\"\"\n  A list of applied repository-topic associations for this repository.\n  \"\"\"\n  repositoryTopics(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): RepositoryTopicConnection!\n\n  \"\"\"\n  The HTTP path for this repository\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Returns a single ruleset from the current repository by ID.\n  \"\"\"\n  ruleset(\n    \"\"\"\n    The ID of the ruleset to be returned.\n    \"\"\"\n    databaseId: Int!\n\n    \"\"\"\n    Include rulesets configured at higher levels that apply to this repository\n    \"\"\"\n    includeParents: Boolean = true\n  ): RepositoryRuleset\n\n  \"\"\"\n  A list of rulesets for this repository.\n  \"\"\"\n  rulesets(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Return rulesets configured at higher levels that apply to this repository\n    \"\"\"\n    includeParents: Boolean = true\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): RepositoryRulesetConnection\n\n  \"\"\"\n  The security policy URL.\n  \"\"\"\n  securityPolicyUrl: URI\n\n  \"\"\"\n  A description of the repository, rendered to HTML without any links in it.\n  \"\"\"\n  shortDescriptionHTML(\n    \"\"\"\n    How many characters to return.\n    \"\"\"\n    limit: Int = 200\n  ): HTML!\n\n  \"\"\"\n  Whether or not squash-merging is enabled on this repository.\n  \"\"\"\n  squashMergeAllowed: Boolean!\n\n  \"\"\"\n  How the default commit message will be generated when squash merging a pull request.\n  \"\"\"\n  squashMergeCommitMessage: SquashMergeCommitMessage!\n\n  \"\"\"\n  How the default commit title will be generated when squash merging a pull request.\n  \"\"\"\n  squashMergeCommitTitle: SquashMergeCommitTitle!\n\n  \"\"\"\n  Whether a squash merge commit can use the pull request title as default.\n  \"\"\"\n  squashPrTitleUsedAsDefault: Boolean!\n    @deprecated(\n      reason: \"`squashPrTitleUsedAsDefault` will be removed. Use `Repository.squashMergeCommitTitle` instead. Removal on 2023-04-01 UTC.\"\n    )\n\n  \"\"\"\n  The SSH URL to clone this repository\n  \"\"\"\n  sshUrl: GitSSHRemote!\n\n  \"\"\"\n  Returns a count of how many stargazers there are on this object\n  \"\"\"\n  stargazerCount: Int!\n\n  \"\"\"\n  A list of users who have starred this starrable.\n  \"\"\"\n  stargazers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Order for connection\n    \"\"\"\n    orderBy: StarOrder\n  ): StargazerConnection!\n\n  \"\"\"\n  Returns a list of all submodules in this repository parsed from the\n  .gitmodules file as of the default branch's HEAD commit.\n  \"\"\"\n  submodules(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): SubmoduleConnection!\n\n  \"\"\"\n  Temporary authentication token for cloning this repository.\n  \"\"\"\n  tempCloneToken: String\n\n  \"\"\"\n  The repository from which this repository was generated, if any.\n  \"\"\"\n  templateRepository: Repository\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this repository\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar.\n  \"\"\"\n  usesCustomOpenGraphImage: Boolean!\n\n  \"\"\"\n  Indicates whether the viewer has admin permissions on this repository.\n  \"\"\"\n  viewerCanAdminister: Boolean!\n\n  \"\"\"\n  Can the current viewer create new projects on this owner.\n  \"\"\"\n  viewerCanCreateProjects: Boolean!\n\n  \"\"\"\n  Check if the viewer is able to change their subscription status for the repository.\n  \"\"\"\n  viewerCanSubscribe: Boolean!\n\n  \"\"\"\n  Indicates whether the viewer can update the topics of this repository.\n  \"\"\"\n  viewerCanUpdateTopics: Boolean!\n\n  \"\"\"\n  The last commit email for the viewer.\n  \"\"\"\n  viewerDefaultCommitEmail: String\n\n  \"\"\"\n  The last used merge method by the viewer or the default for the repository.\n  \"\"\"\n  viewerDefaultMergeMethod: PullRequestMergeMethod!\n\n  \"\"\"\n  Returns a boolean indicating whether the viewing user has starred this starrable.\n  \"\"\"\n  viewerHasStarred: Boolean!\n\n  \"\"\"\n  The users permission level on the repository. Will return null if authenticated as an GitHub App.\n  \"\"\"\n  viewerPermission: RepositoryPermission\n\n  \"\"\"\n  A list of emails this viewer can commit with.\n  \"\"\"\n  viewerPossibleCommitEmails: [String!]\n\n  \"\"\"\n  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.\n  \"\"\"\n  viewerSubscription: SubscriptionState\n\n  \"\"\"\n  Indicates the repository's visibility level.\n  \"\"\"\n  visibility: RepositoryVisibility!\n\n  \"\"\"\n  Returns a single vulnerability alert from the current repository by number.\n  \"\"\"\n  vulnerabilityAlert(\n    \"\"\"\n    The number for the vulnerability alert to be returned.\n    \"\"\"\n    number: Int!\n  ): RepositoryVulnerabilityAlert\n\n  \"\"\"\n  A list of vulnerability alerts that are on this repository.\n  \"\"\"\n  vulnerabilityAlerts(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Filter by the scope of the alert's dependency\n    \"\"\"\n    dependencyScopes: [RepositoryVulnerabilityAlertDependencyScope!]\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter by the state of the alert\n    \"\"\"\n    states: [RepositoryVulnerabilityAlertState!]\n  ): RepositoryVulnerabilityAlertConnection\n\n  \"\"\"\n  A list of users watching the repository.\n  \"\"\"\n  watchers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserConnection!\n\n  \"\"\"\n  Whether contributors are required to sign off on web-based commits in this repository.\n  \"\"\"\n  webCommitSignoffRequired: Boolean!\n}\n\n\"\"\"\nThe affiliation of a user to a repository\n\"\"\"\nenum RepositoryAffiliation {\n  \"\"\"\n  Repositories that the user has been added to as a collaborator.\n  \"\"\"\n  COLLABORATOR\n\n  \"\"\"\n  Repositories that the user has access to through being a member of an\n  organization. This includes every repository on every team that the user is on.\n  \"\"\"\n  ORGANIZATION_MEMBER\n\n  \"\"\"\n  Repositories that are owned by the authenticated user.\n  \"\"\"\n  OWNER\n}\n\n\"\"\"\nMetadata for an audit entry with action repo.*\n\"\"\"\ninterface RepositoryAuditEntryData {\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n}\n\n\"\"\"\nInformation extracted from a repository's `CODEOWNERS` file.\n\"\"\"\ntype RepositoryCodeowners {\n  \"\"\"\n  Any problems that were encountered while parsing the `CODEOWNERS` file.\n  \"\"\"\n  errors: [RepositoryCodeownersError!]!\n}\n\n\"\"\"\nAn error in a `CODEOWNERS` file.\n\"\"\"\ntype RepositoryCodeownersError {\n  \"\"\"\n  The column number where the error occurs.\n  \"\"\"\n  column: Int!\n\n  \"\"\"\n  A short string describing the type of error.\n  \"\"\"\n  kind: String!\n\n  \"\"\"\n  The line number where the error occurs.\n  \"\"\"\n  line: Int!\n\n  \"\"\"\n  A complete description of the error, combining information from other fields.\n  \"\"\"\n  message: String!\n\n  \"\"\"\n  The path to the file when the error occurs.\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  The content of the line where the error occurs.\n  \"\"\"\n  source: String!\n\n  \"\"\"\n  A suggestion of how to fix the error.\n  \"\"\"\n  suggestion: String\n}\n\n\"\"\"\nThe connection type for User.\n\"\"\"\ntype RepositoryCollaboratorConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [RepositoryCollaboratorEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [User]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nRepresents a user who is a collaborator of a repository.\n\"\"\"\ntype RepositoryCollaboratorEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n  node: User!\n\n  \"\"\"\n  The permission the user has on the repository.\n  \"\"\"\n  permission: RepositoryPermission!\n\n  \"\"\"\n  A list of sources for the user's access to the repository.\n  \"\"\"\n  permissionSources: [PermissionSource!]\n}\n\n\"\"\"\nA list of repositories owned by the subject.\n\"\"\"\ntype RepositoryConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [RepositoryEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Repository]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n\n  \"\"\"\n  The total size in kilobytes of all repositories in the connection. Value will\n  never be larger than max 32-bit signed integer.\n  \"\"\"\n  totalDiskUsage: Int!\n}\n\n\"\"\"\nA repository contact link.\n\"\"\"\ntype RepositoryContactLink {\n  \"\"\"\n  The contact link purpose.\n  \"\"\"\n  about: String!\n\n  \"\"\"\n  The contact link name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The contact link URL.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nThe reason a repository is listed as 'contributed'.\n\"\"\"\nenum RepositoryContributionType {\n  \"\"\"\n  Created a commit\n  \"\"\"\n  COMMIT\n\n  \"\"\"\n  Created an issue\n  \"\"\"\n  ISSUE\n\n  \"\"\"\n  Created a pull request\n  \"\"\"\n  PULL_REQUEST\n\n  \"\"\"\n  Reviewed a pull request\n  \"\"\"\n  PULL_REQUEST_REVIEW\n\n  \"\"\"\n  Created the repository\n  \"\"\"\n  REPOSITORY\n}\n\n\"\"\"\nRepresents an author of discussions in repositories.\n\"\"\"\ninterface RepositoryDiscussionAuthor {\n  \"\"\"\n  Discussions this user has started.\n  \"\"\"\n  repositoryDiscussions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Filter discussions to only those that have been answered or not. Defaults to\n    including both answered and unanswered discussions.\n    \"\"\"\n    answered: Boolean = null\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for discussions returned from the connection.\n    \"\"\"\n    orderBy: DiscussionOrder = {field: CREATED_AT, direction: DESC}\n\n    \"\"\"\n    Filter discussions to only those in a specific repository.\n    \"\"\"\n    repositoryId: ID\n\n    \"\"\"\n    A list of states to filter the discussions by.\n    \"\"\"\n    states: [DiscussionState!] = []\n  ): DiscussionConnection!\n}\n\n\"\"\"\nRepresents an author of discussion comments in repositories.\n\"\"\"\ninterface RepositoryDiscussionCommentAuthor {\n  \"\"\"\n  Discussion comments this user has authored.\n  \"\"\"\n  repositoryDiscussionComments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter discussion comments to only those that were marked as the answer\n    \"\"\"\n    onlyAnswers: Boolean = false\n\n    \"\"\"\n    Filter discussion comments to only those in a specific repository.\n    \"\"\"\n    repositoryId: ID\n  ): DiscussionCommentConnection!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype RepositoryEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Repository\n}\n\n\"\"\"\nParameters to be used for the repository_id condition\n\"\"\"\ntype RepositoryIdConditionTarget {\n  \"\"\"\n  One of these repo IDs must match the repo.\n  \"\"\"\n  repositoryIds: [ID!]!\n}\n\n\"\"\"\nParameters to be used for the repository_id condition\n\"\"\"\ninput RepositoryIdConditionTargetInput {\n  \"\"\"\n  One of these repo IDs must match the repo.\n  \"\"\"\n  repositoryIds: [ID!]!\n}\n\n\"\"\"\nA subset of repository info.\n\"\"\"\ninterface RepositoryInfo {\n  \"\"\"\n  Identifies the date and time when the repository was archived.\n  \"\"\"\n  archivedAt: DateTime\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The description of the repository.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The description of the repository rendered to HTML.\n  \"\"\"\n  descriptionHTML: HTML!\n\n  \"\"\"\n  Returns how many forks there are of this repository in the whole network.\n  \"\"\"\n  forkCount: Int!\n\n  \"\"\"\n  Indicates if the repository has the Discussions feature enabled.\n  \"\"\"\n  hasDiscussionsEnabled: Boolean!\n\n  \"\"\"\n  Indicates if the repository has issues feature enabled.\n  \"\"\"\n  hasIssuesEnabled: Boolean!\n\n  \"\"\"\n  Indicates if the repository has the Projects feature enabled.\n  \"\"\"\n  hasProjectsEnabled: Boolean!\n\n  \"\"\"\n  Indicates if the repository has wiki feature enabled.\n  \"\"\"\n  hasWikiEnabled: Boolean!\n\n  \"\"\"\n  The repository's URL.\n  \"\"\"\n  homepageUrl: URI\n\n  \"\"\"\n  Indicates if the repository is unmaintained.\n  \"\"\"\n  isArchived: Boolean!\n\n  \"\"\"\n  Identifies if the repository is a fork.\n  \"\"\"\n  isFork: Boolean!\n\n  \"\"\"\n  Indicates if a repository is either owned by an organization, or is a private fork of an organization repository.\n  \"\"\"\n  isInOrganization: Boolean!\n\n  \"\"\"\n  Indicates if the repository has been locked or not.\n  \"\"\"\n  isLocked: Boolean!\n\n  \"\"\"\n  Identifies if the repository is a mirror.\n  \"\"\"\n  isMirror: Boolean!\n\n  \"\"\"\n  Identifies if the repository is private or internal.\n  \"\"\"\n  isPrivate: Boolean!\n\n  \"\"\"\n  Identifies if the repository is a template that can be used to generate new repositories.\n  \"\"\"\n  isTemplate: Boolean!\n\n  \"\"\"\n  The license associated with the repository\n  \"\"\"\n  licenseInfo: License\n\n  \"\"\"\n  The reason the repository has been locked.\n  \"\"\"\n  lockReason: RepositoryLockReason\n\n  \"\"\"\n  The repository's original mirror URL.\n  \"\"\"\n  mirrorUrl: URI\n\n  \"\"\"\n  The name of the repository.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The repository's name with owner.\n  \"\"\"\n  nameWithOwner: String!\n\n  \"\"\"\n  The image used to represent this repository in Open Graph data.\n  \"\"\"\n  openGraphImageUrl: URI!\n\n  \"\"\"\n  The User owner of the repository.\n  \"\"\"\n  owner: RepositoryOwner!\n\n  \"\"\"\n  Identifies the date and time when the repository was last pushed to.\n  \"\"\"\n  pushedAt: DateTime\n\n  \"\"\"\n  The HTTP path for this repository\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  A description of the repository, rendered to HTML without any links in it.\n  \"\"\"\n  shortDescriptionHTML(\n    \"\"\"\n    How many characters to return.\n    \"\"\"\n    limit: Int = 200\n  ): HTML!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this repository\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar.\n  \"\"\"\n  usesCustomOpenGraphImage: Boolean!\n\n  \"\"\"\n  Indicates the repository's visibility level.\n  \"\"\"\n  visibility: RepositoryVisibility!\n}\n\n\"\"\"\nRepository interaction limit that applies to this object.\n\"\"\"\ntype RepositoryInteractionAbility {\n  \"\"\"\n  The time the currently active limit expires.\n  \"\"\"\n  expiresAt: DateTime\n\n  \"\"\"\n  The current limit that is enabled on this object.\n  \"\"\"\n  limit: RepositoryInteractionLimit!\n\n  \"\"\"\n  The origin of the currently active interaction limit.\n  \"\"\"\n  origin: RepositoryInteractionLimitOrigin!\n}\n\n\"\"\"\nA repository interaction limit.\n\"\"\"\nenum RepositoryInteractionLimit {\n  \"\"\"\n  Users that are not collaborators will not be able to interact with the repository.\n  \"\"\"\n  COLLABORATORS_ONLY\n\n  \"\"\"\n  Users that have not previously committed to a repository’s default branch will be unable to interact with the repository.\n  \"\"\"\n  CONTRIBUTORS_ONLY\n\n  \"\"\"\n  Users that have recently created their account will be unable to interact with the repository.\n  \"\"\"\n  EXISTING_USERS\n\n  \"\"\"\n  No interaction limits are enabled.\n  \"\"\"\n  NO_LIMIT\n}\n\n\"\"\"\nThe length for a repository interaction limit to be enabled for.\n\"\"\"\nenum RepositoryInteractionLimitExpiry {\n  \"\"\"\n  The interaction limit will expire after 1 day.\n  \"\"\"\n  ONE_DAY\n\n  \"\"\"\n  The interaction limit will expire after 1 month.\n  \"\"\"\n  ONE_MONTH\n\n  \"\"\"\n  The interaction limit will expire after 1 week.\n  \"\"\"\n  ONE_WEEK\n\n  \"\"\"\n  The interaction limit will expire after 6 months.\n  \"\"\"\n  SIX_MONTHS\n\n  \"\"\"\n  The interaction limit will expire after 3 days.\n  \"\"\"\n  THREE_DAYS\n}\n\n\"\"\"\nIndicates where an interaction limit is configured.\n\"\"\"\nenum RepositoryInteractionLimitOrigin {\n  \"\"\"\n  A limit that is configured at the organization level.\n  \"\"\"\n  ORGANIZATION\n\n  \"\"\"\n  A limit that is configured at the repository level.\n  \"\"\"\n  REPOSITORY\n\n  \"\"\"\n  A limit that is configured at the user-wide level.\n  \"\"\"\n  USER\n}\n\n\"\"\"\nAn invitation for a user to be added to a repository.\n\"\"\"\ntype RepositoryInvitation implements Node {\n  \"\"\"\n  The email address that received the invitation.\n  \"\"\"\n  email: String\n\n  \"\"\"\n  The Node ID of the RepositoryInvitation object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The user who received the invitation.\n  \"\"\"\n  invitee: User\n\n  \"\"\"\n  The user who created the invitation.\n  \"\"\"\n  inviter: User!\n\n  \"\"\"\n  The permalink for this repository invitation.\n  \"\"\"\n  permalink: URI!\n\n  \"\"\"\n  The permission granted on this repository by this invitation.\n  \"\"\"\n  permission: RepositoryPermission!\n\n  \"\"\"\n  The Repository the user is invited to.\n  \"\"\"\n  repository: RepositoryInfo\n}\n\n\"\"\"\nA list of repository invitations.\n\"\"\"\ntype RepositoryInvitationConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [RepositoryInvitationEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [RepositoryInvitation]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype RepositoryInvitationEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: RepositoryInvitation\n}\n\n\"\"\"\nOrdering options for repository invitation connections.\n\"\"\"\ninput RepositoryInvitationOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order repository invitations by.\n  \"\"\"\n  field: RepositoryInvitationOrderField!\n}\n\n\"\"\"\nProperties by which repository invitation connections can be ordered.\n\"\"\"\nenum RepositoryInvitationOrderField {\n  \"\"\"\n  Order repository invitations by creation time\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nThe possible reasons a given repository could be in a locked state.\n\"\"\"\nenum RepositoryLockReason {\n  \"\"\"\n  The repository is locked due to a billing related reason.\n  \"\"\"\n  BILLING\n\n  \"\"\"\n  The repository is locked due to a migration.\n  \"\"\"\n  MIGRATING\n\n  \"\"\"\n  The repository is locked due to a move.\n  \"\"\"\n  MOVING\n\n  \"\"\"\n  The repository is locked due to a rename.\n  \"\"\"\n  RENAME\n\n  \"\"\"\n  The repository is locked due to a trade controls related reason.\n  \"\"\"\n  TRADE_RESTRICTION\n\n  \"\"\"\n  The repository is locked due to an ownership transfer.\n  \"\"\"\n  TRANSFERRING_OWNERSHIP\n}\n\n\"\"\"\nA GitHub Enterprise Importer (GEI) repository migration.\n\"\"\"\ntype RepositoryMigration implements Migration & Node {\n  \"\"\"\n  The migration flag to continue on error.\n  \"\"\"\n  continueOnError: Boolean!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: String\n\n  \"\"\"\n  The reason the migration failed.\n  \"\"\"\n  failureReason: String\n\n  \"\"\"\n  The Node ID of the RepositoryMigration object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The URL for the migration log (expires 1 day after migration completes).\n  \"\"\"\n  migrationLogUrl: URI\n\n  \"\"\"\n  The migration source.\n  \"\"\"\n  migrationSource: MigrationSource!\n\n  \"\"\"\n  The target repository name.\n  \"\"\"\n  repositoryName: String!\n\n  \"\"\"\n  The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`.\n  \"\"\"\n  sourceUrl: URI!\n\n  \"\"\"\n  The migration state.\n  \"\"\"\n  state: MigrationState!\n\n  \"\"\"\n  The number of warnings encountered for this migration. To review the warnings,\n  check the [Migration Log](https://docs.github.com/en/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/accessing-your-migration-logs-for-github-enterprise-importer).\n  \"\"\"\n  warningsCount: Int!\n}\n\n\"\"\"\nThe connection type for RepositoryMigration.\n\"\"\"\ntype RepositoryMigrationConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [RepositoryMigrationEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [RepositoryMigration]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nRepresents a repository migration.\n\"\"\"\ntype RepositoryMigrationEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: RepositoryMigration\n}\n\n\"\"\"\nOrdering options for repository migrations.\n\"\"\"\ninput RepositoryMigrationOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: RepositoryMigrationOrderDirection!\n\n  \"\"\"\n  The field to order repository migrations by.\n  \"\"\"\n  field: RepositoryMigrationOrderField!\n}\n\n\"\"\"\nPossible directions in which to order a list of repository migrations when provided an `orderBy` argument.\n\"\"\"\nenum RepositoryMigrationOrderDirection {\n  \"\"\"\n  Specifies an ascending order for a given `orderBy` argument.\n  \"\"\"\n  ASC\n\n  \"\"\"\n  Specifies a descending order for a given `orderBy` argument.\n  \"\"\"\n  DESC\n}\n\n\"\"\"\nProperties by which repository migrations can be ordered.\n\"\"\"\nenum RepositoryMigrationOrderField {\n  \"\"\"\n  Order mannequins why when they were created.\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nParameters to be used for the repository_name condition\n\"\"\"\ntype RepositoryNameConditionTarget {\n  \"\"\"\n  Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.\n  \"\"\"\n  exclude: [String!]!\n\n  \"\"\"\n  Array of repository names or patterns to include. One of these patterns must\n  match for the condition to pass. Also accepts `~ALL` to include all repositories.\n  \"\"\"\n  include: [String!]!\n\n  \"\"\"\n  Target changes that match these patterns will be prevented except by those with bypass permissions.\n  \"\"\"\n  protected: Boolean!\n}\n\n\"\"\"\nParameters to be used for the repository_name condition\n\"\"\"\ninput RepositoryNameConditionTargetInput {\n  \"\"\"\n  Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.\n  \"\"\"\n  exclude: [String!]!\n\n  \"\"\"\n  Array of repository names or patterns to include. One of these patterns must\n  match for the condition to pass. Also accepts `~ALL` to include all repositories.\n  \"\"\"\n  include: [String!]!\n\n  \"\"\"\n  Target changes that match these patterns will be prevented except by those with bypass permissions.\n  \"\"\"\n  protected: Boolean\n}\n\n\"\"\"\nRepresents a object that belongs to a repository.\n\"\"\"\ninterface RepositoryNode {\n  \"\"\"\n  The repository associated with this node.\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nOrdering options for repository connections\n\"\"\"\ninput RepositoryOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order repositories by.\n  \"\"\"\n  field: RepositoryOrderField!\n}\n\n\"\"\"\nProperties by which repository connections can be ordered.\n\"\"\"\nenum RepositoryOrderField {\n  \"\"\"\n  Order repositories by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order repositories by name\n  \"\"\"\n  NAME\n\n  \"\"\"\n  Order repositories by push time\n  \"\"\"\n  PUSHED_AT\n\n  \"\"\"\n  Order repositories by number of stargazers\n  \"\"\"\n  STARGAZERS\n\n  \"\"\"\n  Order repositories by update time\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nRepresents an owner of a Repository.\n\"\"\"\ninterface RepositoryOwner {\n  \"\"\"\n  A URL pointing to the owner's public avatar.\n  \"\"\"\n  avatarUrl(\n    \"\"\"\n    The size of the resulting square image.\n    \"\"\"\n    size: Int\n  ): URI!\n\n  \"\"\"\n  The Node ID of the RepositoryOwner object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The username used to login.\n  \"\"\"\n  login: String!\n\n  \"\"\"\n  A list of repositories that the user owns.\n  \"\"\"\n  repositories(\n    \"\"\"\n    Array of viewer's affiliation options for repositories returned from the\n    connection. For example, OWNER will include only repositories that the\n    current viewer owns.\n    \"\"\"\n    affiliations: [RepositoryAffiliation]\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have issues enabled\n    \"\"\"\n    hasIssuesEnabled: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they are archived and not maintained\n    \"\"\"\n    isArchived: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they are forks of another repository\n    \"\"\"\n    isFork: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have been locked\n    \"\"\"\n    isLocked: Boolean\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for repositories returned from the connection\n    \"\"\"\n    orderBy: RepositoryOrder\n\n    \"\"\"\n    Array of owner's affiliation options for repositories returned from the\n    connection. For example, OWNER will include only repositories that the\n    organization or user being viewed owns.\n    \"\"\"\n    ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR]\n\n    \"\"\"\n    If non-null, filters repositories according to privacy\n    \"\"\"\n    privacy: RepositoryPrivacy\n  ): RepositoryConnection!\n\n  \"\"\"\n  Find Repository.\n  \"\"\"\n  repository(\n    \"\"\"\n    Follow repository renames. If disabled, a repository referenced by its old name will return an error.\n    \"\"\"\n    followRenames: Boolean = true\n\n    \"\"\"\n    Name of Repository to find.\n    \"\"\"\n    name: String!\n  ): Repository\n\n  \"\"\"\n  The HTTP URL for the owner.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for the owner.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nThe access level to a repository\n\"\"\"\nenum RepositoryPermission {\n  \"\"\"\n  Can read, clone, and push to this repository. Can also manage issues, pull\n  requests, and repository settings, including adding collaborators\n  \"\"\"\n  ADMIN\n\n  \"\"\"\n  Can read, clone, and push to this repository. They can also manage issues, pull requests, and some repository settings\n  \"\"\"\n  MAINTAIN\n\n  \"\"\"\n  Can read and clone this repository. Can also open and comment on issues and pull requests\n  \"\"\"\n  READ\n\n  \"\"\"\n  Can read and clone this repository. Can also manage issues and pull requests\n  \"\"\"\n  TRIAGE\n\n  \"\"\"\n  Can read, clone, and push to this repository. Can also manage issues and pull requests\n  \"\"\"\n  WRITE\n}\n\n\"\"\"\nThe privacy of a repository\n\"\"\"\nenum RepositoryPrivacy {\n  \"\"\"\n  Private\n  \"\"\"\n  PRIVATE\n\n  \"\"\"\n  Public\n  \"\"\"\n  PUBLIC\n}\n\n\"\"\"\nA repository rule.\n\"\"\"\ntype RepositoryRule implements Node {\n  \"\"\"\n  The Node ID of the RepositoryRule object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The parameters for this rule.\n  \"\"\"\n  parameters: RuleParameters\n\n  \"\"\"\n  The repository ruleset associated with this rule configuration\n  \"\"\"\n  repositoryRuleset: RepositoryRuleset\n\n  \"\"\"\n  The type of rule.\n  \"\"\"\n  type: RepositoryRuleType!\n}\n\n\"\"\"\nSet of conditions that determine if a ruleset will evaluate\n\"\"\"\ntype RepositoryRuleConditions {\n  \"\"\"\n  Configuration for the ref_name condition\n  \"\"\"\n  refName: RefNameConditionTarget\n\n  \"\"\"\n  Configuration for the repository_id condition\n  \"\"\"\n  repositoryId: RepositoryIdConditionTarget\n\n  \"\"\"\n  Configuration for the repository_name condition\n  \"\"\"\n  repositoryName: RepositoryNameConditionTarget\n}\n\n\"\"\"\nSpecifies the conditions required for a ruleset to evaluate\n\"\"\"\ninput RepositoryRuleConditionsInput {\n  \"\"\"\n  Configuration for the ref_name condition\n  \"\"\"\n  refName: RefNameConditionTargetInput\n\n  \"\"\"\n  Configuration for the repository_id condition\n  \"\"\"\n  repositoryId: RepositoryIdConditionTargetInput\n\n  \"\"\"\n  Configuration for the repository_name condition\n  \"\"\"\n  repositoryName: RepositoryNameConditionTargetInput\n}\n\n\"\"\"\nThe connection type for RepositoryRule.\n\"\"\"\ntype RepositoryRuleConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [RepositoryRuleEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [RepositoryRule]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype RepositoryRuleEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: RepositoryRule\n}\n\n\"\"\"\nSpecifies the attributes for a new or updated rule.\n\"\"\"\ninput RepositoryRuleInput {\n  \"\"\"\n  Optional ID of this rule when updating\n  \"\"\"\n  id: ID @possibleTypes(concreteTypes: [\"RepositoryRule\"])\n\n  \"\"\"\n  The parameters for the rule.\n  \"\"\"\n  parameters: RuleParametersInput\n\n  \"\"\"\n  The type of rule to create.\n  \"\"\"\n  type: RepositoryRuleType!\n}\n\n\"\"\"\nThe rule types supported in rulesets\n\"\"\"\nenum RepositoryRuleType {\n  \"\"\"\n  Authorization\n  \"\"\"\n  AUTHORIZATION\n\n  \"\"\"\n  Branch name pattern\n  \"\"\"\n  BRANCH_NAME_PATTERN\n\n  \"\"\"\n  Committer email pattern\n  \"\"\"\n  COMMITTER_EMAIL_PATTERN\n\n  \"\"\"\n  Commit author email pattern\n  \"\"\"\n  COMMIT_AUTHOR_EMAIL_PATTERN\n\n  \"\"\"\n  Commit message pattern\n  \"\"\"\n  COMMIT_MESSAGE_PATTERN\n\n  \"\"\"\n  Only allow users with bypass permission to create matching refs.\n  \"\"\"\n  CREATION\n\n  \"\"\"\n  Only allow users with bypass permissions to delete matching refs.\n  \"\"\"\n  DELETION\n\n  \"\"\"\n  Branch is read-only. Users cannot push to the branch.\n  \"\"\"\n  LOCK_BRANCH\n\n  \"\"\"\n  Max ref updates\n  \"\"\"\n  MAX_REF_UPDATES\n\n  \"\"\"\n  Merges must be performed via a merge queue.\n  \"\"\"\n  MERGE_QUEUE\n\n  \"\"\"\n  Merge queue locked ref\n  \"\"\"\n  MERGE_QUEUE_LOCKED_REF\n\n  \"\"\"\n  Prevent users with push access from force pushing to refs.\n  \"\"\"\n  NON_FAST_FORWARD\n\n  \"\"\"\n  Require all commits be made to a non-target branch and submitted via a pull request before they can be merged.\n  \"\"\"\n  PULL_REQUEST\n\n  \"\"\"\n  Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule.\n  \"\"\"\n  REQUIRED_DEPLOYMENTS\n\n  \"\"\"\n  Prevent merge commits from being pushed to matching refs.\n  \"\"\"\n  REQUIRED_LINEAR_HISTORY\n\n  \"\"\"\n  When enabled, all conversations on code must be resolved before a pull request\n  can be merged into a branch that matches this rule.\n  \"\"\"\n  REQUIRED_REVIEW_THREAD_RESOLUTION\n\n  \"\"\"\n  Commits pushed to matching refs must have verified signatures.\n  \"\"\"\n  REQUIRED_SIGNATURES\n\n  \"\"\"\n  Choose which status checks must pass before the ref is updated. When enabled,\n  commits must first be pushed to another ref where the checks pass.\n  \"\"\"\n  REQUIRED_STATUS_CHECKS\n\n  \"\"\"\n  Require all commits be made to a non-target branch and submitted via a pull\n  request and required workflow checks to pass before they can be merged.\n  \"\"\"\n  REQUIRED_WORKFLOW_STATUS_CHECKS\n\n  \"\"\"\n  Commits pushed to matching refs must have verified signatures.\n  \"\"\"\n  RULESET_REQUIRED_SIGNATURES\n\n  \"\"\"\n  Secret scanning\n  \"\"\"\n  SECRET_SCANNING\n\n  \"\"\"\n  Tag\n  \"\"\"\n  TAG\n\n  \"\"\"\n  Tag name pattern\n  \"\"\"\n  TAG_NAME_PATTERN\n\n  \"\"\"\n  Only allow users with bypass permission to update matching refs.\n  \"\"\"\n  UPDATE\n\n  \"\"\"\n  Require all changes made to a targeted branch to pass the specified workflows before they can be merged.\n  \"\"\"\n  WORKFLOWS\n\n  \"\"\"\n  Workflow files cannot be modified.\n  \"\"\"\n  WORKFLOW_UPDATES\n}\n\n\"\"\"\nA repository ruleset.\n\"\"\"\ntype RepositoryRuleset implements Node {\n  \"\"\"\n  The actors that can bypass this ruleset\n  \"\"\"\n  bypassActors(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): RepositoryRulesetBypassActorConnection\n\n  \"\"\"\n  The set of conditions that must evaluate to true for this ruleset to apply\n  \"\"\"\n  conditions: RepositoryRuleConditions!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The enforcement level of this ruleset\n  \"\"\"\n  enforcement: RuleEnforcement!\n\n  \"\"\"\n  The Node ID of the RepositoryRuleset object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Name of the ruleset.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  List of rules.\n  \"\"\"\n  rules(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    The type of rule.\n    \"\"\"\n    type: RepositoryRuleType\n  ): RepositoryRuleConnection\n\n  \"\"\"\n  Source of ruleset.\n  \"\"\"\n  source: RuleSource!\n\n  \"\"\"\n  Target of the ruleset.\n  \"\"\"\n  target: RepositoryRulesetTarget\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nA team or app that has the ability to bypass a rules defined on a ruleset\n\"\"\"\ntype RepositoryRulesetBypassActor implements Node {\n  \"\"\"\n  The actor that can bypass rules.\n  \"\"\"\n  actor: BypassActor\n\n  \"\"\"\n  The mode for the bypass actor\n  \"\"\"\n  bypassMode: RepositoryRulesetBypassActorBypassMode\n\n  \"\"\"\n  The Node ID of the RepositoryRulesetBypassActor object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  This actor represents the ability for an organization owner to bypass\n  \"\"\"\n  organizationAdmin: Boolean!\n\n  \"\"\"\n  If the actor is a repository role, the repository role's ID that can bypass\n  \"\"\"\n  repositoryRoleDatabaseId: Int\n\n  \"\"\"\n  If the actor is a repository role, the repository role's name that can bypass\n  \"\"\"\n  repositoryRoleName: String\n\n  \"\"\"\n  Identifies the ruleset associated with the allowed actor\n  \"\"\"\n  repositoryRuleset: RepositoryRuleset\n}\n\n\"\"\"\nThe bypass mode for a specific actor on a ruleset.\n\"\"\"\nenum RepositoryRulesetBypassActorBypassMode {\n  \"\"\"\n  The actor can always bypass rules\n  \"\"\"\n  ALWAYS\n\n  \"\"\"\n  The actor can only bypass rules via a pull request\n  \"\"\"\n  PULL_REQUEST\n}\n\n\"\"\"\nThe connection type for RepositoryRulesetBypassActor.\n\"\"\"\ntype RepositoryRulesetBypassActorConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [RepositoryRulesetBypassActorEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [RepositoryRulesetBypassActor]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype RepositoryRulesetBypassActorEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: RepositoryRulesetBypassActor\n}\n\n\"\"\"\nSpecifies the attributes for a new or updated ruleset bypass actor. Only one of\n`actor_id`, `repository_role_database_id`, or `organization_admin` should be specified.\n\"\"\"\ninput RepositoryRulesetBypassActorInput {\n  \"\"\"\n  For Team and Integration bypasses, the Team or Integration ID\n  \"\"\"\n  actorId: ID\n\n  \"\"\"\n  The bypass mode for this actor.\n  \"\"\"\n  bypassMode: RepositoryRulesetBypassActorBypassMode!\n\n  \"\"\"\n  For organization owner bypasses, true\n  \"\"\"\n  organizationAdmin: Boolean\n\n  \"\"\"\n  For role bypasses, the role database ID\n  \"\"\"\n  repositoryRoleDatabaseId: Int\n}\n\n\"\"\"\nThe connection type for RepositoryRuleset.\n\"\"\"\ntype RepositoryRulesetConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [RepositoryRulesetEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [RepositoryRuleset]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype RepositoryRulesetEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: RepositoryRuleset\n}\n\n\"\"\"\nThe targets supported for rulesets\n\"\"\"\nenum RepositoryRulesetTarget {\n  \"\"\"\n  Branch\n  \"\"\"\n  BRANCH\n\n  \"\"\"\n  Tag\n  \"\"\"\n  TAG\n}\n\n\"\"\"\nA repository-topic connects a repository to a topic.\n\"\"\"\ntype RepositoryTopic implements Node & UniformResourceLocatable {\n  \"\"\"\n  The Node ID of the RepositoryTopic object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The HTTP path for this repository-topic.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The topic.\n  \"\"\"\n  topic: Topic!\n\n  \"\"\"\n  The HTTP URL for this repository-topic.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nThe connection type for RepositoryTopic.\n\"\"\"\ntype RepositoryTopicConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [RepositoryTopicEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [RepositoryTopic]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype RepositoryTopicEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: RepositoryTopic\n}\n\n\"\"\"\nThe repository's visibility level.\n\"\"\"\nenum RepositoryVisibility {\n  \"\"\"\n  The repository is visible only to users in the same business.\n  \"\"\"\n  INTERNAL\n\n  \"\"\"\n  The repository is visible only to those with explicit access.\n  \"\"\"\n  PRIVATE\n\n  \"\"\"\n  The repository is visible to everyone.\n  \"\"\"\n  PUBLIC\n}\n\n\"\"\"\nAudit log entry for a repository_visibility_change.disable event.\n\"\"\"\ntype RepositoryVisibilityChangeDisableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The HTTP path for this enterprise.\n  \"\"\"\n  enterpriseResourcePath: URI\n\n  \"\"\"\n  The slug of the enterprise.\n  \"\"\"\n  enterpriseSlug: String\n\n  \"\"\"\n  The HTTP URL for this enterprise.\n  \"\"\"\n  enterpriseUrl: URI\n\n  \"\"\"\n  The Node ID of the RepositoryVisibilityChangeDisableAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a repository_visibility_change.enable event.\n\"\"\"\ntype RepositoryVisibilityChangeEnableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The HTTP path for this enterprise.\n  \"\"\"\n  enterpriseResourcePath: URI\n\n  \"\"\"\n  The slug of the enterprise.\n  \"\"\"\n  enterpriseSlug: String\n\n  \"\"\"\n  The HTTP URL for this enterprise.\n  \"\"\"\n  enterpriseUrl: URI\n\n  \"\"\"\n  The Node ID of the RepositoryVisibilityChangeEnableAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nA Dependabot alert for a repository with a dependency affected by a security vulnerability.\n\"\"\"\ntype RepositoryVulnerabilityAlert implements Node & RepositoryNode {\n  \"\"\"\n  When was the alert auto-dismissed?\n  \"\"\"\n  autoDismissedAt: DateTime\n\n  \"\"\"\n  When was the alert created?\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The associated Dependabot update\n  \"\"\"\n  dependabotUpdate: DependabotUpdate\n\n  \"\"\"\n  The scope of an alert's dependency\n  \"\"\"\n  dependencyScope: RepositoryVulnerabilityAlertDependencyScope\n\n  \"\"\"\n  Comment explaining the reason the alert was dismissed\n  \"\"\"\n  dismissComment: String\n\n  \"\"\"\n  The reason the alert was dismissed\n  \"\"\"\n  dismissReason: String\n\n  \"\"\"\n  When was the alert dismissed?\n  \"\"\"\n  dismissedAt: DateTime\n\n  \"\"\"\n  The user who dismissed the alert\n  \"\"\"\n  dismisser: User\n\n  \"\"\"\n  When was the alert fixed?\n  \"\"\"\n  fixedAt: DateTime\n\n  \"\"\"\n  The Node ID of the RepositoryVulnerabilityAlert object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the alert number.\n  \"\"\"\n  number: Int!\n\n  \"\"\"\n  The associated repository\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  The associated security advisory\n  \"\"\"\n  securityAdvisory: SecurityAdvisory\n\n  \"\"\"\n  The associated security vulnerability\n  \"\"\"\n  securityVulnerability: SecurityVulnerability\n\n  \"\"\"\n  Identifies the state of the alert.\n  \"\"\"\n  state: RepositoryVulnerabilityAlertState!\n\n  \"\"\"\n  The vulnerable manifest filename\n  \"\"\"\n  vulnerableManifestFilename: String!\n\n  \"\"\"\n  The vulnerable manifest path\n  \"\"\"\n  vulnerableManifestPath: String!\n\n  \"\"\"\n  The vulnerable requirements\n  \"\"\"\n  vulnerableRequirements: String\n}\n\n\"\"\"\nThe connection type for RepositoryVulnerabilityAlert.\n\"\"\"\ntype RepositoryVulnerabilityAlertConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [RepositoryVulnerabilityAlertEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [RepositoryVulnerabilityAlert]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nThe possible scopes of an alert's dependency.\n\"\"\"\nenum RepositoryVulnerabilityAlertDependencyScope {\n  \"\"\"\n  A dependency that is only used in development\n  \"\"\"\n  DEVELOPMENT\n\n  \"\"\"\n  A dependency that is leveraged during application runtime\n  \"\"\"\n  RUNTIME\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype RepositoryVulnerabilityAlertEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: RepositoryVulnerabilityAlert\n}\n\n\"\"\"\nThe possible states of an alert\n\"\"\"\nenum RepositoryVulnerabilityAlertState {\n  \"\"\"\n  An alert that has been automatically closed by Dependabot.\n  \"\"\"\n  AUTO_DISMISSED\n\n  \"\"\"\n  An alert that has been manually closed by a user.\n  \"\"\"\n  DISMISSED\n\n  \"\"\"\n  An alert that has been resolved by a code change.\n  \"\"\"\n  FIXED\n\n  \"\"\"\n  An alert that is still open.\n  \"\"\"\n  OPEN\n}\n\n\"\"\"\nAutogenerated input type of RequestReviews\n\"\"\"\ninput RequestReviewsInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the pull request to modify.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n\n  \"\"\"\n  The Node IDs of the team to request.\n  \"\"\"\n  teamIds: [ID!] @possibleTypes(concreteTypes: [\"Team\"])\n\n  \"\"\"\n  Add users to the set rather than replace.\n  \"\"\"\n  union: Boolean = false\n\n  \"\"\"\n  The Node IDs of the user to request.\n  \"\"\"\n  userIds: [ID!] @possibleTypes(concreteTypes: [\"User\"])\n}\n\n\"\"\"\nAutogenerated return type of RequestReviews\n\"\"\"\ntype RequestReviewsPayload {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The pull request that is getting requests.\n  \"\"\"\n  pullRequest: PullRequest\n\n  \"\"\"\n  The edge from the pull request to the requested reviewers.\n  \"\"\"\n  requestedReviewersEdge: UserEdge\n}\n\n\"\"\"\nThe possible states that can be requested when creating a check run.\n\"\"\"\nenum RequestableCheckStatusState {\n  \"\"\"\n  The check suite or run has been completed.\n  \"\"\"\n  COMPLETED\n\n  \"\"\"\n  The check suite or run is in progress.\n  \"\"\"\n  IN_PROGRESS\n\n  \"\"\"\n  The check suite or run is in pending state.\n  \"\"\"\n  PENDING\n\n  \"\"\"\n  The check suite or run has been queued.\n  \"\"\"\n  QUEUED\n\n  \"\"\"\n  The check suite or run is in waiting state.\n  \"\"\"\n  WAITING\n}\n\n\"\"\"\nTypes that can be requested reviewers.\n\"\"\"\nunion RequestedReviewer = Bot | Mannequin | Team | User\n\n\"\"\"\nThe connection type for RequestedReviewer.\n\"\"\"\ntype RequestedReviewerConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [RequestedReviewerEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [RequestedReviewer]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype RequestedReviewerEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: RequestedReviewer\n}\n\n\"\"\"\nRepresents a type that can be required by a pull request for merging.\n\"\"\"\ninterface RequirableByPullRequest {\n  \"\"\"\n  Whether this is required to pass before merging for a specific pull request.\n  \"\"\"\n  isRequired(\n    \"\"\"\n    The id of the pull request this is required for\n    \"\"\"\n    pullRequestId: ID\n\n    \"\"\"\n    The number of the pull request this is required for\n    \"\"\"\n    pullRequestNumber: Int\n  ): Boolean!\n}\n\n\"\"\"\nChoose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule.\n\"\"\"\ntype RequiredDeploymentsParameters {\n  \"\"\"\n  The environments that must be successfully deployed to before branches can be merged.\n  \"\"\"\n  requiredDeploymentEnvironments: [String!]!\n}\n\n\"\"\"\nChoose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule.\n\"\"\"\ninput RequiredDeploymentsParametersInput {\n  \"\"\"\n  The environments that must be successfully deployed to before branches can be merged.\n  \"\"\"\n  requiredDeploymentEnvironments: [String!]!\n}\n\n\"\"\"\nRepresents a required status check for a protected branch, but not any specific run of that check.\n\"\"\"\ntype RequiredStatusCheckDescription {\n  \"\"\"\n  The App that must provide this status in order for it to be accepted.\n  \"\"\"\n  app: App\n\n  \"\"\"\n  The name of this status.\n  \"\"\"\n  context: String!\n}\n\n\"\"\"\nSpecifies the attributes for a new or updated required status check.\n\"\"\"\ninput RequiredStatusCheckInput {\n  \"\"\"\n  The ID of the App that must set the status in order for it to be accepted.\n  Omit this value to use whichever app has recently been setting this status, or\n  use \"any\" to allow any app to set the status.\n  \"\"\"\n  appId: ID\n\n  \"\"\"\n  Status check context that must pass for commits to be accepted to the matching branch.\n  \"\"\"\n  context: String!\n}\n\n\"\"\"\nChoose which status checks must pass before the ref is updated. When enabled,\ncommits must first be pushed to another ref where the checks pass.\n\"\"\"\ntype RequiredStatusChecksParameters {\n  \"\"\"\n  Status checks that are required.\n  \"\"\"\n  requiredStatusChecks: [StatusCheckConfiguration!]!\n\n  \"\"\"\n  Whether pull requests targeting a matching branch must be tested with the\n  latest code. This setting will not take effect unless at least one status\n  check is enabled.\n  \"\"\"\n  strictRequiredStatusChecksPolicy: Boolean!\n}\n\n\"\"\"\nChoose which status checks must pass before the ref is updated. When enabled,\ncommits must first be pushed to another ref where the checks pass.\n\"\"\"\ninput RequiredStatusChecksParametersInput {\n  \"\"\"\n  Status checks that are required.\n  \"\"\"\n  requiredStatusChecks: [StatusCheckConfigurationInput!]!\n\n  \"\"\"\n  Whether pull requests targeting a matching branch must be tested with the\n  latest code. This setting will not take effect unless at least one status\n  check is enabled.\n  \"\"\"\n  strictRequiredStatusChecksPolicy: Boolean!\n}\n\n\"\"\"\nAutogenerated input type of RerequestCheckSuite\n\"\"\"\ninput RerequestCheckSuiteInput {\n  \"\"\"\n  The Node ID of the check suite.\n  \"\"\"\n  checkSuiteId: ID! @possibleTypes(concreteTypes: [\"CheckSuite\"])\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of RerequestCheckSuite\n\"\"\"\ntype RerequestCheckSuitePayload {\n  \"\"\"\n  The requested check suite.\n  \"\"\"\n  checkSuite: CheckSuite\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of ResolveReviewThread\n\"\"\"\ninput ResolveReviewThreadInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the thread to resolve\n  \"\"\"\n  threadId: ID! @possibleTypes(concreteTypes: [\"PullRequestReviewThread\"])\n}\n\n\"\"\"\nAutogenerated return type of ResolveReviewThread\n\"\"\"\ntype ResolveReviewThreadPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The thread to resolve.\n  \"\"\"\n  thread: PullRequestReviewThread\n}\n\n\"\"\"\nRepresents a private contribution a user made on GitHub.\n\"\"\"\ntype RestrictedContribution implements Contribution {\n  \"\"\"\n  Whether this contribution is associated with a record you do not have access to. For\n  example, your own 'first issue' contribution may have been made on a repository you can no\n  longer access.\n  \"\"\"\n  isRestricted: Boolean!\n\n  \"\"\"\n  When this contribution was made.\n  \"\"\"\n  occurredAt: DateTime!\n\n  \"\"\"\n  The HTTP path for this contribution.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this contribution.\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  The user who made this contribution.\n  \"\"\"\n  user: User!\n}\n\n\"\"\"\nAutogenerated input type of RetireSponsorsTier\n\"\"\"\ninput RetireSponsorsTierInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the published tier to retire.\n  \"\"\"\n  tierId: ID! @possibleTypes(concreteTypes: [\"SponsorsTier\"])\n}\n\n\"\"\"\nAutogenerated return type of RetireSponsorsTier\n\"\"\"\ntype RetireSponsorsTierPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The tier that was retired.\n  \"\"\"\n  sponsorsTier: SponsorsTier\n}\n\n\"\"\"\nAutogenerated input type of RevertPullRequest\n\"\"\"\ninput RevertPullRequestInput {\n  \"\"\"\n  The description of the revert pull request.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Indicates whether the revert pull request should be a draft.\n  \"\"\"\n  draft: Boolean = false\n\n  \"\"\"\n  The ID of the pull request to revert.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n\n  \"\"\"\n  The title of the revert pull request.\n  \"\"\"\n  title: String\n}\n\n\"\"\"\nAutogenerated return type of RevertPullRequest\n\"\"\"\ntype RevertPullRequestPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The pull request that was reverted.\n  \"\"\"\n  pullRequest: PullRequest\n\n  \"\"\"\n  The new pull request that reverts the input pull request.\n  \"\"\"\n  revertPullRequest: PullRequest\n}\n\n\"\"\"\nA user, team, or app who has the ability to dismiss a review on a protected branch.\n\"\"\"\ntype ReviewDismissalAllowance implements Node {\n  \"\"\"\n  The actor that can dismiss.\n  \"\"\"\n  actor: ReviewDismissalAllowanceActor\n\n  \"\"\"\n  Identifies the branch protection rule associated with the allowed user, team, or app.\n  \"\"\"\n  branchProtectionRule: BranchProtectionRule\n\n  \"\"\"\n  The Node ID of the ReviewDismissalAllowance object\n  \"\"\"\n  id: ID!\n}\n\n\"\"\"\nTypes that can be an actor.\n\"\"\"\nunion ReviewDismissalAllowanceActor = App | Team | User\n\n\"\"\"\nThe connection type for ReviewDismissalAllowance.\n\"\"\"\ntype ReviewDismissalAllowanceConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ReviewDismissalAllowanceEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ReviewDismissalAllowance]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ReviewDismissalAllowanceEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ReviewDismissalAllowance\n}\n\n\"\"\"\nRepresents a 'review_dismissed' event on a given issue or pull request.\n\"\"\"\ntype ReviewDismissedEvent implements Node & UniformResourceLocatable {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  Identifies the optional message associated with the 'review_dismissed' event.\n  \"\"\"\n  dismissalMessage: String\n\n  \"\"\"\n  Identifies the optional message associated with the event, rendered to HTML.\n  \"\"\"\n  dismissalMessageHTML: String\n\n  \"\"\"\n  The Node ID of the ReviewDismissedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the previous state of the review with the 'review_dismissed' event.\n  \"\"\"\n  previousReviewState: PullRequestReviewState!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  Identifies the commit which caused the review to become stale.\n  \"\"\"\n  pullRequestCommit: PullRequestCommit\n\n  \"\"\"\n  The HTTP path for this review dismissed event.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Identifies the review associated with the 'review_dismissed' event.\n  \"\"\"\n  review: PullRequestReview\n\n  \"\"\"\n  The HTTP URL for this review dismissed event.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nA request for a user to review a pull request.\n\"\"\"\ntype ReviewRequest implements Node {\n  \"\"\"\n  Whether this request was created for a code owner\n  \"\"\"\n  asCodeOwner: Boolean!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the ReviewRequest object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the pull request associated with this review request.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  The reviewer that is requested.\n  \"\"\"\n  requestedReviewer: RequestedReviewer\n}\n\n\"\"\"\nThe connection type for ReviewRequest.\n\"\"\"\ntype ReviewRequestConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [ReviewRequestEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [ReviewRequest]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype ReviewRequestEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: ReviewRequest\n}\n\n\"\"\"\nRepresents an 'review_request_removed' event on a given pull request.\n\"\"\"\ntype ReviewRequestRemovedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the ReviewRequestRemovedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  Identifies the reviewer whose review request was removed.\n  \"\"\"\n  requestedReviewer: RequestedReviewer\n}\n\n\"\"\"\nRepresents an 'review_requested' event on a given pull request.\n\"\"\"\ntype ReviewRequestedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the ReviewRequestedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  PullRequest referenced by event.\n  \"\"\"\n  pullRequest: PullRequest!\n\n  \"\"\"\n  Identifies the reviewer whose review was requested.\n  \"\"\"\n  requestedReviewer: RequestedReviewer\n}\n\n\"\"\"\nA hovercard context with a message describing the current code review state of the pull\nrequest.\n\"\"\"\ntype ReviewStatusHovercardContext implements HovercardContext {\n  \"\"\"\n  A string describing this context\n  \"\"\"\n  message: String!\n\n  \"\"\"\n  An octicon to accompany this context\n  \"\"\"\n  octicon: String!\n\n  \"\"\"\n  The current status of the pull request with respect to code review.\n  \"\"\"\n  reviewDecision: PullRequestReviewDecision\n}\n\n\"\"\"\nAutogenerated input type of RevokeEnterpriseOrganizationsMigratorRole\n\"\"\"\ninput RevokeEnterpriseOrganizationsMigratorRoleInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise to which all organizations managed by it will be granted the migrator role.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The login of the user to revoke the migrator role\n  \"\"\"\n  login: String!\n}\n\n\"\"\"\nAutogenerated return type of RevokeEnterpriseOrganizationsMigratorRole\n\"\"\"\ntype RevokeEnterpriseOrganizationsMigratorRolePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The organizations that had the migrator role revoked for the given user.\n  \"\"\"\n  organizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): OrganizationConnection\n}\n\n\"\"\"\nAutogenerated input type of RevokeMigratorRole\n\"\"\"\ninput RevokeMigratorRoleInput {\n  \"\"\"\n  The user login or Team slug to revoke the migrator role from.\n  \"\"\"\n  actor: String!\n\n  \"\"\"\n  Specifies the type of the actor, can be either USER or TEAM.\n  \"\"\"\n  actorType: ActorType!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the organization that the user/team belongs to.\n  \"\"\"\n  organizationId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n}\n\n\"\"\"\nAutogenerated return type of RevokeMigratorRole\n\"\"\"\ntype RevokeMigratorRolePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Did the operation succeed?\n  \"\"\"\n  success: Boolean\n}\n\n\"\"\"\nPossible roles a user may have in relation to an organization.\n\"\"\"\nenum RoleInOrganization {\n  \"\"\"\n  A user who is a direct member of the organization.\n  \"\"\"\n  DIRECT_MEMBER\n\n  \"\"\"\n  A user with full administrative access to the organization.\n  \"\"\"\n  OWNER\n\n  \"\"\"\n  A user who is unaffiliated with the organization.\n  \"\"\"\n  UNAFFILIATED\n}\n\n\"\"\"\nThe level of enforcement for a rule or ruleset.\n\"\"\"\nenum RuleEnforcement {\n  \"\"\"\n  Rules will be enforced\n  \"\"\"\n  ACTIVE\n\n  \"\"\"\n  Do not evaluate or enforce rules\n  \"\"\"\n  DISABLED\n\n  \"\"\"\n  Allow admins to test rules before enforcing them. Admins can view insights on\n  the Rule Insights page (`evaluate` is only available with GitHub Enterprise).\n  \"\"\"\n  EVALUATE\n}\n\n\"\"\"\nTypes which can be parameters for `RepositoryRule` objects.\n\"\"\"\nunion RuleParameters =\n    BranchNamePatternParameters\n  | CommitAuthorEmailPatternParameters\n  | CommitMessagePatternParameters\n  | CommitterEmailPatternParameters\n  | PullRequestParameters\n  | RequiredDeploymentsParameters\n  | RequiredStatusChecksParameters\n  | TagNamePatternParameters\n  | UpdateParameters\n  | WorkflowsParameters\n\n\"\"\"\nSpecifies the parameters for a `RepositoryRule` object. Only one of the fields should be specified.\n\"\"\"\ninput RuleParametersInput {\n  \"\"\"\n  Parameters used for the `branch_name_pattern` rule type\n  \"\"\"\n  branchNamePattern: BranchNamePatternParametersInput\n\n  \"\"\"\n  Parameters used for the `commit_author_email_pattern` rule type\n  \"\"\"\n  commitAuthorEmailPattern: CommitAuthorEmailPatternParametersInput\n\n  \"\"\"\n  Parameters used for the `commit_message_pattern` rule type\n  \"\"\"\n  commitMessagePattern: CommitMessagePatternParametersInput\n\n  \"\"\"\n  Parameters used for the `committer_email_pattern` rule type\n  \"\"\"\n  committerEmailPattern: CommitterEmailPatternParametersInput\n\n  \"\"\"\n  Parameters used for the `pull_request` rule type\n  \"\"\"\n  pullRequest: PullRequestParametersInput\n\n  \"\"\"\n  Parameters used for the `required_deployments` rule type\n  \"\"\"\n  requiredDeployments: RequiredDeploymentsParametersInput\n\n  \"\"\"\n  Parameters used for the `required_status_checks` rule type\n  \"\"\"\n  requiredStatusChecks: RequiredStatusChecksParametersInput\n\n  \"\"\"\n  Parameters used for the `tag_name_pattern` rule type\n  \"\"\"\n  tagNamePattern: TagNamePatternParametersInput\n\n  \"\"\"\n  Parameters used for the `update` rule type\n  \"\"\"\n  update: UpdateParametersInput\n\n  \"\"\"\n  Parameters used for the `workflows` rule type\n  \"\"\"\n  workflows: WorkflowsParametersInput\n}\n\n\"\"\"\nTypes which can have `RepositoryRule` objects.\n\"\"\"\nunion RuleSource = Organization | Repository\n\n\"\"\"\nThe possible digest algorithms used to sign SAML requests for an identity provider.\n\"\"\"\nenum SamlDigestAlgorithm {\n  \"\"\"\n  SHA1\n  \"\"\"\n  SHA1\n\n  \"\"\"\n  SHA256\n  \"\"\"\n  SHA256\n\n  \"\"\"\n  SHA384\n  \"\"\"\n  SHA384\n\n  \"\"\"\n  SHA512\n  \"\"\"\n  SHA512\n}\n\n\"\"\"\nThe possible signature algorithms used to sign SAML requests for a Identity Provider.\n\"\"\"\nenum SamlSignatureAlgorithm {\n  \"\"\"\n  RSA-SHA1\n  \"\"\"\n  RSA_SHA1\n\n  \"\"\"\n  RSA-SHA256\n  \"\"\"\n  RSA_SHA256\n\n  \"\"\"\n  RSA-SHA384\n  \"\"\"\n  RSA_SHA384\n\n  \"\"\"\n  RSA-SHA512\n  \"\"\"\n  RSA_SHA512\n}\n\n\"\"\"\nA Saved Reply is text a user can use to reply quickly.\n\"\"\"\ntype SavedReply implements Node {\n  \"\"\"\n  The body of the saved reply.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The saved reply body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the SavedReply object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The title of the saved reply.\n  \"\"\"\n  title: String!\n\n  \"\"\"\n  The user that saved this reply.\n  \"\"\"\n  user: Actor\n}\n\n\"\"\"\nThe connection type for SavedReply.\n\"\"\"\ntype SavedReplyConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [SavedReplyEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [SavedReply]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype SavedReplyEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: SavedReply\n}\n\n\"\"\"\nOrdering options for saved reply connections.\n\"\"\"\ninput SavedReplyOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order saved replies by.\n  \"\"\"\n  field: SavedReplyOrderField!\n}\n\n\"\"\"\nProperties by which saved reply connections can be ordered.\n\"\"\"\nenum SavedReplyOrderField {\n  \"\"\"\n  Order saved reply by when they were updated.\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nThe results of a search.\n\"\"\"\nunion SearchResultItem = App | Discussion | Issue | MarketplaceListing | Organization | PullRequest | Repository | User\n\n\"\"\"\nA list of results that matched against a search query. Regardless of the number\nof matches, a maximum of 1,000 results will be available across all types,\npotentially split across many pages.\n\"\"\"\ntype SearchResultItemConnection {\n  \"\"\"\n  The total number of pieces of code that matched the search query. Regardless\n  of the total number of matches, a maximum of 1,000 results will be available\n  across all types.\n  \"\"\"\n  codeCount: Int!\n\n  \"\"\"\n  The total number of discussions that matched the search query. Regardless of\n  the total number of matches, a maximum of 1,000 results will be available\n  across all types.\n  \"\"\"\n  discussionCount: Int!\n\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [SearchResultItemEdge]\n\n  \"\"\"\n  The total number of issues that matched the search query. Regardless of the\n  total number of matches, a maximum of 1,000 results will be available across all types.\n  \"\"\"\n  issueCount: Int!\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [SearchResultItem]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  The total number of repositories that matched the search query. Regardless of\n  the total number of matches, a maximum of 1,000 results will be available\n  across all types.\n  \"\"\"\n  repositoryCount: Int!\n\n  \"\"\"\n  The total number of users that matched the search query. Regardless of the\n  total number of matches, a maximum of 1,000 results will be available across all types.\n  \"\"\"\n  userCount: Int!\n\n  \"\"\"\n  The total number of wiki pages that matched the search query. Regardless of\n  the total number of matches, a maximum of 1,000 results will be available\n  across all types.\n  \"\"\"\n  wikiCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype SearchResultItemEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: SearchResultItem\n\n  \"\"\"\n  Text matches on the result found.\n  \"\"\"\n  textMatches: [TextMatch]\n}\n\n\"\"\"\nRepresents the individual results of a search.\n\"\"\"\nenum SearchType {\n  \"\"\"\n  Returns matching discussions in repositories.\n  \"\"\"\n  DISCUSSION\n\n  \"\"\"\n  Returns results matching issues in repositories.\n  \"\"\"\n  ISSUE\n\n  \"\"\"\n  Returns results matching repositories.\n  \"\"\"\n  REPOSITORY\n\n  \"\"\"\n  Returns results matching users and organizations on GitHub.\n  \"\"\"\n  USER\n}\n\n\"\"\"\nA GitHub Security Advisory\n\"\"\"\ntype SecurityAdvisory implements Node {\n  \"\"\"\n  The classification of the advisory\n  \"\"\"\n  classification: SecurityAdvisoryClassification!\n\n  \"\"\"\n  The CVSS associated with this advisory\n  \"\"\"\n  cvss: CVSS!\n\n  \"\"\"\n  CWEs associated with this Advisory\n  \"\"\"\n  cwes(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): CWEConnection!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  This is a long plaintext description of the advisory\n  \"\"\"\n  description: String!\n\n  \"\"\"\n  The GitHub Security Advisory ID\n  \"\"\"\n  ghsaId: String!\n\n  \"\"\"\n  The Node ID of the SecurityAdvisory object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  A list of identifiers for this advisory\n  \"\"\"\n  identifiers: [SecurityAdvisoryIdentifier!]!\n\n  \"\"\"\n  The permalink for the advisory's dependabot alerts page\n  \"\"\"\n  notificationsPermalink: URI\n\n  \"\"\"\n  The organization that originated the advisory\n  \"\"\"\n  origin: String!\n\n  \"\"\"\n  The permalink for the advisory\n  \"\"\"\n  permalink: URI\n\n  \"\"\"\n  When the advisory was published\n  \"\"\"\n  publishedAt: DateTime!\n\n  \"\"\"\n  A list of references for this advisory\n  \"\"\"\n  references: [SecurityAdvisoryReference!]!\n\n  \"\"\"\n  The severity of the advisory\n  \"\"\"\n  severity: SecurityAdvisorySeverity!\n\n  \"\"\"\n  A short plaintext summary of the advisory\n  \"\"\"\n  summary: String!\n\n  \"\"\"\n  When the advisory was last updated\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  Vulnerabilities associated with this Advisory\n  \"\"\"\n  vulnerabilities(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    A list of advisory classifications to filter vulnerabilities by.\n    \"\"\"\n    classifications: [SecurityAdvisoryClassification!]\n\n    \"\"\"\n    An ecosystem to filter vulnerabilities by.\n    \"\"\"\n    ecosystem: SecurityAdvisoryEcosystem\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the returned topics.\n    \"\"\"\n    orderBy: SecurityVulnerabilityOrder = {field: UPDATED_AT, direction: DESC}\n\n    \"\"\"\n    A package name to filter vulnerabilities by.\n    \"\"\"\n    package: String\n\n    \"\"\"\n    A list of severities to filter vulnerabilities by.\n    \"\"\"\n    severities: [SecurityAdvisorySeverity!]\n  ): SecurityVulnerabilityConnection!\n\n  \"\"\"\n  When the advisory was withdrawn, if it has been withdrawn\n  \"\"\"\n  withdrawnAt: DateTime\n}\n\n\"\"\"\nClassification of the advisory.\n\"\"\"\nenum SecurityAdvisoryClassification {\n  \"\"\"\n  Classification of general advisories.\n  \"\"\"\n  GENERAL\n\n  \"\"\"\n  Classification of malware advisories.\n  \"\"\"\n  MALWARE\n}\n\n\"\"\"\nThe connection type for SecurityAdvisory.\n\"\"\"\ntype SecurityAdvisoryConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [SecurityAdvisoryEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [SecurityAdvisory]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nThe possible ecosystems of a security vulnerability's package.\n\"\"\"\nenum SecurityAdvisoryEcosystem {\n  \"\"\"\n  GitHub Actions\n  \"\"\"\n  ACTIONS\n\n  \"\"\"\n  PHP packages hosted at packagist.org\n  \"\"\"\n  COMPOSER\n\n  \"\"\"\n  Erlang/Elixir packages hosted at hex.pm\n  \"\"\"\n  ERLANG\n\n  \"\"\"\n  Go modules\n  \"\"\"\n  GO\n\n  \"\"\"\n  Java artifacts hosted at the Maven central repository\n  \"\"\"\n  MAVEN\n\n  \"\"\"\n  JavaScript packages hosted at npmjs.com\n  \"\"\"\n  NPM\n\n  \"\"\"\n  .NET packages hosted at the NuGet Gallery\n  \"\"\"\n  NUGET\n\n  \"\"\"\n  Python packages hosted at PyPI.org\n  \"\"\"\n  PIP\n\n  \"\"\"\n  Dart packages hosted at pub.dev\n  \"\"\"\n  PUB\n\n  \"\"\"\n  Ruby gems hosted at RubyGems.org\n  \"\"\"\n  RUBYGEMS\n\n  \"\"\"\n  Rust crates\n  \"\"\"\n  RUST\n\n  \"\"\"\n  Swift packages\n  \"\"\"\n  SWIFT\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype SecurityAdvisoryEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: SecurityAdvisory\n}\n\n\"\"\"\nA GitHub Security Advisory Identifier\n\"\"\"\ntype SecurityAdvisoryIdentifier {\n  \"\"\"\n  The identifier type, e.g. GHSA, CVE\n  \"\"\"\n  type: String!\n\n  \"\"\"\n  The identifier\n  \"\"\"\n  value: String!\n}\n\n\"\"\"\nAn advisory identifier to filter results on.\n\"\"\"\ninput SecurityAdvisoryIdentifierFilter {\n  \"\"\"\n  The identifier type.\n  \"\"\"\n  type: SecurityAdvisoryIdentifierType!\n\n  \"\"\"\n  The identifier string. Supports exact or partial matching.\n  \"\"\"\n  value: String!\n}\n\n\"\"\"\nIdentifier formats available for advisories.\n\"\"\"\nenum SecurityAdvisoryIdentifierType {\n  \"\"\"\n  Common Vulnerabilities and Exposures Identifier.\n  \"\"\"\n  CVE\n\n  \"\"\"\n  GitHub Security Advisory ID.\n  \"\"\"\n  GHSA\n}\n\n\"\"\"\nOrdering options for security advisory connections\n\"\"\"\ninput SecurityAdvisoryOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order security advisories by.\n  \"\"\"\n  field: SecurityAdvisoryOrderField!\n}\n\n\"\"\"\nProperties by which security advisory connections can be ordered.\n\"\"\"\nenum SecurityAdvisoryOrderField {\n  \"\"\"\n  Order advisories by publication time\n  \"\"\"\n  PUBLISHED_AT\n\n  \"\"\"\n  Order advisories by update time\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nAn individual package\n\"\"\"\ntype SecurityAdvisoryPackage {\n  \"\"\"\n  The ecosystem the package belongs to, e.g. RUBYGEMS, NPM\n  \"\"\"\n  ecosystem: SecurityAdvisoryEcosystem!\n\n  \"\"\"\n  The package name\n  \"\"\"\n  name: String!\n}\n\n\"\"\"\nAn individual package version\n\"\"\"\ntype SecurityAdvisoryPackageVersion {\n  \"\"\"\n  The package name or version\n  \"\"\"\n  identifier: String!\n}\n\n\"\"\"\nA GitHub Security Advisory Reference\n\"\"\"\ntype SecurityAdvisoryReference {\n  \"\"\"\n  A publicly accessible reference\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nSeverity of the vulnerability.\n\"\"\"\nenum SecurityAdvisorySeverity {\n  \"\"\"\n  Critical.\n  \"\"\"\n  CRITICAL\n\n  \"\"\"\n  High.\n  \"\"\"\n  HIGH\n\n  \"\"\"\n  Low.\n  \"\"\"\n  LOW\n\n  \"\"\"\n  Moderate.\n  \"\"\"\n  MODERATE\n}\n\n\"\"\"\nAn individual vulnerability within an Advisory\n\"\"\"\ntype SecurityVulnerability {\n  \"\"\"\n  The Advisory associated with this Vulnerability\n  \"\"\"\n  advisory: SecurityAdvisory!\n\n  \"\"\"\n  The first version containing a fix for the vulnerability\n  \"\"\"\n  firstPatchedVersion: SecurityAdvisoryPackageVersion\n\n  \"\"\"\n  A description of the vulnerable package\n  \"\"\"\n  package: SecurityAdvisoryPackage!\n\n  \"\"\"\n  The severity of the vulnerability within this package\n  \"\"\"\n  severity: SecurityAdvisorySeverity!\n\n  \"\"\"\n  When the vulnerability was last updated\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  A string that describes the vulnerable package versions.\n  This string follows a basic syntax with a few forms.\n  + `= 0.2.0` denotes a single vulnerable version.\n  + `<= 1.0.8` denotes a version range up to and including the specified version\n  + `< 0.1.11` denotes a version range up to, but excluding, the specified version\n  + `>= 4.3.0, < 4.3.5` denotes a version range with a known minimum and maximum version.\n  + `>= 0.0.1` denotes a version range with a known minimum, but no known maximum\n  \"\"\"\n  vulnerableVersionRange: String!\n}\n\n\"\"\"\nThe connection type for SecurityVulnerability.\n\"\"\"\ntype SecurityVulnerabilityConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [SecurityVulnerabilityEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [SecurityVulnerability]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype SecurityVulnerabilityEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: SecurityVulnerability\n}\n\n\"\"\"\nOrdering options for security vulnerability connections\n\"\"\"\ninput SecurityVulnerabilityOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order security vulnerabilities by.\n  \"\"\"\n  field: SecurityVulnerabilityOrderField!\n}\n\n\"\"\"\nProperties by which security vulnerability connections can be ordered.\n\"\"\"\nenum SecurityVulnerabilityOrderField {\n  \"\"\"\n  Order vulnerability by update time\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nAutogenerated input type of SetEnterpriseIdentityProvider\n\"\"\"\ninput SetEnterpriseIdentityProviderInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The digest algorithm used to sign SAML requests for the identity provider.\n  \"\"\"\n  digestMethod: SamlDigestAlgorithm!\n\n  \"\"\"\n  The ID of the enterprise on which to set an identity provider.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The x509 certificate used by the identity provider to sign assertions and responses.\n  \"\"\"\n  idpCertificate: String!\n\n  \"\"\"\n  The Issuer Entity ID for the SAML identity provider\n  \"\"\"\n  issuer: String\n\n  \"\"\"\n  The signature algorithm used to sign SAML requests for the identity provider.\n  \"\"\"\n  signatureMethod: SamlSignatureAlgorithm!\n\n  \"\"\"\n  The URL endpoint for the identity provider's SAML SSO.\n  \"\"\"\n  ssoUrl: URI!\n}\n\n\"\"\"\nAutogenerated return type of SetEnterpriseIdentityProvider\n\"\"\"\ntype SetEnterpriseIdentityProviderPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The identity provider for the enterprise.\n  \"\"\"\n  identityProvider: EnterpriseIdentityProvider\n}\n\n\"\"\"\nAutogenerated input type of SetOrganizationInteractionLimit\n\"\"\"\ninput SetOrganizationInteractionLimitInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  When this limit should expire.\n  \"\"\"\n  expiry: RepositoryInteractionLimitExpiry\n\n  \"\"\"\n  The limit to set.\n  \"\"\"\n  limit: RepositoryInteractionLimit!\n\n  \"\"\"\n  The ID of the organization to set a limit for.\n  \"\"\"\n  organizationId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n}\n\n\"\"\"\nAutogenerated return type of SetOrganizationInteractionLimit\n\"\"\"\ntype SetOrganizationInteractionLimitPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The organization that the interaction limit was set for.\n  \"\"\"\n  organization: Organization\n}\n\n\"\"\"\nAutogenerated input type of SetRepositoryInteractionLimit\n\"\"\"\ninput SetRepositoryInteractionLimitInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  When this limit should expire.\n  \"\"\"\n  expiry: RepositoryInteractionLimitExpiry\n\n  \"\"\"\n  The limit to set.\n  \"\"\"\n  limit: RepositoryInteractionLimit!\n\n  \"\"\"\n  The ID of the repository to set a limit for.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of SetRepositoryInteractionLimit\n\"\"\"\ntype SetRepositoryInteractionLimitPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The repository that the interaction limit was set for.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nAutogenerated input type of SetUserInteractionLimit\n\"\"\"\ninput SetUserInteractionLimitInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  When this limit should expire.\n  \"\"\"\n  expiry: RepositoryInteractionLimitExpiry\n\n  \"\"\"\n  The limit to set.\n  \"\"\"\n  limit: RepositoryInteractionLimit!\n\n  \"\"\"\n  The ID of the user to set a limit for.\n  \"\"\"\n  userId: ID! @possibleTypes(concreteTypes: [\"User\"])\n}\n\n\"\"\"\nAutogenerated return type of SetUserInteractionLimit\n\"\"\"\ntype SetUserInteractionLimitPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The user that the interaction limit was set for.\n  \"\"\"\n  user: User\n}\n\n\"\"\"\nRepresents an S/MIME signature on a Commit or Tag.\n\"\"\"\ntype SmimeSignature implements GitSignature {\n  \"\"\"\n  Email used to sign this object.\n  \"\"\"\n  email: String!\n\n  \"\"\"\n  True if the signature is valid and verified by GitHub.\n  \"\"\"\n  isValid: Boolean!\n\n  \"\"\"\n  Payload for GPG signing object. Raw ODB object without the signature header.\n  \"\"\"\n  payload: String!\n\n  \"\"\"\n  ASCII-armored signature header from object.\n  \"\"\"\n  signature: String!\n\n  \"\"\"\n  GitHub user corresponding to the email signing this commit.\n  \"\"\"\n  signer: User\n\n  \"\"\"\n  The state of this signature. `VALID` if signature is valid and verified by\n  GitHub, otherwise represents reason why signature is considered invalid.\n  \"\"\"\n  state: GitSignatureState!\n\n  \"\"\"\n  True if the signature was made with GitHub's signing key.\n  \"\"\"\n  wasSignedByGitHub: Boolean!\n}\n\n\"\"\"\nSocial media profile associated with a user.\n\"\"\"\ntype SocialAccount {\n  \"\"\"\n  Name of the social media account as it appears on the profile.\n  \"\"\"\n  displayName: String!\n\n  \"\"\"\n  Software or company that hosts the social media account.\n  \"\"\"\n  provider: SocialAccountProvider!\n\n  \"\"\"\n  URL of the social media account.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nThe connection type for SocialAccount.\n\"\"\"\ntype SocialAccountConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [SocialAccountEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [SocialAccount]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype SocialAccountEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: SocialAccount\n}\n\n\"\"\"\nSoftware or company that hosts social media accounts.\n\"\"\"\nenum SocialAccountProvider {\n  \"\"\"\n  Social media and networking website.\n  \"\"\"\n  FACEBOOK\n\n  \"\"\"\n  Catch-all for social media providers that do not yet have specific handling.\n  \"\"\"\n  GENERIC\n\n  \"\"\"\n  Fork of Mastodon with a greater focus on local posting.\n  \"\"\"\n  HOMETOWN\n\n  \"\"\"\n  Social media website with a focus on photo and video sharing.\n  \"\"\"\n  INSTAGRAM\n\n  \"\"\"\n  Professional networking website.\n  \"\"\"\n  LINKEDIN\n\n  \"\"\"\n  Open-source federated microblogging service.\n  \"\"\"\n  MASTODON\n\n  \"\"\"\n  JavaScript package registry.\n  \"\"\"\n  NPM\n\n  \"\"\"\n  Social news aggregation and discussion website.\n  \"\"\"\n  REDDIT\n\n  \"\"\"\n  Live-streaming service.\n  \"\"\"\n  TWITCH\n\n  \"\"\"\n  Microblogging website.\n  \"\"\"\n  TWITTER\n\n  \"\"\"\n  Online video platform.\n  \"\"\"\n  YOUTUBE\n}\n\n\"\"\"\nEntities that can sponsor others via GitHub Sponsors\n\"\"\"\nunion Sponsor = Organization | User\n\n\"\"\"\nThe connection type for Sponsor.\n\"\"\"\ntype SponsorConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [SponsorEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Sponsor]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nRepresents a user or organization who is sponsoring someone in GitHub Sponsors.\n\"\"\"\ntype SponsorEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Sponsor\n}\n\n\"\"\"\nOrdering options for connections to get sponsor entities for GitHub Sponsors.\n\"\"\"\ninput SponsorOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order sponsor entities by.\n  \"\"\"\n  field: SponsorOrderField!\n}\n\n\"\"\"\nProperties by which sponsor connections can be ordered.\n\"\"\"\nenum SponsorOrderField {\n  \"\"\"\n  Order sponsorable entities by login (username).\n  \"\"\"\n  LOGIN\n\n  \"\"\"\n  Order sponsors by their relevance to the viewer.\n  \"\"\"\n  RELEVANCE\n}\n\n\"\"\"\nEntities that can sponsor or be sponsored through GitHub Sponsors.\n\"\"\"\ninterface Sponsorable {\n  \"\"\"\n  The estimated next GitHub Sponsors payout for this user/organization in cents (USD).\n  \"\"\"\n  estimatedNextSponsorsPayoutInCents: Int!\n\n  \"\"\"\n  True if this user/organization has a GitHub Sponsors listing.\n  \"\"\"\n  hasSponsorsListing: Boolean!\n\n  \"\"\"\n  Whether the given account is sponsoring this user/organization.\n  \"\"\"\n  isSponsoredBy(\n    \"\"\"\n    The target account's login.\n    \"\"\"\n    accountLogin: String!\n  ): Boolean!\n\n  \"\"\"\n  True if the viewer is sponsored by this user/organization.\n  \"\"\"\n  isSponsoringViewer: Boolean!\n\n  \"\"\"\n  The estimated monthly GitHub Sponsors income for this user/organization in cents (USD).\n  \"\"\"\n  monthlyEstimatedSponsorsIncomeInCents: Int!\n\n  \"\"\"\n  List of users and organizations this entity is sponsoring.\n  \"\"\"\n  sponsoring(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the users and organizations returned from the connection.\n    \"\"\"\n    orderBy: SponsorOrder = {field: RELEVANCE, direction: DESC}\n  ): SponsorConnection!\n\n  \"\"\"\n  List of sponsors for this user or organization.\n  \"\"\"\n  sponsors(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for sponsors returned from the connection.\n    \"\"\"\n    orderBy: SponsorOrder = {field: RELEVANCE, direction: DESC}\n\n    \"\"\"\n    If given, will filter for sponsors at the given tier. Will only return\n    sponsors whose tier the viewer is permitted to see.\n    \"\"\"\n    tierId: ID\n  ): SponsorConnection!\n\n  \"\"\"\n  Events involving this sponsorable, such as new sponsorships.\n  \"\"\"\n  sponsorsActivities(\n    \"\"\"\n    Filter activities to only the specified actions.\n    \"\"\"\n    actions: [SponsorsActivityAction!] = []\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Whether to include those events where this sponsorable acted as the sponsor.\n    Defaults to only including events where this sponsorable was the recipient\n    of a sponsorship.\n    \"\"\"\n    includeAsSponsor: Boolean = false\n\n    \"\"\"\n    Whether or not to include private activities in the result set. Defaults to including public and private activities.\n    \"\"\"\n    includePrivate: Boolean = true\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for activity returned from the connection.\n    \"\"\"\n    orderBy: SponsorsActivityOrder = {field: TIMESTAMP, direction: DESC}\n\n    \"\"\"\n    Filter activities returned to only those that occurred in the most recent\n    specified time period. Set to ALL to avoid filtering by when the activity\n    occurred. Will be ignored if `since` or `until` is given.\n    \"\"\"\n    period: SponsorsActivityPeriod = MONTH\n\n    \"\"\"\n    Filter activities to those that occurred on or after this time.\n    \"\"\"\n    since: DateTime\n\n    \"\"\"\n    Filter activities to those that occurred before this time.\n    \"\"\"\n    until: DateTime\n  ): SponsorsActivityConnection!\n\n  \"\"\"\n  The GitHub Sponsors listing for this user or organization.\n  \"\"\"\n  sponsorsListing: SponsorsListing\n\n  \"\"\"\n  The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor.\n  \"\"\"\n  sponsorshipForViewerAsSponsor(\n    \"\"\"\n    Whether to return the sponsorship only if it's still active. Pass false to\n    get the viewer's sponsorship back even if it has been cancelled.\n    \"\"\"\n    activeOnly: Boolean = true\n  ): Sponsorship\n\n  \"\"\"\n  The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving.\n  \"\"\"\n  sponsorshipForViewerAsSponsorable(\n    \"\"\"\n    Whether to return the sponsorship only if it's still active. Pass false to\n    get the sponsorship back even if it has been cancelled.\n    \"\"\"\n    activeOnly: Boolean = true\n  ): Sponsorship\n\n  \"\"\"\n  List of sponsorship updates sent from this sponsorable to sponsors.\n  \"\"\"\n  sponsorshipNewsletters(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for sponsorship updates returned from the connection.\n    \"\"\"\n    orderBy: SponsorshipNewsletterOrder = {field: CREATED_AT, direction: DESC}\n  ): SponsorshipNewsletterConnection!\n\n  \"\"\"\n  The sponsorships where this user or organization is the maintainer receiving the funds.\n  \"\"\"\n  sponsorshipsAsMaintainer(\n    \"\"\"\n    Whether to include only sponsorships that are active right now, versus all\n    sponsorships this maintainer has ever received.\n    \"\"\"\n    activeOnly: Boolean = true\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Whether or not to include private sponsorships in the result set\n    \"\"\"\n    includePrivate: Boolean = false\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for sponsorships returned from this connection. If left\n    blank, the sponsorships will be ordered based on relevancy to the viewer.\n    \"\"\"\n    orderBy: SponsorshipOrder\n  ): SponsorshipConnection!\n\n  \"\"\"\n  The sponsorships where this user or organization is the funder.\n  \"\"\"\n  sponsorshipsAsSponsor(\n    \"\"\"\n    Whether to include only sponsorships that are active right now, versus all sponsorships this sponsor has ever made.\n    \"\"\"\n    activeOnly: Boolean = true\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter sponsorships returned to those for the specified maintainers. That\n    is, the recipient of the sponsorship is a user or organization with one of\n    the given logins.\n    \"\"\"\n    maintainerLogins: [String!]\n\n    \"\"\"\n    Ordering options for sponsorships returned from this connection. If left\n    blank, the sponsorships will be ordered based on relevancy to the viewer.\n    \"\"\"\n    orderBy: SponsorshipOrder\n  ): SponsorshipConnection!\n\n  \"\"\"\n  The amount in United States cents (e.g., 500 = $5.00 USD) that this entity has\n  spent on GitHub to fund sponsorships. Only returns a value when viewed by the\n  user themselves or by a user who can manage sponsorships for the requested organization.\n  \"\"\"\n  totalSponsorshipAmountAsSponsorInCents(\n    \"\"\"\n    Filter payments to those that occurred on or after this time.\n    \"\"\"\n    since: DateTime\n\n    \"\"\"\n    Filter payments to those made to the users or organizations with the specified usernames.\n    \"\"\"\n    sponsorableLogins: [String!] = []\n\n    \"\"\"\n    Filter payments to those that occurred before this time.\n    \"\"\"\n    until: DateTime\n  ): Int\n\n  \"\"\"\n  Whether or not the viewer is able to sponsor this user/organization.\n  \"\"\"\n  viewerCanSponsor: Boolean!\n\n  \"\"\"\n  True if the viewer is sponsoring this user/organization.\n  \"\"\"\n  viewerIsSponsoring: Boolean!\n}\n\n\"\"\"\nEntities that can be sponsored via GitHub Sponsors\n\"\"\"\nunion SponsorableItem = Organization | User\n\n\"\"\"\nThe connection type for SponsorableItem.\n\"\"\"\ntype SponsorableItemConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [SponsorableItemEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [SponsorableItem]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype SponsorableItemEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: SponsorableItem\n}\n\n\"\"\"\nOrdering options for connections to get sponsorable entities for GitHub Sponsors.\n\"\"\"\ninput SponsorableOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order sponsorable entities by.\n  \"\"\"\n  field: SponsorableOrderField!\n}\n\n\"\"\"\nProperties by which sponsorable connections can be ordered.\n\"\"\"\nenum SponsorableOrderField {\n  \"\"\"\n  Order sponsorable entities by login (username).\n  \"\"\"\n  LOGIN\n}\n\n\"\"\"\nAn event related to sponsorship activity.\n\"\"\"\ntype SponsorsActivity implements Node {\n  \"\"\"\n  What action this activity indicates took place.\n  \"\"\"\n  action: SponsorsActivityAction!\n\n  \"\"\"\n  The sponsor's current privacy level.\n  \"\"\"\n  currentPrivacyLevel: SponsorshipPrivacy\n\n  \"\"\"\n  The Node ID of the SponsorsActivity object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The platform that was used to pay for the sponsorship.\n  \"\"\"\n  paymentSource: SponsorshipPaymentSource\n\n  \"\"\"\n  The tier that the sponsorship used to use, for tier change events.\n  \"\"\"\n  previousSponsorsTier: SponsorsTier\n\n  \"\"\"\n  The user or organization who triggered this activity and was/is sponsoring the sponsorable.\n  \"\"\"\n  sponsor: Sponsor\n\n  \"\"\"\n  The user or organization that is being sponsored, the maintainer.\n  \"\"\"\n  sponsorable: Sponsorable!\n\n  \"\"\"\n  The associated sponsorship tier.\n  \"\"\"\n  sponsorsTier: SponsorsTier\n\n  \"\"\"\n  The timestamp of this event.\n  \"\"\"\n  timestamp: DateTime\n\n  \"\"\"\n  Was this sponsorship made alongside other sponsorships at the same time from the same sponsor?\n  \"\"\"\n  viaBulkSponsorship: Boolean!\n}\n\n\"\"\"\nThe possible actions that GitHub Sponsors activities can represent.\n\"\"\"\nenum SponsorsActivityAction {\n  \"\"\"\n  The activity was cancelling a sponsorship.\n  \"\"\"\n  CANCELLED_SPONSORSHIP\n\n  \"\"\"\n  The activity was starting a sponsorship.\n  \"\"\"\n  NEW_SPONSORSHIP\n\n  \"\"\"\n  The activity was scheduling a downgrade or cancellation.\n  \"\"\"\n  PENDING_CHANGE\n\n  \"\"\"\n  The activity was funds being refunded to the sponsor or GitHub.\n  \"\"\"\n  REFUND\n\n  \"\"\"\n  The activity was disabling matching for a previously matched sponsorship.\n  \"\"\"\n  SPONSOR_MATCH_DISABLED\n\n  \"\"\"\n  The activity was changing the sponsorship tier, either directly by the sponsor or by a scheduled/pending change.\n  \"\"\"\n  TIER_CHANGE\n}\n\n\"\"\"\nThe connection type for SponsorsActivity.\n\"\"\"\ntype SponsorsActivityConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [SponsorsActivityEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [SponsorsActivity]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype SponsorsActivityEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: SponsorsActivity\n}\n\n\"\"\"\nOrdering options for GitHub Sponsors activity connections.\n\"\"\"\ninput SponsorsActivityOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order activity by.\n  \"\"\"\n  field: SponsorsActivityOrderField!\n}\n\n\"\"\"\nProperties by which GitHub Sponsors activity connections can be ordered.\n\"\"\"\nenum SponsorsActivityOrderField {\n  \"\"\"\n  Order activities by when they happened.\n  \"\"\"\n  TIMESTAMP\n}\n\n\"\"\"\nThe possible time periods for which Sponsors activities can be requested.\n\"\"\"\nenum SponsorsActivityPeriod {\n  \"\"\"\n  Don't restrict the activity to any date range, include all activity.\n  \"\"\"\n  ALL\n\n  \"\"\"\n  The previous calendar day.\n  \"\"\"\n  DAY\n\n  \"\"\"\n  The previous thirty days.\n  \"\"\"\n  MONTH\n\n  \"\"\"\n  The previous seven days.\n  \"\"\"\n  WEEK\n}\n\n\"\"\"\nRepresents countries or regions for billing and residence for a GitHub Sponsors profile.\n\"\"\"\nenum SponsorsCountryOrRegionCode {\n  \"\"\"\n  Andorra\n  \"\"\"\n  AD\n\n  \"\"\"\n  United Arab Emirates\n  \"\"\"\n  AE\n\n  \"\"\"\n  Afghanistan\n  \"\"\"\n  AF\n\n  \"\"\"\n  Antigua and Barbuda\n  \"\"\"\n  AG\n\n  \"\"\"\n  Anguilla\n  \"\"\"\n  AI\n\n  \"\"\"\n  Albania\n  \"\"\"\n  AL\n\n  \"\"\"\n  Armenia\n  \"\"\"\n  AM\n\n  \"\"\"\n  Angola\n  \"\"\"\n  AO\n\n  \"\"\"\n  Antarctica\n  \"\"\"\n  AQ\n\n  \"\"\"\n  Argentina\n  \"\"\"\n  AR\n\n  \"\"\"\n  American Samoa\n  \"\"\"\n  AS\n\n  \"\"\"\n  Austria\n  \"\"\"\n  AT\n\n  \"\"\"\n  Australia\n  \"\"\"\n  AU\n\n  \"\"\"\n  Aruba\n  \"\"\"\n  AW\n\n  \"\"\"\n  Åland\n  \"\"\"\n  AX\n\n  \"\"\"\n  Azerbaijan\n  \"\"\"\n  AZ\n\n  \"\"\"\n  Bosnia and Herzegovina\n  \"\"\"\n  BA\n\n  \"\"\"\n  Barbados\n  \"\"\"\n  BB\n\n  \"\"\"\n  Bangladesh\n  \"\"\"\n  BD\n\n  \"\"\"\n  Belgium\n  \"\"\"\n  BE\n\n  \"\"\"\n  Burkina Faso\n  \"\"\"\n  BF\n\n  \"\"\"\n  Bulgaria\n  \"\"\"\n  BG\n\n  \"\"\"\n  Bahrain\n  \"\"\"\n  BH\n\n  \"\"\"\n  Burundi\n  \"\"\"\n  BI\n\n  \"\"\"\n  Benin\n  \"\"\"\n  BJ\n\n  \"\"\"\n  Saint Barthélemy\n  \"\"\"\n  BL\n\n  \"\"\"\n  Bermuda\n  \"\"\"\n  BM\n\n  \"\"\"\n  Brunei Darussalam\n  \"\"\"\n  BN\n\n  \"\"\"\n  Bolivia\n  \"\"\"\n  BO\n\n  \"\"\"\n  Bonaire, Sint Eustatius and Saba\n  \"\"\"\n  BQ\n\n  \"\"\"\n  Brazil\n  \"\"\"\n  BR\n\n  \"\"\"\n  Bahamas\n  \"\"\"\n  BS\n\n  \"\"\"\n  Bhutan\n  \"\"\"\n  BT\n\n  \"\"\"\n  Bouvet Island\n  \"\"\"\n  BV\n\n  \"\"\"\n  Botswana\n  \"\"\"\n  BW\n\n  \"\"\"\n  Belarus\n  \"\"\"\n  BY\n\n  \"\"\"\n  Belize\n  \"\"\"\n  BZ\n\n  \"\"\"\n  Canada\n  \"\"\"\n  CA\n\n  \"\"\"\n  Cocos (Keeling) Islands\n  \"\"\"\n  CC\n\n  \"\"\"\n  Congo (Kinshasa)\n  \"\"\"\n  CD\n\n  \"\"\"\n  Central African Republic\n  \"\"\"\n  CF\n\n  \"\"\"\n  Congo (Brazzaville)\n  \"\"\"\n  CG\n\n  \"\"\"\n  Switzerland\n  \"\"\"\n  CH\n\n  \"\"\"\n  Côte d'Ivoire\n  \"\"\"\n  CI\n\n  \"\"\"\n  Cook Islands\n  \"\"\"\n  CK\n\n  \"\"\"\n  Chile\n  \"\"\"\n  CL\n\n  \"\"\"\n  Cameroon\n  \"\"\"\n  CM\n\n  \"\"\"\n  China\n  \"\"\"\n  CN\n\n  \"\"\"\n  Colombia\n  \"\"\"\n  CO\n\n  \"\"\"\n  Costa Rica\n  \"\"\"\n  CR\n\n  \"\"\"\n  Cape Verde\n  \"\"\"\n  CV\n\n  \"\"\"\n  Curaçao\n  \"\"\"\n  CW\n\n  \"\"\"\n  Christmas Island\n  \"\"\"\n  CX\n\n  \"\"\"\n  Cyprus\n  \"\"\"\n  CY\n\n  \"\"\"\n  Czech Republic\n  \"\"\"\n  CZ\n\n  \"\"\"\n  Germany\n  \"\"\"\n  DE\n\n  \"\"\"\n  Djibouti\n  \"\"\"\n  DJ\n\n  \"\"\"\n  Denmark\n  \"\"\"\n  DK\n\n  \"\"\"\n  Dominica\n  \"\"\"\n  DM\n\n  \"\"\"\n  Dominican Republic\n  \"\"\"\n  DO\n\n  \"\"\"\n  Algeria\n  \"\"\"\n  DZ\n\n  \"\"\"\n  Ecuador\n  \"\"\"\n  EC\n\n  \"\"\"\n  Estonia\n  \"\"\"\n  EE\n\n  \"\"\"\n  Egypt\n  \"\"\"\n  EG\n\n  \"\"\"\n  Western Sahara\n  \"\"\"\n  EH\n\n  \"\"\"\n  Eritrea\n  \"\"\"\n  ER\n\n  \"\"\"\n  Spain\n  \"\"\"\n  ES\n\n  \"\"\"\n  Ethiopia\n  \"\"\"\n  ET\n\n  \"\"\"\n  Finland\n  \"\"\"\n  FI\n\n  \"\"\"\n  Fiji\n  \"\"\"\n  FJ\n\n  \"\"\"\n  Falkland Islands\n  \"\"\"\n  FK\n\n  \"\"\"\n  Micronesia\n  \"\"\"\n  FM\n\n  \"\"\"\n  Faroe Islands\n  \"\"\"\n  FO\n\n  \"\"\"\n  France\n  \"\"\"\n  FR\n\n  \"\"\"\n  Gabon\n  \"\"\"\n  GA\n\n  \"\"\"\n  United Kingdom\n  \"\"\"\n  GB\n\n  \"\"\"\n  Grenada\n  \"\"\"\n  GD\n\n  \"\"\"\n  Georgia\n  \"\"\"\n  GE\n\n  \"\"\"\n  French Guiana\n  \"\"\"\n  GF\n\n  \"\"\"\n  Guernsey\n  \"\"\"\n  GG\n\n  \"\"\"\n  Ghana\n  \"\"\"\n  GH\n\n  \"\"\"\n  Gibraltar\n  \"\"\"\n  GI\n\n  \"\"\"\n  Greenland\n  \"\"\"\n  GL\n\n  \"\"\"\n  Gambia\n  \"\"\"\n  GM\n\n  \"\"\"\n  Guinea\n  \"\"\"\n  GN\n\n  \"\"\"\n  Guadeloupe\n  \"\"\"\n  GP\n\n  \"\"\"\n  Equatorial Guinea\n  \"\"\"\n  GQ\n\n  \"\"\"\n  Greece\n  \"\"\"\n  GR\n\n  \"\"\"\n  South Georgia and South Sandwich Islands\n  \"\"\"\n  GS\n\n  \"\"\"\n  Guatemala\n  \"\"\"\n  GT\n\n  \"\"\"\n  Guam\n  \"\"\"\n  GU\n\n  \"\"\"\n  Guinea-Bissau\n  \"\"\"\n  GW\n\n  \"\"\"\n  Guyana\n  \"\"\"\n  GY\n\n  \"\"\"\n  Hong Kong\n  \"\"\"\n  HK\n\n  \"\"\"\n  Heard and McDonald Islands\n  \"\"\"\n  HM\n\n  \"\"\"\n  Honduras\n  \"\"\"\n  HN\n\n  \"\"\"\n  Croatia\n  \"\"\"\n  HR\n\n  \"\"\"\n  Haiti\n  \"\"\"\n  HT\n\n  \"\"\"\n  Hungary\n  \"\"\"\n  HU\n\n  \"\"\"\n  Indonesia\n  \"\"\"\n  ID\n\n  \"\"\"\n  Ireland\n  \"\"\"\n  IE\n\n  \"\"\"\n  Israel\n  \"\"\"\n  IL\n\n  \"\"\"\n  Isle of Man\n  \"\"\"\n  IM\n\n  \"\"\"\n  India\n  \"\"\"\n  IN\n\n  \"\"\"\n  British Indian Ocean Territory\n  \"\"\"\n  IO\n\n  \"\"\"\n  Iraq\n  \"\"\"\n  IQ\n\n  \"\"\"\n  Iran\n  \"\"\"\n  IR\n\n  \"\"\"\n  Iceland\n  \"\"\"\n  IS\n\n  \"\"\"\n  Italy\n  \"\"\"\n  IT\n\n  \"\"\"\n  Jersey\n  \"\"\"\n  JE\n\n  \"\"\"\n  Jamaica\n  \"\"\"\n  JM\n\n  \"\"\"\n  Jordan\n  \"\"\"\n  JO\n\n  \"\"\"\n  Japan\n  \"\"\"\n  JP\n\n  \"\"\"\n  Kenya\n  \"\"\"\n  KE\n\n  \"\"\"\n  Kyrgyzstan\n  \"\"\"\n  KG\n\n  \"\"\"\n  Cambodia\n  \"\"\"\n  KH\n\n  \"\"\"\n  Kiribati\n  \"\"\"\n  KI\n\n  \"\"\"\n  Comoros\n  \"\"\"\n  KM\n\n  \"\"\"\n  Saint Kitts and Nevis\n  \"\"\"\n  KN\n\n  \"\"\"\n  Korea, South\n  \"\"\"\n  KR\n\n  \"\"\"\n  Kuwait\n  \"\"\"\n  KW\n\n  \"\"\"\n  Cayman Islands\n  \"\"\"\n  KY\n\n  \"\"\"\n  Kazakhstan\n  \"\"\"\n  KZ\n\n  \"\"\"\n  Laos\n  \"\"\"\n  LA\n\n  \"\"\"\n  Lebanon\n  \"\"\"\n  LB\n\n  \"\"\"\n  Saint Lucia\n  \"\"\"\n  LC\n\n  \"\"\"\n  Liechtenstein\n  \"\"\"\n  LI\n\n  \"\"\"\n  Sri Lanka\n  \"\"\"\n  LK\n\n  \"\"\"\n  Liberia\n  \"\"\"\n  LR\n\n  \"\"\"\n  Lesotho\n  \"\"\"\n  LS\n\n  \"\"\"\n  Lithuania\n  \"\"\"\n  LT\n\n  \"\"\"\n  Luxembourg\n  \"\"\"\n  LU\n\n  \"\"\"\n  Latvia\n  \"\"\"\n  LV\n\n  \"\"\"\n  Libya\n  \"\"\"\n  LY\n\n  \"\"\"\n  Morocco\n  \"\"\"\n  MA\n\n  \"\"\"\n  Monaco\n  \"\"\"\n  MC\n\n  \"\"\"\n  Moldova\n  \"\"\"\n  MD\n\n  \"\"\"\n  Montenegro\n  \"\"\"\n  ME\n\n  \"\"\"\n  Saint Martin (French part)\n  \"\"\"\n  MF\n\n  \"\"\"\n  Madagascar\n  \"\"\"\n  MG\n\n  \"\"\"\n  Marshall Islands\n  \"\"\"\n  MH\n\n  \"\"\"\n  Macedonia\n  \"\"\"\n  MK\n\n  \"\"\"\n  Mali\n  \"\"\"\n  ML\n\n  \"\"\"\n  Myanmar\n  \"\"\"\n  MM\n\n  \"\"\"\n  Mongolia\n  \"\"\"\n  MN\n\n  \"\"\"\n  Macau\n  \"\"\"\n  MO\n\n  \"\"\"\n  Northern Mariana Islands\n  \"\"\"\n  MP\n\n  \"\"\"\n  Martinique\n  \"\"\"\n  MQ\n\n  \"\"\"\n  Mauritania\n  \"\"\"\n  MR\n\n  \"\"\"\n  Montserrat\n  \"\"\"\n  MS\n\n  \"\"\"\n  Malta\n  \"\"\"\n  MT\n\n  \"\"\"\n  Mauritius\n  \"\"\"\n  MU\n\n  \"\"\"\n  Maldives\n  \"\"\"\n  MV\n\n  \"\"\"\n  Malawi\n  \"\"\"\n  MW\n\n  \"\"\"\n  Mexico\n  \"\"\"\n  MX\n\n  \"\"\"\n  Malaysia\n  \"\"\"\n  MY\n\n  \"\"\"\n  Mozambique\n  \"\"\"\n  MZ\n\n  \"\"\"\n  Namibia\n  \"\"\"\n  NA\n\n  \"\"\"\n  New Caledonia\n  \"\"\"\n  NC\n\n  \"\"\"\n  Niger\n  \"\"\"\n  NE\n\n  \"\"\"\n  Norfolk Island\n  \"\"\"\n  NF\n\n  \"\"\"\n  Nigeria\n  \"\"\"\n  NG\n\n  \"\"\"\n  Nicaragua\n  \"\"\"\n  NI\n\n  \"\"\"\n  Netherlands\n  \"\"\"\n  NL\n\n  \"\"\"\n  Norway\n  \"\"\"\n  NO\n\n  \"\"\"\n  Nepal\n  \"\"\"\n  NP\n\n  \"\"\"\n  Nauru\n  \"\"\"\n  NR\n\n  \"\"\"\n  Niue\n  \"\"\"\n  NU\n\n  \"\"\"\n  New Zealand\n  \"\"\"\n  NZ\n\n  \"\"\"\n  Oman\n  \"\"\"\n  OM\n\n  \"\"\"\n  Panama\n  \"\"\"\n  PA\n\n  \"\"\"\n  Peru\n  \"\"\"\n  PE\n\n  \"\"\"\n  French Polynesia\n  \"\"\"\n  PF\n\n  \"\"\"\n  Papua New Guinea\n  \"\"\"\n  PG\n\n  \"\"\"\n  Philippines\n  \"\"\"\n  PH\n\n  \"\"\"\n  Pakistan\n  \"\"\"\n  PK\n\n  \"\"\"\n  Poland\n  \"\"\"\n  PL\n\n  \"\"\"\n  Saint Pierre and Miquelon\n  \"\"\"\n  PM\n\n  \"\"\"\n  Pitcairn\n  \"\"\"\n  PN\n\n  \"\"\"\n  Puerto Rico\n  \"\"\"\n  PR\n\n  \"\"\"\n  Palestine\n  \"\"\"\n  PS\n\n  \"\"\"\n  Portugal\n  \"\"\"\n  PT\n\n  \"\"\"\n  Palau\n  \"\"\"\n  PW\n\n  \"\"\"\n  Paraguay\n  \"\"\"\n  PY\n\n  \"\"\"\n  Qatar\n  \"\"\"\n  QA\n\n  \"\"\"\n  Reunion\n  \"\"\"\n  RE\n\n  \"\"\"\n  Romania\n  \"\"\"\n  RO\n\n  \"\"\"\n  Serbia\n  \"\"\"\n  RS\n\n  \"\"\"\n  Russian Federation\n  \"\"\"\n  RU\n\n  \"\"\"\n  Rwanda\n  \"\"\"\n  RW\n\n  \"\"\"\n  Saudi Arabia\n  \"\"\"\n  SA\n\n  \"\"\"\n  Solomon Islands\n  \"\"\"\n  SB\n\n  \"\"\"\n  Seychelles\n  \"\"\"\n  SC\n\n  \"\"\"\n  Sudan\n  \"\"\"\n  SD\n\n  \"\"\"\n  Sweden\n  \"\"\"\n  SE\n\n  \"\"\"\n  Singapore\n  \"\"\"\n  SG\n\n  \"\"\"\n  Saint Helena\n  \"\"\"\n  SH\n\n  \"\"\"\n  Slovenia\n  \"\"\"\n  SI\n\n  \"\"\"\n  Svalbard and Jan Mayen Islands\n  \"\"\"\n  SJ\n\n  \"\"\"\n  Slovakia\n  \"\"\"\n  SK\n\n  \"\"\"\n  Sierra Leone\n  \"\"\"\n  SL\n\n  \"\"\"\n  San Marino\n  \"\"\"\n  SM\n\n  \"\"\"\n  Senegal\n  \"\"\"\n  SN\n\n  \"\"\"\n  Somalia\n  \"\"\"\n  SO\n\n  \"\"\"\n  Suriname\n  \"\"\"\n  SR\n\n  \"\"\"\n  South Sudan\n  \"\"\"\n  SS\n\n  \"\"\"\n  Sao Tome and Principe\n  \"\"\"\n  ST\n\n  \"\"\"\n  El Salvador\n  \"\"\"\n  SV\n\n  \"\"\"\n  Sint Maarten (Dutch part)\n  \"\"\"\n  SX\n\n  \"\"\"\n  Swaziland\n  \"\"\"\n  SZ\n\n  \"\"\"\n  Turks and Caicos Islands\n  \"\"\"\n  TC\n\n  \"\"\"\n  Chad\n  \"\"\"\n  TD\n\n  \"\"\"\n  French Southern Lands\n  \"\"\"\n  TF\n\n  \"\"\"\n  Togo\n  \"\"\"\n  TG\n\n  \"\"\"\n  Thailand\n  \"\"\"\n  TH\n\n  \"\"\"\n  Tajikistan\n  \"\"\"\n  TJ\n\n  \"\"\"\n  Tokelau\n  \"\"\"\n  TK\n\n  \"\"\"\n  Timor-Leste\n  \"\"\"\n  TL\n\n  \"\"\"\n  Turkmenistan\n  \"\"\"\n  TM\n\n  \"\"\"\n  Tunisia\n  \"\"\"\n  TN\n\n  \"\"\"\n  Tonga\n  \"\"\"\n  TO\n\n  \"\"\"\n  Türkiye\n  \"\"\"\n  TR\n\n  \"\"\"\n  Trinidad and Tobago\n  \"\"\"\n  TT\n\n  \"\"\"\n  Tuvalu\n  \"\"\"\n  TV\n\n  \"\"\"\n  Taiwan\n  \"\"\"\n  TW\n\n  \"\"\"\n  Tanzania\n  \"\"\"\n  TZ\n\n  \"\"\"\n  Ukraine\n  \"\"\"\n  UA\n\n  \"\"\"\n  Uganda\n  \"\"\"\n  UG\n\n  \"\"\"\n  United States Minor Outlying Islands\n  \"\"\"\n  UM\n\n  \"\"\"\n  United States of America\n  \"\"\"\n  US\n\n  \"\"\"\n  Uruguay\n  \"\"\"\n  UY\n\n  \"\"\"\n  Uzbekistan\n  \"\"\"\n  UZ\n\n  \"\"\"\n  Vatican City\n  \"\"\"\n  VA\n\n  \"\"\"\n  Saint Vincent and the Grenadines\n  \"\"\"\n  VC\n\n  \"\"\"\n  Venezuela\n  \"\"\"\n  VE\n\n  \"\"\"\n  Virgin Islands, British\n  \"\"\"\n  VG\n\n  \"\"\"\n  Virgin Islands, U.S.\n  \"\"\"\n  VI\n\n  \"\"\"\n  Vietnam\n  \"\"\"\n  VN\n\n  \"\"\"\n  Vanuatu\n  \"\"\"\n  VU\n\n  \"\"\"\n  Wallis and Futuna Islands\n  \"\"\"\n  WF\n\n  \"\"\"\n  Samoa\n  \"\"\"\n  WS\n\n  \"\"\"\n  Yemen\n  \"\"\"\n  YE\n\n  \"\"\"\n  Mayotte\n  \"\"\"\n  YT\n\n  \"\"\"\n  South Africa\n  \"\"\"\n  ZA\n\n  \"\"\"\n  Zambia\n  \"\"\"\n  ZM\n\n  \"\"\"\n  Zimbabwe\n  \"\"\"\n  ZW\n}\n\n\"\"\"\nA goal associated with a GitHub Sponsors listing, representing a target the sponsored maintainer would like to attain.\n\"\"\"\ntype SponsorsGoal {\n  \"\"\"\n  A description of the goal from the maintainer.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  What the objective of this goal is.\n  \"\"\"\n  kind: SponsorsGoalKind!\n\n  \"\"\"\n  The percentage representing how complete this goal is, between 0-100.\n  \"\"\"\n  percentComplete: Int!\n\n  \"\"\"\n  What the goal amount is. Represents an amount in USD for monthly sponsorship\n  amount goals. Represents a count of unique sponsors for total sponsors count goals.\n  \"\"\"\n  targetValue: Int!\n\n  \"\"\"\n  A brief summary of the kind and target value of this goal.\n  \"\"\"\n  title: String!\n}\n\n\"\"\"\nThe different kinds of goals a GitHub Sponsors member can have.\n\"\"\"\nenum SponsorsGoalKind {\n  \"\"\"\n  The goal is about getting a certain amount in USD from sponsorships each month.\n  \"\"\"\n  MONTHLY_SPONSORSHIP_AMOUNT\n\n  \"\"\"\n  The goal is about reaching a certain number of sponsors.\n  \"\"\"\n  TOTAL_SPONSORS_COUNT\n}\n\n\"\"\"\nA GitHub Sponsors listing.\n\"\"\"\ntype SponsorsListing implements Node {\n  \"\"\"\n  The current goal the maintainer is trying to reach with GitHub Sponsors, if any.\n  \"\"\"\n  activeGoal: SponsorsGoal\n\n  \"\"\"\n  The Stripe Connect account currently in use for payouts for this Sponsors\n  listing, if any. Will only return a value when queried by the maintainer\n  themselves, or by an admin of the sponsorable organization.\n  \"\"\"\n  activeStripeConnectAccount: StripeConnectAccount\n\n  \"\"\"\n  The name of the country or region with the maintainer's bank account or fiscal\n  host. Will only return a value when queried by the maintainer themselves, or\n  by an admin of the sponsorable organization.\n  \"\"\"\n  billingCountryOrRegion: String\n\n  \"\"\"\n  The email address used by GitHub to contact the sponsorable about their GitHub\n  Sponsors profile. Will only return a value when queried by the maintainer\n  themselves, or by an admin of the sponsorable organization.\n  \"\"\"\n  contactEmailAddress: String\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The HTTP path for the Sponsors dashboard for this Sponsors listing.\n  \"\"\"\n  dashboardResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for the Sponsors dashboard for this Sponsors listing.\n  \"\"\"\n  dashboardUrl: URI!\n\n  \"\"\"\n  The records featured on the GitHub Sponsors profile.\n  \"\"\"\n  featuredItems(\n    \"\"\"\n    The types of featured items to return.\n    \"\"\"\n    featureableTypes: [SponsorsListingFeaturedItemFeatureableType!] = [REPOSITORY, USER]\n  ): [SponsorsListingFeaturedItem!]!\n\n  \"\"\"\n  The fiscal host used for payments, if any. Will only return a value when\n  queried by the maintainer themselves, or by an admin of the sponsorable organization.\n  \"\"\"\n  fiscalHost: Organization\n\n  \"\"\"\n  The full description of the listing.\n  \"\"\"\n  fullDescription: String!\n\n  \"\"\"\n  The full description of the listing rendered to HTML.\n  \"\"\"\n  fullDescriptionHTML: HTML!\n\n  \"\"\"\n  The Node ID of the SponsorsListing object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether this listing is publicly visible.\n  \"\"\"\n  isPublic: Boolean!\n\n  \"\"\"\n  The listing's full name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  A future date on which this listing is eligible to receive a payout.\n  \"\"\"\n  nextPayoutDate: Date\n\n  \"\"\"\n  The name of the country or region where the maintainer resides. Will only\n  return a value when queried by the maintainer themselves, or by an admin of\n  the sponsorable organization.\n  \"\"\"\n  residenceCountryOrRegion: String\n\n  \"\"\"\n  The HTTP path for this Sponsors listing.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The short description of the listing.\n  \"\"\"\n  shortDescription: String!\n\n  \"\"\"\n  The short name of the listing.\n  \"\"\"\n  slug: String!\n\n  \"\"\"\n  The entity this listing represents who can be sponsored on GitHub Sponsors.\n  \"\"\"\n  sponsorable: Sponsorable!\n\n  \"\"\"\n  The tiers for this GitHub Sponsors profile.\n  \"\"\"\n  tiers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Whether to include tiers that aren't published. Only admins of the Sponsors\n    listing can see draft tiers. Only admins of the Sponsors listing and viewers\n    who are currently sponsoring on a retired tier can see those retired tiers.\n    Defaults to including only published tiers, which are visible to anyone who\n    can see the GitHub Sponsors profile.\n    \"\"\"\n    includeUnpublished: Boolean = false\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for Sponsors tiers returned from the connection.\n    \"\"\"\n    orderBy: SponsorsTierOrder = {field: MONTHLY_PRICE_IN_CENTS, direction: ASC}\n  ): SponsorsTierConnection\n\n  \"\"\"\n  The HTTP URL for this Sponsors listing.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nA record that can be featured on a GitHub Sponsors profile.\n\"\"\"\nunion SponsorsListingFeatureableItem = Repository | User\n\n\"\"\"\nA record that is promoted on a GitHub Sponsors profile.\n\"\"\"\ntype SponsorsListingFeaturedItem implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Will either be a description from the sponsorable maintainer about why they\n  featured this item, or the item's description itself, such as a user's bio\n  from their GitHub profile page.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The record that is featured on the GitHub Sponsors profile.\n  \"\"\"\n  featureable: SponsorsListingFeatureableItem!\n\n  \"\"\"\n  The Node ID of the SponsorsListingFeaturedItem object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The position of this featured item on the GitHub Sponsors profile with a lower\n  position indicating higher precedence. Starts at 1.\n  \"\"\"\n  position: Int!\n\n  \"\"\"\n  The GitHub Sponsors profile that features this record.\n  \"\"\"\n  sponsorsListing: SponsorsListing!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe different kinds of records that can be featured on a GitHub Sponsors profile page.\n\"\"\"\nenum SponsorsListingFeaturedItemFeatureableType {\n  \"\"\"\n  A repository owned by the user or organization with the GitHub Sponsors profile.\n  \"\"\"\n  REPOSITORY\n\n  \"\"\"\n  A user who belongs to the organization with the GitHub Sponsors profile.\n  \"\"\"\n  USER\n}\n\n\"\"\"\nA GitHub Sponsors tier associated with a GitHub Sponsors listing.\n\"\"\"\ntype SponsorsTier implements Node {\n  \"\"\"\n  SponsorsTier information only visible to users that can administer the associated Sponsors listing.\n  \"\"\"\n  adminInfo: SponsorsTierAdminInfo\n\n  \"\"\"\n  Get a different tier for this tier's maintainer that is at the same frequency\n  as this tier but with an equal or lesser cost. Returns the published tier with\n  the monthly price closest to this tier's without going over.\n  \"\"\"\n  closestLesserValueTier: SponsorsTier\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The description of the tier.\n  \"\"\"\n  description: String!\n\n  \"\"\"\n  The tier description rendered to HTML\n  \"\"\"\n  descriptionHTML: HTML!\n\n  \"\"\"\n  The Node ID of the SponsorsTier object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether this tier was chosen at checkout time by the sponsor rather than\n  defined ahead of time by the maintainer who manages the Sponsors listing.\n  \"\"\"\n  isCustomAmount: Boolean!\n\n  \"\"\"\n  Whether this tier is only for use with one-time sponsorships.\n  \"\"\"\n  isOneTime: Boolean!\n\n  \"\"\"\n  How much this tier costs per month in cents.\n  \"\"\"\n  monthlyPriceInCents: Int!\n\n  \"\"\"\n  How much this tier costs per month in USD.\n  \"\"\"\n  monthlyPriceInDollars: Int!\n\n  \"\"\"\n  The name of the tier.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The sponsors listing that this tier belongs to.\n  \"\"\"\n  sponsorsListing: SponsorsListing!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nSponsorsTier information only visible to users that can administer the associated Sponsors listing.\n\"\"\"\ntype SponsorsTierAdminInfo {\n  \"\"\"\n  Indicates whether this tier is still a work in progress by the sponsorable and\n  not yet published to the associated GitHub Sponsors profile. Draft tiers\n  cannot be used for new sponsorships and will not be in use on existing\n  sponsorships. Draft tiers cannot be seen by anyone but the admins of the\n  GitHub Sponsors profile.\n  \"\"\"\n  isDraft: Boolean!\n\n  \"\"\"\n  Indicates whether this tier is published to the associated GitHub Sponsors\n  profile. Published tiers are visible to anyone who can see the GitHub Sponsors\n  profile, and are available for use in sponsorships if the GitHub Sponsors\n  profile is publicly visible.\n  \"\"\"\n  isPublished: Boolean!\n\n  \"\"\"\n  Indicates whether this tier has been retired from the associated GitHub\n  Sponsors profile. Retired tiers are no longer shown on the GitHub Sponsors\n  profile and cannot be chosen for new sponsorships. Existing sponsorships may\n  still use retired tiers if the sponsor selected the tier before it was retired.\n  \"\"\"\n  isRetired: Boolean!\n\n  \"\"\"\n  The sponsorships using this tier.\n  \"\"\"\n  sponsorships(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Whether or not to return private sponsorships using this tier. Defaults to\n    only returning public sponsorships on this tier.\n    \"\"\"\n    includePrivate: Boolean = false\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for sponsorships returned from this connection. If left\n    blank, the sponsorships will be ordered based on relevancy to the viewer.\n    \"\"\"\n    orderBy: SponsorshipOrder\n  ): SponsorshipConnection!\n}\n\n\"\"\"\nThe connection type for SponsorsTier.\n\"\"\"\ntype SponsorsTierConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [SponsorsTierEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [SponsorsTier]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype SponsorsTierEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: SponsorsTier\n}\n\n\"\"\"\nOrdering options for Sponsors tiers connections.\n\"\"\"\ninput SponsorsTierOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order tiers by.\n  \"\"\"\n  field: SponsorsTierOrderField!\n}\n\n\"\"\"\nProperties by which Sponsors tiers connections can be ordered.\n\"\"\"\nenum SponsorsTierOrderField {\n  \"\"\"\n  Order tiers by creation time.\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order tiers by their monthly price in cents\n  \"\"\"\n  MONTHLY_PRICE_IN_CENTS\n}\n\n\"\"\"\nA sponsorship relationship between a sponsor and a maintainer\n\"\"\"\ntype Sponsorship implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the Sponsorship object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether the sponsorship is active. False implies the sponsor is a past sponsor\n  of the maintainer, while true implies they are a current sponsor.\n  \"\"\"\n  isActive: Boolean!\n\n  \"\"\"\n  Whether this sponsorship represents a one-time payment versus a recurring sponsorship.\n  \"\"\"\n  isOneTimePayment: Boolean!\n\n  \"\"\"\n  Whether the sponsor has chosen to receive sponsorship update emails sent from\n  the sponsorable. Only returns a non-null value when the viewer has permission to know this.\n  \"\"\"\n  isSponsorOptedIntoEmail: Boolean\n\n  \"\"\"\n  The entity that is being sponsored\n  \"\"\"\n  maintainer: User!\n    @deprecated(\n      reason: \"`Sponsorship.maintainer` will be removed. Use `Sponsorship.sponsorable` instead. Removal on 2020-04-01 UTC.\"\n    )\n\n  \"\"\"\n  The platform that was most recently used to pay for the sponsorship.\n  \"\"\"\n  paymentSource: SponsorshipPaymentSource\n\n  \"\"\"\n  The privacy level for this sponsorship.\n  \"\"\"\n  privacyLevel: SponsorshipPrivacy!\n\n  \"\"\"\n  The user that is sponsoring. Returns null if the sponsorship is private or if sponsor is not a user.\n  \"\"\"\n  sponsor: User\n    @deprecated(\n      reason: \"`Sponsorship.sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead. Removal on 2020-10-01 UTC.\"\n    )\n\n  \"\"\"\n  The user or organization that is sponsoring, if you have permission to view them.\n  \"\"\"\n  sponsorEntity: Sponsor\n\n  \"\"\"\n  The entity that is being sponsored\n  \"\"\"\n  sponsorable: Sponsorable!\n\n  \"\"\"\n  The associated sponsorship tier\n  \"\"\"\n  tier: SponsorsTier\n\n  \"\"\"\n  Identifies the date and time when the current tier was chosen for this sponsorship.\n  \"\"\"\n  tierSelectedAt: DateTime\n}\n\n\"\"\"\nThe connection type for Sponsorship.\n\"\"\"\ntype SponsorshipConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [SponsorshipEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Sponsorship]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n\n  \"\"\"\n  The total amount in cents of all recurring sponsorships in the connection\n  whose amount you can view. Does not include one-time sponsorships.\n  \"\"\"\n  totalRecurringMonthlyPriceInCents: Int!\n\n  \"\"\"\n  The total amount in USD of all recurring sponsorships in the connection whose\n  amount you can view. Does not include one-time sponsorships.\n  \"\"\"\n  totalRecurringMonthlyPriceInDollars: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype SponsorshipEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Sponsorship\n}\n\n\"\"\"\nAn update sent to sponsors of a user or organization on GitHub Sponsors.\n\"\"\"\ntype SponsorshipNewsletter implements Node {\n  \"\"\"\n  The author of the newsletter.\n  \"\"\"\n  author: User\n\n  \"\"\"\n  The contents of the newsletter, the message the sponsorable wanted to give.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the SponsorshipNewsletter object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Indicates if the newsletter has been made available to sponsors.\n  \"\"\"\n  isPublished: Boolean!\n\n  \"\"\"\n  The user or organization this newsletter is from.\n  \"\"\"\n  sponsorable: Sponsorable!\n\n  \"\"\"\n  The subject of the newsletter, what it's about.\n  \"\"\"\n  subject: String!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nThe connection type for SponsorshipNewsletter.\n\"\"\"\ntype SponsorshipNewsletterConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [SponsorshipNewsletterEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [SponsorshipNewsletter]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype SponsorshipNewsletterEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: SponsorshipNewsletter\n}\n\n\"\"\"\nOrdering options for sponsorship newsletter connections.\n\"\"\"\ninput SponsorshipNewsletterOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order sponsorship newsletters by.\n  \"\"\"\n  field: SponsorshipNewsletterOrderField!\n}\n\n\"\"\"\nProperties by which sponsorship update connections can be ordered.\n\"\"\"\nenum SponsorshipNewsletterOrderField {\n  \"\"\"\n  Order sponsorship newsletters by when they were created.\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nOrdering options for sponsorship connections.\n\"\"\"\ninput SponsorshipOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order sponsorship by.\n  \"\"\"\n  field: SponsorshipOrderField!\n}\n\n\"\"\"\nProperties by which sponsorship connections can be ordered.\n\"\"\"\nenum SponsorshipOrderField {\n  \"\"\"\n  Order sponsorship by creation time.\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nHow payment was made for funding a GitHub Sponsors sponsorship.\n\"\"\"\nenum SponsorshipPaymentSource {\n  \"\"\"\n  Payment was made through GitHub.\n  \"\"\"\n  GITHUB\n\n  \"\"\"\n  Payment was made through Patreon.\n  \"\"\"\n  PATREON\n}\n\n\"\"\"\nThe privacy of a sponsorship\n\"\"\"\nenum SponsorshipPrivacy {\n  \"\"\"\n  Private\n  \"\"\"\n  PRIVATE\n\n  \"\"\"\n  Public\n  \"\"\"\n  PUBLIC\n}\n\n\"\"\"\nThe possible default commit messages for squash merges.\n\"\"\"\nenum SquashMergeCommitMessage {\n  \"\"\"\n  Default to a blank commit message.\n  \"\"\"\n  BLANK\n\n  \"\"\"\n  Default to the branch's commit messages.\n  \"\"\"\n  COMMIT_MESSAGES\n\n  \"\"\"\n  Default to the pull request's body.\n  \"\"\"\n  PR_BODY\n}\n\n\"\"\"\nThe possible default commit titles for squash merges.\n\"\"\"\nenum SquashMergeCommitTitle {\n  \"\"\"\n  Default to the commit's title (if only one commit) or the pull request's title (when more than one commit).\n  \"\"\"\n  COMMIT_OR_PR_TITLE\n\n  \"\"\"\n  Default to the pull request's title.\n  \"\"\"\n  PR_TITLE\n}\n\n\"\"\"\nRepresents an SSH signature on a Commit or Tag.\n\"\"\"\ntype SshSignature implements GitSignature {\n  \"\"\"\n  Email used to sign this object.\n  \"\"\"\n  email: String!\n\n  \"\"\"\n  True if the signature is valid and verified by GitHub.\n  \"\"\"\n  isValid: Boolean!\n\n  \"\"\"\n  Hex-encoded fingerprint of the key that signed this object.\n  \"\"\"\n  keyFingerprint: String\n\n  \"\"\"\n  Payload for GPG signing object. Raw ODB object without the signature header.\n  \"\"\"\n  payload: String!\n\n  \"\"\"\n  ASCII-armored signature header from object.\n  \"\"\"\n  signature: String!\n\n  \"\"\"\n  GitHub user corresponding to the email signing this commit.\n  \"\"\"\n  signer: User\n\n  \"\"\"\n  The state of this signature. `VALID` if signature is valid and verified by\n  GitHub, otherwise represents reason why signature is considered invalid.\n  \"\"\"\n  state: GitSignatureState!\n\n  \"\"\"\n  True if the signature was made with GitHub's signing key.\n  \"\"\"\n  wasSignedByGitHub: Boolean!\n}\n\n\"\"\"\nWays in which star connections can be ordered.\n\"\"\"\ninput StarOrder {\n  \"\"\"\n  The direction in which to order nodes.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field in which to order nodes by.\n  \"\"\"\n  field: StarOrderField!\n}\n\n\"\"\"\nProperties by which star connections can be ordered.\n\"\"\"\nenum StarOrderField {\n  \"\"\"\n  Allows ordering a list of stars by when they were created.\n  \"\"\"\n  STARRED_AT\n}\n\n\"\"\"\nThe connection type for User.\n\"\"\"\ntype StargazerConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [StargazerEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [User]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nRepresents a user that's starred a repository.\n\"\"\"\ntype StargazerEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n  node: User!\n\n  \"\"\"\n  Identifies when the item was starred.\n  \"\"\"\n  starredAt: DateTime!\n}\n\n\"\"\"\nThings that can be starred.\n\"\"\"\ninterface Starrable {\n  \"\"\"\n  The Node ID of the Starrable object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Returns a count of how many stargazers there are on this object\n  \"\"\"\n  stargazerCount: Int!\n\n  \"\"\"\n  A list of users who have starred this starrable.\n  \"\"\"\n  stargazers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Order for connection\n    \"\"\"\n    orderBy: StarOrder\n  ): StargazerConnection!\n\n  \"\"\"\n  Returns a boolean indicating whether the viewing user has starred this starrable.\n  \"\"\"\n  viewerHasStarred: Boolean!\n}\n\n\"\"\"\nThe connection type for Repository.\n\"\"\"\ntype StarredRepositoryConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [StarredRepositoryEdge]\n\n  \"\"\"\n  Is the list of stars for this user truncated? This is true for users that have many stars.\n  \"\"\"\n  isOverLimit: Boolean!\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Repository]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nRepresents a starred repository.\n\"\"\"\ntype StarredRepositoryEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n  node: Repository!\n\n  \"\"\"\n  Identifies when the item was starred.\n  \"\"\"\n  starredAt: DateTime!\n}\n\n\"\"\"\nAutogenerated input type of StartOrganizationMigration\n\"\"\"\ninput StartOrganizationMigrationInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The migration source access token.\n  \"\"\"\n  sourceAccessToken: String!\n\n  \"\"\"\n  The URL of the organization to migrate.\n  \"\"\"\n  sourceOrgUrl: URI!\n\n  \"\"\"\n  The ID of the enterprise the target organization belongs to.\n  \"\"\"\n  targetEnterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The name of the target organization.\n  \"\"\"\n  targetOrgName: String!\n}\n\n\"\"\"\nAutogenerated return type of StartOrganizationMigration\n\"\"\"\ntype StartOrganizationMigrationPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new organization migration.\n  \"\"\"\n  orgMigration: OrganizationMigration\n}\n\n\"\"\"\nAutogenerated input type of StartRepositoryMigration\n\"\"\"\ninput StartRepositoryMigrationInput {\n  \"\"\"\n  The migration source access token.\n  \"\"\"\n  accessToken: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Whether to continue the migration on error. Defaults to `true`.\n  \"\"\"\n  continueOnError: Boolean\n\n  \"\"\"\n  The signed URL to access the user-uploaded git archive.\n  \"\"\"\n  gitArchiveUrl: String\n\n  \"\"\"\n  The GitHub personal access token of the user importing to the target repository.\n  \"\"\"\n  githubPat: String\n\n  \"\"\"\n  Whether to lock the source repository.\n  \"\"\"\n  lockSource: Boolean\n\n  \"\"\"\n  The signed URL to access the user-uploaded metadata archive.\n  \"\"\"\n  metadataArchiveUrl: String\n\n  \"\"\"\n  The ID of the organization that will own the imported repository.\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n\n  \"\"\"\n  The name of the imported repository.\n  \"\"\"\n  repositoryName: String!\n\n  \"\"\"\n  Whether to skip migrating releases for the repository.\n  \"\"\"\n  skipReleases: Boolean\n\n  \"\"\"\n  The ID of the migration source.\n  \"\"\"\n  sourceId: ID! @possibleTypes(concreteTypes: [\"MigrationSource\"])\n\n  \"\"\"\n  The URL of the source repository.\n  \"\"\"\n  sourceRepositoryUrl: URI\n\n  \"\"\"\n  The visibility of the imported repository.\n  \"\"\"\n  targetRepoVisibility: String\n}\n\n\"\"\"\nAutogenerated return type of StartRepositoryMigration\n\"\"\"\ntype StartRepositoryMigrationPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new repository migration.\n  \"\"\"\n  repositoryMigration: RepositoryMigration\n}\n\n\"\"\"\nRepresents a commit status.\n\"\"\"\ntype Status implements Node {\n  \"\"\"\n  A list of status contexts and check runs for this commit.\n  \"\"\"\n  combinedContexts(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): StatusCheckRollupContextConnection!\n\n  \"\"\"\n  The commit this status is attached to.\n  \"\"\"\n  commit: Commit\n\n  \"\"\"\n  Looks up an individual status context by context name.\n  \"\"\"\n  context(\n    \"\"\"\n    The context name.\n    \"\"\"\n    name: String!\n  ): StatusContext\n\n  \"\"\"\n  The individual status contexts for this commit.\n  \"\"\"\n  contexts: [StatusContext!]!\n\n  \"\"\"\n  The Node ID of the Status object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The combined commit status.\n  \"\"\"\n  state: StatusState!\n}\n\n\"\"\"\nRequired status check\n\"\"\"\ntype StatusCheckConfiguration {\n  \"\"\"\n  The status check context name that must be present on the commit.\n  \"\"\"\n  context: String!\n\n  \"\"\"\n  The optional integration ID that this status check must originate from.\n  \"\"\"\n  integrationId: Int\n}\n\n\"\"\"\nRequired status check\n\"\"\"\ninput StatusCheckConfigurationInput {\n  \"\"\"\n  The status check context name that must be present on the commit.\n  \"\"\"\n  context: String!\n\n  \"\"\"\n  The optional integration ID that this status check must originate from.\n  \"\"\"\n  integrationId: Int\n}\n\n\"\"\"\nRepresents the rollup for both the check runs and status for a commit.\n\"\"\"\ntype StatusCheckRollup implements Node {\n  \"\"\"\n  The commit the status and check runs are attached to.\n  \"\"\"\n  commit: Commit\n\n  \"\"\"\n  A list of status contexts and check runs for this commit.\n  \"\"\"\n  contexts(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): StatusCheckRollupContextConnection!\n\n  \"\"\"\n  The Node ID of the StatusCheckRollup object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The combined status for the commit.\n  \"\"\"\n  state: StatusState!\n}\n\n\"\"\"\nTypes that can be inside a StatusCheckRollup context.\n\"\"\"\nunion StatusCheckRollupContext = CheckRun | StatusContext\n\n\"\"\"\nThe connection type for StatusCheckRollupContext.\n\"\"\"\ntype StatusCheckRollupContextConnection {\n  \"\"\"\n  The number of check runs in this rollup.\n  \"\"\"\n  checkRunCount: Int!\n\n  \"\"\"\n  Counts of check runs by state.\n  \"\"\"\n  checkRunCountsByState: [CheckRunStateCount!]\n\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [StatusCheckRollupContextEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [StatusCheckRollupContext]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  The number of status contexts in this rollup.\n  \"\"\"\n  statusContextCount: Int!\n\n  \"\"\"\n  Counts of status contexts by state.\n  \"\"\"\n  statusContextCountsByState: [StatusContextStateCount!]\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype StatusCheckRollupContextEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: StatusCheckRollupContext\n}\n\n\"\"\"\nRepresents an individual commit status context\n\"\"\"\ntype StatusContext implements Node & RequirableByPullRequest {\n  \"\"\"\n  The avatar of the OAuth application or the user that created the status\n  \"\"\"\n  avatarUrl(\n    \"\"\"\n    The size of the resulting square image.\n    \"\"\"\n    size: Int = 40\n  ): URI\n\n  \"\"\"\n  This commit this status context is attached to.\n  \"\"\"\n  commit: Commit\n\n  \"\"\"\n  The name of this status context.\n  \"\"\"\n  context: String!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The actor who created this status context.\n  \"\"\"\n  creator: Actor\n\n  \"\"\"\n  The description for this status context.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The Node ID of the StatusContext object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether this is required to pass before merging for a specific pull request.\n  \"\"\"\n  isRequired(\n    \"\"\"\n    The id of the pull request this is required for\n    \"\"\"\n    pullRequestId: ID\n\n    \"\"\"\n    The number of the pull request this is required for\n    \"\"\"\n    pullRequestNumber: Int\n  ): Boolean!\n\n  \"\"\"\n  The state of this status context.\n  \"\"\"\n  state: StatusState!\n\n  \"\"\"\n  The URL for this status context.\n  \"\"\"\n  targetUrl: URI\n}\n\n\"\"\"\nRepresents a count of the state of a status context.\n\"\"\"\ntype StatusContextStateCount {\n  \"\"\"\n  The number of statuses with this state.\n  \"\"\"\n  count: Int!\n\n  \"\"\"\n  The state of a status context.\n  \"\"\"\n  state: StatusState!\n}\n\n\"\"\"\nThe possible commit status states.\n\"\"\"\nenum StatusState {\n  \"\"\"\n  Status is errored.\n  \"\"\"\n  ERROR\n\n  \"\"\"\n  Status is expected.\n  \"\"\"\n  EXPECTED\n\n  \"\"\"\n  Status is failing.\n  \"\"\"\n  FAILURE\n\n  \"\"\"\n  Status is pending.\n  \"\"\"\n  PENDING\n\n  \"\"\"\n  Status is successful.\n  \"\"\"\n  SUCCESS\n}\n\n\"\"\"\nA Stripe Connect account for receiving sponsorship funds from GitHub Sponsors.\n\"\"\"\ntype StripeConnectAccount {\n  \"\"\"\n  The account number used to identify this Stripe Connect account.\n  \"\"\"\n  accountId: String!\n\n  \"\"\"\n  The name of the country or region of an external account, such as a bank\n  account, tied to the Stripe Connect account. Will only return a value when\n  queried by the maintainer of the associated GitHub Sponsors profile\n  themselves, or by an admin of the sponsorable organization.\n  \"\"\"\n  billingCountryOrRegion: String\n\n  \"\"\"\n  The name of the country or region of the Stripe Connect account. Will only\n  return a value when queried by the maintainer of the associated GitHub\n  Sponsors profile themselves, or by an admin of the sponsorable organization.\n  \"\"\"\n  countryOrRegion: String\n\n  \"\"\"\n  Whether this Stripe Connect account is currently in use for the associated GitHub Sponsors profile.\n  \"\"\"\n  isActive: Boolean!\n\n  \"\"\"\n  The GitHub Sponsors profile associated with this Stripe Connect account.\n  \"\"\"\n  sponsorsListing: SponsorsListing!\n\n  \"\"\"\n  The URL to access this Stripe Connect account on Stripe's website.\n  \"\"\"\n  stripeDashboardUrl: URI!\n}\n\n\"\"\"\nAutogenerated input type of SubmitPullRequestReview\n\"\"\"\ninput SubmitPullRequestReviewInput {\n  \"\"\"\n  The text field to set on the Pull Request Review.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The event to send to the Pull Request Review.\n  \"\"\"\n  event: PullRequestReviewEvent!\n\n  \"\"\"\n  The Pull Request ID to submit any pending reviews.\n  \"\"\"\n  pullRequestId: ID @possibleTypes(concreteTypes: [\"PullRequest\"])\n\n  \"\"\"\n  The Pull Request Review ID to submit.\n  \"\"\"\n  pullRequestReviewId: ID @possibleTypes(concreteTypes: [\"PullRequestReview\"])\n}\n\n\"\"\"\nAutogenerated return type of SubmitPullRequestReview\n\"\"\"\ntype SubmitPullRequestReviewPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The submitted pull request review.\n  \"\"\"\n  pullRequestReview: PullRequestReview\n}\n\n\"\"\"\nA pointer to a repository at a specific revision embedded inside another repository.\n\"\"\"\ntype Submodule {\n  \"\"\"\n  The branch of the upstream submodule for tracking updates\n  \"\"\"\n  branch: String\n\n  \"\"\"\n  The git URL of the submodule repository\n  \"\"\"\n  gitUrl: URI!\n\n  \"\"\"\n  The name of the submodule in .gitmodules\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The name of the submodule in .gitmodules (Base64-encoded)\n  \"\"\"\n  nameRaw: Base64String!\n\n  \"\"\"\n  The path in the superproject that this submodule is located in\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  The path in the superproject that this submodule is located in (Base64-encoded)\n  \"\"\"\n  pathRaw: Base64String!\n\n  \"\"\"\n  The commit revision of the subproject repository being tracked by the submodule\n  \"\"\"\n  subprojectCommitOid: GitObjectID\n}\n\n\"\"\"\nThe connection type for Submodule.\n\"\"\"\ntype SubmoduleConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [SubmoduleEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Submodule]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype SubmoduleEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Submodule\n}\n\n\"\"\"\nEntities that can be subscribed to for web and email notifications.\n\"\"\"\ninterface Subscribable {\n  \"\"\"\n  The Node ID of the Subscribable object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if the viewer is able to change their subscription status for the repository.\n  \"\"\"\n  viewerCanSubscribe: Boolean!\n\n  \"\"\"\n  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.\n  \"\"\"\n  viewerSubscription: SubscriptionState\n}\n\n\"\"\"\nEntities that can be subscribed to for web and email notifications.\n\"\"\"\ninterface SubscribableThread {\n  \"\"\"\n  The Node ID of the SubscribableThread object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the viewer's thread subscription form action.\n  \"\"\"\n  viewerThreadSubscriptionFormAction: ThreadSubscriptionFormAction\n\n  \"\"\"\n  Identifies the viewer's thread subscription status.\n  \"\"\"\n  viewerThreadSubscriptionStatus: ThreadSubscriptionState\n}\n\n\"\"\"\nRepresents a 'subscribed' event on a given `Subscribable`.\n\"\"\"\ntype SubscribedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the SubscribedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Object referenced by event.\n  \"\"\"\n  subscribable: Subscribable!\n}\n\n\"\"\"\nThe possible states of a subscription.\n\"\"\"\nenum SubscriptionState {\n  \"\"\"\n  The User is never notified.\n  \"\"\"\n  IGNORED\n\n  \"\"\"\n  The User is notified of all conversations.\n  \"\"\"\n  SUBSCRIBED\n\n  \"\"\"\n  The User is only notified when participating or @mentioned.\n  \"\"\"\n  UNSUBSCRIBED\n}\n\n\"\"\"\nA suggestion to review a pull request based on a user's commit history and review comments.\n\"\"\"\ntype SuggestedReviewer {\n  \"\"\"\n  Is this suggestion based on past commits?\n  \"\"\"\n  isAuthor: Boolean!\n\n  \"\"\"\n  Is this suggestion based on past review comments?\n  \"\"\"\n  isCommenter: Boolean!\n\n  \"\"\"\n  Identifies the user suggested to review the pull request.\n  \"\"\"\n  reviewer: User!\n}\n\n\"\"\"\nRepresents a Git tag.\n\"\"\"\ntype Tag implements GitObject & Node {\n  \"\"\"\n  An abbreviated version of the Git object ID\n  \"\"\"\n  abbreviatedOid: String!\n\n  \"\"\"\n  The HTTP path for this Git object\n  \"\"\"\n  commitResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this Git object\n  \"\"\"\n  commitUrl: URI!\n\n  \"\"\"\n  The Node ID of the Tag object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The Git tag message.\n  \"\"\"\n  message: String\n\n  \"\"\"\n  The Git tag name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The Git object ID\n  \"\"\"\n  oid: GitObjectID!\n\n  \"\"\"\n  The Repository the Git object belongs to\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  Details about the tag author.\n  \"\"\"\n  tagger: GitActor\n\n  \"\"\"\n  The Git object the tag points to.\n  \"\"\"\n  target: GitObject!\n}\n\n\"\"\"\nParameters to be used for the tag_name_pattern rule\n\"\"\"\ntype TagNamePatternParameters {\n  \"\"\"\n  How this rule will appear to users.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  If true, the rule will fail if the pattern matches.\n  \"\"\"\n  negate: Boolean!\n\n  \"\"\"\n  The operator to use for matching.\n  \"\"\"\n  operator: String!\n\n  \"\"\"\n  The pattern to match with.\n  \"\"\"\n  pattern: String!\n}\n\n\"\"\"\nParameters to be used for the tag_name_pattern rule\n\"\"\"\ninput TagNamePatternParametersInput {\n  \"\"\"\n  How this rule will appear to users.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  If true, the rule will fail if the pattern matches.\n  \"\"\"\n  negate: Boolean\n\n  \"\"\"\n  The operator to use for matching.\n  \"\"\"\n  operator: String!\n\n  \"\"\"\n  The pattern to match with.\n  \"\"\"\n  pattern: String!\n}\n\n\"\"\"\nA team of users in an organization.\n\"\"\"\ntype Team implements MemberStatusable & Node & Subscribable {\n  \"\"\"\n  A list of teams that are ancestors of this team.\n  \"\"\"\n  ancestors(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): TeamConnection!\n\n  \"\"\"\n  A URL pointing to the team's avatar.\n  \"\"\"\n  avatarUrl(\n    \"\"\"\n    The size in pixels of the resulting square image.\n    \"\"\"\n    size: Int = 400\n  ): URI\n\n  \"\"\"\n  List of child teams belonging to this team\n  \"\"\"\n  childTeams(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Whether to list immediate child teams or all descendant child teams.\n    \"\"\"\n    immediateOnly: Boolean = true\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Order for connection\n    \"\"\"\n    orderBy: TeamOrder\n\n    \"\"\"\n    User logins to filter by\n    \"\"\"\n    userLogins: [String!]\n  ): TeamConnection!\n\n  \"\"\"\n  The slug corresponding to the organization and team.\n  \"\"\"\n  combinedSlug: String!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The description of the team.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  Find a team discussion by its number.\n  \"\"\"\n  discussion(\n    \"\"\"\n    The sequence number of the discussion to find.\n    \"\"\"\n    number: Int!\n  ): TeamDiscussion\n\n  \"\"\"\n  A list of team discussions.\n  \"\"\"\n  discussions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    If provided, filters discussions according to whether or not they are pinned.\n    \"\"\"\n    isPinned: Boolean\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Order for connection\n    \"\"\"\n    orderBy: TeamDiscussionOrder\n  ): TeamDiscussionConnection!\n\n  \"\"\"\n  The HTTP path for team discussions\n  \"\"\"\n  discussionsResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for team discussions\n  \"\"\"\n  discussionsUrl: URI!\n\n  \"\"\"\n  The HTTP path for editing this team\n  \"\"\"\n  editTeamResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for editing this team\n  \"\"\"\n  editTeamUrl: URI!\n\n  \"\"\"\n  The Node ID of the Team object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  A list of pending invitations for users to this team\n  \"\"\"\n  invitations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): OrganizationInvitationConnection\n\n  \"\"\"\n  Get the status messages members of this entity have set that are either public or visible only to the organization.\n  \"\"\"\n  memberStatuses(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for user statuses returned from the connection.\n    \"\"\"\n    orderBy: UserStatusOrder = {field: UPDATED_AT, direction: DESC}\n  ): UserStatusConnection!\n\n  \"\"\"\n  A list of users who are members of this team.\n  \"\"\"\n  members(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter by membership type\n    \"\"\"\n    membership: TeamMembershipType = ALL\n\n    \"\"\"\n    Order for the connection.\n    \"\"\"\n    orderBy: TeamMemberOrder\n\n    \"\"\"\n    The search string to look for.\n    \"\"\"\n    query: String\n\n    \"\"\"\n    Filter by team member role\n    \"\"\"\n    role: TeamMemberRole\n  ): TeamMemberConnection!\n\n  \"\"\"\n  The HTTP path for the team' members\n  \"\"\"\n  membersResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for the team' members\n  \"\"\"\n  membersUrl: URI!\n\n  \"\"\"\n  The name of the team.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The HTTP path creating a new team\n  \"\"\"\n  newTeamResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL creating a new team\n  \"\"\"\n  newTeamUrl: URI!\n\n  \"\"\"\n  The notification setting that the team has set.\n  \"\"\"\n  notificationSetting: TeamNotificationSetting!\n\n  \"\"\"\n  The organization that owns this team.\n  \"\"\"\n  organization: Organization!\n\n  \"\"\"\n  The parent team of the team.\n  \"\"\"\n  parentTeam: Team\n\n  \"\"\"\n  The level of privacy the team has.\n  \"\"\"\n  privacy: TeamPrivacy!\n\n  \"\"\"\n  Finds and returns the project according to the provided project number.\n  \"\"\"\n  projectV2(\n    \"\"\"\n    The Project number.\n    \"\"\"\n    number: Int!\n  ): ProjectV2\n\n  \"\"\"\n  List of projects this team has collaborator access to.\n  \"\"\"\n  projectsV2(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Filtering options for projects returned from this connection\n    \"\"\"\n    filterBy: ProjectV2Filters = {}\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    How to order the returned projects.\n    \"\"\"\n    orderBy: ProjectV2Order = {field: NUMBER, direction: DESC}\n\n    \"\"\"\n    The query to search projects by.\n    \"\"\"\n    query: String = \"\"\n  ): ProjectV2Connection!\n\n  \"\"\"\n  A list of repositories this team has access to.\n  \"\"\"\n  repositories(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Order for the connection.\n    \"\"\"\n    orderBy: TeamRepositoryOrder\n\n    \"\"\"\n    The search string to look for. Repositories will be returned where the name contains your search string.\n    \"\"\"\n    query: String\n  ): TeamRepositoryConnection!\n\n  \"\"\"\n  The HTTP path for this team's repositories\n  \"\"\"\n  repositoriesResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this team's repositories\n  \"\"\"\n  repositoriesUrl: URI!\n\n  \"\"\"\n  The HTTP path for this team\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  What algorithm is used for review assignment for this team\n  \"\"\"\n  reviewRequestDelegationAlgorithm: TeamReviewAssignmentAlgorithm @preview(toggledBy: \"stone-crop-preview\")\n\n  \"\"\"\n  True if review assignment is enabled for this team\n  \"\"\"\n  reviewRequestDelegationEnabled: Boolean! @preview(toggledBy: \"stone-crop-preview\")\n\n  \"\"\"\n  How many team members are required for review assignment for this team\n  \"\"\"\n  reviewRequestDelegationMemberCount: Int @preview(toggledBy: \"stone-crop-preview\")\n\n  \"\"\"\n  When assigning team members via delegation, whether the entire team should be notified as well.\n  \"\"\"\n  reviewRequestDelegationNotifyTeam: Boolean! @preview(toggledBy: \"stone-crop-preview\")\n\n  \"\"\"\n  The slug corresponding to the team.\n  \"\"\"\n  slug: String!\n\n  \"\"\"\n  The HTTP path for this team's teams\n  \"\"\"\n  teamsResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this team's teams\n  \"\"\"\n  teamsUrl: URI!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this team\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Team is adminable by the viewer.\n  \"\"\"\n  viewerCanAdminister: Boolean!\n\n  \"\"\"\n  Check if the viewer is able to change their subscription status for the repository.\n  \"\"\"\n  viewerCanSubscribe: Boolean!\n\n  \"\"\"\n  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.\n  \"\"\"\n  viewerSubscription: SubscriptionState\n}\n\n\"\"\"\nAudit log entry for a team.add_member event.\n\"\"\"\ntype TeamAddMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the TeamAddMemberAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether the team was mapped to an LDAP Group.\n  \"\"\"\n  isLdapMapped: Boolean\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The team associated with the action\n  \"\"\"\n  team: Team\n\n  \"\"\"\n  The name of the team\n  \"\"\"\n  teamName: String\n\n  \"\"\"\n  The HTTP path for this team\n  \"\"\"\n  teamResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for this team\n  \"\"\"\n  teamUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a team.add_repository event.\n\"\"\"\ntype TeamAddRepositoryAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TeamAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the TeamAddRepositoryAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether the team was mapped to an LDAP Group.\n  \"\"\"\n  isLdapMapped: Boolean\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The team associated with the action\n  \"\"\"\n  team: Team\n\n  \"\"\"\n  The name of the team\n  \"\"\"\n  teamName: String\n\n  \"\"\"\n  The HTTP path for this team\n  \"\"\"\n  teamResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for this team\n  \"\"\"\n  teamUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nMetadata for an audit entry with action team.*\n\"\"\"\ninterface TeamAuditEntryData {\n  \"\"\"\n  The team associated with the action\n  \"\"\"\n  team: Team\n\n  \"\"\"\n  The name of the team\n  \"\"\"\n  teamName: String\n\n  \"\"\"\n  The HTTP path for this team\n  \"\"\"\n  teamResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for this team\n  \"\"\"\n  teamUrl: URI\n}\n\n\"\"\"\nAudit log entry for a team.change_parent_team event.\n\"\"\"\ntype TeamChangeParentTeamAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the TeamChangeParentTeamAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether the team was mapped to an LDAP Group.\n  \"\"\"\n  isLdapMapped: Boolean\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The new parent team.\n  \"\"\"\n  parentTeam: Team\n\n  \"\"\"\n  The name of the new parent team\n  \"\"\"\n  parentTeamName: String\n\n  \"\"\"\n  The name of the former parent team\n  \"\"\"\n  parentTeamNameWas: String\n\n  \"\"\"\n  The HTTP path for the parent team\n  \"\"\"\n  parentTeamResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the parent team\n  \"\"\"\n  parentTeamUrl: URI\n\n  \"\"\"\n  The former parent team.\n  \"\"\"\n  parentTeamWas: Team\n\n  \"\"\"\n  The HTTP path for the previous parent team\n  \"\"\"\n  parentTeamWasResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the previous parent team\n  \"\"\"\n  parentTeamWasUrl: URI\n\n  \"\"\"\n  The team associated with the action\n  \"\"\"\n  team: Team\n\n  \"\"\"\n  The name of the team\n  \"\"\"\n  teamName: String\n\n  \"\"\"\n  The HTTP path for this team\n  \"\"\"\n  teamResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for this team\n  \"\"\"\n  teamUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nThe connection type for Team.\n\"\"\"\ntype TeamConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [TeamEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Team]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nA team discussion.\n\"\"\"\ntype TeamDiscussion implements Comment & Deletable & Node & Reactable & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment {\n  \"\"\"\n  The actor who authored the comment.\n  \"\"\"\n  author: Actor\n\n  \"\"\"\n  Author's association with the discussion's team.\n  \"\"\"\n  authorAssociation: CommentAuthorAssociation!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  The body as Markdown.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The body rendered to text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  Identifies the discussion body hash.\n  \"\"\"\n  bodyVersion: String!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  A list of comments on this discussion.\n  \"\"\"\n  comments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    When provided, filters the connection such that results begin with the comment with this number.\n    \"\"\"\n    fromComment: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Order for connection\n    \"\"\"\n    orderBy: TeamDiscussionCommentOrder\n  ): TeamDiscussionCommentConnection!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  The HTTP path for discussion comments\n  \"\"\"\n  commentsResourcePath: URI!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  The HTTP URL for discussion comments\n  \"\"\"\n  commentsUrl: URI!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Check if this comment was created via an email reply.\n  \"\"\"\n  createdViaEmail: Boolean!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The actor who edited the comment.\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  The Node ID of the TeamDiscussion object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if this comment was edited and includes an edit with the creation data\n  \"\"\"\n  includesCreatedEdit: Boolean!\n\n  \"\"\"\n  Whether or not the discussion is pinned.\n  \"\"\"\n  isPinned: Boolean!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  Whether or not the discussion is only visible to team members and organization owners.\n  \"\"\"\n  isPrivate: Boolean!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  The moment the editor made the last edit\n  \"\"\"\n  lastEditedAt: DateTime\n\n  \"\"\"\n  Identifies the discussion within its team.\n  \"\"\"\n  number: Int!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  Identifies when the comment was published at.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  A list of reactions grouped by content left on the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  A list of Reactions left on the Issue.\n  \"\"\"\n  reactions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Allows filtering Reactions by emoji.\n    \"\"\"\n    content: ReactionContent\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows specifying the order in which reactions are returned.\n    \"\"\"\n    orderBy: ReactionOrder\n  ): ReactionConnection!\n\n  \"\"\"\n  The HTTP path for this discussion\n  \"\"\"\n  resourcePath: URI!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  The team that defines the context of this discussion.\n  \"\"\"\n  team: Team!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  The title of the discussion\n  \"\"\"\n  title: String!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this discussion\n  \"\"\"\n  url: URI!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  A list of edits to this content.\n  \"\"\"\n  userContentEdits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserContentEditConnection\n\n  \"\"\"\n  Check if the current viewer can delete this object.\n  \"\"\"\n  viewerCanDelete: Boolean!\n\n  \"\"\"\n  Whether or not the current viewer can pin this discussion.\n  \"\"\"\n  viewerCanPin: Boolean!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  Can user react to this subject\n  \"\"\"\n  viewerCanReact: Boolean!\n\n  \"\"\"\n  Check if the viewer is able to change their subscription status for the repository.\n  \"\"\"\n  viewerCanSubscribe: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n\n  \"\"\"\n  Reasons why the current viewer can not update this comment.\n  \"\"\"\n  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!\n\n  \"\"\"\n  Did the viewer author this comment.\n  \"\"\"\n  viewerDidAuthor: Boolean!\n\n  \"\"\"\n  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.\n  \"\"\"\n  viewerSubscription: SubscriptionState\n}\n\n\"\"\"\nA comment on a team discussion.\n\"\"\"\ntype TeamDiscussionComment implements Comment & Deletable & Node & Reactable & UniformResourceLocatable & Updatable & UpdatableComment {\n  \"\"\"\n  The actor who authored the comment.\n  \"\"\"\n  author: Actor\n\n  \"\"\"\n  Author's association with the comment's team.\n  \"\"\"\n  authorAssociation: CommentAuthorAssociation!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  The body as Markdown.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The body rendered to HTML.\n  \"\"\"\n  bodyHTML: HTML!\n\n  \"\"\"\n  The body rendered to text.\n  \"\"\"\n  bodyText: String!\n\n  \"\"\"\n  The current version of the body content.\n  \"\"\"\n  bodyVersion: String!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Check if this comment was created via an email reply.\n  \"\"\"\n  createdViaEmail: Boolean!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The discussion this comment is about.\n  \"\"\"\n  discussion: TeamDiscussion!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  The actor who edited the comment.\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  The Node ID of the TeamDiscussionComment object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Check if this comment was edited and includes an edit with the creation data\n  \"\"\"\n  includesCreatedEdit: Boolean!\n\n  \"\"\"\n  The moment the editor made the last edit\n  \"\"\"\n  lastEditedAt: DateTime\n\n  \"\"\"\n  Identifies the comment number.\n  \"\"\"\n  number: Int!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  Identifies when the comment was published at.\n  \"\"\"\n  publishedAt: DateTime\n\n  \"\"\"\n  A list of reactions grouped by content left on the subject.\n  \"\"\"\n  reactionGroups: [ReactionGroup!]\n\n  \"\"\"\n  A list of Reactions left on the Issue.\n  \"\"\"\n  reactions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Allows filtering Reactions by emoji.\n    \"\"\"\n    content: ReactionContent\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Allows specifying the order in which reactions are returned.\n    \"\"\"\n    orderBy: ReactionOrder\n  ): ReactionConnection!\n\n  \"\"\"\n  The HTTP path for this comment\n  \"\"\"\n  resourcePath: URI!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this comment\n  \"\"\"\n  url: URI!\n    @deprecated(\n      reason: \"The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.\"\n    )\n\n  \"\"\"\n  A list of edits to this content.\n  \"\"\"\n  userContentEdits(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserContentEditConnection\n\n  \"\"\"\n  Check if the current viewer can delete this object.\n  \"\"\"\n  viewerCanDelete: Boolean!\n\n  \"\"\"\n  Can user react to this subject\n  \"\"\"\n  viewerCanReact: Boolean!\n\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n\n  \"\"\"\n  Reasons why the current viewer can not update this comment.\n  \"\"\"\n  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!\n\n  \"\"\"\n  Did the viewer author this comment.\n  \"\"\"\n  viewerDidAuthor: Boolean!\n}\n\n\"\"\"\nThe connection type for TeamDiscussionComment.\n\"\"\"\ntype TeamDiscussionCommentConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [TeamDiscussionCommentEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [TeamDiscussionComment]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype TeamDiscussionCommentEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: TeamDiscussionComment\n}\n\n\"\"\"\nWays in which team discussion comment connections can be ordered.\n\"\"\"\ninput TeamDiscussionCommentOrder {\n  \"\"\"\n  The direction in which to order nodes.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field by which to order nodes.\n  \"\"\"\n  field: TeamDiscussionCommentOrderField!\n}\n\n\"\"\"\nProperties by which team discussion comment connections can be ordered.\n\"\"\"\nenum TeamDiscussionCommentOrderField {\n  \"\"\"\n  Allows sequential ordering of team discussion comments (which is equivalent to chronological ordering).\n  \"\"\"\n  NUMBER\n}\n\n\"\"\"\nThe connection type for TeamDiscussion.\n\"\"\"\ntype TeamDiscussionConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [TeamDiscussionEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [TeamDiscussion]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype TeamDiscussionEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: TeamDiscussion\n}\n\n\"\"\"\nWays in which team discussion connections can be ordered.\n\"\"\"\ninput TeamDiscussionOrder {\n  \"\"\"\n  The direction in which to order nodes.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field by which to order nodes.\n  \"\"\"\n  field: TeamDiscussionOrderField!\n}\n\n\"\"\"\nProperties by which team discussion connections can be ordered.\n\"\"\"\nenum TeamDiscussionOrderField {\n  \"\"\"\n  Allows chronological ordering of team discussions.\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype TeamEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: Team\n}\n\n\"\"\"\nThe connection type for User.\n\"\"\"\ntype TeamMemberConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [TeamMemberEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [User]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nRepresents a user who is a member of a team.\n\"\"\"\ntype TeamMemberEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The HTTP path to the organization's member access page.\n  \"\"\"\n  memberAccessResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL to the organization's member access page.\n  \"\"\"\n  memberAccessUrl: URI!\n  node: User!\n\n  \"\"\"\n  The role the member has on the team.\n  \"\"\"\n  role: TeamMemberRole!\n}\n\n\"\"\"\nOrdering options for team member connections\n\"\"\"\ninput TeamMemberOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order team members by.\n  \"\"\"\n  field: TeamMemberOrderField!\n}\n\n\"\"\"\nProperties by which team member connections can be ordered.\n\"\"\"\nenum TeamMemberOrderField {\n  \"\"\"\n  Order team members by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order team members by login\n  \"\"\"\n  LOGIN\n}\n\n\"\"\"\nThe possible team member roles; either 'maintainer' or 'member'.\n\"\"\"\nenum TeamMemberRole {\n  \"\"\"\n  A team maintainer has permission to add and remove team members.\n  \"\"\"\n  MAINTAINER\n\n  \"\"\"\n  A team member has no administrative permissions on the team.\n  \"\"\"\n  MEMBER\n}\n\n\"\"\"\nDefines which types of team members are included in the returned list. Can be one of IMMEDIATE, CHILD_TEAM or ALL.\n\"\"\"\nenum TeamMembershipType {\n  \"\"\"\n  Includes immediate and child team members for the team.\n  \"\"\"\n  ALL\n\n  \"\"\"\n  Includes only child team members for the team.\n  \"\"\"\n  CHILD_TEAM\n\n  \"\"\"\n  Includes only immediate members of the team.\n  \"\"\"\n  IMMEDIATE\n}\n\n\"\"\"\nThe possible team notification values.\n\"\"\"\nenum TeamNotificationSetting {\n  \"\"\"\n  No one will receive notifications.\n  \"\"\"\n  NOTIFICATIONS_DISABLED\n\n  \"\"\"\n  Everyone will receive notifications when the team is @mentioned.\n  \"\"\"\n  NOTIFICATIONS_ENABLED\n}\n\n\"\"\"\nWays in which team connections can be ordered.\n\"\"\"\ninput TeamOrder {\n  \"\"\"\n  The direction in which to order nodes.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field in which to order nodes by.\n  \"\"\"\n  field: TeamOrderField!\n}\n\n\"\"\"\nProperties by which team connections can be ordered.\n\"\"\"\nenum TeamOrderField {\n  \"\"\"\n  Allows ordering a list of teams by name.\n  \"\"\"\n  NAME\n}\n\n\"\"\"\nThe possible team privacy values.\n\"\"\"\nenum TeamPrivacy {\n  \"\"\"\n  A secret team can only be seen by its members.\n  \"\"\"\n  SECRET\n\n  \"\"\"\n  A visible team can be seen and @mentioned by every member of the organization.\n  \"\"\"\n  VISIBLE\n}\n\n\"\"\"\nAudit log entry for a team.remove_member event.\n\"\"\"\ntype TeamRemoveMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the TeamRemoveMemberAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether the team was mapped to an LDAP Group.\n  \"\"\"\n  isLdapMapped: Boolean\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The team associated with the action\n  \"\"\"\n  team: Team\n\n  \"\"\"\n  The name of the team\n  \"\"\"\n  teamName: String\n\n  \"\"\"\n  The HTTP path for this team\n  \"\"\"\n  teamResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for this team\n  \"\"\"\n  teamUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nAudit log entry for a team.remove_repository event.\n\"\"\"\ntype TeamRemoveRepositoryAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TeamAuditEntryData {\n  \"\"\"\n  The action name\n  \"\"\"\n  action: String!\n\n  \"\"\"\n  The user who initiated the action\n  \"\"\"\n  actor: AuditEntryActor\n\n  \"\"\"\n  The IP address of the actor\n  \"\"\"\n  actorIp: String\n\n  \"\"\"\n  A readable representation of the actor's location\n  \"\"\"\n  actorLocation: ActorLocation\n\n  \"\"\"\n  The username of the user who initiated the action\n  \"\"\"\n  actorLogin: String\n\n  \"\"\"\n  The HTTP path for the actor.\n  \"\"\"\n  actorResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the actor.\n  \"\"\"\n  actorUrl: URI\n\n  \"\"\"\n  The time the action was initiated\n  \"\"\"\n  createdAt: PreciseDateTime!\n\n  \"\"\"\n  The Node ID of the TeamRemoveRepositoryAuditEntry object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether the team was mapped to an LDAP Group.\n  \"\"\"\n  isLdapMapped: Boolean\n\n  \"\"\"\n  The corresponding operation type for the action\n  \"\"\"\n  operationType: OperationType\n\n  \"\"\"\n  The Organization associated with the Audit Entry.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  The name of the Organization.\n  \"\"\"\n  organizationName: String\n\n  \"\"\"\n  The HTTP path for the organization\n  \"\"\"\n  organizationResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the organization\n  \"\"\"\n  organizationUrl: URI\n\n  \"\"\"\n  The repository associated with the action\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The name of the repository\n  \"\"\"\n  repositoryName: String\n\n  \"\"\"\n  The HTTP path for the repository\n  \"\"\"\n  repositoryResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the repository\n  \"\"\"\n  repositoryUrl: URI\n\n  \"\"\"\n  The team associated with the action\n  \"\"\"\n  team: Team\n\n  \"\"\"\n  The name of the team\n  \"\"\"\n  teamName: String\n\n  \"\"\"\n  The HTTP path for this team\n  \"\"\"\n  teamResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for this team\n  \"\"\"\n  teamUrl: URI\n\n  \"\"\"\n  The user affected by the action\n  \"\"\"\n  user: User\n\n  \"\"\"\n  For actions involving two users, the actor is the initiator and the user is the affected user.\n  \"\"\"\n  userLogin: String\n\n  \"\"\"\n  The HTTP path for the user.\n  \"\"\"\n  userResourcePath: URI\n\n  \"\"\"\n  The HTTP URL for the user.\n  \"\"\"\n  userUrl: URI\n}\n\n\"\"\"\nThe connection type for Repository.\n\"\"\"\ntype TeamRepositoryConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [TeamRepositoryEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [Repository]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nRepresents a team repository.\n\"\"\"\ntype TeamRepositoryEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n  node: Repository!\n\n  \"\"\"\n  The permission level the team has on the repository\n  \"\"\"\n  permission: RepositoryPermission!\n}\n\n\"\"\"\nOrdering options for team repository connections\n\"\"\"\ninput TeamRepositoryOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order repositories by.\n  \"\"\"\n  field: TeamRepositoryOrderField!\n}\n\n\"\"\"\nProperties by which team repository connections can be ordered.\n\"\"\"\nenum TeamRepositoryOrderField {\n  \"\"\"\n  Order repositories by creation time\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order repositories by name\n  \"\"\"\n  NAME\n\n  \"\"\"\n  Order repositories by permission\n  \"\"\"\n  PERMISSION\n\n  \"\"\"\n  Order repositories by push time\n  \"\"\"\n  PUSHED_AT\n\n  \"\"\"\n  Order repositories by number of stargazers\n  \"\"\"\n  STARGAZERS\n\n  \"\"\"\n  Order repositories by update time\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nThe possible team review assignment algorithms\n\"\"\"\nenum TeamReviewAssignmentAlgorithm @preview(toggledBy: \"stone-crop-preview\") {\n  \"\"\"\n  Balance review load across the entire team\n  \"\"\"\n  LOAD_BALANCE\n\n  \"\"\"\n  Alternate reviews between each team member\n  \"\"\"\n  ROUND_ROBIN\n}\n\n\"\"\"\nThe role of a user on a team.\n\"\"\"\nenum TeamRole {\n  \"\"\"\n  User has admin rights on the team.\n  \"\"\"\n  ADMIN\n\n  \"\"\"\n  User is a member of the team.\n  \"\"\"\n  MEMBER\n}\n\n\"\"\"\nA text match within a search result.\n\"\"\"\ntype TextMatch {\n  \"\"\"\n  The specific text fragment within the property matched on.\n  \"\"\"\n  fragment: String!\n\n  \"\"\"\n  Highlights within the matched fragment.\n  \"\"\"\n  highlights: [TextMatchHighlight!]!\n\n  \"\"\"\n  The property matched on.\n  \"\"\"\n  property: String!\n}\n\n\"\"\"\nRepresents a single highlight in a search result match.\n\"\"\"\ntype TextMatchHighlight {\n  \"\"\"\n  The indice in the fragment where the matched text begins.\n  \"\"\"\n  beginIndice: Int!\n\n  \"\"\"\n  The indice in the fragment where the matched text ends.\n  \"\"\"\n  endIndice: Int!\n\n  \"\"\"\n  The text matched.\n  \"\"\"\n  text: String!\n}\n\n\"\"\"\nThe possible states of a thread subscription form action\n\"\"\"\nenum ThreadSubscriptionFormAction {\n  \"\"\"\n  The User cannot subscribe or unsubscribe to the thread\n  \"\"\"\n  NONE\n\n  \"\"\"\n  The User can subscribe to the thread\n  \"\"\"\n  SUBSCRIBE\n\n  \"\"\"\n  The User can unsubscribe to the thread\n  \"\"\"\n  UNSUBSCRIBE\n}\n\n\"\"\"\nThe possible states of a subscription.\n\"\"\"\nenum ThreadSubscriptionState {\n  \"\"\"\n  The subscription status is currently disabled.\n  \"\"\"\n  DISABLED\n\n  \"\"\"\n  The User is never notified because they are ignoring the list\n  \"\"\"\n  IGNORING_LIST\n\n  \"\"\"\n  The User is never notified because they are ignoring the thread\n  \"\"\"\n  IGNORING_THREAD\n\n  \"\"\"\n  The User is not receiving notifications from this thread\n  \"\"\"\n  NONE\n\n  \"\"\"\n  The User is notified because they are watching the list\n  \"\"\"\n  SUBSCRIBED_TO_LIST\n\n  \"\"\"\n  The User is notified because they are subscribed to the thread\n  \"\"\"\n  SUBSCRIBED_TO_THREAD\n\n  \"\"\"\n  The User is notified because they chose custom settings for this thread.\n  \"\"\"\n  SUBSCRIBED_TO_THREAD_EVENTS\n\n  \"\"\"\n  The User is notified because they chose custom settings for this thread.\n  \"\"\"\n  SUBSCRIBED_TO_THREAD_TYPE\n\n  \"\"\"\n  The subscription status is currently unavailable.\n  \"\"\"\n  UNAVAILABLE\n}\n\n\"\"\"\nA topic aggregates entities that are related to a subject.\n\"\"\"\ntype Topic implements Node & Starrable {\n  \"\"\"\n  The Node ID of the Topic object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The topic's name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  A list of related topics, including aliases of this topic, sorted with the most relevant\n  first. Returns up to 10 Topics.\n  \"\"\"\n  relatedTopics(\n    \"\"\"\n    How many topics to return.\n    \"\"\"\n    first: Int = 3\n  ): [Topic!]!\n\n  \"\"\"\n  A list of repositories.\n  \"\"\"\n  repositories(\n    \"\"\"\n    Array of viewer's affiliation options for repositories returned from the\n    connection. For example, OWNER will include only repositories that the\n    current viewer owns.\n    \"\"\"\n    affiliations: [RepositoryAffiliation]\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have issues enabled\n    \"\"\"\n    hasIssuesEnabled: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have been locked\n    \"\"\"\n    isLocked: Boolean\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for repositories returned from the connection\n    \"\"\"\n    orderBy: RepositoryOrder\n\n    \"\"\"\n    Array of owner's affiliation options for repositories returned from the\n    connection. For example, OWNER will include only repositories that the\n    organization or user being viewed owns.\n    \"\"\"\n    ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR]\n\n    \"\"\"\n    If non-null, filters repositories according to privacy\n    \"\"\"\n    privacy: RepositoryPrivacy\n\n    \"\"\"\n    If true, only repositories whose owner can be sponsored via GitHub Sponsors will be returned.\n    \"\"\"\n    sponsorableOnly: Boolean = false\n  ): RepositoryConnection!\n\n  \"\"\"\n  Returns a count of how many stargazers there are on this object\n  \"\"\"\n  stargazerCount: Int!\n\n  \"\"\"\n  A list of users who have starred this starrable.\n  \"\"\"\n  stargazers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Order for connection\n    \"\"\"\n    orderBy: StarOrder\n  ): StargazerConnection!\n\n  \"\"\"\n  Returns a boolean indicating whether the viewing user has starred this starrable.\n  \"\"\"\n  viewerHasStarred: Boolean!\n}\n\n\"\"\"\nMetadata for an audit entry with a topic.\n\"\"\"\ninterface TopicAuditEntryData {\n  \"\"\"\n  The name of the topic added to the repository\n  \"\"\"\n  topic: Topic\n\n  \"\"\"\n  The name of the topic added to the repository\n  \"\"\"\n  topicName: String\n}\n\n\"\"\"\nReason that the suggested topic is declined.\n\"\"\"\nenum TopicSuggestionDeclineReason {\n  \"\"\"\n  The suggested topic is not relevant to the repository.\n  \"\"\"\n  NOT_RELEVANT\n\n  \"\"\"\n  The viewer does not like the suggested topic.\n  \"\"\"\n  PERSONAL_PREFERENCE\n\n  \"\"\"\n  The suggested topic is too general for the repository.\n  \"\"\"\n  TOO_GENERAL\n\n  \"\"\"\n  The suggested topic is too specific for the repository (e.g. #ruby-on-rails-version-4-2-1).\n  \"\"\"\n  TOO_SPECIFIC\n}\n\n\"\"\"\nThe possible states of a tracked issue.\n\"\"\"\nenum TrackedIssueStates {\n  \"\"\"\n  The tracked issue is closed\n  \"\"\"\n  CLOSED\n\n  \"\"\"\n  The tracked issue is open\n  \"\"\"\n  OPEN\n}\n\n\"\"\"\nAutogenerated input type of TransferEnterpriseOrganization\n\"\"\"\ninput TransferEnterpriseOrganizationInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise where the organization should be transferred.\n  \"\"\"\n  destinationEnterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The ID of the organization to transfer.\n  \"\"\"\n  organizationId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n}\n\n\"\"\"\nAutogenerated return type of TransferEnterpriseOrganization\n\"\"\"\ntype TransferEnterpriseOrganizationPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The organization for which a transfer was initiated.\n  \"\"\"\n  organization: Organization\n}\n\n\"\"\"\nAutogenerated input type of TransferIssue\n\"\"\"\ninput TransferIssueInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Whether to create labels if they don't exist in the target repository (matched by name)\n  \"\"\"\n  createLabelsIfMissing: Boolean = false\n\n  \"\"\"\n  The Node ID of the issue to be transferred\n  \"\"\"\n  issueId: ID! @possibleTypes(concreteTypes: [\"Issue\"])\n\n  \"\"\"\n  The Node ID of the repository the issue should be transferred to\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of TransferIssue\n\"\"\"\ntype TransferIssuePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The issue that was transferred\n  \"\"\"\n  issue: Issue\n}\n\n\"\"\"\nRepresents a 'transferred' event on a given issue or pull request.\n\"\"\"\ntype TransferredEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The repository this came from\n  \"\"\"\n  fromRepository: Repository\n\n  \"\"\"\n  The Node ID of the TransferredEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the issue associated with the event.\n  \"\"\"\n  issue: Issue!\n}\n\n\"\"\"\nRepresents a Git tree.\n\"\"\"\ntype Tree implements GitObject & Node {\n  \"\"\"\n  An abbreviated version of the Git object ID\n  \"\"\"\n  abbreviatedOid: String!\n\n  \"\"\"\n  The HTTP path for this Git object\n  \"\"\"\n  commitResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL for this Git object\n  \"\"\"\n  commitUrl: URI!\n\n  \"\"\"\n  A list of tree entries.\n  \"\"\"\n  entries: [TreeEntry!]\n\n  \"\"\"\n  The Node ID of the Tree object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The Git object ID\n  \"\"\"\n  oid: GitObjectID!\n\n  \"\"\"\n  The Repository the Git object belongs to\n  \"\"\"\n  repository: Repository!\n}\n\n\"\"\"\nRepresents a Git tree entry.\n\"\"\"\ntype TreeEntry {\n  \"\"\"\n  The extension of the file\n  \"\"\"\n  extension: String\n\n  \"\"\"\n  Whether or not this tree entry is generated\n  \"\"\"\n  isGenerated: Boolean!\n\n  \"\"\"\n  The programming language this file is written in.\n  \"\"\"\n  language: Language\n\n  \"\"\"\n  Number of lines in the file.\n  \"\"\"\n  lineCount: Int\n\n  \"\"\"\n  Entry file mode.\n  \"\"\"\n  mode: Int!\n\n  \"\"\"\n  Entry file name.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  Entry file name. (Base64-encoded)\n  \"\"\"\n  nameRaw: Base64String!\n\n  \"\"\"\n  Entry file object.\n  \"\"\"\n  object: GitObject\n\n  \"\"\"\n  Entry file Git object ID.\n  \"\"\"\n  oid: GitObjectID!\n\n  \"\"\"\n  The full path of the file.\n  \"\"\"\n  path: String\n\n  \"\"\"\n  The full path of the file. (Base64-encoded)\n  \"\"\"\n  pathRaw: Base64String\n\n  \"\"\"\n  The Repository the tree entry belongs to\n  \"\"\"\n  repository: Repository!\n\n  \"\"\"\n  Entry byte size\n  \"\"\"\n  size: Int!\n\n  \"\"\"\n  If the TreeEntry is for a directory occupied by a submodule project, this returns the corresponding submodule\n  \"\"\"\n  submodule: Submodule\n\n  \"\"\"\n  Entry file type.\n  \"\"\"\n  type: String!\n}\n\n\"\"\"\nAn RFC 3986, RFC 3987, and RFC 6570 (level 4) compliant URI string.\n\"\"\"\nscalar URI\n\n\"\"\"\nAutogenerated input type of UnarchiveProjectV2Item\n\"\"\"\ninput UnarchiveProjectV2ItemInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the ProjectV2Item to unarchive.\n  \"\"\"\n  itemId: ID! @possibleTypes(concreteTypes: [\"ProjectV2Item\"])\n\n  \"\"\"\n  The ID of the Project to archive the item from.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n}\n\n\"\"\"\nAutogenerated return type of UnarchiveProjectV2Item\n\"\"\"\ntype UnarchiveProjectV2ItemPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The item unarchived from the project.\n  \"\"\"\n  item: ProjectV2Item\n}\n\n\"\"\"\nAutogenerated input type of UnarchiveRepository\n\"\"\"\ninput UnarchiveRepositoryInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the repository to unarchive.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of UnarchiveRepository\n\"\"\"\ntype UnarchiveRepositoryPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The repository that was unarchived.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nRepresents an 'unassigned' event on any assignable object.\n\"\"\"\ntype UnassignedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the assignable associated with the event.\n  \"\"\"\n  assignable: Assignable!\n\n  \"\"\"\n  Identifies the user or mannequin that was unassigned.\n  \"\"\"\n  assignee: Assignee\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the UnassignedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the subject (user) who was unassigned.\n  \"\"\"\n  user: User\n    @deprecated(reason: \"Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC.\")\n}\n\n\"\"\"\nAutogenerated input type of UnfollowOrganization\n\"\"\"\ninput UnfollowOrganizationInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the organization to unfollow.\n  \"\"\"\n  organizationId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n}\n\n\"\"\"\nAutogenerated return type of UnfollowOrganization\n\"\"\"\ntype UnfollowOrganizationPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The organization that was unfollowed.\n  \"\"\"\n  organization: Organization\n}\n\n\"\"\"\nAutogenerated input type of UnfollowUser\n\"\"\"\ninput UnfollowUserInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the user to unfollow.\n  \"\"\"\n  userId: ID! @possibleTypes(concreteTypes: [\"User\"])\n}\n\n\"\"\"\nAutogenerated return type of UnfollowUser\n\"\"\"\ntype UnfollowUserPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The user that was unfollowed.\n  \"\"\"\n  user: User\n}\n\n\"\"\"\nRepresents a type that can be retrieved by a URL.\n\"\"\"\ninterface UniformResourceLocatable {\n  \"\"\"\n  The HTML path to this resource.\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The URL to this resource.\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nRepresents an unknown signature on a Commit or Tag.\n\"\"\"\ntype UnknownSignature implements GitSignature {\n  \"\"\"\n  Email used to sign this object.\n  \"\"\"\n  email: String!\n\n  \"\"\"\n  True if the signature is valid and verified by GitHub.\n  \"\"\"\n  isValid: Boolean!\n\n  \"\"\"\n  Payload for GPG signing object. Raw ODB object without the signature header.\n  \"\"\"\n  payload: String!\n\n  \"\"\"\n  ASCII-armored signature header from object.\n  \"\"\"\n  signature: String!\n\n  \"\"\"\n  GitHub user corresponding to the email signing this commit.\n  \"\"\"\n  signer: User\n\n  \"\"\"\n  The state of this signature. `VALID` if signature is valid and verified by\n  GitHub, otherwise represents reason why signature is considered invalid.\n  \"\"\"\n  state: GitSignatureState!\n\n  \"\"\"\n  True if the signature was made with GitHub's signing key.\n  \"\"\"\n  wasSignedByGitHub: Boolean!\n}\n\n\"\"\"\nRepresents an 'unlabeled' event on a given issue or pull request.\n\"\"\"\ntype UnlabeledEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the UnlabeledEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the label associated with the 'unlabeled' event.\n  \"\"\"\n  label: Label!\n\n  \"\"\"\n  Identifies the `Labelable` associated with the event.\n  \"\"\"\n  labelable: Labelable!\n}\n\n\"\"\"\nAutogenerated input type of UnlinkProjectV2FromRepository\n\"\"\"\ninput UnlinkProjectV2FromRepositoryInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the project to unlink from the repository.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n\n  \"\"\"\n  The ID of the repository to unlink from the project.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of UnlinkProjectV2FromRepository\n\"\"\"\ntype UnlinkProjectV2FromRepositoryPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The repository the project is no longer linked to.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nAutogenerated input type of UnlinkProjectV2FromTeam\n\"\"\"\ninput UnlinkProjectV2FromTeamInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the project to unlink from the team.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n\n  \"\"\"\n  The ID of the team to unlink from the project.\n  \"\"\"\n  teamId: ID! @possibleTypes(concreteTypes: [\"Team\"])\n}\n\n\"\"\"\nAutogenerated return type of UnlinkProjectV2FromTeam\n\"\"\"\ntype UnlinkProjectV2FromTeamPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The team the project is unlinked from\n  \"\"\"\n  team: Team\n}\n\n\"\"\"\nAutogenerated input type of UnlinkRepositoryFromProject\n\"\"\"\ninput UnlinkRepositoryFromProjectInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the Project linked to the Repository.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"Project\"])\n\n  \"\"\"\n  The ID of the Repository linked to the Project.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of UnlinkRepositoryFromProject\n\"\"\"\ntype UnlinkRepositoryFromProjectPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The linked Project.\n  \"\"\"\n  project: Project\n\n  \"\"\"\n  The linked Repository.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nAutogenerated input type of UnlockLockable\n\"\"\"\ninput UnlockLockableInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the item to be unlocked.\n  \"\"\"\n  lockableId: ID! @possibleTypes(concreteTypes: [\"Discussion\", \"Issue\", \"PullRequest\"], abstractType: \"Lockable\")\n}\n\n\"\"\"\nAutogenerated return type of UnlockLockable\n\"\"\"\ntype UnlockLockablePayload {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The item that was unlocked.\n  \"\"\"\n  unlockedRecord: Lockable\n}\n\n\"\"\"\nRepresents an 'unlocked' event on a given issue or pull request.\n\"\"\"\ntype UnlockedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the UnlockedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Object that was unlocked.\n  \"\"\"\n  lockable: Lockable!\n}\n\n\"\"\"\nAutogenerated input type of UnmarkDiscussionCommentAsAnswer\n\"\"\"\ninput UnmarkDiscussionCommentAsAnswerInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the discussion comment to unmark as an answer.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"DiscussionComment\"])\n}\n\n\"\"\"\nAutogenerated return type of UnmarkDiscussionCommentAsAnswer\n\"\"\"\ntype UnmarkDiscussionCommentAsAnswerPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The discussion that includes the comment.\n  \"\"\"\n  discussion: Discussion\n}\n\n\"\"\"\nAutogenerated input type of UnmarkFileAsViewed\n\"\"\"\ninput UnmarkFileAsViewedInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The path of the file to mark as unviewed\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  The Node ID of the pull request.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n}\n\n\"\"\"\nAutogenerated return type of UnmarkFileAsViewed\n\"\"\"\ntype UnmarkFileAsViewedPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated pull request.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nAutogenerated input type of UnmarkIssueAsDuplicate\n\"\"\"\ninput UnmarkIssueAsDuplicateInput {\n  \"\"\"\n  ID of the issue or pull request currently considered canonical/authoritative/original.\n  \"\"\"\n  canonicalId: ID! @possibleTypes(concreteTypes: [\"Issue\", \"PullRequest\"], abstractType: \"IssueOrPullRequest\")\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  ID of the issue or pull request currently marked as a duplicate.\n  \"\"\"\n  duplicateId: ID! @possibleTypes(concreteTypes: [\"Issue\", \"PullRequest\"], abstractType: \"IssueOrPullRequest\")\n}\n\n\"\"\"\nAutogenerated return type of UnmarkIssueAsDuplicate\n\"\"\"\ntype UnmarkIssueAsDuplicatePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The issue or pull request that was marked as a duplicate.\n  \"\"\"\n  duplicate: IssueOrPullRequest\n}\n\n\"\"\"\nAutogenerated input type of UnmarkProjectV2AsTemplate\n\"\"\"\ninput UnmarkProjectV2AsTemplateInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the Project to unmark as a template.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n}\n\n\"\"\"\nAutogenerated return type of UnmarkProjectV2AsTemplate\n\"\"\"\ntype UnmarkProjectV2AsTemplatePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The project.\n  \"\"\"\n  projectV2: ProjectV2\n}\n\n\"\"\"\nRepresents an 'unmarked_as_duplicate' event on a given issue or pull request.\n\"\"\"\ntype UnmarkedAsDuplicateEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  The authoritative issue or pull request which has been duplicated by another.\n  \"\"\"\n  canonical: IssueOrPullRequest\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The issue or pull request which has been marked as a duplicate of another.\n  \"\"\"\n  duplicate: IssueOrPullRequest\n\n  \"\"\"\n  The Node ID of the UnmarkedAsDuplicateEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Canonical and duplicate belong to different repositories.\n  \"\"\"\n  isCrossRepository: Boolean!\n}\n\n\"\"\"\nAutogenerated input type of UnminimizeComment\n\"\"\"\ninput UnminimizeCommentInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the subject to modify.\n  \"\"\"\n  subjectId: ID!\n    @possibleTypes(\n      concreteTypes: [\n        \"CommitComment\"\n        \"DiscussionComment\"\n        \"GistComment\"\n        \"IssueComment\"\n        \"PullRequestReview\"\n        \"PullRequestReviewComment\"\n      ]\n      abstractType: \"Minimizable\"\n    )\n}\n\n\"\"\"\nAutogenerated return type of UnminimizeComment\n\"\"\"\ntype UnminimizeCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The comment that was unminimized.\n  \"\"\"\n  unminimizedComment: Minimizable\n}\n\n\"\"\"\nAutogenerated input type of UnpinIssue\n\"\"\"\ninput UnpinIssueInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the issue to be unpinned\n  \"\"\"\n  issueId: ID! @possibleTypes(concreteTypes: [\"Issue\"])\n}\n\n\"\"\"\nAutogenerated return type of UnpinIssue\n\"\"\"\ntype UnpinIssuePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The issue that was unpinned\n  \"\"\"\n  issue: Issue\n}\n\n\"\"\"\nRepresents an 'unpinned' event on a given issue or pull request.\n\"\"\"\ntype UnpinnedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the UnpinnedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the issue associated with the event.\n  \"\"\"\n  issue: Issue!\n}\n\n\"\"\"\nAutogenerated input type of UnresolveReviewThread\n\"\"\"\ninput UnresolveReviewThreadInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the thread to unresolve\n  \"\"\"\n  threadId: ID! @possibleTypes(concreteTypes: [\"PullRequestReviewThread\"])\n}\n\n\"\"\"\nAutogenerated return type of UnresolveReviewThread\n\"\"\"\ntype UnresolveReviewThreadPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The thread to resolve.\n  \"\"\"\n  thread: PullRequestReviewThread\n}\n\n\"\"\"\nAutogenerated input type of UnsubscribeFromNotifications\n\"\"\"\ninput UnsubscribeFromNotificationsInput\n  @requiredCapabilities(requiredCapabilities: [\"access_internal_graphql_notifications\"]) {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The NotificationThread IDs of the objects to unsubscribe from.\n  \"\"\"\n  ids: [ID!]!\n    @possibleTypes(\n      concreteTypes: [\"Commit\", \"Discussion\", \"Issue\", \"PullRequest\", \"Repository\", \"Team\", \"TeamDiscussion\"]\n      abstractType: \"Subscribable\"\n    )\n}\n\n\"\"\"\nAutogenerated return type of UnsubscribeFromNotifications\n\"\"\"\ntype UnsubscribeFromNotificationsPayload\n  @requiredCapabilities(requiredCapabilities: [\"access_internal_graphql_notifications\"]) {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Did the operation succeed?\n  \"\"\"\n  success: Boolean\n}\n\n\"\"\"\nRepresents an 'unsubscribed' event on a given `Subscribable`.\n\"\"\"\ntype UnsubscribedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the UnsubscribedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Object referenced by event.\n  \"\"\"\n  subscribable: Subscribable!\n}\n\n\"\"\"\nEntities that can be updated.\n\"\"\"\ninterface Updatable {\n  \"\"\"\n  Check if the current viewer can update this object.\n  \"\"\"\n  viewerCanUpdate: Boolean!\n}\n\n\"\"\"\nComments that can be updated.\n\"\"\"\ninterface UpdatableComment {\n  \"\"\"\n  Reasons why the current viewer can not update this comment.\n  \"\"\"\n  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!\n}\n\n\"\"\"\nAutogenerated input type of UpdateBranchProtectionRule\n\"\"\"\ninput UpdateBranchProtectionRuleInput {\n  \"\"\"\n  Can this branch be deleted.\n  \"\"\"\n  allowsDeletions: Boolean\n\n  \"\"\"\n  Are force pushes allowed on this branch.\n  \"\"\"\n  allowsForcePushes: Boolean\n\n  \"\"\"\n  Is branch creation a protected operation.\n  \"\"\"\n  blocksCreations: Boolean\n\n  \"\"\"\n  The global relay id of the branch protection rule to be updated.\n  \"\"\"\n  branchProtectionRuleId: ID! @possibleTypes(concreteTypes: [\"BranchProtectionRule\"])\n\n  \"\"\"\n  A list of User, Team, or App IDs allowed to bypass force push targeting matching branches.\n  \"\"\"\n  bypassForcePushActorIds: [ID!]\n\n  \"\"\"\n  A list of User, Team, or App IDs allowed to bypass pull requests targeting matching branches.\n  \"\"\"\n  bypassPullRequestActorIds: [ID!]\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Will new commits pushed to matching branches dismiss pull request review approvals.\n  \"\"\"\n  dismissesStaleReviews: Boolean\n\n  \"\"\"\n  Can admins override branch protection.\n  \"\"\"\n  isAdminEnforced: Boolean\n\n  \"\"\"\n  Whether users can pull changes from upstream when the branch is locked. Set to\n  `true` to allow fork syncing. Set to `false` to prevent fork syncing.\n  \"\"\"\n  lockAllowsFetchAndMerge: Boolean\n\n  \"\"\"\n  Whether to set the branch as read-only. If this is true, users will not be able to push to the branch.\n  \"\"\"\n  lockBranch: Boolean\n\n  \"\"\"\n  The glob-like pattern used to determine matching branches.\n  \"\"\"\n  pattern: String\n\n  \"\"\"\n  A list of User, Team, or App IDs allowed to push to matching branches.\n  \"\"\"\n  pushActorIds: [ID!]\n\n  \"\"\"\n  Whether the most recent push must be approved by someone other than the person who pushed it\n  \"\"\"\n  requireLastPushApproval: Boolean\n\n  \"\"\"\n  Number of approving reviews required to update matching branches.\n  \"\"\"\n  requiredApprovingReviewCount: Int\n\n  \"\"\"\n  The list of required deployment environments\n  \"\"\"\n  requiredDeploymentEnvironments: [String!]\n\n  \"\"\"\n  List of required status check contexts that must pass for commits to be accepted to matching branches.\n  \"\"\"\n  requiredStatusCheckContexts: [String!]\n\n  \"\"\"\n  The list of required status checks\n  \"\"\"\n  requiredStatusChecks: [RequiredStatusCheckInput!]\n\n  \"\"\"\n  Are approving reviews required to update matching branches.\n  \"\"\"\n  requiresApprovingReviews: Boolean\n\n  \"\"\"\n  Are reviews from code owners required to update matching branches.\n  \"\"\"\n  requiresCodeOwnerReviews: Boolean\n\n  \"\"\"\n  Are commits required to be signed.\n  \"\"\"\n  requiresCommitSignatures: Boolean\n\n  \"\"\"\n  Are conversations required to be resolved before merging.\n  \"\"\"\n  requiresConversationResolution: Boolean\n\n  \"\"\"\n  Are successful deployments required before merging.\n  \"\"\"\n  requiresDeployments: Boolean\n\n  \"\"\"\n  Are merge commits prohibited from being pushed to this branch.\n  \"\"\"\n  requiresLinearHistory: Boolean\n\n  \"\"\"\n  Are status checks required to update matching branches.\n  \"\"\"\n  requiresStatusChecks: Boolean\n\n  \"\"\"\n  Are branches required to be up to date before merging.\n  \"\"\"\n  requiresStrictStatusChecks: Boolean\n\n  \"\"\"\n  Is pushing to matching branches restricted.\n  \"\"\"\n  restrictsPushes: Boolean\n\n  \"\"\"\n  Is dismissal of pull request reviews restricted.\n  \"\"\"\n  restrictsReviewDismissals: Boolean\n\n  \"\"\"\n  A list of User, Team, or App IDs allowed to dismiss reviews on pull requests targeting matching branches.\n  \"\"\"\n  reviewDismissalActorIds: [ID!]\n}\n\n\"\"\"\nAutogenerated return type of UpdateBranchProtectionRule\n\"\"\"\ntype UpdateBranchProtectionRulePayload {\n  \"\"\"\n  The newly created BranchProtectionRule.\n  \"\"\"\n  branchProtectionRule: BranchProtectionRule\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateCheckRun\n\"\"\"\ninput UpdateCheckRunInput {\n  \"\"\"\n  Possible further actions the integrator can perform, which a user may trigger.\n  \"\"\"\n  actions: [CheckRunAction!]\n\n  \"\"\"\n  The node of the check.\n  \"\"\"\n  checkRunId: ID! @possibleTypes(concreteTypes: [\"CheckRun\"])\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The time that the check run finished.\n  \"\"\"\n  completedAt: DateTime\n\n  \"\"\"\n  The final conclusion of the check.\n  \"\"\"\n  conclusion: CheckConclusionState\n\n  \"\"\"\n  The URL of the integrator's site that has the full details of the check.\n  \"\"\"\n  detailsUrl: URI\n\n  \"\"\"\n  A reference for the run on the integrator's system.\n  \"\"\"\n  externalId: String\n\n  \"\"\"\n  The name of the check.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  Descriptive details about the run.\n  \"\"\"\n  output: CheckRunOutput\n\n  \"\"\"\n  The node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  The time that the check run began.\n  \"\"\"\n  startedAt: DateTime\n\n  \"\"\"\n  The current status.\n  \"\"\"\n  status: RequestableCheckStatusState\n}\n\n\"\"\"\nAutogenerated return type of UpdateCheckRun\n\"\"\"\ntype UpdateCheckRunPayload {\n  \"\"\"\n  The updated check run.\n  \"\"\"\n  checkRun: CheckRun\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateCheckSuitePreferences\n\"\"\"\ninput UpdateCheckSuitePreferencesInput {\n  \"\"\"\n  The check suite preferences to modify.\n  \"\"\"\n  autoTriggerPreferences: [CheckSuiteAutoTriggerPreference!]!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateCheckSuitePreferences\n\"\"\"\ntype UpdateCheckSuitePreferencesPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated repository.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nAutogenerated input type of UpdateDiscussionComment\n\"\"\"\ninput UpdateDiscussionCommentInput {\n  \"\"\"\n  The new contents of the comment body.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the discussion comment to update.\n  \"\"\"\n  commentId: ID! @possibleTypes(concreteTypes: [\"DiscussionComment\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateDiscussionComment\n\"\"\"\ntype UpdateDiscussionCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The modified discussion comment.\n  \"\"\"\n  comment: DiscussionComment\n}\n\n\"\"\"\nAutogenerated input type of UpdateDiscussion\n\"\"\"\ninput UpdateDiscussionInput {\n  \"\"\"\n  The new contents of the discussion body.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  The Node ID of a discussion category within the same repository to change this discussion to.\n  \"\"\"\n  categoryId: ID @possibleTypes(concreteTypes: [\"DiscussionCategory\"])\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the discussion to update.\n  \"\"\"\n  discussionId: ID! @possibleTypes(concreteTypes: [\"Discussion\"])\n\n  \"\"\"\n  The new discussion title.\n  \"\"\"\n  title: String\n}\n\n\"\"\"\nAutogenerated return type of UpdateDiscussion\n\"\"\"\ntype UpdateDiscussionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The modified discussion.\n  \"\"\"\n  discussion: Discussion\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseAdministratorRole\n\"\"\"\ninput UpdateEnterpriseAdministratorRoleInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the Enterprise which the admin belongs to.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The login of a administrator whose role is being changed.\n  \"\"\"\n  login: String!\n\n  \"\"\"\n  The new role for the Enterprise administrator.\n  \"\"\"\n  role: EnterpriseAdministratorRole!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseAdministratorRole\n\"\"\"\ntype UpdateEnterpriseAdministratorRolePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A message confirming the result of changing the administrator's role.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseAllowPrivateRepositoryForkingSetting\n\"\"\"\ninput UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the allow private repository forking setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the allow private repository forking policy on the enterprise.\n  \"\"\"\n  policyValue: EnterpriseAllowPrivateRepositoryForkingPolicyValue\n\n  \"\"\"\n  The value for the allow private repository forking setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseEnabledDisabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseAllowPrivateRepositoryForkingSetting\n\"\"\"\ntype UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated allow private repository forking setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the allow private repository forking setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseDefaultRepositoryPermissionSetting\n\"\"\"\ninput UpdateEnterpriseDefaultRepositoryPermissionSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the base repository permission setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the base repository permission setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseDefaultRepositoryPermissionSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseDefaultRepositoryPermissionSetting\n\"\"\"\ntype UpdateEnterpriseDefaultRepositoryPermissionSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated base repository permission setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the base repository permission setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting\n\"\"\"\ninput UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the members can change repository visibility setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the members can change repository visibility setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseEnabledDisabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting\n\"\"\"\ntype UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated members can change repository visibility setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the members can change repository visibility setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseMembersCanCreateRepositoriesSetting\n\"\"\"\ninput UpdateEnterpriseMembersCanCreateRepositoriesSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the members can create repositories setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  Allow members to create internal repositories. Defaults to current value.\n  \"\"\"\n  membersCanCreateInternalRepositories: Boolean\n\n  \"\"\"\n  Allow members to create private repositories. Defaults to current value.\n  \"\"\"\n  membersCanCreatePrivateRepositories: Boolean\n\n  \"\"\"\n  Allow members to create public repositories. Defaults to current value.\n  \"\"\"\n  membersCanCreatePublicRepositories: Boolean\n\n  \"\"\"\n  When false, allow member organizations to set their own repository creation member privileges.\n  \"\"\"\n  membersCanCreateRepositoriesPolicyEnabled: Boolean\n\n  \"\"\"\n  Value for the members can create repositories setting on the enterprise. This\n  or the granular public/private/internal allowed fields (but not both) must be provided.\n  \"\"\"\n  settingValue: EnterpriseMembersCanCreateRepositoriesSettingValue\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseMembersCanCreateRepositoriesSetting\n\"\"\"\ntype UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated members can create repositories setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the members can create repositories setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseMembersCanDeleteIssuesSetting\n\"\"\"\ninput UpdateEnterpriseMembersCanDeleteIssuesSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the members can delete issues setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the members can delete issues setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseEnabledDisabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseMembersCanDeleteIssuesSetting\n\"\"\"\ntype UpdateEnterpriseMembersCanDeleteIssuesSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated members can delete issues setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the members can delete issues setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseMembersCanDeleteRepositoriesSetting\n\"\"\"\ninput UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the members can delete repositories setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the members can delete repositories setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseEnabledDisabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseMembersCanDeleteRepositoriesSetting\n\"\"\"\ntype UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated members can delete repositories setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the members can delete repositories setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseMembersCanInviteCollaboratorsSetting\n\"\"\"\ninput UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the members can invite collaborators setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the members can invite collaborators setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseEnabledDisabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseMembersCanInviteCollaboratorsSetting\n\"\"\"\ntype UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated members can invite collaborators setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the members can invite collaborators setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseMembersCanMakePurchasesSetting\n\"\"\"\ninput UpdateEnterpriseMembersCanMakePurchasesSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the members can make purchases setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the members can make purchases setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseMembersCanMakePurchasesSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseMembersCanMakePurchasesSetting\n\"\"\"\ntype UpdateEnterpriseMembersCanMakePurchasesSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated members can make purchases setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the members can make purchases setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting\n\"\"\"\ninput UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the members can update protected branches setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the members can update protected branches setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseEnabledDisabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting\n\"\"\"\ntype UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated members can update protected branches setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the members can update protected branches setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseMembersCanViewDependencyInsightsSetting\n\"\"\"\ninput UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the members can view dependency insights setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the members can view dependency insights setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseEnabledDisabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseMembersCanViewDependencyInsightsSetting\n\"\"\"\ntype UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated members can view dependency insights setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the members can view dependency insights setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseOrganizationProjectsSetting\n\"\"\"\ninput UpdateEnterpriseOrganizationProjectsSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the organization projects setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the organization projects setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseEnabledDisabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseOrganizationProjectsSetting\n\"\"\"\ntype UpdateEnterpriseOrganizationProjectsSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated organization projects setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the organization projects setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseOwnerOrganizationRole\n\"\"\"\ninput UpdateEnterpriseOwnerOrganizationRoleInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the Enterprise which the owner belongs to.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The ID of the organization for membership change.\n  \"\"\"\n  organizationId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n\n  \"\"\"\n  The role to assume in the organization.\n  \"\"\"\n  organizationRole: RoleInOrganization!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseOwnerOrganizationRole\n\"\"\"\ntype UpdateEnterpriseOwnerOrganizationRolePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A message confirming the result of changing the owner's organization role.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseProfile\n\"\"\"\ninput UpdateEnterpriseProfileInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The description of the enterprise.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The Enterprise ID to update.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The location of the enterprise.\n  \"\"\"\n  location: String\n\n  \"\"\"\n  The name of the enterprise.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  The URL of the enterprise's website.\n  \"\"\"\n  websiteUrl: String\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseProfile\n\"\"\"\ntype UpdateEnterpriseProfilePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated enterprise.\n  \"\"\"\n  enterprise: Enterprise\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseRepositoryProjectsSetting\n\"\"\"\ninput UpdateEnterpriseRepositoryProjectsSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the repository projects setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the repository projects setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseEnabledDisabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseRepositoryProjectsSetting\n\"\"\"\ntype UpdateEnterpriseRepositoryProjectsSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated repository projects setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the repository projects setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseTeamDiscussionsSetting\n\"\"\"\ninput UpdateEnterpriseTeamDiscussionsSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the team discussions setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the team discussions setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseEnabledDisabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseTeamDiscussionsSetting\n\"\"\"\ntype UpdateEnterpriseTeamDiscussionsSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated team discussions setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the team discussions setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnterpriseTwoFactorAuthenticationRequiredSetting\n\"\"\"\ninput UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the enterprise on which to set the two factor authentication required setting.\n  \"\"\"\n  enterpriseId: ID! @possibleTypes(concreteTypes: [\"Enterprise\"])\n\n  \"\"\"\n  The value for the two factor authentication required setting on the enterprise.\n  \"\"\"\n  settingValue: EnterpriseEnabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnterpriseTwoFactorAuthenticationRequiredSetting\n\"\"\"\ntype UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The enterprise with the updated two factor authentication required setting.\n  \"\"\"\n  enterprise: Enterprise\n\n  \"\"\"\n  A message confirming the result of updating the two factor authentication required setting.\n  \"\"\"\n  message: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateEnvironment\n\"\"\"\ninput UpdateEnvironmentInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The node ID of the environment.\n  \"\"\"\n  environmentId: ID! @possibleTypes(concreteTypes: [\"Environment\"])\n\n  \"\"\"\n  Whether deployments to this environment can be approved by the user who created the deployment.\n  \"\"\"\n  preventSelfReview: Boolean\n\n  \"\"\"\n  The ids of users or teams that can approve deployments to this environment\n  \"\"\"\n  reviewers: [ID!]\n\n  \"\"\"\n  The wait timer in minutes.\n  \"\"\"\n  waitTimer: Int\n}\n\n\"\"\"\nAutogenerated return type of UpdateEnvironment\n\"\"\"\ntype UpdateEnvironmentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated environment.\n  \"\"\"\n  environment: Environment\n}\n\n\"\"\"\nAutogenerated input type of UpdateIpAllowListEnabledSetting\n\"\"\"\ninput UpdateIpAllowListEnabledSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the owner on which to set the IP allow list enabled setting.\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"App\", \"Enterprise\", \"Organization\"], abstractType: \"IpAllowListOwner\")\n\n  \"\"\"\n  The value for the IP allow list enabled setting.\n  \"\"\"\n  settingValue: IpAllowListEnabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateIpAllowListEnabledSetting\n\"\"\"\ntype UpdateIpAllowListEnabledSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The IP allow list owner on which the setting was updated.\n  \"\"\"\n  owner: IpAllowListOwner\n}\n\n\"\"\"\nAutogenerated input type of UpdateIpAllowListEntry\n\"\"\"\ninput UpdateIpAllowListEntryInput {\n  \"\"\"\n  An IP address or range of addresses in CIDR notation.\n  \"\"\"\n  allowListValue: String!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the IP allow list entry to update.\n  \"\"\"\n  ipAllowListEntryId: ID! @possibleTypes(concreteTypes: [\"IpAllowListEntry\"])\n\n  \"\"\"\n  Whether the IP allow list entry is active when an IP allow list is enabled.\n  \"\"\"\n  isActive: Boolean!\n\n  \"\"\"\n  An optional name for the IP allow list entry.\n  \"\"\"\n  name: String\n}\n\n\"\"\"\nAutogenerated return type of UpdateIpAllowListEntry\n\"\"\"\ntype UpdateIpAllowListEntryPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The IP allow list entry that was updated.\n  \"\"\"\n  ipAllowListEntry: IpAllowListEntry\n}\n\n\"\"\"\nAutogenerated input type of UpdateIpAllowListForInstalledAppsEnabledSetting\n\"\"\"\ninput UpdateIpAllowListForInstalledAppsEnabledSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the owner.\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"App\", \"Enterprise\", \"Organization\"], abstractType: \"IpAllowListOwner\")\n\n  \"\"\"\n  The value for the IP allow list configuration for installed GitHub Apps setting.\n  \"\"\"\n  settingValue: IpAllowListForInstalledAppsEnabledSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateIpAllowListForInstalledAppsEnabledSetting\n\"\"\"\ntype UpdateIpAllowListForInstalledAppsEnabledSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The IP allow list owner on which the setting was updated.\n  \"\"\"\n  owner: IpAllowListOwner\n}\n\n\"\"\"\nAutogenerated input type of UpdateIssueComment\n\"\"\"\ninput UpdateIssueCommentInput {\n  \"\"\"\n  The updated text of the comment.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the IssueComment to modify.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"IssueComment\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateIssueComment\n\"\"\"\ntype UpdateIssueCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated comment.\n  \"\"\"\n  issueComment: IssueComment\n}\n\n\"\"\"\nAutogenerated input type of UpdateIssue\n\"\"\"\ninput UpdateIssueInput {\n  \"\"\"\n  An array of Node IDs of users for this issue.\n  \"\"\"\n  assigneeIds: [ID!] @possibleTypes(concreteTypes: [\"User\"])\n\n  \"\"\"\n  The body for the issue description.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the Issue to modify.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"Issue\"])\n\n  \"\"\"\n  An array of Node IDs of labels for this issue.\n  \"\"\"\n  labelIds: [ID!] @possibleTypes(concreteTypes: [\"Label\"])\n\n  \"\"\"\n  The Node ID of the milestone for this issue.\n  \"\"\"\n  milestoneId: ID @possibleTypes(concreteTypes: [\"Milestone\"])\n\n  \"\"\"\n  An array of Node IDs for projects associated with this issue.\n  \"\"\"\n  projectIds: [ID!]\n\n  \"\"\"\n  The desired issue state.\n  \"\"\"\n  state: IssueState\n\n  \"\"\"\n  The title for the issue.\n  \"\"\"\n  title: String\n}\n\n\"\"\"\nAutogenerated return type of UpdateIssue\n\"\"\"\ntype UpdateIssuePayload {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The issue.\n  \"\"\"\n  issue: Issue\n}\n\n\"\"\"\nAutogenerated input type of UpdateLabel\n\"\"\"\ninput UpdateLabelInput @preview(toggledBy: \"bane-preview\") {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A 6 character hex code, without the leading #, identifying the updated color of the label.\n  \"\"\"\n  color: String\n\n  \"\"\"\n  A brief description of the label, such as its purpose.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The Node ID of the label to be updated.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"Label\"])\n\n  \"\"\"\n  The updated name of the label.\n  \"\"\"\n  name: String\n}\n\n\"\"\"\nAutogenerated return type of UpdateLabel\n\"\"\"\ntype UpdateLabelPayload @preview(toggledBy: \"bane-preview\") {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated label.\n  \"\"\"\n  label: Label\n}\n\n\"\"\"\nAutogenerated input type of UpdateNotificationRestrictionSetting\n\"\"\"\ninput UpdateNotificationRestrictionSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the owner on which to set the restrict notifications setting.\n  \"\"\"\n  ownerId: ID! @possibleTypes(concreteTypes: [\"Enterprise\", \"Organization\"], abstractType: \"VerifiableDomainOwner\")\n\n  \"\"\"\n  The value for the restrict notifications setting.\n  \"\"\"\n  settingValue: NotificationRestrictionSettingValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateNotificationRestrictionSetting\n\"\"\"\ntype UpdateNotificationRestrictionSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The owner on which the setting was updated.\n  \"\"\"\n  owner: VerifiableDomainOwner\n}\n\n\"\"\"\nAutogenerated input type of UpdateOrganizationAllowPrivateRepositoryForkingSetting\n\"\"\"\ninput UpdateOrganizationAllowPrivateRepositoryForkingSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Enable forking of private repositories in the organization?\n  \"\"\"\n  forkingEnabled: Boolean!\n\n  \"\"\"\n  The ID of the organization on which to set the allow private repository forking setting.\n  \"\"\"\n  organizationId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateOrganizationAllowPrivateRepositoryForkingSetting\n\"\"\"\ntype UpdateOrganizationAllowPrivateRepositoryForkingSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A message confirming the result of updating the allow private repository forking setting.\n  \"\"\"\n  message: String\n\n  \"\"\"\n  The organization with the updated allow private repository forking setting.\n  \"\"\"\n  organization: Organization\n}\n\n\"\"\"\nAutogenerated input type of UpdateOrganizationWebCommitSignoffSetting\n\"\"\"\ninput UpdateOrganizationWebCommitSignoffSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the organization on which to set the web commit signoff setting.\n  \"\"\"\n  organizationId: ID! @possibleTypes(concreteTypes: [\"Organization\"])\n\n  \"\"\"\n  Enable signoff on web-based commits for repositories in the organization?\n  \"\"\"\n  webCommitSignoffRequired: Boolean!\n}\n\n\"\"\"\nAutogenerated return type of UpdateOrganizationWebCommitSignoffSetting\n\"\"\"\ntype UpdateOrganizationWebCommitSignoffSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A message confirming the result of updating the web commit signoff setting.\n  \"\"\"\n  message: String\n\n  \"\"\"\n  The organization with the updated web commit signoff setting.\n  \"\"\"\n  organization: Organization\n}\n\n\"\"\"\nOnly allow users with bypass permission to update matching refs.\n\"\"\"\ntype UpdateParameters {\n  \"\"\"\n  Branch can pull changes from its upstream repository\n  \"\"\"\n  updateAllowsFetchAndMerge: Boolean!\n}\n\n\"\"\"\nOnly allow users with bypass permission to update matching refs.\n\"\"\"\ninput UpdateParametersInput {\n  \"\"\"\n  Branch can pull changes from its upstream repository\n  \"\"\"\n  updateAllowsFetchAndMerge: Boolean!\n}\n\n\"\"\"\nAutogenerated input type of UpdatePatreonSponsorability\n\"\"\"\ninput UpdatePatreonSponsorabilityInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Whether Patreon tiers should be shown on the GitHub Sponsors profile page,\n  allowing potential sponsors to make their payment through Patreon instead of GitHub.\n  \"\"\"\n  enablePatreonSponsorships: Boolean!\n\n  \"\"\"\n  The username of the organization with the GitHub Sponsors profile, if any.\n  Defaults to the GitHub Sponsors profile for the authenticated user if omitted.\n  \"\"\"\n  sponsorableLogin: String\n}\n\n\"\"\"\nAutogenerated return type of UpdatePatreonSponsorability\n\"\"\"\ntype UpdatePatreonSponsorabilityPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The GitHub Sponsors profile.\n  \"\"\"\n  sponsorsListing: SponsorsListing\n}\n\n\"\"\"\nAutogenerated input type of UpdateProjectCard\n\"\"\"\ninput UpdateProjectCardInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Whether or not the ProjectCard should be archived\n  \"\"\"\n  isArchived: Boolean\n\n  \"\"\"\n  The note of ProjectCard.\n  \"\"\"\n  note: String\n\n  \"\"\"\n  The ProjectCard ID to update.\n  \"\"\"\n  projectCardId: ID! @possibleTypes(concreteTypes: [\"ProjectCard\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateProjectCard\n\"\"\"\ntype UpdateProjectCardPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated ProjectCard.\n  \"\"\"\n  projectCard: ProjectCard\n}\n\n\"\"\"\nAutogenerated input type of UpdateProjectColumn\n\"\"\"\ninput UpdateProjectColumnInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The name of project column.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The ProjectColumn ID to update.\n  \"\"\"\n  projectColumnId: ID! @possibleTypes(concreteTypes: [\"ProjectColumn\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateProjectColumn\n\"\"\"\ntype UpdateProjectColumnPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated project column.\n  \"\"\"\n  projectColumn: ProjectColumn\n}\n\n\"\"\"\nAutogenerated input type of UpdateProject\n\"\"\"\ninput UpdateProjectInput {\n  \"\"\"\n  The description of project.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The name of project.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  The Project ID to update.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"Project\"])\n\n  \"\"\"\n  Whether the project is public or not.\n  \"\"\"\n  public: Boolean\n\n  \"\"\"\n  Whether the project is open or closed.\n  \"\"\"\n  state: ProjectState\n}\n\n\"\"\"\nAutogenerated return type of UpdateProject\n\"\"\"\ntype UpdateProjectPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated project.\n  \"\"\"\n  project: Project\n}\n\n\"\"\"\nAutogenerated input type of UpdateProjectV2Collaborators\n\"\"\"\ninput UpdateProjectV2CollaboratorsInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The collaborators to update.\n  \"\"\"\n  collaborators: [ProjectV2Collaborator!]!\n\n  \"\"\"\n  The ID of the project to update the collaborators for.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateProjectV2Collaborators\n\"\"\"\ntype UpdateProjectV2CollaboratorsPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The collaborators granted a role\n  \"\"\"\n  collaborators(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectV2ActorConnection\n}\n\n\"\"\"\nAutogenerated input type of UpdateProjectV2DraftIssue\n\"\"\"\ninput UpdateProjectV2DraftIssueInput {\n  \"\"\"\n  The IDs of the assignees of the draft issue.\n  \"\"\"\n  assigneeIds: [ID!] @possibleTypes(concreteTypes: [\"User\"])\n\n  \"\"\"\n  The body of the draft issue.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the draft issue to update.\n  \"\"\"\n  draftIssueId: ID! @possibleTypes(concreteTypes: [\"DraftIssue\"])\n\n  \"\"\"\n  The title of the draft issue.\n  \"\"\"\n  title: String\n}\n\n\"\"\"\nAutogenerated return type of UpdateProjectV2DraftIssue\n\"\"\"\ntype UpdateProjectV2DraftIssuePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The draft issue updated in the project.\n  \"\"\"\n  draftIssue: DraftIssue\n}\n\n\"\"\"\nAutogenerated input type of UpdateProjectV2\n\"\"\"\ninput UpdateProjectV2Input {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Set the project to closed or open.\n  \"\"\"\n  closed: Boolean\n\n  \"\"\"\n  The ID of the Project to update.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n\n  \"\"\"\n  Set the project to public or private.\n  \"\"\"\n  public: Boolean\n\n  \"\"\"\n  Set the readme description of the project.\n  \"\"\"\n  readme: String\n\n  \"\"\"\n  Set the short description of the project.\n  \"\"\"\n  shortDescription: String\n\n  \"\"\"\n  Set the title of the project.\n  \"\"\"\n  title: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateProjectV2ItemFieldValue\n\"\"\"\ninput UpdateProjectV2ItemFieldValueInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the field to be updated.\n  \"\"\"\n  fieldId: ID!\n    @possibleTypes(\n      concreteTypes: [\"ProjectV2Field\", \"ProjectV2IterationField\", \"ProjectV2SingleSelectField\"]\n      abstractType: \"ProjectV2FieldConfiguration\"\n    )\n\n  \"\"\"\n  The ID of the item to be updated.\n  \"\"\"\n  itemId: ID! @possibleTypes(concreteTypes: [\"ProjectV2Item\"])\n\n  \"\"\"\n  The ID of the Project.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n\n  \"\"\"\n  The value which will be set on the field.\n  \"\"\"\n  value: ProjectV2FieldValue!\n}\n\n\"\"\"\nAutogenerated return type of UpdateProjectV2ItemFieldValue\n\"\"\"\ntype UpdateProjectV2ItemFieldValuePayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated item.\n  \"\"\"\n  projectV2Item: ProjectV2Item\n}\n\n\"\"\"\nAutogenerated input type of UpdateProjectV2ItemPosition\n\"\"\"\ninput UpdateProjectV2ItemPositionInput {\n  \"\"\"\n  The ID of the item to position this item after. If omitted or set to null the item will be moved to top.\n  \"\"\"\n  afterId: ID @possibleTypes(concreteTypes: [\"ProjectV2Item\"])\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the item to be moved.\n  \"\"\"\n  itemId: ID! @possibleTypes(concreteTypes: [\"ProjectV2Item\"])\n\n  \"\"\"\n  The ID of the Project.\n  \"\"\"\n  projectId: ID! @possibleTypes(concreteTypes: [\"ProjectV2\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateProjectV2ItemPosition\n\"\"\"\ntype UpdateProjectV2ItemPositionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The items in the new order\n  \"\"\"\n  items(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectV2ItemConnection\n}\n\n\"\"\"\nAutogenerated return type of UpdateProjectV2\n\"\"\"\ntype UpdateProjectV2Payload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated Project.\n  \"\"\"\n  projectV2: ProjectV2\n}\n\n\"\"\"\nAutogenerated input type of UpdatePullRequestBranch\n\"\"\"\ninput UpdatePullRequestBranchInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The head ref oid for the upstream branch.\n  \"\"\"\n  expectedHeadOid: GitObjectID\n\n  \"\"\"\n  The Node ID of the pull request.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n\n  \"\"\"\n  The update branch method to use. If omitted, defaults to 'MERGE'\n  \"\"\"\n  updateMethod: PullRequestBranchUpdateMethod\n}\n\n\"\"\"\nAutogenerated return type of UpdatePullRequestBranch\n\"\"\"\ntype UpdatePullRequestBranchPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated pull request.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nAutogenerated input type of UpdatePullRequest\n\"\"\"\ninput UpdatePullRequestInput {\n  \"\"\"\n  An array of Node IDs of users for this pull request.\n  \"\"\"\n  assigneeIds: [ID!] @possibleTypes(concreteTypes: [\"User\"])\n\n  \"\"\"\n  The name of the branch you want your changes pulled into. This should be an existing branch\n  on the current repository.\n  \"\"\"\n  baseRefName: String\n\n  \"\"\"\n  The contents of the pull request.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  An array of Node IDs of labels for this pull request.\n  \"\"\"\n  labelIds: [ID!] @possibleTypes(concreteTypes: [\"Label\"])\n\n  \"\"\"\n  Indicates whether maintainers can modify the pull request.\n  \"\"\"\n  maintainerCanModify: Boolean\n\n  \"\"\"\n  The Node ID of the milestone for this pull request.\n  \"\"\"\n  milestoneId: ID @possibleTypes(concreteTypes: [\"Milestone\"])\n\n  \"\"\"\n  An array of Node IDs for projects associated with this pull request.\n  \"\"\"\n  projectIds: [ID!]\n\n  \"\"\"\n  The Node ID of the pull request.\n  \"\"\"\n  pullRequestId: ID! @possibleTypes(concreteTypes: [\"PullRequest\"])\n\n  \"\"\"\n  The target state of the pull request.\n  \"\"\"\n  state: PullRequestUpdateState\n\n  \"\"\"\n  The title of the pull request.\n  \"\"\"\n  title: String\n}\n\n\"\"\"\nAutogenerated return type of UpdatePullRequest\n\"\"\"\ntype UpdatePullRequestPayload {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated pull request.\n  \"\"\"\n  pullRequest: PullRequest\n}\n\n\"\"\"\nAutogenerated input type of UpdatePullRequestReviewComment\n\"\"\"\ninput UpdatePullRequestReviewCommentInput {\n  \"\"\"\n  The text of the comment.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the comment to modify.\n  \"\"\"\n  pullRequestReviewCommentId: ID! @possibleTypes(concreteTypes: [\"PullRequestReviewComment\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdatePullRequestReviewComment\n\"\"\"\ntype UpdatePullRequestReviewCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated comment.\n  \"\"\"\n  pullRequestReviewComment: PullRequestReviewComment\n}\n\n\"\"\"\nAutogenerated input type of UpdatePullRequestReview\n\"\"\"\ninput UpdatePullRequestReviewInput {\n  \"\"\"\n  The contents of the pull request review body.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the pull request review to modify.\n  \"\"\"\n  pullRequestReviewId: ID! @possibleTypes(concreteTypes: [\"PullRequestReview\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdatePullRequestReview\n\"\"\"\ntype UpdatePullRequestReviewPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated pull request review.\n  \"\"\"\n  pullRequestReview: PullRequestReview\n}\n\n\"\"\"\nAutogenerated input type of UpdateRef\n\"\"\"\ninput UpdateRefInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Permit updates of branch Refs that are not fast-forwards?\n  \"\"\"\n  force: Boolean = false\n\n  \"\"\"\n  The GitObjectID that the Ref shall be updated to target.\n  \"\"\"\n  oid: GitObjectID!\n\n  \"\"\"\n  The Node ID of the Ref to be updated.\n  \"\"\"\n  refId: ID! @possibleTypes(concreteTypes: [\"Ref\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateRef\n\"\"\"\ntype UpdateRefPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated Ref.\n  \"\"\"\n  ref: Ref\n}\n\n\"\"\"\nAutogenerated input type of UpdateRefs\n\"\"\"\ninput UpdateRefsInput @preview(toggledBy: \"update-refs-preview\") {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A list of ref updates.\n  \"\"\"\n  refUpdates: [RefUpdate!]!\n\n  \"\"\"\n  The Node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateRefs\n\"\"\"\ntype UpdateRefsPayload @preview(toggledBy: \"update-refs-preview\") {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n}\n\n\"\"\"\nAutogenerated input type of UpdateRepository\n\"\"\"\ninput UpdateRepositoryInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A new description for the repository. Pass an empty string to erase the existing description.\n  \"\"\"\n  description: String\n\n  \"\"\"\n  Indicates if the repository should have the discussions feature enabled.\n  \"\"\"\n  hasDiscussionsEnabled: Boolean\n\n  \"\"\"\n  Indicates if the repository should have the issues feature enabled.\n  \"\"\"\n  hasIssuesEnabled: Boolean\n\n  \"\"\"\n  Indicates if the repository should have the project boards feature enabled.\n  \"\"\"\n  hasProjectsEnabled: Boolean\n\n  \"\"\"\n  Indicates if the repository should have the wiki feature enabled.\n  \"\"\"\n  hasWikiEnabled: Boolean\n\n  \"\"\"\n  The URL for a web page about this repository. Pass an empty string to erase the existing URL.\n  \"\"\"\n  homepageUrl: URI\n\n  \"\"\"\n  The new name of the repository.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  The ID of the repository to update.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  Whether this repository should be marked as a template such that anyone who\n  can access it can create new repositories with the same files and directory structure.\n  \"\"\"\n  template: Boolean\n}\n\n\"\"\"\nAutogenerated return type of UpdateRepository\n\"\"\"\ntype UpdateRepositoryPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated repository.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nAutogenerated input type of UpdateRepositoryRuleset\n\"\"\"\ninput UpdateRepositoryRulesetInput {\n  \"\"\"\n  A list of actors that are allowed to bypass rules in this ruleset.\n  \"\"\"\n  bypassActors: [RepositoryRulesetBypassActorInput!]\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The list of conditions for this ruleset\n  \"\"\"\n  conditions: RepositoryRuleConditionsInput\n\n  \"\"\"\n  The enforcement level for this ruleset\n  \"\"\"\n  enforcement: RuleEnforcement\n\n  \"\"\"\n  The name of the ruleset.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  The global relay id of the repository ruleset to be updated.\n  \"\"\"\n  repositoryRulesetId: ID! @possibleTypes(concreteTypes: [\"RepositoryRuleset\"])\n\n  \"\"\"\n  The list of rules for this ruleset\n  \"\"\"\n  rules: [RepositoryRuleInput!]\n\n  \"\"\"\n  The target of the ruleset.\n  \"\"\"\n  target: RepositoryRulesetTarget\n}\n\n\"\"\"\nAutogenerated return type of UpdateRepositoryRuleset\n\"\"\"\ntype UpdateRepositoryRulesetPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The newly created Ruleset.\n  \"\"\"\n  ruleset: RepositoryRuleset\n}\n\n\"\"\"\nAutogenerated input type of UpdateRepositoryWebCommitSignoffSetting\n\"\"\"\ninput UpdateRepositoryWebCommitSignoffSettingInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the repository to update.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  Indicates if the repository should require signoff on web-based commits.\n  \"\"\"\n  webCommitSignoffRequired: Boolean!\n}\n\n\"\"\"\nAutogenerated return type of UpdateRepositoryWebCommitSignoffSetting\n\"\"\"\ntype UpdateRepositoryWebCommitSignoffSettingPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A message confirming the result of updating the web commit signoff setting.\n  \"\"\"\n  message: String\n\n  \"\"\"\n  The updated repository.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nAutogenerated input type of UpdateSponsorshipPreferences\n\"\"\"\ninput UpdateSponsorshipPreferencesInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Specify whether others should be able to see that the sponsor is sponsoring\n  the sponsorable. Public visibility still does not reveal which tier is used.\n  \"\"\"\n  privacyLevel: SponsorshipPrivacy = PUBLIC\n\n  \"\"\"\n  Whether the sponsor should receive email updates from the sponsorable.\n  \"\"\"\n  receiveEmails: Boolean = true\n\n  \"\"\"\n  The ID of the user or organization who is acting as the sponsor, paying for\n  the sponsorship. Required if sponsorLogin is not given.\n  \"\"\"\n  sponsorId: ID @possibleTypes(concreteTypes: [\"Organization\", \"User\"], abstractType: \"Sponsor\")\n\n  \"\"\"\n  The username of the user or organization who is acting as the sponsor, paying\n  for the sponsorship. Required if sponsorId is not given.\n  \"\"\"\n  sponsorLogin: String\n\n  \"\"\"\n  The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given.\n  \"\"\"\n  sponsorableId: ID @possibleTypes(concreteTypes: [\"Organization\", \"User\"], abstractType: \"Sponsorable\")\n\n  \"\"\"\n  The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given.\n  \"\"\"\n  sponsorableLogin: String\n}\n\n\"\"\"\nAutogenerated return type of UpdateSponsorshipPreferences\n\"\"\"\ntype UpdateSponsorshipPreferencesPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The sponsorship that was updated.\n  \"\"\"\n  sponsorship: Sponsorship\n}\n\n\"\"\"\nAutogenerated input type of UpdateSubscription\n\"\"\"\ninput UpdateSubscriptionInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The new state of the subscription.\n  \"\"\"\n  state: SubscriptionState!\n\n  \"\"\"\n  The Node ID of the subscribable object to modify.\n  \"\"\"\n  subscribableId: ID!\n    @possibleTypes(\n      concreteTypes: [\"Commit\", \"Discussion\", \"Issue\", \"PullRequest\", \"Repository\", \"Team\", \"TeamDiscussion\"]\n      abstractType: \"Subscribable\"\n    )\n}\n\n\"\"\"\nAutogenerated return type of UpdateSubscription\n\"\"\"\ntype UpdateSubscriptionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The input subscribable entity.\n  \"\"\"\n  subscribable: Subscribable\n}\n\n\"\"\"\nAutogenerated input type of UpdateTeamDiscussionComment\n\"\"\"\ninput UpdateTeamDiscussionCommentInput {\n  \"\"\"\n  The updated text of the comment.\n  \"\"\"\n  body: String!\n\n  \"\"\"\n  The current version of the body content.\n  \"\"\"\n  bodyVersion: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the comment to modify.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"TeamDiscussionComment\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateTeamDiscussionComment\n\"\"\"\ntype UpdateTeamDiscussionCommentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated comment.\n  \"\"\"\n  teamDiscussionComment: TeamDiscussionComment\n}\n\n\"\"\"\nAutogenerated input type of UpdateTeamDiscussion\n\"\"\"\ninput UpdateTeamDiscussionInput {\n  \"\"\"\n  The updated text of the discussion.\n  \"\"\"\n  body: String\n\n  \"\"\"\n  The current version of the body content. If provided, this update operation\n  will be rejected if the given version does not match the latest version on the server.\n  \"\"\"\n  bodyVersion: String\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the discussion to modify.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"TeamDiscussion\"])\n\n  \"\"\"\n  If provided, sets the pinned state of the updated discussion.\n  \"\"\"\n  pinned: Boolean\n\n  \"\"\"\n  The updated title of the discussion.\n  \"\"\"\n  title: String\n}\n\n\"\"\"\nAutogenerated return type of UpdateTeamDiscussion\n\"\"\"\ntype UpdateTeamDiscussionPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The updated discussion.\n  \"\"\"\n  teamDiscussion: TeamDiscussion\n}\n\n\"\"\"\nAutogenerated input type of UpdateTeamReviewAssignment\n\"\"\"\ninput UpdateTeamReviewAssignmentInput @preview(toggledBy: \"stone-crop-preview\") {\n  \"\"\"\n  The algorithm to use for review assignment\n  \"\"\"\n  algorithm: TeamReviewAssignmentAlgorithm = ROUND_ROBIN\n\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Turn on or off review assignment\n  \"\"\"\n  enabled: Boolean!\n\n  \"\"\"\n  An array of team member IDs to exclude\n  \"\"\"\n  excludedTeamMemberIds: [ID!] @possibleTypes(concreteTypes: [\"User\"])\n\n  \"\"\"\n  The Node ID of the team to update review assignments of\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"Team\"])\n\n  \"\"\"\n  Notify the entire team of the PR if it is delegated\n  \"\"\"\n  notifyTeam: Boolean = true\n\n  \"\"\"\n  The number of team members to assign\n  \"\"\"\n  teamMemberCount: Int = 1\n}\n\n\"\"\"\nAutogenerated return type of UpdateTeamReviewAssignment\n\"\"\"\ntype UpdateTeamReviewAssignmentPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The team that was modified\n  \"\"\"\n  team: Team\n}\n\n\"\"\"\nAutogenerated input type of UpdateTeamsRepository\n\"\"\"\ninput UpdateTeamsRepositoryInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Permission that should be granted to the teams.\n  \"\"\"\n  permission: RepositoryPermission!\n\n  \"\"\"\n  Repository ID being granted access to.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  A list of teams being granted access. Limit: 10\n  \"\"\"\n  teamIds: [ID!]! @possibleTypes(concreteTypes: [\"Team\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateTeamsRepository\n\"\"\"\ntype UpdateTeamsRepositoryPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The repository that was updated.\n  \"\"\"\n  repository: Repository\n\n  \"\"\"\n  The teams granted permission on the repository.\n  \"\"\"\n  teams: [Team!]\n}\n\n\"\"\"\nAutogenerated input type of UpdateTopics\n\"\"\"\ninput UpdateTopicsInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The Node ID of the repository.\n  \"\"\"\n  repositoryId: ID! @possibleTypes(concreteTypes: [\"Repository\"])\n\n  \"\"\"\n  An array of topic names.\n  \"\"\"\n  topicNames: [String!]!\n}\n\n\"\"\"\nAutogenerated return type of UpdateTopics\n\"\"\"\ntype UpdateTopicsPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  Names of the provided topics that are not valid.\n  \"\"\"\n  invalidTopicNames: [String!]\n\n  \"\"\"\n  The updated repository.\n  \"\"\"\n  repository: Repository\n}\n\n\"\"\"\nAutogenerated input type of UpdateUserList\n\"\"\"\ninput UpdateUserListInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  A description of the list\n  \"\"\"\n  description: String\n\n  \"\"\"\n  Whether or not the list is private\n  \"\"\"\n  isPrivate: Boolean\n\n  \"\"\"\n  The ID of the list to update.\n  \"\"\"\n  listId: ID! @possibleTypes(concreteTypes: [\"UserList\"])\n\n  \"\"\"\n  The name of the list\n  \"\"\"\n  name: String\n}\n\n\"\"\"\nAutogenerated return type of UpdateUserList\n\"\"\"\ntype UpdateUserListPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The list that was just updated\n  \"\"\"\n  list: UserList\n}\n\n\"\"\"\nAutogenerated input type of UpdateUserListsForItem\n\"\"\"\ninput UpdateUserListsForItemInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The item to add to the list\n  \"\"\"\n  itemId: ID! @possibleTypes(concreteTypes: [\"Repository\"], abstractType: \"UserListItems\")\n\n  \"\"\"\n  The lists to which this item should belong\n  \"\"\"\n  listIds: [ID!]! @possibleTypes(concreteTypes: [\"UserList\"])\n\n  \"\"\"\n  The suggested lists to create and add this item to\n  \"\"\"\n  suggestedListIds: [ID!] @possibleTypes(concreteTypes: [\"UserListSuggestion\"])\n}\n\n\"\"\"\nAutogenerated return type of UpdateUserListsForItem\n\"\"\"\ntype UpdateUserListsForItemPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The item that was added\n  \"\"\"\n  item: UserListItems\n\n  \"\"\"\n  The lists to which this item belongs\n  \"\"\"\n  lists: [UserList!]\n\n  \"\"\"\n  The user who owns the lists\n  \"\"\"\n  user: User\n}\n\n\"\"\"\nA user is an individual's account on GitHub that owns repositories and can make new content.\n\"\"\"\ntype User implements Actor & Node & PackageOwner & ProfileOwner & ProjectOwner & ProjectV2Owner & ProjectV2Recent & RepositoryDiscussionAuthor & RepositoryDiscussionCommentAuthor & RepositoryOwner & Sponsorable & UniformResourceLocatable {\n  \"\"\"\n  Determine if this repository owner has any items that can be pinned to their profile.\n  \"\"\"\n  anyPinnableItems(\n    \"\"\"\n    Filter to only a particular kind of pinnable item.\n    \"\"\"\n    type: PinnableItemType\n  ): Boolean!\n\n  \"\"\"\n  A URL pointing to the user's public avatar.\n  \"\"\"\n  avatarUrl(\n    \"\"\"\n    The size of the resulting square image.\n    \"\"\"\n    size: Int\n  ): URI!\n\n  \"\"\"\n  The user's public profile bio.\n  \"\"\"\n  bio: String\n\n  \"\"\"\n  The user's public profile bio as HTML.\n  \"\"\"\n  bioHTML: HTML!\n\n  \"\"\"\n  Could this user receive email notifications, if the organization had notification restrictions enabled?\n  \"\"\"\n  canReceiveOrganizationEmailsWhenNotificationsRestricted(\n    \"\"\"\n    The login of the organization to check.\n    \"\"\"\n    login: String!\n  ): Boolean!\n\n  \"\"\"\n  A list of commit comments made by this user.\n  \"\"\"\n  commitComments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): CommitCommentConnection!\n\n  \"\"\"\n  The user's public profile company.\n  \"\"\"\n  company: String\n\n  \"\"\"\n  The user's public profile company as HTML.\n  \"\"\"\n  companyHTML: HTML!\n\n  \"\"\"\n  The collection of contributions this user has made to different repositories.\n  \"\"\"\n  contributionsCollection(\n    \"\"\"\n    Only contributions made at this time or later will be counted. If omitted, defaults to a year ago.\n    \"\"\"\n    from: DateTime\n\n    \"\"\"\n    The ID of the organization used to filter contributions.\n    \"\"\"\n    organizationID: ID\n\n    \"\"\"\n    Only contributions made before and up to (including) this time will be\n    counted. If omitted, defaults to the current time or one year from the\n    provided from argument.\n    \"\"\"\n    to: DateTime\n  ): ContributionsCollection!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The user's publicly visible profile email.\n  \"\"\"\n  email: String!\n\n  \"\"\"\n  A list of enterprises that the user belongs to.\n  \"\"\"\n  enterprises(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter enterprises returned based on the user's membership type.\n    \"\"\"\n    membershipType: EnterpriseMembershipType = ALL\n\n    \"\"\"\n    Ordering options for the User's enterprises.\n    \"\"\"\n    orderBy: EnterpriseOrder = {field: NAME, direction: ASC}\n  ): EnterpriseConnection\n\n  \"\"\"\n  The estimated next GitHub Sponsors payout for this user/organization in cents (USD).\n  \"\"\"\n  estimatedNextSponsorsPayoutInCents: Int!\n\n  \"\"\"\n  A list of users the given user is followed by.\n  \"\"\"\n  followers(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): FollowerConnection!\n\n  \"\"\"\n  A list of users the given user is following.\n  \"\"\"\n  following(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): FollowingConnection!\n\n  \"\"\"\n  Find gist by repo name.\n  \"\"\"\n  gist(\n    \"\"\"\n    The gist name to find.\n    \"\"\"\n    name: String!\n  ): Gist\n\n  \"\"\"\n  A list of gist comments made by this user.\n  \"\"\"\n  gistComments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): GistCommentConnection!\n\n  \"\"\"\n  A list of the Gists the user has created.\n  \"\"\"\n  gists(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for gists returned from the connection\n    \"\"\"\n    orderBy: GistOrder\n\n    \"\"\"\n    Filters Gists according to privacy.\n    \"\"\"\n    privacy: GistPrivacy\n  ): GistConnection!\n\n  \"\"\"\n  True if this user/organization has a GitHub Sponsors listing.\n  \"\"\"\n  hasSponsorsListing: Boolean!\n\n  \"\"\"\n  The hovercard information for this user in a given context\n  \"\"\"\n  hovercard(\n    \"\"\"\n    The ID of the subject to get the hovercard in the context of\n    \"\"\"\n    primarySubjectId: ID\n  ): Hovercard!\n\n  \"\"\"\n  The Node ID of the User object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The interaction ability settings for this user.\n  \"\"\"\n  interactionAbility: RepositoryInteractionAbility\n\n  \"\"\"\n  Whether or not this user is a participant in the GitHub Security Bug Bounty.\n  \"\"\"\n  isBountyHunter: Boolean!\n\n  \"\"\"\n  Whether or not this user is a participant in the GitHub Campus Experts Program.\n  \"\"\"\n  isCampusExpert: Boolean!\n\n  \"\"\"\n  Whether or not this user is a GitHub Developer Program member.\n  \"\"\"\n  isDeveloperProgramMember: Boolean!\n\n  \"\"\"\n  Whether or not this user is a GitHub employee.\n  \"\"\"\n  isEmployee: Boolean!\n\n  \"\"\"\n  Whether or not this user is following the viewer. Inverse of viewerIsFollowing\n  \"\"\"\n  isFollowingViewer: Boolean!\n\n  \"\"\"\n  Whether or not this user is a member of the GitHub Stars Program.\n  \"\"\"\n  isGitHubStar: Boolean!\n\n  \"\"\"\n  Whether or not the user has marked themselves as for hire.\n  \"\"\"\n  isHireable: Boolean!\n\n  \"\"\"\n  Whether or not this user is a site administrator.\n  \"\"\"\n  isSiteAdmin: Boolean!\n\n  \"\"\"\n  Whether the given account is sponsoring this user/organization.\n  \"\"\"\n  isSponsoredBy(\n    \"\"\"\n    The target account's login.\n    \"\"\"\n    accountLogin: String!\n  ): Boolean!\n\n  \"\"\"\n  True if the viewer is sponsored by this user/organization.\n  \"\"\"\n  isSponsoringViewer: Boolean!\n\n  \"\"\"\n  Whether or not this user is the viewing user.\n  \"\"\"\n  isViewer: Boolean!\n\n  \"\"\"\n  A list of issue comments made by this user.\n  \"\"\"\n  issueComments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for issue comments returned from the connection.\n    \"\"\"\n    orderBy: IssueCommentOrder\n  ): IssueCommentConnection!\n\n  \"\"\"\n  A list of issues associated with this user.\n  \"\"\"\n  issues(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Filtering options for issues returned from the connection.\n    \"\"\"\n    filterBy: IssueFilters\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    A list of label names to filter the pull requests by.\n    \"\"\"\n    labels: [String!]\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for issues returned from the connection.\n    \"\"\"\n    orderBy: IssueOrder\n\n    \"\"\"\n    A list of states to filter the issues by.\n    \"\"\"\n    states: [IssueState!]\n  ): IssueConnection!\n\n  \"\"\"\n  Showcases a selection of repositories and gists that the profile owner has\n  either curated or that have been selected automatically based on popularity.\n  \"\"\"\n  itemShowcase: ProfileItemShowcase!\n\n  \"\"\"\n  A user-curated list of repositories\n  \"\"\"\n  lists(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserListConnection!\n\n  \"\"\"\n  The user's public profile location.\n  \"\"\"\n  location: String\n\n  \"\"\"\n  The username used to login.\n  \"\"\"\n  login: String!\n\n  \"\"\"\n  The estimated monthly GitHub Sponsors income for this user/organization in cents (USD).\n  \"\"\"\n  monthlyEstimatedSponsorsIncomeInCents: Int!\n\n  \"\"\"\n  The user's public profile name.\n  \"\"\"\n  name: String\n\n  \"\"\"\n  Find an organization by its login that the user belongs to.\n  \"\"\"\n  organization(\n    \"\"\"\n    The login of the organization to find.\n    \"\"\"\n    login: String!\n  ): Organization\n\n  \"\"\"\n  Verified email addresses that match verified domains for a specified organization the user is a member of.\n  \"\"\"\n  organizationVerifiedDomainEmails(\n    \"\"\"\n    The login of the organization to match verified domains from.\n    \"\"\"\n    login: String!\n  ): [String!]!\n\n  \"\"\"\n  A list of organizations the user belongs to.\n  \"\"\"\n  organizations(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the User's organizations.\n    \"\"\"\n    orderBy: OrganizationOrder = null\n  ): OrganizationConnection!\n\n  \"\"\"\n  A list of packages under the owner.\n  \"\"\"\n  packages(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Find packages by their names.\n    \"\"\"\n    names: [String]\n\n    \"\"\"\n    Ordering of the returned packages.\n    \"\"\"\n    orderBy: PackageOrder = {field: CREATED_AT, direction: DESC}\n\n    \"\"\"\n    Filter registry package by type.\n    \"\"\"\n    packageType: PackageType\n\n    \"\"\"\n    Find packages in a repository by ID.\n    \"\"\"\n    repositoryId: ID\n  ): PackageConnection!\n\n  \"\"\"\n  A list of repositories and gists this profile owner can pin to their profile.\n  \"\"\"\n  pinnableItems(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter the types of pinnable items that are returned.\n    \"\"\"\n    types: [PinnableItemType!]\n  ): PinnableItemConnection!\n\n  \"\"\"\n  A list of repositories and gists this profile owner has pinned to their profile\n  \"\"\"\n  pinnedItems(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter the types of pinned items that are returned.\n    \"\"\"\n    types: [PinnableItemType!]\n  ): PinnableItemConnection!\n\n  \"\"\"\n  Returns how many more items this profile owner can pin to their profile.\n  \"\"\"\n  pinnedItemsRemaining: Int!\n\n  \"\"\"\n  Find project by number.\n  \"\"\"\n  project(\n    \"\"\"\n    The project number to find.\n    \"\"\"\n    number: Int!\n  ): Project\n\n  \"\"\"\n  Find a project by number.\n  \"\"\"\n  projectV2(\n    \"\"\"\n    The project number.\n    \"\"\"\n    number: Int!\n  ): ProjectV2\n\n  \"\"\"\n  A list of projects under the owner.\n  \"\"\"\n  projects(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for projects returned from the connection\n    \"\"\"\n    orderBy: ProjectOrder\n\n    \"\"\"\n    Query to search projects by, currently only searching by name.\n    \"\"\"\n    search: String\n\n    \"\"\"\n    A list of states to filter the projects by.\n    \"\"\"\n    states: [ProjectState!]\n  ): ProjectConnection!\n\n  \"\"\"\n  The HTTP path listing user's projects\n  \"\"\"\n  projectsResourcePath: URI!\n\n  \"\"\"\n  The HTTP URL listing user's projects\n  \"\"\"\n  projectsUrl: URI!\n\n  \"\"\"\n  A list of projects under the owner.\n  \"\"\"\n  projectsV2(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    How to order the returned projects.\n    \"\"\"\n    orderBy: ProjectV2Order = {field: NUMBER, direction: DESC}\n\n    \"\"\"\n    A project to search for under the the owner.\n    \"\"\"\n    query: String\n  ): ProjectV2Connection!\n\n  \"\"\"\n  The user's profile pronouns\n  \"\"\"\n  pronouns: String\n\n  \"\"\"\n  A list of public keys associated with this user.\n  \"\"\"\n  publicKeys(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): PublicKeyConnection!\n\n  \"\"\"\n  A list of pull requests associated with this user.\n  \"\"\"\n  pullRequests(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    The base ref name to filter the pull requests by.\n    \"\"\"\n    baseRefName: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    The head ref name to filter the pull requests by.\n    \"\"\"\n    headRefName: String\n\n    \"\"\"\n    A list of label names to filter the pull requests by.\n    \"\"\"\n    labels: [String!]\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for pull requests returned from the connection.\n    \"\"\"\n    orderBy: IssueOrder\n\n    \"\"\"\n    A list of states to filter the pull requests by.\n    \"\"\"\n    states: [PullRequestState!]\n  ): PullRequestConnection!\n\n  \"\"\"\n  Recent projects that this user has modified in the context of the owner.\n  \"\"\"\n  recentProjects(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): ProjectV2Connection!\n\n  \"\"\"\n  A list of repositories that the user owns.\n  \"\"\"\n  repositories(\n    \"\"\"\n    Array of viewer's affiliation options for repositories returned from the\n    connection. For example, OWNER will include only repositories that the\n    current viewer owns.\n    \"\"\"\n    affiliations: [RepositoryAffiliation]\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have issues enabled\n    \"\"\"\n    hasIssuesEnabled: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they are archived and not maintained\n    \"\"\"\n    isArchived: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they are forks of another repository\n    \"\"\"\n    isFork: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have been locked\n    \"\"\"\n    isLocked: Boolean\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for repositories returned from the connection\n    \"\"\"\n    orderBy: RepositoryOrder\n\n    \"\"\"\n    Array of owner's affiliation options for repositories returned from the\n    connection. For example, OWNER will include only repositories that the\n    organization or user being viewed owns.\n    \"\"\"\n    ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR]\n\n    \"\"\"\n    If non-null, filters repositories according to privacy\n    \"\"\"\n    privacy: RepositoryPrivacy\n  ): RepositoryConnection!\n\n  \"\"\"\n  A list of repositories that the user recently contributed to.\n  \"\"\"\n  repositoriesContributedTo(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    If non-null, include only the specified types of contributions. The\n    GitHub.com UI uses [COMMIT, ISSUE, PULL_REQUEST, REPOSITORY]\n    \"\"\"\n    contributionTypes: [RepositoryContributionType]\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have issues enabled\n    \"\"\"\n    hasIssues: Boolean\n\n    \"\"\"\n    If true, include user repositories\n    \"\"\"\n    includeUserRepositories: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have been locked\n    \"\"\"\n    isLocked: Boolean\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for repositories returned from the connection\n    \"\"\"\n    orderBy: RepositoryOrder\n\n    \"\"\"\n    If non-null, filters repositories according to privacy\n    \"\"\"\n    privacy: RepositoryPrivacy\n  ): RepositoryConnection!\n\n  \"\"\"\n  Find Repository.\n  \"\"\"\n  repository(\n    \"\"\"\n    Follow repository renames. If disabled, a repository referenced by its old name will return an error.\n    \"\"\"\n    followRenames: Boolean = true\n\n    \"\"\"\n    Name of Repository to find.\n    \"\"\"\n    name: String!\n  ): Repository\n\n  \"\"\"\n  Discussion comments this user has authored.\n  \"\"\"\n  repositoryDiscussionComments(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter discussion comments to only those that were marked as the answer\n    \"\"\"\n    onlyAnswers: Boolean = false\n\n    \"\"\"\n    Filter discussion comments to only those in a specific repository.\n    \"\"\"\n    repositoryId: ID\n  ): DiscussionCommentConnection!\n\n  \"\"\"\n  Discussions this user has started.\n  \"\"\"\n  repositoryDiscussions(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Filter discussions to only those that have been answered or not. Defaults to\n    including both answered and unanswered discussions.\n    \"\"\"\n    answered: Boolean = null\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for discussions returned from the connection.\n    \"\"\"\n    orderBy: DiscussionOrder = {field: CREATED_AT, direction: DESC}\n\n    \"\"\"\n    Filter discussions to only those in a specific repository.\n    \"\"\"\n    repositoryId: ID\n\n    \"\"\"\n    A list of states to filter the discussions by.\n    \"\"\"\n    states: [DiscussionState!] = []\n  ): DiscussionConnection!\n\n  \"\"\"\n  The HTTP path for this user\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  Replies this user has saved\n  \"\"\"\n  savedReplies(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    The field to order saved replies by.\n    \"\"\"\n    orderBy: SavedReplyOrder = {field: UPDATED_AT, direction: DESC}\n  ): SavedReplyConnection\n\n  \"\"\"\n  The user's social media accounts, ordered as they appear on the user's profile.\n  \"\"\"\n  socialAccounts(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): SocialAccountConnection!\n\n  \"\"\"\n  List of users and organizations this entity is sponsoring.\n  \"\"\"\n  sponsoring(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the users and organizations returned from the connection.\n    \"\"\"\n    orderBy: SponsorOrder = {field: RELEVANCE, direction: DESC}\n  ): SponsorConnection!\n\n  \"\"\"\n  List of sponsors for this user or organization.\n  \"\"\"\n  sponsors(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for sponsors returned from the connection.\n    \"\"\"\n    orderBy: SponsorOrder = {field: RELEVANCE, direction: DESC}\n\n    \"\"\"\n    If given, will filter for sponsors at the given tier. Will only return\n    sponsors whose tier the viewer is permitted to see.\n    \"\"\"\n    tierId: ID\n  ): SponsorConnection!\n\n  \"\"\"\n  Events involving this sponsorable, such as new sponsorships.\n  \"\"\"\n  sponsorsActivities(\n    \"\"\"\n    Filter activities to only the specified actions.\n    \"\"\"\n    actions: [SponsorsActivityAction!] = []\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Whether to include those events where this sponsorable acted as the sponsor.\n    Defaults to only including events where this sponsorable was the recipient\n    of a sponsorship.\n    \"\"\"\n    includeAsSponsor: Boolean = false\n\n    \"\"\"\n    Whether or not to include private activities in the result set. Defaults to including public and private activities.\n    \"\"\"\n    includePrivate: Boolean = true\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for activity returned from the connection.\n    \"\"\"\n    orderBy: SponsorsActivityOrder = {field: TIMESTAMP, direction: DESC}\n\n    \"\"\"\n    Filter activities returned to only those that occurred in the most recent\n    specified time period. Set to ALL to avoid filtering by when the activity\n    occurred. Will be ignored if `since` or `until` is given.\n    \"\"\"\n    period: SponsorsActivityPeriod = MONTH\n\n    \"\"\"\n    Filter activities to those that occurred on or after this time.\n    \"\"\"\n    since: DateTime\n\n    \"\"\"\n    Filter activities to those that occurred before this time.\n    \"\"\"\n    until: DateTime\n  ): SponsorsActivityConnection!\n\n  \"\"\"\n  The GitHub Sponsors listing for this user or organization.\n  \"\"\"\n  sponsorsListing: SponsorsListing\n\n  \"\"\"\n  The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor.\n  \"\"\"\n  sponsorshipForViewerAsSponsor(\n    \"\"\"\n    Whether to return the sponsorship only if it's still active. Pass false to\n    get the viewer's sponsorship back even if it has been cancelled.\n    \"\"\"\n    activeOnly: Boolean = true\n  ): Sponsorship\n\n  \"\"\"\n  The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving.\n  \"\"\"\n  sponsorshipForViewerAsSponsorable(\n    \"\"\"\n    Whether to return the sponsorship only if it's still active. Pass false to\n    get the sponsorship back even if it has been cancelled.\n    \"\"\"\n    activeOnly: Boolean = true\n  ): Sponsorship\n\n  \"\"\"\n  List of sponsorship updates sent from this sponsorable to sponsors.\n  \"\"\"\n  sponsorshipNewsletters(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for sponsorship updates returned from the connection.\n    \"\"\"\n    orderBy: SponsorshipNewsletterOrder = {field: CREATED_AT, direction: DESC}\n  ): SponsorshipNewsletterConnection!\n\n  \"\"\"\n  The sponsorships where this user or organization is the maintainer receiving the funds.\n  \"\"\"\n  sponsorshipsAsMaintainer(\n    \"\"\"\n    Whether to include only sponsorships that are active right now, versus all\n    sponsorships this maintainer has ever received.\n    \"\"\"\n    activeOnly: Boolean = true\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Whether or not to include private sponsorships in the result set\n    \"\"\"\n    includePrivate: Boolean = false\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for sponsorships returned from this connection. If left\n    blank, the sponsorships will be ordered based on relevancy to the viewer.\n    \"\"\"\n    orderBy: SponsorshipOrder\n  ): SponsorshipConnection!\n\n  \"\"\"\n  The sponsorships where this user or organization is the funder.\n  \"\"\"\n  sponsorshipsAsSponsor(\n    \"\"\"\n    Whether to include only sponsorships that are active right now, versus all sponsorships this sponsor has ever made.\n    \"\"\"\n    activeOnly: Boolean = true\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Filter sponsorships returned to those for the specified maintainers. That\n    is, the recipient of the sponsorship is a user or organization with one of\n    the given logins.\n    \"\"\"\n    maintainerLogins: [String!]\n\n    \"\"\"\n    Ordering options for sponsorships returned from this connection. If left\n    blank, the sponsorships will be ordered based on relevancy to the viewer.\n    \"\"\"\n    orderBy: SponsorshipOrder\n  ): SponsorshipConnection!\n\n  \"\"\"\n  Repositories the user has starred.\n  \"\"\"\n  starredRepositories(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Order for connection\n    \"\"\"\n    orderBy: StarOrder\n\n    \"\"\"\n    Filters starred repositories to only return repositories owned by the viewer.\n    \"\"\"\n    ownedByViewer: Boolean\n  ): StarredRepositoryConnection!\n\n  \"\"\"\n  The user's description of what they're currently doing.\n  \"\"\"\n  status: UserStatus\n\n  \"\"\"\n  Suggested names for user lists\n  \"\"\"\n  suggestedListNames: [UserListSuggestion!]!\n\n  \"\"\"\n  Repositories the user has contributed to, ordered by contribution rank, plus repositories the user has created\n  \"\"\"\n  topRepositories(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for repositories returned from the connection\n    \"\"\"\n    orderBy: RepositoryOrder!\n\n    \"\"\"\n    How far back in time to fetch contributed repositories\n    \"\"\"\n    since: DateTime\n  ): RepositoryConnection!\n\n  \"\"\"\n  The amount in United States cents (e.g., 500 = $5.00 USD) that this entity has\n  spent on GitHub to fund sponsorships. Only returns a value when viewed by the\n  user themselves or by a user who can manage sponsorships for the requested organization.\n  \"\"\"\n  totalSponsorshipAmountAsSponsorInCents(\n    \"\"\"\n    Filter payments to those that occurred on or after this time.\n    \"\"\"\n    since: DateTime\n\n    \"\"\"\n    Filter payments to those made to the users or organizations with the specified usernames.\n    \"\"\"\n    sponsorableLogins: [String!] = []\n\n    \"\"\"\n    Filter payments to those that occurred before this time.\n    \"\"\"\n    until: DateTime\n  ): Int\n\n  \"\"\"\n  The user's Twitter username.\n  \"\"\"\n  twitterUsername: String\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this user\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  Can the viewer pin repositories and gists to the profile?\n  \"\"\"\n  viewerCanChangePinnedItems: Boolean!\n\n  \"\"\"\n  Can the current viewer create new projects on this owner.\n  \"\"\"\n  viewerCanCreateProjects: Boolean!\n\n  \"\"\"\n  Whether or not the viewer is able to follow the user.\n  \"\"\"\n  viewerCanFollow: Boolean!\n\n  \"\"\"\n  Whether or not the viewer is able to sponsor this user/organization.\n  \"\"\"\n  viewerCanSponsor: Boolean!\n\n  \"\"\"\n  Whether or not this user is followed by the viewer. Inverse of isFollowingViewer.\n  \"\"\"\n  viewerIsFollowing: Boolean!\n\n  \"\"\"\n  True if the viewer is sponsoring this user/organization.\n  \"\"\"\n  viewerIsSponsoring: Boolean!\n\n  \"\"\"\n  A list of repositories the given user is watching.\n  \"\"\"\n  watching(\n    \"\"\"\n    Affiliation options for repositories returned from the connection. If none\n    specified, the results will include repositories for which the current\n    viewer is an owner or collaborator, or member.\n    \"\"\"\n    affiliations: [RepositoryAffiliation]\n\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have issues enabled\n    \"\"\"\n    hasIssuesEnabled: Boolean\n\n    \"\"\"\n    If non-null, filters repositories according to whether they have been locked\n    \"\"\"\n    isLocked: Boolean\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for repositories returned from the connection\n    \"\"\"\n    orderBy: RepositoryOrder\n\n    \"\"\"\n    Array of owner's affiliation options for repositories returned from the\n    connection. For example, OWNER will include only repositories that the\n    organization or user being viewed owns.\n    \"\"\"\n    ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR]\n\n    \"\"\"\n    If non-null, filters repositories according to privacy\n    \"\"\"\n    privacy: RepositoryPrivacy\n  ): RepositoryConnection!\n\n  \"\"\"\n  A URL pointing to the user's public website/blog.\n  \"\"\"\n  websiteUrl: URI\n}\n\n\"\"\"\nThe possible durations that a user can be blocked for.\n\"\"\"\nenum UserBlockDuration {\n  \"\"\"\n  The user was blocked for 1 day\n  \"\"\"\n  ONE_DAY\n\n  \"\"\"\n  The user was blocked for 30 days\n  \"\"\"\n  ONE_MONTH\n\n  \"\"\"\n  The user was blocked for 7 days\n  \"\"\"\n  ONE_WEEK\n\n  \"\"\"\n  The user was blocked permanently\n  \"\"\"\n  PERMANENT\n\n  \"\"\"\n  The user was blocked for 3 days\n  \"\"\"\n  THREE_DAYS\n}\n\n\"\"\"\nRepresents a 'user_blocked' event on a given user.\n\"\"\"\ntype UserBlockedEvent implements Node {\n  \"\"\"\n  Identifies the actor who performed the event.\n  \"\"\"\n  actor: Actor\n\n  \"\"\"\n  Number of days that the user was blocked for.\n  \"\"\"\n  blockDuration: UserBlockDuration!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The Node ID of the UserBlockedEvent object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The user who was blocked.\n  \"\"\"\n  subject: User\n}\n\n\"\"\"\nThe connection type for User.\n\"\"\"\ntype UserConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [UserEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [User]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edit on user content\n\"\"\"\ntype UserContentEdit implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the date and time when the object was deleted.\n  \"\"\"\n  deletedAt: DateTime\n\n  \"\"\"\n  The actor who deleted this content\n  \"\"\"\n  deletedBy: Actor\n\n  \"\"\"\n  A summary of the changes for this edit\n  \"\"\"\n  diff: String\n\n  \"\"\"\n  When this content was edited\n  \"\"\"\n  editedAt: DateTime!\n\n  \"\"\"\n  The actor who edited this content\n  \"\"\"\n  editor: Actor\n\n  \"\"\"\n  The Node ID of the UserContentEdit object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n}\n\n\"\"\"\nA list of edits to content.\n\"\"\"\ntype UserContentEditConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [UserContentEditEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [UserContentEdit]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype UserContentEditEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: UserContentEdit\n}\n\n\"\"\"\nRepresents a user.\n\"\"\"\ntype UserEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: User\n}\n\n\"\"\"\nEmail attributes from External Identity\n\"\"\"\ntype UserEmailMetadata {\n  \"\"\"\n  Boolean to identify primary emails\n  \"\"\"\n  primary: Boolean\n\n  \"\"\"\n  Type of email\n  \"\"\"\n  type: String\n\n  \"\"\"\n  Email id\n  \"\"\"\n  value: String!\n}\n\n\"\"\"\nA user-curated list of repositories\n\"\"\"\ntype UserList implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  The description of this list\n  \"\"\"\n  description: String\n\n  \"\"\"\n  The Node ID of the UserList object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether or not this list is private\n  \"\"\"\n  isPrivate: Boolean!\n\n  \"\"\"\n  The items associated with this list\n  \"\"\"\n  items(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): UserListItemsConnection!\n\n  \"\"\"\n  The date and time at which this list was created or last had items added to it\n  \"\"\"\n  lastAddedAt: DateTime!\n\n  \"\"\"\n  The name of this list\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The slug of this list\n  \"\"\"\n  slug: String!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The user to which this list belongs\n  \"\"\"\n  user: User!\n}\n\n\"\"\"\nThe connection type for UserList.\n\"\"\"\ntype UserListConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [UserListEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [UserList]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype UserListEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: UserList\n}\n\n\"\"\"\nTypes that can be added to a user list.\n\"\"\"\nunion UserListItems = Repository\n\n\"\"\"\nThe connection type for UserListItems.\n\"\"\"\ntype UserListItemsConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [UserListItemsEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [UserListItems]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype UserListItemsEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: UserListItems\n}\n\n\"\"\"\nRepresents a suggested user list.\n\"\"\"\ntype UserListSuggestion {\n  \"\"\"\n  The ID of the suggested user list\n  \"\"\"\n  id: ID\n\n  \"\"\"\n  The name of the suggested user list\n  \"\"\"\n  name: String\n}\n\n\"\"\"\nThe user's description of what they're currently doing.\n\"\"\"\ntype UserStatus implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  An emoji summarizing the user's status.\n  \"\"\"\n  emoji: String\n\n  \"\"\"\n  The status emoji as HTML.\n  \"\"\"\n  emojiHTML: HTML\n\n  \"\"\"\n  If set, the status will not be shown after this date.\n  \"\"\"\n  expiresAt: DateTime\n\n  \"\"\"\n  The Node ID of the UserStatus object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether this status indicates the user is not fully available on GitHub.\n  \"\"\"\n  indicatesLimitedAvailability: Boolean!\n\n  \"\"\"\n  A brief message describing what the user is doing.\n  \"\"\"\n  message: String\n\n  \"\"\"\n  The organization whose members can see this status. If null, this status is publicly visible.\n  \"\"\"\n  organization: Organization\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The user who has this status.\n  \"\"\"\n  user: User!\n}\n\n\"\"\"\nThe connection type for UserStatus.\n\"\"\"\ntype UserStatusConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [UserStatusEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [UserStatus]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype UserStatusEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: UserStatus\n}\n\n\"\"\"\nOrdering options for user status connections.\n\"\"\"\ninput UserStatusOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order user statuses by.\n  \"\"\"\n  field: UserStatusOrderField!\n}\n\n\"\"\"\nProperties by which user status connections can be ordered.\n\"\"\"\nenum UserStatusOrderField {\n  \"\"\"\n  Order user statuses by when they were updated.\n  \"\"\"\n  UPDATED_AT\n}\n\n\"\"\"\nA domain that can be verified or approved for an organization or an enterprise.\n\"\"\"\ntype VerifiableDomain implements Node {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The DNS host name that should be used for verification.\n  \"\"\"\n  dnsHostName: URI\n\n  \"\"\"\n  The unicode encoded domain.\n  \"\"\"\n  domain: URI!\n\n  \"\"\"\n  Whether a TXT record for verification with the expected host name was found.\n  \"\"\"\n  hasFoundHostName: Boolean!\n\n  \"\"\"\n  Whether a TXT record for verification with the expected verification token was found.\n  \"\"\"\n  hasFoundVerificationToken: Boolean!\n\n  \"\"\"\n  The Node ID of the VerifiableDomain object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  Whether or not the domain is approved.\n  \"\"\"\n  isApproved: Boolean!\n\n  \"\"\"\n  Whether this domain is required to exist for an organization or enterprise policy to be enforced.\n  \"\"\"\n  isRequiredForPolicyEnforcement: Boolean!\n\n  \"\"\"\n  Whether or not the domain is verified.\n  \"\"\"\n  isVerified: Boolean!\n\n  \"\"\"\n  The owner of the domain.\n  \"\"\"\n  owner: VerifiableDomainOwner!\n\n  \"\"\"\n  The punycode encoded domain.\n  \"\"\"\n  punycodeEncodedDomain: URI!\n\n  \"\"\"\n  The time that the current verification token will expire.\n  \"\"\"\n  tokenExpirationTime: DateTime\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The current verification token for the domain.\n  \"\"\"\n  verificationToken: String\n}\n\n\"\"\"\nThe connection type for VerifiableDomain.\n\"\"\"\ntype VerifiableDomainConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [VerifiableDomainEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [VerifiableDomain]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype VerifiableDomainEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: VerifiableDomain\n}\n\n\"\"\"\nOrdering options for verifiable domain connections.\n\"\"\"\ninput VerifiableDomainOrder {\n  \"\"\"\n  The ordering direction.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field to order verifiable domains by.\n  \"\"\"\n  field: VerifiableDomainOrderField!\n}\n\n\"\"\"\nProperties by which verifiable domain connections can be ordered.\n\"\"\"\nenum VerifiableDomainOrderField {\n  \"\"\"\n  Order verifiable domains by their creation date.\n  \"\"\"\n  CREATED_AT\n\n  \"\"\"\n  Order verifiable domains by the domain name.\n  \"\"\"\n  DOMAIN\n}\n\n\"\"\"\nTypes that can own a verifiable domain.\n\"\"\"\nunion VerifiableDomainOwner = Enterprise | Organization\n\n\"\"\"\nAutogenerated input type of VerifyVerifiableDomain\n\"\"\"\ninput VerifyVerifiableDomainInput {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The ID of the verifiable domain to verify.\n  \"\"\"\n  id: ID! @possibleTypes(concreteTypes: [\"VerifiableDomain\"])\n}\n\n\"\"\"\nAutogenerated return type of VerifyVerifiableDomain\n\"\"\"\ntype VerifyVerifiableDomainPayload {\n  \"\"\"\n  A unique identifier for the client performing the mutation.\n  \"\"\"\n  clientMutationId: String\n\n  \"\"\"\n  The verifiable domain that was verified.\n  \"\"\"\n  domain: VerifiableDomain\n}\n\n\"\"\"\nA hovercard context with a message describing how the viewer is related.\n\"\"\"\ntype ViewerHovercardContext implements HovercardContext {\n  \"\"\"\n  A string describing this context\n  \"\"\"\n  message: String!\n\n  \"\"\"\n  An octicon to accompany this context\n  \"\"\"\n  octicon: String!\n\n  \"\"\"\n  Identifies the user who is related to this context.\n  \"\"\"\n  viewer: User!\n}\n\n\"\"\"\nA subject that may be upvoted.\n\"\"\"\ninterface Votable {\n  \"\"\"\n  Number of upvotes that this subject has received.\n  \"\"\"\n  upvoteCount: Int!\n\n  \"\"\"\n  Whether or not the current user can add or remove an upvote on this subject.\n  \"\"\"\n  viewerCanUpvote: Boolean!\n\n  \"\"\"\n  Whether or not the current user has already upvoted this subject.\n  \"\"\"\n  viewerHasUpvoted: Boolean!\n}\n\n\"\"\"\nA workflow contains meta information about an Actions workflow file.\n\"\"\"\ntype Workflow implements Node & UniformResourceLocatable {\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The Node ID of the Workflow object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The name of the workflow.\n  \"\"\"\n  name: String!\n\n  \"\"\"\n  The HTTP path for this workflow\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The runs of the workflow.\n  \"\"\"\n  runs(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n\n    \"\"\"\n    Ordering options for the connection\n    \"\"\"\n    orderBy: WorkflowRunOrder = {field: CREATED_AT, direction: DESC}\n  ): WorkflowRunConnection!\n\n  \"\"\"\n  The state of the workflow.\n  \"\"\"\n  state: WorkflowState!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this workflow\n  \"\"\"\n  url: URI!\n}\n\n\"\"\"\nA workflow that must run for this rule to pass\n\"\"\"\ntype WorkflowFileReference {\n  \"\"\"\n  The path to the workflow file\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  The ref (branch or tag) of the workflow file to use\n  \"\"\"\n  ref: String\n\n  \"\"\"\n  The ID of the repository where the workflow is defined\n  \"\"\"\n  repositoryId: Int!\n\n  \"\"\"\n  The commit SHA of the workflow file to use\n  \"\"\"\n  sha: String\n}\n\n\"\"\"\nA workflow that must run for this rule to pass\n\"\"\"\ninput WorkflowFileReferenceInput {\n  \"\"\"\n  The path to the workflow file\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  The ref (branch or tag) of the workflow file to use\n  \"\"\"\n  ref: String\n\n  \"\"\"\n  The ID of the repository where the workflow is defined\n  \"\"\"\n  repositoryId: Int!\n\n  \"\"\"\n  The commit SHA of the workflow file to use\n  \"\"\"\n  sha: String\n}\n\n\"\"\"\nA workflow run.\n\"\"\"\ntype WorkflowRun implements Node & UniformResourceLocatable {\n  \"\"\"\n  The check suite this workflow run belongs to.\n  \"\"\"\n  checkSuite: CheckSuite!\n\n  \"\"\"\n  Identifies the date and time when the object was created.\n  \"\"\"\n  createdAt: DateTime!\n\n  \"\"\"\n  Identifies the primary key from the database.\n  \"\"\"\n  databaseId: Int\n\n  \"\"\"\n  The log of deployment reviews\n  \"\"\"\n  deploymentReviews(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): DeploymentReviewConnection!\n\n  \"\"\"\n  The event that triggered the workflow run\n  \"\"\"\n  event: String!\n\n  \"\"\"\n  The workflow file\n  \"\"\"\n  file: WorkflowRunFile\n\n  \"\"\"\n  The Node ID of the WorkflowRun object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The pending deployment requests of all check runs in this workflow run\n  \"\"\"\n  pendingDeploymentRequests(\n    \"\"\"\n    Returns the elements in the list that come after the specified cursor.\n    \"\"\"\n    after: String\n\n    \"\"\"\n    Returns the elements in the list that come before the specified cursor.\n    \"\"\"\n    before: String\n\n    \"\"\"\n    Returns the first _n_ elements from the list.\n    \"\"\"\n    first: Int\n\n    \"\"\"\n    Returns the last _n_ elements from the list.\n    \"\"\"\n    last: Int\n  ): DeploymentRequestConnection!\n\n  \"\"\"\n  The HTTP path for this workflow run\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  A number that uniquely identifies this workflow run in its parent workflow.\n  \"\"\"\n  runNumber: Int!\n\n  \"\"\"\n  Identifies the date and time when the object was last updated.\n  \"\"\"\n  updatedAt: DateTime!\n\n  \"\"\"\n  The HTTP URL for this workflow run\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  The workflow executed in this workflow run.\n  \"\"\"\n  workflow: Workflow!\n}\n\n\"\"\"\nThe connection type for WorkflowRun.\n\"\"\"\ntype WorkflowRunConnection {\n  \"\"\"\n  A list of edges.\n  \"\"\"\n  edges: [WorkflowRunEdge]\n\n  \"\"\"\n  A list of nodes.\n  \"\"\"\n  nodes: [WorkflowRun]\n\n  \"\"\"\n  Information to aid in pagination.\n  \"\"\"\n  pageInfo: PageInfo!\n\n  \"\"\"\n  Identifies the total count of items in the connection.\n  \"\"\"\n  totalCount: Int!\n}\n\n\"\"\"\nAn edge in a connection.\n\"\"\"\ntype WorkflowRunEdge {\n  \"\"\"\n  A cursor for use in pagination.\n  \"\"\"\n  cursor: String!\n\n  \"\"\"\n  The item at the end of the edge.\n  \"\"\"\n  node: WorkflowRun\n}\n\n\"\"\"\nAn executed workflow file for a workflow run.\n\"\"\"\ntype WorkflowRunFile implements Node & UniformResourceLocatable {\n  \"\"\"\n  The Node ID of the WorkflowRunFile object\n  \"\"\"\n  id: ID!\n\n  \"\"\"\n  The path of the workflow file relative to its repository.\n  \"\"\"\n  path: String!\n\n  \"\"\"\n  The direct link to the file in the repository which stores the workflow file.\n  \"\"\"\n  repositoryFileUrl: URI!\n\n  \"\"\"\n  The repository name and owner which stores the workflow file.\n  \"\"\"\n  repositoryName: URI!\n\n  \"\"\"\n  The HTTP path for this workflow run file\n  \"\"\"\n  resourcePath: URI!\n\n  \"\"\"\n  The parent workflow run execution for this file.\n  \"\"\"\n  run: WorkflowRun!\n\n  \"\"\"\n  The HTTP URL for this workflow run file\n  \"\"\"\n  url: URI!\n\n  \"\"\"\n  If the viewer has permissions to push to the repository which stores the workflow.\n  \"\"\"\n  viewerCanPushRepository: Boolean!\n\n  \"\"\"\n  If the viewer has permissions to read the repository which stores the workflow.\n  \"\"\"\n  viewerCanReadRepository: Boolean!\n}\n\n\"\"\"\nWays in which lists of workflow runs can be ordered upon return.\n\"\"\"\ninput WorkflowRunOrder {\n  \"\"\"\n  The direction in which to order workflow runs by the specified field.\n  \"\"\"\n  direction: OrderDirection!\n\n  \"\"\"\n  The field by which to order workflows.\n  \"\"\"\n  field: WorkflowRunOrderField!\n}\n\n\"\"\"\nProperties by which workflow run connections can be ordered.\n\"\"\"\nenum WorkflowRunOrderField {\n  \"\"\"\n  Order workflow runs by most recently created\n  \"\"\"\n  CREATED_AT\n}\n\n\"\"\"\nThe possible states for a workflow.\n\"\"\"\nenum WorkflowState {\n  \"\"\"\n  The workflow is active.\n  \"\"\"\n  ACTIVE\n\n  \"\"\"\n  The workflow was deleted from the git repository.\n  \"\"\"\n  DELETED\n\n  \"\"\"\n  The workflow was disabled by default on a fork.\n  \"\"\"\n  DISABLED_FORK\n\n  \"\"\"\n  The workflow was disabled for inactivity in the repository.\n  \"\"\"\n  DISABLED_INACTIVITY\n\n  \"\"\"\n  The workflow was disabled manually.\n  \"\"\"\n  DISABLED_MANUALLY\n}\n\n\"\"\"\nRequire all changes made to a targeted branch to pass the specified workflows before they can be merged.\n\"\"\"\ntype WorkflowsParameters {\n  \"\"\"\n  Workflows that must pass for this rule to pass.\n  \"\"\"\n  workflows: [WorkflowFileReference!]!\n}\n\n\"\"\"\nRequire all changes made to a targeted branch to pass the specified workflows before they can be merged.\n\"\"\"\ninput WorkflowsParametersInput {\n  \"\"\"\n  Workflows that must pass for this rule to pass.\n  \"\"\"\n  workflows: [WorkflowFileReferenceInput!]!\n}\n\n\"\"\"\nA valid x509 certificate string\n\"\"\"\nscalar X509Certificate\n"
  },
  {
    "path": "examples/language/gremlin.gremlin",
    "content": "// social_graph.gremlin\n// Example traversal to test scc complexity definitions for Gremlin.\n\n// Find a person named \"Marko\" and get his age\nmarko = g.V().has('person','name','marko').values('age')\n\n// This traversal finds Marko's friends and their friends,\n// but emits the path along the way, which adds complexity.\ng.V().has('person', 'name', 'marko').\n  repeat(out('knows')).\n  emit().\n  path().by('name')\n\n// A more complex query to find people Marko knows who are over 30\n// and also know someone who created software.\n// The .where() and .and() steps increase complexity.\ng.V().has('person','name','marko').out('knows').as('friend').\n  where(\n    values('age').is(gt(30))\n  ).\n  and(\n    out('created').has('name', 'lop')\n  ).\n  values('name')\n\n// Using .union() to combine two different traversal paths\ng.V().has('person','name','josh').\n  union(\n    out('created').values('name'), // what he created\n    in('created').values('name')   // who created things with him\n  )"
  },
  {
    "path": "examples/language/gwion.gw",
    "content": "#import Std\n#import Math\n#import Modules\n\nfun int get_ncycles() {\n  if(me.args())\n    return me.arg(0) => Std.atoi;\n  return 2;\n}\n\nfun float get_user_duration() {\n  if(me.args() > 1)\n    return me.arg(1) => Std.atof;\n  return 1;\n}\n\nfun dur get_duration() {\n  return get_user_duration()::second;\n}\n\n\nget_ncycles() :=> const int ncycles;\nget_duration() :=> var dur duration;\n\n1 :=> var int compensate;\nconst SinOsc s ~> dac;\n\nwhile(duration >= samp) {\n  repeat(ncycles * compensate) {\n    Math.rand2f(220, 880) :=> s.freq;\n    duration => now;\n  }\n  duration/2. :=> duration;\n  2 *=> compensate;\n}\n"
  },
  {
    "path": "examples/language/haml.haml",
    "content": "# file: app/controllers/movies_controller.rb\n\nclass MoviesController < ApplicationController\n  def index\n    @title = \"Teen Wolf\"\n  end\nend\n\n-# file: app/views/movies/index.html.haml\n\n#content\n .title\n   %h1= @title\n   = link_to 'Home', home_url"
  },
  {
    "path": "examples/language/hare.ha",
    "content": "use fmt;\nuse strings;\n\nexport type error = !str;\n\ntype example = struct {\n\tnumber: i64,\n\terror: error,\n};\n\nfn function(a: i32, b: i32) i32 = a + b;\n\nexport fn main() void = {\n\tfor (true) {\n\t\tbreak;\n\t};\n\n\tconst string = \"A string\";\t// a comment\n\tconst another_string = `aaa`;\n\tlet iter = strings::iter(string);\n\n\tlet r = match (strings::next(&iter)) {\n\tcase void => return;\n\tcase let r: rune =>\n\t\t// comment\n\t\tyield r;\n\t};\n\n\tswitch (r) {\n\tcase 'a' =>\n\t\tabort();\n\tcase =>\n\t\tif (r != 'd') fmt::println(\"not d!\")! else fmt::println(\"d!\")!;\n\t};\n\n\tfor (let i = 0z; i <= 10; i += 1) {\n\t\tfmt::print(i, ' ')!;\n\t};\n};\n"
  },
  {
    "path": "examples/language/haskell.hs",
    "content": "module RBTree\n    ( RBTree\n    , empty\n    , insert\n    , member\n    , fromList\n    ) where\n\ndata Color = Red | Black\n    deriving (Show, Eq)\n\ndata RBTree a = Empty \n              | Node Color (RBTree a) a (RBTree a)\n    deriving (Show, Eq)\n\nempty :: RBTree a\nempty = Empty\n\nmember :: (Ord a) => a -> RBTree a -> Bool\nmember _ Empty = False\nmember x (Node _ left val right) =\n    case compare x val of\n        LT -> member x left\n        GT -> member x right\n        EQ -> True\n\ninsert :: (Ord a) => a -> RBTree a -> RBTree a\ninsert x s = makeBlack (ins s)\n  where\n    makeBlack Empty = Empty -- never come here\n    makeBlack (Node _ l v r) = Node Black l v r\n\n    ins Empty = Node Red Empty x Empty\n    ins (Node color l v r)\n        | x < v     = balance color (ins l) v r\n        | x > v     = balance color l v (ins r)\n        | otherwise = Node color l v r  -- discard duplicated value\n\nbalance :: Color -> RBTree a -> a -> RBTree a -> RBTree a\nbalance Black (Node Red (Node Red a x b) y c) z d =\n    Node Red (Node Black a x b) y (Node Black c z d)\nbalance Black (Node Red a x (Node Red b y c)) z d =\n    Node Red (Node Black a x b) y (Node Black c z d)\nbalance Black a x (Node Red (Node Red b y c) z d) =\n    Node Red (Node Black a x b) y (Node Black c z d)\nbalance Black a x (Node Red b y (Node Red c z d)) =\n    Node Red (Node Black a x b) y (Node Black c z d)\nbalance color l v r = Node color l v r\n\nfromList :: (Ord a) => [a] -> RBTree a\nfromList = foldr insert empty\n"
  },
  {
    "path": "examples/language/hcl.hcl",
    "content": "#!/usr/bin/env packer build --force\n#\n#  Author: Hari Sekhon\n#  Date: 2023-06-13 02:46:59 +0100 (Tue, 13 Jun 2023)\n#\n#  vim:ts=2:sts=2:sw=2:et:filetype=conf\n#\n#  https://github.com/HariSekhon/Templates\n#\n#  License: see accompanying Hari Sekhon LICENSE file\n#\n#  If you're using my code you're welcome to connect with me on LinkedIn and optionally send me feedback to help steer this or other code I publish\n#\n#  https://www.linkedin.com/in/HariSekhon\n#\n\n# Uses adjacent Debian Preseed from installers/\n#\n# 'packer' command must be run from the same directory as this file so the preseed.cfg provided is auto-served via HTTP\n\n# ============================================================================ #\n#                  P a c k e r   -   F e d o r a   -   Q e m u\n# ============================================================================ #\n\npacker {\n  # Data sources only available in 1.7+\n  required_version = \">= 1.7.0, < 2.0.0\"\n  required_plugins {\n    qemu = {\n      version = \"~> 1.1\"\n      source  = \"github.com/hashicorp/qemu\"\n    }\n  }\n}\n\n# https://alt.fedoraproject.org/alt/\nvariable \"version\" {\n  type    = string\n  default = \"38\"\n}\n\nvariable \"iso\" {\n  type    = string\n  default = \"Fedora-Server-dvd-x86_64-38-1.6.iso\"\n}\n\nvariable \"checksum\" {\n  type    = string\n  default = \"09dee2cd626a269aefc67b69e63a30bd0baa52d4\"\n}\nlocals {\n  name    = \"fedora\"\n  url     = \"https://download.fedoraproject.org/pub/fedora/linux/releases/${var.version}/Server/x86_64/iso/${var.iso}\"\n  vm_name = \"${local.name}-${var.version}\"\n  arch    = \"x86_64\"\n}\n\n# https://developer.hashicorp.com/packer/plugins/builders/qemu\nsource \"qemu\" \"fedora\" {\n  vm_name              = local.vm_name\n  qemu_binary          = \"qemu-system-x86_64\"\n  machine_type         = \"pc\"\n  iso_url              = local.url\n  iso_checksum         = var.checksum\n  cpus                 = 2\n  memory               = 2048\n  net_device           = \"virtio-net\"\n  disk_interface       = \"virtio-scsi\" # or virtio?\n  format               = \"qcow2\"\n  disk_discard         = \"unmap\"\n  disk_image           = true\n  disk_size            = 40960\n  disk_additional_size = []\n  output_directory     = \"output-${local.vm_name}-${local.arch}\"\n  headless             = false\n  use_default_display  = true # might be needed on Mac to avoid errors about sdl not being available\n  http_directory       = \"installers\"\n  ssh_timeout          = \"30m\"\n  ssh_password         = \"packer\"\n  ssh_username         = \"packer\"\n  shutdown_command     = \"echo 'packer' | sudo -S shutdown -P now\"\n  boot_wait            = \"5s\"\n  boot_command = [\n    \"<up><wait>\",\n    \"e\",\n    \"<down><down><down><left>\",\n    # leave a space from last arg\n    \" inst.ks=http://{{.HTTPIP}}:{{.HTTPPort}}/anaconda-ks.cfg <f10>\"\n  ]\n  qemuargs = [\n    #[\"-smbios\", \"type=1,serial=ds=nocloud-net;instance-id=packer;seedfrom=http://{{ .HTTPIP }}:{{ .HTTPPort }}/\"],\n    # spice-app isn't respected despite doc https://www.qemu.org/docs/master/system/invocation.html#hxtool-3\n    # packer-builder-qemu plugin: Qemu stderr: qemu-system-x86_64: -display spice-app: Parameter 'type' does not accept value 'spice-app'\n    #[\"-display\", \"spice-app\"],\n    #[\"-display\", \"cocoa\"],  # Mac only\n    #[\"-display\", \"vnc:0\"],  # starts VNC by default, but doesn't launch user's vncviewer - ubuntu-x86_64.qemu.pkr.hcl\n  ]\n  # Only on ARM Macs\n  #machine_type = \"virt\"  # packer-builder-qemu plugin: Qemu stderr: qemu-system-x86_64: unsupported machine type\n}\n\n\nbuild {\n  name = local.name\n\n  sources = [\"source.qemu.fedora\"]\n\n  # https://developer.hashicorp.com/packer/docs/provisioners/shell-local\n  #\n  #provisioner \"shell-local\" {\n  #  environment_vars = [\n  #    \"VM_NAME=${local.vm_name}\"\n  #  ]\n  #  script = \"./scripts/local_vboxsf.sh\"\n  #}\n\n  # https://developer.hashicorp.com/packer/docs/provisioners/shell\n  #\n  provisioner \"shell\" {\n    scripts = [\n      \"./scripts/version.sh\",\n      #\"./scripts/mount_vboxsf.sh\",\n      #\"./scripts/collect_anaconda.sh\",\n      \"./scripts/final.sh\",\n    ]\n    execute_command = \"{{ .Vars }} echo 'packer' | sudo -S -E bash '{{ .Path }}' '${packer.version}'\"\n  }\n\n  post-processor \"checksum\" {\n    checksum_types      = [\"md5\", \"sha512\"]\n    keep_input_artifact = true\n    output              = \"output-{{.BuildName}}/{{.BuildName}}.{{.ChecksumType}}\"\n  }\n}\n"
  },
  {
    "path": "examples/language/ini.ini",
    "content": "; last modified 1 April 2001 by John Doe\n[owner]\nname = John Doe\norganization = Acme Widgets Inc.\n\n[database]\n; use IP address in case network name resolution is not working\nserver = 192.0.2.62\nport = 143\nfile = \"payroll.dat\"\n"
  },
  {
    "path": "examples/language/javascript.js",
    "content": "class Person {\n    constructor(name) {\n        this.name = name;\n    }\n}\n\nclass Student extends Person {\n    constructor(name, id) {\n        super(name);\n        this.id = id;\n    }\n}\n\nfunction PrintName(student) {\n    console.log(student.name);\n}\n\nfunction PrintID(student) {\n    console.log(student.id);\n}\n\nconst bob = new Student(\"Robert\", 12345);\nPrintName(bob)  // Robert\nPrintID(bob)    // 12345\n"
  },
  {
    "path": "examples/language/jcl.jcl",
    "content": "//MTLUSR00 JOB (999,POK),'METAL',CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID\n//*  example from: https://www.ibm.com/docs/en/zos/2.4.0?topic=examples-jcl-example\n//* Lines starting with '//*' are comments\n//* the comment sign was included in quotes\n//* BINDER USING THE METAL XPI SAMPLE PROGRAM \n//* //LKED     EXEC  PGM=IEWL,REGION=256K, \n//    PARM='LIST,LET,XREF,MAP,AC(0),RENT,REUS,AMODE(31)' \n//SYSPRINT DD  SYSOUT=* \n//SYSUT1   DD  SPACE=(CYL,(10,10)),UNIT=SYSDA \n//SYSLMOD  DD  DSN=MTLUSR.XPLINK.LOAD,DISP=SHR \n//SYSLIB   DD  DSN=CICSTS41.CICS.SDFHLOAD,DISP=SHR \n//         DD  DISP=SHR,DSN=MTLUSR.METAL.OBJ \n//         DD  DISP=SHR,DSN=MTLUSR.METALC.SCCNOBJ \n//USROBJ   DD  DSN=MTLUSR.METAL.OBJ,DISP=SHR \n//SYSLIN    DD *  \nINCLUDE USROBJ(MTLBTXPI)  \nINCLUDE USROBJ(MTL2XPI)  \nENTRY MTLBTXPI  \nNAME  MTLBTXPI(R) \n/*\n"
  },
  {
    "path": "examples/language/jq.jq",
    "content": "# Use gojq for infinite precision integer arithmetic\ndef tobase($b):\n    def digit: \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\"[.:.+1];\n    def mod: . % $b;\n    def div: ((. - mod) / $b);\n    def digits: recurse( select(. >= $b) | div) | mod ;\n\n    select(2 <= $b and $b <= 36)\n    | [digits | digit] | reverse | add;\n\ndef send_more_money:\n    def choose(m;n;used): ([range(m;n+1)] - used)[];\n    def num(a;b;c;d): 1000*a + 100*b + 10*c + d;\n    def num(a;b;c;d;e): 10*num(a;b;c;d) + e;\n    first(\n      1 as $m\n      | 0 as $o\n      | choose(8;9;[]) as $s\n      | choose(2;9;[$s]) as $e\n      | choose(2;9;[$s,$e]) as $n\n      | choose(2;9;[$s,$e,$n]) as $d\n      | choose(2;9;[$s,$e,$n,$d]) as $r\n      | choose(2;9;[$s,$e,$n,$d,$r]) as $y\n      | select(num($s;$e;$n;$d) + num($m;$o;$r;$e) ==\n               num($m;$o;$n;$e;$y))\n      | [$s,$e,$n,$d,$m,$o,$r,$e,$m,$o,$n,$e,$y] );"
  },
  {
    "path": "examples/language/jsonc.jsonc",
    "content": "// Line comment\n{\n  /*\n   * Multi\n   * Line\n   * Comment\n   */\n  \"text\": \"JSON with comments\"\n}\n"
  },
  {
    "path": "examples/language/jsonnet.jsonnet",
    "content": "local foo = \"bar\";\n\n// This is a comment\n# This is another comment\n/*\n * This is a bigger comment\n */\n\n{\n  local bar = \"foo\",\n\n  array: [\n    \"foo\",\n    \"bar\",\n    123,\n    { foo: \"bar\" },\n  ],\n\n  number: 3e10,\n  anotherNumber: 3.14,\n  yetAnotherNumber: 4,\n  bool: true,\n\n  f:: function(x) x > 0,\n\n  object: {\n    foo: $.f(1) || $.f(-1),\n    bar: if std.objectHas(self, \"foo\") then \"foo\" else \"bar\",\n    another: {\n      foo: self[\"bar.bar\"],\n    },\n  } + {\n    another+: {\n      \"bar.bar\": |||\n        foo\n        %(bar)s\n      ||| % $.object,\n    },\n  },\n}\n"
  },
  {
    "path": "examples/language/kitchen-sink.json5",
    "content": "// example from https://json5.org/\n{\n  // comments\n  unquoted: 'and you can quote me on that',\n  singleQuotes: 'I can use \"double quotes\" here',\n  lineBreaks: \"Look, Mom! \\\nNo \\\\n's!\",\n  hexadecimal: 0xdecaf,\n  leadingDecimalPoint: .8675309, andTrailing: 8675309.,\n  positiveSign: +1,\n  trailingComma: 'in objects', andIn: ['arrays',],\n  \"backwardsCompatible\": \"with JSON\",\n}\n"
  },
  {
    "path": "examples/language/koto.koto",
    "content": "get_primes = |n: Number| -> Iterator\n  if n <= 1\n    return\n\n  sieve = []\n  sieve.resize (n + 1), true\n\n  for x in 2..=n.sqrt()\n    if sieve[x]\n      i = x * x\n      while i <= n\n        sieve[i] = false\n        i += x\n\n  (2..=n).keep |x| sieve[x]\n\nassert_eq (get_primes 20).to_tuple(), (2, 3, 5, 7, 11, 13, 17, 19)"
  },
  {
    "path": "examples/language/lalrpop.lalrpop",
    "content": "// 37 lines 26 code 3 comments 8 blanks\nuse crate::ast::{ExprSymbol, Opcode};\nuse crate::tok9::Tok;\n\ngrammar<'input>(input: &'input str);\n\n// line comment\npub Expr: Box<ExprSymbol<'input>> = { // comment 1\n    Expr r##\"verbatim2\"## Factor => Box::new(ExprSymbol::Op(<>)),\n    Factor, // comment 2\n};\n\nFactor: Box<ExprSymbol<'input>> = { // comment 3\n    Factor \"FactorOp\" Term => Box::new(ExprSymbol::Op(<>)),\n    Term,\n};\n\n// comment 4\n\nTerm: Box<ExprSymbol<'input>> = {\n    r#\"verbatim\"# => Box::new(ExprSymbol::NumSymbol(<>)),\n    \"(\" <Expr> \")\"\n};\n\nextern {\n    type Location = usize;\n    type Error = ();\n\n    enum Tok<'input> {\n        r#\"verbatim\"# => Tok::NumSymbol(<&'input str>),\n        \"FactorOp\" => Tok::FactorOp(<Opcode>),\n        r##\"verbatim2\"## => Tok::ExprOp(<Opcode>),\n        \"(\" => Tok::ParenOpen,\n        \")\" => Tok::ParenClose,\n    }\n}\n"
  },
  {
    "path": "examples/language/license",
    "content": ""
  },
  {
    "path": "examples/language/linear_solve.fut",
    "content": "-- Solving a linear system using Gauss-Jordan elimination without pivoting.\n--\n-- Taken from https://www.cs.cmu.edu/~scandal/nesl/alg-numerical.html#solve\n--\n-- ==\n-- input { [[1.0f32, 2.0f32, 1.0f32], [2.0f32, 1.0f32, 1.0f32], [1.0f32, 1.0f32, 2.0f32]]\n--         [1.0f32, 2.0f32, 3.0f32] }\n-- output { [0.5f32, -0.5f32, 1.5f32] }\n\nlet Gauss_Jordan [n][m] (A: [n][m]f32): [n][m]f32 =\n  loop (A) for i < n do\n    let irow = A[0]\n    let Ap = A[1:n]\n    let v1 = irow[i]\n    let irow = map (/v1) irow\n    let Ap = map (\\jrow ->\n                    let scale = jrow[i]\n                    in map2 (\\x y -> y - scale * x) irow jrow)\n                 Ap\n    in concat Ap ([irow])\n\nlet linear_solve [n][m] (A: [n][m]f32) (b: [n]f32): [n]f32 =\n  -- Pad the matrix with b.\n  let Ap = map2 (++) A (transpose [b])\n  let Ap' = Gauss_Jordan Ap\n  -- Extract last column.\n  in Ap'[0:n,m]\n\nlet main [n][m] (A: [n][m]f32) (b: [n]f32): [n]f32 = linear_solve A b"
  },
  {
    "path": "examples/language/livescript.ls",
    "content": "# Easy listing of implicit objects\ntable1 =\n  * id: 1\n    name: 'george'\n  * id: 2\n    name: 'mike'\n  * id: 3\n    name: 'donald'\n\n\n\n\n\ntable2 =\n  * id: 2\n    age: 21\n  * id: 1\n    age: 20\n  * id: 3\n    age: 26\n\n\n\n\n# Implicit access, accessignment\nup-case-name = (.name .= to-upper-case!)\n\n# List comprehensions, destructuring, piping\n[{id:id1, name, age} for {id:id1, name} in table1\n                     for {id:id2, age} in table2\n                     when id1 is id2]\n|> sort-by (.id) # using 'sort-by' from prelude.ls\n|> each up-case-name # using 'each' from prelude.ls\n|> JSON.stringify\n#=>\n#[{\"id\":1,\"name\":\"GEORGE\",\"age\":20},\n# {\"id\":2,\"name\":\"MIKE\",  \"age\":21},\n# {\"id\":3,\"name\":\"DONALD\",\"age\":26}]\n\n\n\n\n\n\n\n\n\n\n\n# operators as functions, piping\nmap (.age), table2 |> fold1 (+)\n#=> 67 ('fold1' and 'map' from prelude.ls)"
  },
  {
    "path": "examples/language/llvmir.ll",
    "content": "; f returns the sum of the given operands.\ndefine i32 @f(i32 %x, i32 %y) {\n\t%result = add i32 %x, %y\n\tret i32 %result\n}"
  },
  {
    "path": "examples/language/lua.lua",
    "content": "-- lua test\n\nlocal function f(a)\n    for i = 1, a do\n        io.write(a .. \" x \" .. i .. \" = \" .. (i*a))\n        if i ~= a then\n            io.write(', ')\n        end\n    end\n    print()\nend\n\nfor i = 1, 9 do\n    f(i)\nend\n"
  },
  {
    "path": "examples/language/luau.luau",
    "content": "-- test for luau\n\nlocal function f(a: number): string\n    local res = \"\"\n    for i = 1, a do\n        res = res .. (a .. \" x \" .. i .. \" = \" .. (i*a))\n        if i ~= a then\n            res = res .. (', ')\n        end\n    end\n    return res\nend\n\nfor i = 1, 9 do\n    print(f(i))\nend\n"
  },
  {
    "path": "examples/language/luna.luna",
    "content": "def barify t: 'bar ' + t.toText + ' bar'\n\n# This is a comment\nreportedValue = case myNumber of\n    Just v -> 'Got a number ' + v.toText + '.'\n    Nothing -> 'Did not get a number.'\nprint reportedValue\n\n\nclass Shape:\n    Circle:\n        radius :: Real\n    Rectangle:\n        width  :: Real\n        height :: Real\n\n    def perimeter: case self of\n        Circle r: 2.0 * pi * r\n        Rectangle w h: 2.0 * w + 2.0 * h\n\n    def area: case self of\n        Circle r: pi * r * r\n        Rectangle w h: w * h"
  },
  {
    "path": "examples/language/main.cj",
    "content": "import std.sync.*\nimport std.time.*\nimport std.collection.*\n\nlet count = AtomicInt64(0)\n\nmain(): Int64 {\n    let list = ArrayList<Future<Int64>>()\n\n    // create 1000 threads.\n    for (i in 0..1000) {\n        let fut = spawn {\n            sleep(Duration.millisecond) // sleep for 1ms.\n            count.fetchAdd(1)\n        }\n        list.append(fut)\n    }\n\n    // Wait for all threads finished.\n    for (f in list) {\n        f.get()\n    }\n\n    let val = count.load()\n    println(\"count = ${val}\")\n    return 0\n}\n"
  },
  {
    "path": "examples/language/makefile",
    "content": "makefile"
  },
  {
    "path": "examples/language/metal.metal",
    "content": "/*\n\n Copyright (C) 2016 Apple Inc. All Rights Reserved.\n\n See LICENSE.txt for this sample’s licensing information\n\n\n\n Abstract:\n\n A shader using random noise to create a wood texture for the Metal Shader Showcase. This is an example of a 3D procedural texture based shader. The wood texture is accomplished by making rings of two different colors and using perlin noise to add some variation to the rings.\n\n */\n\n\n\n#include <metal_stdlib>\n\n#include <metal_common>\n\n#include <simd/simd.h>\n\n#include \"AAPLSharedTypes.h\"\n\n\n\nusing namespace metal;\n\n\n\n\n\nstruct ColorInOut {\n\n    float4 position [[position]];\n\n    float3 normal_cameraspace;\n\n    float3 eye_direction_cameraspace;\n\n    float3 light_direction_cameraspace;\n\n    float3 position_modelspace;\n\n    float3 position_cameraspace;\n\n};\n\n\n\nfloat rand(int x, int y, int z);\n\nfloat smoothNoise(float x, float y, float z);\n\nfloat noise3D(float unscaledX, float unscaledY, float unscaledZ);\n\nfloat3 woodColor(float3 position);\n\n\n\n// Global constants\n\nconstant float3 light_position = float3(-1.0, 1.0, -1.0);\n\nconstant float4 light_color = float4(1.0, 1.0, 1.0, 1.0);\n\nconstant float teapotMin = -0.144000;\n\nconstant float teapotMax = 0.164622;\n\nconstant float scaleLength = teapotMax - teapotMin;\n\nconstant uint NOISE_DIM = 512;\n\nconstant float NOISE_SIZE = 64;\n\nconstant float3 darkBrown = float3(0.234f, 0.125f, 0.109f);\n\nconstant float3 lightBrown = float3(0.168f, 0.133f, 0.043f);\n\nconstant float numberOfRings = 84.0;\n\nconstant float turbulence = 0.015;\n\nconstant float PI = 3.14159;\n\nconstant float  materialShine = 50.0;\n\n\n\n\n\n// Generate a random float in the range [0.0f, 1.0f] using x, y, and z (based on the xor128 algorithm)\n\nfloat rand(int x, int y, int z)\n\n{\n\n    int seed = x + y * 57 + z * 241;\n\n    seed= (seed<< 13) ^ seed;\n\n    return (( 1.0 - ( (seed * (seed * seed * 15731 + 789221) + 1376312589) & 2147483647) / 1073741824.0f) + 1.0f) / 2.0f;\n\n}\n\n\n\n// Return the interpolated noise for the given x, y, and z values. This is done by finding the whole\n\n// number before and after the given position in each dimension. Using these values we can get 6 vertices\n\n// that represent a cube that surrounds the position. We get each of the vertices noise values, and using the\n\n// given position, interpolate between the noise values of the vertices to get the smooth noise.\n\nfloat smoothNoise(float x, float y, float z)\n\n{\n\n    // Get the truncated x, y, and z values\n\n    int intX = x;\n\n    int intY = y;\n\n    int intZ = z;\n\n\n\n    // Get the fractional reaminder of x, y, and z\n\n    float fractX = x - intX;\n\n    float fractY = y - intY;\n\n    float fractZ = z - intZ;\n\n\n\n    // Get first whole number before\n\n    int x1 = (intX + NOISE_DIM) % NOISE_DIM;\n\n    int y1 = (intY + NOISE_DIM) % NOISE_DIM;\n\n    int z1 = (intZ + NOISE_DIM) % NOISE_DIM;\n\n\n\n    // Get the number after\n\n    int x2 = (x1 + NOISE_DIM - 1) % NOISE_DIM;\n\n    int y2 = (y1 + NOISE_DIM - 1) % NOISE_DIM;\n\n    int z2 = (z1 + NOISE_DIM - 1) % NOISE_DIM;\n\n\n\n    // Tri-linearly interpolate the noise\n\n    float sumY1Z1 = mix(rand(x2,y1,z1), rand(x1,y1,z1), fractX);\n\n    float sumY1Z2 = mix(rand(x2,y1,z2), rand(x1,y1,z2), fractX);\n\n    float sumY2Z1 = mix(rand(x2,y2,z1), rand(x1,y2,z1), fractX);\n\n    float sumY2Z2 = mix(rand(x2,y2,z2), rand(x1,y2,z2), fractX);\n\n\n\n    float sumZ1 = mix(sumY2Z1, sumY1Z1, fractY);\n\n    float sumZ2 = mix(sumY2Z2, sumY1Z2, fractY);\n\n\n\n    float value = mix(sumZ2, sumZ1, fractZ);\n\n\n\n    return value;\n\n}\n\n\n\n// Generate perlin noise for the given input values. This is done by generating smooth noise at mutiple\n\n// different sizes and adding them together.\n\nfloat noise3D(float unscaledX, float unscaledY, float unscaledZ)\n\n{\n\n    // Scale the values to force them in the range [0, NOISE_DIM]\n\n    float x = ((unscaledX - teapotMin) / scaleLength) * NOISE_DIM;\n\n    float y = ((unscaledY - teapotMin) / scaleLength) * NOISE_DIM;\n\n    float z = ((unscaledZ - teapotMin) / scaleLength) * NOISE_DIM;\n\n\n\n    float value = 0.0f, size = NOISE_SIZE, div = 0.0;\n\n\n\n    //Add together smooth noise of increasingly smaller size.\n\n    while(size >= 1.0f)\n\n    {\n\n        value += smoothNoise(x / size, y / size, z / size) * size;\n\n        div += size;\n\n        size /= 2.0f;\n\n    }\n\n    value /= div;\n\n\n\n    return value;\n\n}\n\n\n\n// Calculate the wood color given the position\n\nfloat3 woodColor(float3 position)\n\n{\n\n    float x = position.x, y = position.y, z = position.z;\n\n\n\n    // Get the distance of the point from the y-axis to identify whether it will be a ring or not.\n\n    // Get the smooth value for that point to add some randomness to the rings and scale the\n\n    // randomness by a factor called turbulence. Use the cosine function to make the rings and\n\n    // interpolate between the two wood ring colors.\n\n    float distanceValue = sqrt(x*x + z*z) + turbulence * noise3D(x, y, z);\n\n    float cosineValue = fabs(cos(2.0f * numberOfRings * distanceValue * PI));\n\n\n\n    float3 finalColor = darkBrown + cosineValue * lightBrown;\n\n    return finalColor;\n\n}\n\n\n\n// Wood vertex shader function\n\nvertex ColorInOut wood_vertex(device packed_float3* vertices [[ buffer(0) ]],\n\n                              device packed_float3* normals [[ buffer(1) ]],\n\n                              constant AAPL::uniforms_t& uniforms [[ buffer(2) ]],\n\n                              unsigned int vid [[ vertex_id ]])\n\n{\n\n    ColorInOut out;\n\n\n\n    float4x4 model_matrix = uniforms.model_matrix;\n\n    float4x4 view_matrix = uniforms.view_matrix;\n\n    float4x4 projection_matrix = uniforms.projection_matrix;\n\n    float4x4 mvp_matrix = projection_matrix * view_matrix * model_matrix;\n\n    float4x4 model_view_matrix = view_matrix * model_matrix;\n\n\n\n    // Calculate the position of the object from the perspective of the camera\n\n    float4 vertex_position_modelspace = float4(float3(vertices[vid]), 1.0f);\n\n    out.position = mvp_matrix * vertex_position_modelspace;\n\n    out.position_modelspace = vertices[vid];\n\n\n\n    // Calculate the normal from the perspective of the camera\n\n    float3 normal = normals[vid];\n\n    out.normal_cameraspace = (normalize(model_view_matrix * float4(normal, 0.0f))).xyz;\n\n\n\n    // Calculate the view vector from the perspective of the camera\n\n    float3 vertex_position_cameraspace = ( view_matrix * model_matrix * vertex_position_modelspace ).xyz;\n\n    out.eye_direction_cameraspace = float3(0.0f,0.0f,0.0f) - vertex_position_cameraspace;\n\n\n\n    // Calculate the direction of the light from the position of the camera\n\n    float3 light_position_cameraspace = ( view_matrix * float4(light_position,1.0f)).xyz;\n\n    out.light_direction_cameraspace = light_position_cameraspace + out.eye_direction_cameraspace;\n\n\n\n    return out;\n\n}\n\n\n\n// Wood fragment shader function\n\nfragment half4 wood_fragment(ColorInOut in [[stage_in]])\n\n{\n\n    half4 color(1.0f);\n\n\n\n    // Get the woods base color using the woodColor function\n\n    float3 baseColor = woodColor(in.position_modelspace);\n\n\n\n    // Generate material ambient, difuse, and specular colors derived from the base color of the wood\n\n    float3 material_ambient_color = 0.5f * baseColor;\n\n    float3 material_diffuse_color = baseColor;\n\n    float3 material_specular_color = float3(0.4f);\n\n\n\n    // Calculate the ambient color\n\n    float3 ambient_component = material_ambient_color;\n\n\n\n    // Calculate the diffuse color\n\n    float3 n = normalize(in.normal_cameraspace);\n\n    float3 l = normalize(in.light_direction_cameraspace);\n\n    float n_dot_l = saturate( dot(n, l) );\n\n\n\n    float3 diffuse_component = light_color.xyz * n_dot_l * material_diffuse_color;\n\n\n\n    // Calculate the specular color\n\n    float3 e = normalize(in.eye_direction_cameraspace);\n\n    float3 r = -l + 2.0f * n_dot_l * n;\n\n    float e_dot_r =  saturate( dot(e, r) );\n\n    float3 specular_component = material_specular_color * light_color.xyz * pow(e_dot_r, materialShine);\n\n\n\n    // Combine the ambient, specular and diffuse colors to get the final color\n\n    color.rgb = half3(ambient_component + diffuse_component + specular_component);\n\n\n\n    return color;\n\n};"
  },
  {
    "path": "examples/language/mojo.mojo",
    "content": "from std.collections import InlineArray\n\nstruct StaticMultiplicationTable:\n    comptime length = 81\n    var data: InlineArray[Int, Self.length]\n\n    fn __init__(out self):\n        self.data = InlineArray[Int, Self.length](fill=0)\n        \n        # unroll the loop\n        # all completed during compiling time\n        comptime for i in range(1, 10):\n            comptime for j in range(1, 10):\n                self.data[(i-1)*9 + (j-1)] = i * j\n\n    fn display(self):\n        comptime for i in range(1, 10):\n            var line: String = \"\"\n            comptime for j in range(1, 10):\n                if j <= i:\n                    var val = self.data[(i-1)*9 + (j-1)]\n                    line += String(j) + \"x\" + String(i) + \"=\" + String(val) + \"\\t\"\n            print(line)\n\nfn main():\n    comptime table_const = StaticMultiplicationTable()\n    var table = materialize[table_const]()\n    \n    # run\n    table.display()\n"
  },
  {
    "path": "examples/language/moonbit.mbt",
    "content": "fn iter(data : Bytes) -> Iter[Byte] {\n  Iter::new(\n    fn(yield) {\n      // The code that actually does the iteration\n      /////////////////////////////////////////////\n      for i = 0, len = data.length(); i < len; i = i + 1 {\n        if yield(data[i]) == IterEnd {\n          break IterEnd\n        }\n      /////////////////////////////////////////////\n      } else {\n        IterContinue\n      }\n    },\n  )\n}"
  },
  {
    "path": "examples/language/nature.n",
    "content": "// example from https://github.com/nature-lang/nature/blob/89d3196ec6f6e077fc7c3cba05c58d9f1bea6a03/tests/features/cases/20230811_00_template/main.n\n\nimport syscall\nimport package.zlib\n\nfn main():void! {\n    var input = 'mock/input.txt'\n    var output = 'output.gz'\n\n    var fd = syscall.open(input, syscall.O_RDONLY, 0666)\n\n    var gzfile = zlib.gzopen(output.ref(), 'wb'.ref())\n\n    var buf = vec_new<u8>(0, 4096)\n    for true {\n        var len = syscall.read(fd, buf.ref(), buf.len())\n        if len == 0 {\n            break\n        }\n\n        // gzwrite\n        int write_len = zlib.gzwrite(gzfile, buf.ref(), len)\n        if write_len != len {\n            syscall.close(fd)\n            zlib.gzclose(gzfile)\n\n            throw errorf('write failed')\n        }\n\n        println('gz write success, len:', write_len)\n    }\n\n    syscall.close(fd)\n    zlib.gzclose(gzfile)\n\n    println('gz success full')\n}\n"
  },
  {
    "path": "examples/language/nawk.awk",
    "content": "#!/usr/bin/nawk -f\n\nBEGIN {\n    print(\"Enter string to encode:\")\n}\n\n{\n    print(\"Encoded string:\")\n    print(rot13($0))\n}\n\nfunction rot13(str, new, idx) {\n    new = \"\"\n    for (idx = 1; idx <= length; ++idx) {\n        new = new rot13_impl(substr(str, idx, 1))\n    }\n    return new\n}\n\nfunction rot13_impl(ch, list, idx) {\n    list = \"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n    idx = index(list, ch)\n    if (idx == 0) {\n        return ch\n    } else {\n        return substr(list, idx + 13, 1)\n    }\n}\n"
  },
  {
    "path": "examples/language/perl.pl",
    "content": "#!/usr/bin/perl\n\nfor($i=1; $i<10; $i++){\n    for($j=1; $j<$i+1; $j++){\n       printf \"%-4s%-2d  \", \"$j*$i=\", $i*$j;\n    }\n    print \"\\n\";\n}\n"
  },
  {
    "path": "examples/language/pkl.pkl",
    "content": "// ===----------------------------------------------------------------------===//\n// Copyright © 2024 Apple Inc. and the Pkl project authors. 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//\thttps://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS 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.Package { name = \"github.com/apple/pkl-go-examples/gen/redisconfig\" }\nmodule org.pkl.golang.example.RedisConfig\n\nimport \"package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.5.0#/go.pkl\"\n\nclass Auth {\n  /// Basic HTTP authorization username\n  username: String\n\n  /// Basic HTTP authorization password\n  password: String\n}\n\n/// Whether Redis connections are enabled or not.\nenabled: Boolean\n\n/// The hostname that Redis listens on\nhost: String\n\n/// The port that Redis listens on\nport: UInt16\n\n/// Authorization settings for Redis\nauth: Auth?"
  },
  {
    "path": "examples/language/plain.txt",
    "content": "This a plain text file.\n"
  },
  {
    "path": "examples/language/python.py",
    "content": "#!/usr/bin/python3\n\n\nfor i in range(1, 10):\n    for j in range(1, i+1):\n        print(f\"{i}x{j}={i*j}\", end=' ')\n    else:\n        print()\n"
  },
  {
    "path": "examples/language/qasm.qasm",
    "content": "// 89 lines 58 code 21 comments 10 blanks\n/*\n * Variational eigensolver example\n *\n * Goal is to estimate the energy for a fixed set of parameters.\n * The parameters are updated outside of this program and a new\n * OpenQASM circuit is generated for the next iteration.\n */\ninclude \"stdgates.inc\";\n\nconst int[32] n = 10;         // number of qubits\nconst int[32] layers = 3;     // number of entangler layers\nconst int[32] prec = 16;      // precision of all types\nconst int[32] shots = 1000;   // number of shots per Pauli observable\n\n// Parameters could be written to local variables for this\n// iteration, but we will request them using extern functions\nextern get_parameter(uint[prec], uint[prec]) -> angle[prec];\nextern get_npaulis() -> uint[prec];\nextern get_pauli(int[prec]) -> bit[2 * n];\n\n// The energy calculation uses floating point division,\n// so we do that calculation in an extern function\nextern update_energy(int[prec], uint[prec], float[prec]) -> float[prec];\n\ngate entangler q { for uint i in [0:n-2] { cx q[i], q[i+1]; } }\ndef xmeasure(qubit q) -> bit { h q; return measure q; }\ndef ymeasure(qubit q) -> bit { s q; h q; return measure q; }\n\n/* Pauli measurement circuit.\n * The first n-bits of spec are the X component.\n * The second n-bits of spec are the Z component.\n */\ndef pauli_measurement(bit[2*n] spec, qubit[n] q) -> bit {\n  bit b = 0;\n  for uint[prec] i in [0: n - 1] {\n    bit temp;\n    if(spec[i]==1 && spec[n+i]==0) { temp = xmeasure(q[i]); }\n    if(spec[i]==0 && spec[n+i]==1) { temp = measure q[i]; }\n    if(spec[i]==1 && spec[n+i]==1) { temp = ymeasure(q[i]); }\n    b ^= temp;\n  }\n  return b;\n}\n\n// Circuit to prepare trial wave function\ndef trial_circuit(qubit[n] q) {\n  for int[prec] l in [0: layers - 1] {\n    for uint[prec] i in [0: n - 1] {\n      angle[prec] theta;\n      theta = get_parameter(l * layers + i);\n      ry(theta) q[i];\n    }\n    if(l != layers - 1) entangler q;\n  }\n}\n\n/* Apply VQE ansatz circuit and measure a Pauli operator\n * given by spec. Return the number of 1 outcomes.\n */\ndef counts_for_term(bit[2*n] spec, qubit[n] q) -> uint[prec] {\n  uint[prec] counts;\n  for uint i in [1: shots] {\n    bit b;\n    reset q;\n    trial_circuit q;\n    b = pauli_measurement(spec, q);\n    counts += int[1](b);\n  }\n  return counts;\n}\n\n// Estimate the expected energy\ndef estimate_energy(qubit[n] q) -> float[prec] {\n  float[prec] energy;\n  uint[prec] npaulis = get_npaulis();\n  for int[prec] t in [0:npaulis-1] {\n    bit[2*n] spec = get_pauli(t);\n    uint[prec] counts;\n    counts = counts_for_term(spec, q);\n    energy = update_energy(t, counts, energy);\n  }\n  return energy;\n}\n\nqubit[n] q;\nfloat[prec] energy;\n\nenergy = estimate_energy(q);"
  },
  {
    "path": "examples/language/qsharp.qs",
    "content": "operation BellTest (count : Int, initial: Result) : (Int, Int, Int) {\n    mutable numOnes = 0;\n    mutable agree = 0;\n    using ((q0, q1) = (Qubit(), Qubit())) {\n        for (test in 1..count)\n        {\n            Set (initial, q0);\n            Set (Zero, q1);\n\n            H(q0);\n            CNOT(q0,q1);\n            let res = M (q0);\n\n            if (M (q1) == res) {\n                set agree += 1;\n            }\n\n            // Count the number of ones we saw:\n            if (res == One) {\n                set numOnes += 1;\n            }\n            \n        }\n        \n        Set(Zero, q0);\n        Set(Zero, q1);\n    }\n\n    // Return number of times we saw a |0> and number of times we saw a |1>\n    return (count-numOnes, numOnes, agree);\n}"
  },
  {
    "path": "examples/language/racket.rkt",
    "content": "#lang racket/base\n\n(require racket/private/norm-arity)\n\n(provide normalize-arity normalized-arity? arity=? arity-includes?)\n\n(define (normalized-arity? a)\n  (or (null? a)\n      (arity? a)\n      (and (list? a)\n           ((length a) . >= . 2)\n           (andmap arity? a)\n           (if (ormap arity-at-least? a)\n               (non-empty-non-singleton-sorted-list-ending-with-arity? a)\n               (non-singleton-non-empty-sorted-list? a)))))\n\n(define (arity? a)\n  (or (exact-nonnegative-integer? a)\n      (and (arity-at-least? a)\n           (exact-nonnegative-integer? (arity-at-least-value a)))))\n\n;; non-empty-non-singleton-sorted-list-ending-with-arity? : xx -> boolean\n;; know that 'a' is a list of at least 2 elements\n(define (non-empty-non-singleton-sorted-list-ending-with-arity? a)\n  (let loop ([bound (car a)]\n             [lst (cdr a)])\n    (cond\n      [(null? (cdr lst))\n       (and (arity-at-least? (car lst))\n            (> (arity-at-least-value (car lst)) (+ 1 bound)))]\n      [else\n       (and (exact-nonnegative-integer? (car lst))\n            ((car lst) . > . bound)\n            (loop (car lst)\n                  (cdr lst)))])))\n\n(define (non-empty-sorted-list? a)\n  (and (pair? a)\n       (sorted-list? a)))\n\n(define (non-singleton-non-empty-sorted-list? a)\n  (and (pair? a)\n       (pair? (cdr a))\n       (sorted-list? a)))\n\n(define (sorted-list? a)\n  (or (null? a)\n      (sorted/bounded-list? (cdr a) (car a))))\n\n(define (sorted/bounded-list? a bound)\n  (or (null? a)\n      (and (number? (car a))\n           (< bound (car a))\n           (sorted/bounded-list? (cdr a) (car a)))))\n\n(define (arity-supports-number? arity n)\n  (cond\n    [(exact-nonnegative-integer? arity) (= arity n)]\n    [(arity-at-least? arity) (<= (arity-at-least-value arity) n)]\n    [(list? arity)\n     (for/or {[elem (in-list arity)]}\n       (arity-supports-number? elem n))]))\n\n(define (arity-supports-at-least? arity n)\n  (cond\n    [(exact-nonnegative-integer? arity) #f]\n    [(arity-at-least? arity) (<= (arity-at-least-value arity) n)]\n    [(list? arity)\n     (define min-at-least\n       (for/fold {[min-at-least #f]} {[elem (in-list arity)]}\n         (cond\n           [(exact-nonnegative-integer? elem) min-at-least]\n           [(arity-at-least? elem)\n            (cond\n              [(not min-at-least) (arity-at-least-value elem)]\n              [else (min min-at-least (arity-at-least-value elem))])])))\n     (cond\n       [(not min-at-least) #f]\n       [else\n        (for/and {[i (in-range n min-at-least)]}\n          (arity-supports-number? arity i))])]))\n\n(define (unchecked-arity-includes? one two)\n  (cond\n    [(exact-nonnegative-integer? two)\n     (arity-supports-number? one two)]\n    [(arity-at-least? two)\n     (arity-supports-at-least? one (arity-at-least-value two))]\n    [(list? two)\n     (for/and {[elem (in-list two)]}\n       (unchecked-arity-includes? one elem))]))\n\n(define (arity-includes? one two)\n  (unless (procedure-arity? one)\n    (raise-argument-error 'arity-includes? \"procedure-arity?\" 0 one two))\n  (unless (procedure-arity? two)\n    (raise-argument-error 'arity-includes? \"procedure-arity?\" 1 one two))\n  (unchecked-arity-includes? one two))\n\n(define (arity=? one two)\n  (unless (procedure-arity? one)\n    (raise-argument-error 'arity=? \"procedure-arity?\" 0 one two))\n  (unless (procedure-arity? two)\n    (raise-argument-error 'arity=? \"procedure-arity?\" 1 one two))\n  (and\n    (unchecked-arity-includes? one two)\n    (unchecked-arity-includes? two one)))"
  },
  {
    "path": "examples/language/raml.raml",
    "content": "#%RAML 1.0\ntitle: API with Examples\n\ntypes:\n  User:\n    type: object\n    properties:\n      name: string\n      lastname: string\n    example:\n      name: Bob\n      lastname: Marley\n  Org:\n    type: object\n    properties:\n      name: string\n      address?: string\n      value?: string\n/organizations:\n  post:\n    headers:\n      UserID:\n        description: the identifier for the user who posts a new organization\n        type: string\n        example: SWED-123 # single scalar example\n    body:\n      application/json:\n        type: Org\n        example: # single request body example\n          value: # needs to be declared since instance contains a 'value' property\n            name: Doe Enterprise\n            value: Silver\n/organizations/{orgId}:\n  get:\n    description: Returns an organization entity.\n    responses:\n      201:\n        body:\n          application/json:\n            type: Org\n            examples:\n              acme:\n                name: Acme\n              softwareCorp:\n                value: # validate against the available facets for the map value of an example\n                  name: Software Corp\n                  address: 35 Central Street\n                  value: Gold # validate against an instance of the `value` property"
  },
  {
    "path": "examples/language/rebol.reb",
    "content": "; An example comes from https://www.re-bol.com/rebol.html#section-11\n; This is a slightly edited version of the 3D Maze program (raycasting engine) by Olivier Auverlot\nREBOL [title: \"3D Maze - Ray Casting Example\"] \n\npx: 9 * 1024  py: 11 * 1024 stride: 2 heading: 0 turn: 5\nlaby: [\n    [ 8 7 8 7 8 7 8 7 8 7 8 7 ]\n    [ 7 0 0 0 0 0 0 0 13 0 0 8 ]\n    [ 8 0 0 0 12 0 0 0 14 0 9 7 ]\n    [ 7 0 0 0 12 0 4 0 13 0 0 8 ]\n    [ 8 0 4 11 11 0 3 0 0 0 0 7 ]\n    [ 7 0 3 0 12 3 4 3 4 3 0 8 ]\n    [ 8 0 4 0 0 0 3 0 3 0 0 7 ]\n    [ 7 0 3 0 0 0 4 0 4 0 9 8 ]\n    [ 8 0 4 0 0 0 0 0 0 0 0 7 ]\n    [ 7 0 5 6 5 6 0 0 0 0 0 8 ]\n    [ 8 0 0 0 0 0 0 0 0 0 0 7 ]\n    [ 8 7 8 7 8 7 8 7 8 7 8 7 ]\n]\nctable: []\nfor a 0 (718 + 180) 1 [\n    append ctable to-integer (((cosine a ) * 1024) / 20)\n]\npalette: [\n    0.0.128 0.128.0 0.128.128\n    0.0.128 128.0.128 128.128.0 192.192.192\n    128.128.128 0.0.255 0.255.0 255.255.0\n    0.0.255 255.0.255 0.255.255 255.255.255\n]\nget-angle: func [ v ] [ pick ctable (v + 1) ]\nretrace: does [\n    clear display/effect/draw\n    xy1: xy2: 0x0\n    angle: remainder (heading - 66) 720\n    if angle < 0 [ angle: angle + 720 ]\n    for a angle (angle + 89) 1 [\n        xx: px\n        yy: py\n        stepx: get-angle a + 90\n        stepy: get-angle a\n        l: 0\n        until [\n            xx: xx - stepx\n            yy: yy - stepy\n            l: l + 1\n            column: make integer! (xx / 1024)\n            line: make integer! (yy / 1024)\n            laby/:line/:column <> 0\n        ]\n        h: make integer! (1800 / l)\n        xy1/y: 200 - h\n        xy2/y: 200 + h\n        xy2/x: xy1/x + 6\n        color: pick palette laby/:line/:column\n        append display/effect/draw reduce [\n            'pen color\n            'fill-pen color\n            'box xy1 xy2\n        ]\n        xy1/x: xy2/x + 2  ; set to 1 for smooth walls\n    ]\n]\nplayer-move: function [ /backwards ] [ mul ] [\n    either backwards [ mul: -1 ] [ mul: 1 ]\n    newpx: px - ((get-angle (heading + 90)) * stride * mul)\n    newpy: py - ((get-angle heading) * stride * mul)\n    c: make integer! (newpx / 1024)\n    l: make integer! (newpy / 1024)\n    if laby/:l/:c = 0 [\n        px: newpx\n        py: newpy\n        refresh-display\n    ]\n]\nevt-key: function [ f event ] [] [\n    if (event/type = 'key) [\n        switch event/key [\n            up [ player-move ]\n            down [ player-move/backwards ]\n            left [\n                heading: remainder (heading + (720 - turn)) 720\n                refresh-display\n            ]\n            right [\n                heading: remainder (heading + turn) 720\n                refresh-display\n            ]\n        ]\n    ]\n    event\n]\ninsert-event-func :evt-key\nrefresh-display: does [\n    retrace\n    show display\n]\nscreen: layout [\n    display: box 720x400 effect [\n        gradient 0x1 0.0.0 128.128.128\n        draw []\n    ]\n    edge [\n        size: 1x1\n        color: 255.255.255\n    ]\n]\nrefresh-display\nview screen\n"
  },
  {
    "path": "examples/language/redscript.reds",
    "content": "// redscript allows line comments\n/* as well as block comments */\n\n// it supports global functions\nfunc add2(x: Int32, y: Int32) -> Int32 {\n  return x + y;\n}\n\n// functions without a type annotation default to Void return type\nfunc tutorial() {\n  let x: Int32 = 10;\n  // compiler can infer types for local variables, y will be Int32\n  let y = 20;\n  // it supports arithmetic\n  let sum = x + y + 13;\n  // as well as mutation\n  let mutable = 0;\n  mutable += 10;\n  // numbers with decimal points default to type Float\n  let num = 10.0;\n  // you can cast between some types\n  let uint: Uint8 = Cast(10);\n  // array literals\n  let arr = [1, 2, 3];\n  // array iteration\n  for item in arr {\n    // logging and string operations\n    Log(\"at \" + ToString(item));\n  }\n}\n\n// you can define your own classes\npublic class IntTuple {\n  let fst: Int32;\n  let snd: Int32;\n\n  // you can define static member functions\n  public static func Create(fst: Int32, snd: Int32) -> ref<IntTuple> {\n    let tuple = new IntTuple();\n    tuple.fst = fst;\n    tuple.snd = snd;\n    return tuple;\n  }\n \n  public func Swap() {\n    let tmp = this.fst;\n    this.fst = this.snd;\n    this.snd = tmp;\n  }\n}\n\n// you can replace existing in-game methods by specifying the class they belong to\n@replaceMethod(CraftingSystem)\nprivate final func ProcessCraftSkill(xpAmount: Int32, craftedItem: StatsObjectID) {\n  // instantiate a class using the new operator\n  let xpEvent = new ExperiencePointsEvent();\n  xpEvent.amount = xpAmount * 100;\n  xpEvent.type = gamedataProficiencyType.Crafting;\n  GetPlayer(this.GetGameInstance()).QueueEvent(xpEvent);\n}\n\n// you can add new methods to existing classes as well\n// they are visible to other code using the class\n@addMethod(BackpackMainGameController)\nprivate final func DisassembleAllJunkItems() -> Void {\n  let items = this.m_InventoryManager.GetPlayerItemsByType(gamedataItemType.Gen_Junk);\n  let i = 0;\n  for item in items {\n    ItemActionsHelper.DisassembleItem(this.m_player, InventoryItemData.GetID(item));\n  };\n  // some methods require CName literals, they need to be prefixed with the n letter\n  this.PlaySound(n\"Item\", n\"OnBuy\");\n}\n\n// you can trigger calls when game functions are called\n@wrapMethod(CraftingSystem)\nprivate final func ProcessCraftSkill(xpAmount: Int32, craftedItem: StatsObjectID) {\n  // this calls the original function. Don't omit this - use replaceMethod instead!\n  wrappedMethod(xpAmount, craftedItem);\n  \n  // you can now do your own stuff. \n  // Or even do your own stuff _first_, modify the parameters passed to the\n  // original call.\n}"
  },
  {
    "path": "examples/language/rscript.r",
    "content": "#!/usr/bin/env Rscript\r\n\r\nprint(\"===== Start =====\")\r\n\r\nfor (i in 1:9) {\r\n    for (j in 1:i) {\r\n        cat(i, 'x', j, '=', i*j, ' ')\r\n    }\r\n    cat('\\n')\r\n}\r\n\r\nprint(\"===== End =====\")\r\n"
  },
  {
    "path": "examples/language/rtf.rtf",
    "content": "{\\rtf1\\ansi\\deff0\n{\\colortbl;\\red0\\green0\\blue0;\\red255\\green0\\blue0;\\red0\\green128\\blue0;\\red0\\green0\\blue255;\\red255\\green165\\blue0;\\red128\\green0\\blue128;\\red0\\green255\\blue255;\\red128\\green128\\blue0;\\red255\\green192\\blue203;\\red105\\green105\\blue105;}\n\n\\fs36\\qc\\b Multiplication Table\\b0\\par\n\\fs24\n{\\trowd\\trgaph108\\trleft-108\n\\cellx1000\\cellx2000\\cellx3000\\cellx4000\\cellx5000\\cellx6000\\cellx7000\\cellx8000\\cellx9000\n\\cf1\\intbl\\qc\\i 1\\'d71 \\i0 =\\b 1\\b0\\cell \\cell \\cell \\cell \\cell \\cell \\cell \\cell \\cell\\row\n\\cf2\\intbl\\qc\\i 2\\'d71 \\i0 =\\b 2\\b0\\cell \\i 2\\'d72 \\i0 =\\b 4\\b0\\cell \\cell \\cell \\cell \\cell \\cell \\cell \\cell\\row\n\\cf3\\intbl\\qc\\i 3\\'d71 \\i0 =\\b 3\\b0\\cell \\i 3\\'d72 \\i0 =\\b 6\\b0\\cell \\i 3\\'d73 \\i0 =\\b 9\\b0\\cell \\cell \\cell \\cell \\cell \\cell \\cell\\row\n\\cf4\\intbl\\qc\\i 4\\'d71 \\i0 =\\b 4\\b0\\cell \\i 4\\'d72 \\i0 =\\b 8\\b0\\cell \\i 4\\'d73 \\i0 =\\b 12\\b0\\cell \\i 4\\'d74 \\i0 =\\b 16\\b0\\cell \\cell \\cell \\cell \\cell \\cell\\row\n\\cf5\\intbl\\qc\\i 5\\'d71 \\i0 =\\b 5\\b0\\cell \\i 5\\'d72 \\i0 =\\b 10\\b0\\cell \\i 5\\'d73 \\i0 =\\b 15\\b0\\cell \\i 5\\'d74 \\i0 =\\b 20\\b0\\cell \\i 5\\'d75 \\i0 =\\b 25\\b0\\cell \\cell \\cell \\cell \\cell\\row\n\\cf6\\intbl\\qc\\i 6\\'d71 \\i0 =\\b 6\\b0\\cell \\i 6\\'d72 \\i0 =\\b 12\\b0\\cell \\i 6\\'d73 \\i0 =\\b 18\\b0\\cell \\i 6\\'d74 \\i0 =\\b 24\\b0\\cell \\i 6\\'d75 \\i0 =\\b 30\\b0\\cell \\i 6\\'d76 \\i0 =\\b 36\\b0\\cell \\cell \\cell \\cell\\row\n\\cf7\\intbl\\qc\\i 7\\'d71 \\i0 =\\b 7\\b0\\cell \\i 7\\'d72 \\i0 =\\b 14\\b0\\cell \\i 7\\'d73 \\i0 =\\b 21\\b0\\cell \\i 7\\'d74 \\i0 =\\b 28\\b0\\cell \\i 7\\'d75 \\i0 =\\b 35\\b0\\cell \\i 7\\'d76 \\i0 =\\b 42\\b0\\cell \\i 7\\'d77 \\i0 =\\b 49\\b0\\cell \\cell \\cell\\row\n\\cf8\\intbl\\qc\\i 8\\'d71 \\i0 =\\b 8\\b0\\cell \\i 8\\'d72 \\i0 =\\b 16\\b0\\cell \\i 8\\'d73 \\i0 =\\b 24\\b0\\cell \\i 8\\'d74 \\i0 =\\b 32\\b0\\cell \\i 8\\'d75 \\i0 =\\b 40\\b0\\cell \\i 8\\'d76 \\i0 =\\b 48\\b0\\cell \\i 8\\'d77 \\i0 =\\b 56\\b0\\cell \\i 8\\'d78 \\i0 =\\b 64\\b0\\cell \\cell\\row\n\\cf9\\intbl\\qc\\i 9\\'d71 \\i0 =\\b 9\\b0\\cell \\i 9\\'d72 \\i0 =\\b 18\\b0\\cell \\i 9\\'d73 \\i0 =\\b 27\\b0\\cell \\i 9\\'d74 \\i0 =\\b 36\\b0\\cell \\i 9\\'d75 \\i0 =\\b 45\\b0\\cell \\i 9\\'d76 \\i0 =\\b 54\\b0\\cell \\i 9\\'d77 \\i0 =\\b 63\\b0\\cell \\i 9\\'d78 \\i0 =\\b 72\\b0\\cell \\i 9\\'d79 \\i0 =\\b 81\\b0\\cell\\row\n}\n}\n"
  },
  {
    "path": "examples/language/scallop.scl",
    "content": "// There are three classes\nrel classes = {0, 1, 2}\n\n// There are 6 students, 2 in each class\nrel student = {\n  (0, \"tom\"), (0, \"jenny\"), // Class 0\n  (1, \"alice\"), (1, \"bob\"), // Class 1\n  (2, \"jerry\"), (2, \"john\"), // Class 2\n}\n\n// Each student is enrolled in a course (Math or CS)\nrel enroll = {\n  (\"tom\", \"CS\"), (\"jenny\", \"Math\"), // Class 0\n  (\"alice\", \"CS\"), (\"bob\", \"CS\"), // Class 1\n  (\"jerry\", \"Math\"), (\"john\", \"Math\"), // Class 2\n}\n\n// Count how many student enrolls in CS course in each class\nrel count_enroll_cs_in_class(c, n) :-\n  n = count(s: student(c, s), enroll(s, \"CS\") where c: classes(c))\n\n// Expected: {(0, 1), (1, 2), (2, 0)}\n// Interpretation: class 0 has 1 student enroll in CS, class 1 has 2, class 2 has 0\nquery count_enroll_cs_in_class"
  },
  {
    "path": "examples/language/seed7.sd7",
    "content": "(*\n  Language test for Seed7\n*)\n\n$ include \"seed7_05.s7i\"; # import the standard library\n\nconst proc: main is func\n  local\n    var integer: i is 1;\n    var integer: j is 1;\n  begin\n    for i range 1 to 9 do\n      j := 1;\n      while j <= i do\n        write(i <& \"x\" <& j <& \"=\" <& j*i);\n        if j <> i then\n          write(\", \");\n        else\n          write(\".\");\n        end if;\n        j +:= 1;\n      end while;\n      writeln();\n    end for;\n  end func;\n"
  },
  {
    "path": "examples/language/slang.slang",
    "content": "// 15 lines 8 code 4 comments 2 blanks\n\nTexture2D<float4> in_tex;\nRWTexture2D<float4> out_tex;\n\n// Blit compute shader\n[shader(\"compute\")]\n[numthreads(8, 8, 1)]\nvoid main(uint2 id: SV_DispatchThreadID) {\n  /*\n    Perform the blit\n  */\n  out_tex[id] = in_tex[id];\n  return;\n}"
  },
  {
    "path": "examples/language/slint.slint",
    "content": "// an example from https://releases.slint.dev/1.7.2/docs/slint/src/recipes/recipes#custom-table-view\n// 2 comments 5 blanks 9 Complexity 65 code\n\nimport { VerticalBox, ListView } from \"std-widgets.slint\";\n\ncomponent TableView inherits Rectangle {\n    in property <[string]> columns;\n    in property <[[string]]> values;\n\n    private property <length> e: self.width / root.columns.length;\n    private property <[length]> column_sizes: [\n        root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e,\n        root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e,\n        root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e, root.e,\n    ];\n\n    VerticalBox {\n        padding: 5px;\n        HorizontalLayout {\n            padding: 5px; spacing: 5px;\n            vertical-stretch: 0;\n            for title[idx] in root.columns : HorizontalLayout {\n                width: root.column_sizes[idx];\n                Text { overflow: elide; text: title; }\n                Rectangle {\n                    width: 1px;\n                    background: gray;\n                    TouchArea {\n                        width: 10px;\n                        x: (parent.width - self.width) / 2;\n                        property <length> cached;\n                        pointer-event(event) => {\n                            if (event.button == PointerEventButton.left && event.kind == PointerEventKind.down) {\n                                self.cached = root.column_sizes[idx];\n                            }\n                        }\n                        moved => {\n                            if (self.pressed) {\n                                root.column_sizes[idx] += (self.mouse-x - self.pressed-x);\n                                if (root.column_sizes[idx] < 0) {\n                                    root.column_sizes[idx] = 0;\n                                }\n                            }\n                        }\n                        mouse-cursor: ew-resize;\n                    }\n                }\n            }\n        }\n        ListView {\n            for r in root.values : HorizontalLayout {\n                padding: 5px;\n                spacing: 5px;\n                for t[idx] in r : HorizontalLayout {\n                    width: root.column_sizes[idx];\n                    Text { overflow: elide; text: t; }\n                }\n            }\n        }\n    }\n}\n\nexport component Example inherits Window {\n   TableView {\n       columns: [\"Device\", \"Mount Point\", \"Total\", \"Free\"];\n       values: [\n            [\"/dev/sda1\", \"/\", \"255GB\", \"82.2GB\"] ,\n            [\"/dev/sda2\", \"/tmp\", \"60.5GB\", \"44.5GB\"] ,\n            [\"/dev/sdb1\", \"/home\", \"255GB\", \"32.2GB\"] ,\n       ];\n   }\n}\n"
  },
  {
    "path": "examples/language/smalltalk.cs.st",
    "content": "Class: CookieMonster\nSuperclass: Monster\nCategory: Sesame Street\nInstance variables: state hunger\n \nprivate\n\n    askForCookie\n       ^ FillInTheBlank request: 'Give me cookie !!! (please)'\n        \n    complainAbout: anItem\n    Transcript show: 'No want ', anItem printString.\n    Transcript cr.\n    self colour: #red\n        \n    isCookie: anItem\n    \" | serves as the OR operator\"\n    ^ ((anItem = 'cookie') | (anItem = #cookie))\n\nactions\n\n    eat: aCookie\n    super eat: aCookie.\n    self colour: #green\n        \n    nag\n       | item |\n          [self isAwake]\n          whileTrue:\n            [item := self askForCookie.\n            (self isCookie: item)\n                  ifTrue: [self eat: item]\n                  ifFalse: [self complainAbout: item].\n            (self isFull) ifTrue: [self sleep]]\n        \n    sleep\n       self state: #asleep.\n    self hunger: 0\n        \n    wakeUp\n       self tummy: Bag new.\n    self state: #awake.\n    self hunger: (Random new next * 13).\n    \"Cookie Monsters are superstitious and never eat more than \n    13 cookies in one go !\"\n    self nag\n\nqueries\n\n    isAsleep\n       ^ state = #asleep\n        \n    isAwake\n       ^ self isAsleep not\n        \n    isFull\n       self isEmpty \n       ifFalse: [^ self tummy size >= self hunger] \n       ifTrue: [^false]\n\naccess\n\n     \n    hunger\n       ^ hunger\n        \n    hunger: anIntegerNumberOfCookies\n    hunger := anIntegerNumberOfCookies\n        \n    state\n       ^ state\n        \n    state: aSymbol\n    state := aSymbol\n\ninitialization\n\n    initialize\n       self state: #asleep.\n    self hunger: nil.\n    super initialize"
  },
  {
    "path": "examples/language/snakefile.smk",
    "content": "# 67 lines 50 code 4 comments 13 blanks\n\"\"\"\nA sample Snakefile for testing line counting\n\"\"\"\n\nSAMPLES = [\"A\", \"B\"]\n\n\n# This is a\n# multiline\n# comment\nrule all:\n    input:\n        \"plots/quals.svg\"\n\n\n'''Sometimes even some\ncomments in single quote\nfences.'''\nrule bwa_map:\n    input:\n        \"data/genome.fa\",  # Inline comments are also supported\n        \"data/samples/{sample}.fastq\"\n    output:\n        \"mapped_reads/{sample}.bam\"\n    shell:\n        \"bwa mem {input} | samtools view -Sb - > {output}\"\n\n\nrule samtools_sort:\n    input:\n        \"mapped_reads/{sample}.bam\"\n    output:\n        \"sorted_reads/{sample}.bam\"\n    shell:\n        \"samtools sort -T sorted_reads/{wildcards.sample} \"\n        \"-O bam {input} > {output}\"\n\n\nrule samtools_index:\n    input:\n        \"sorted_reads/{sample}.bam\"\n    output:\n        \"sorted_reads/{sample}.bam.bai\"\n    shell:\n        \"samtools index {input}\"\n\n\nrule bcftools_call:\n    input:\n        fa=\"data/genome.fa\",\n        bam=expand(\"sorted_reads/{sample}.bam\", sample=SAMPLES),\n        bai=expand(\"sorted_reads/{sample}.bam.bai\", sample=SAMPLES)\n    output:\n        \"calls/all.vcf\"\n    shell:\n        \"bcftools mpileup -f {input.fa} {input.bam} | \"\n        \"bcftools call -mv - > {output}\"\n\n\nrule plot_quals:\n    input:\n        \"calls/all.vcf\"\n    output:\n        \"plots/quals.svg\"\n    script:\n        \"scripts/plot-quals.py\""
  },
  {
    "path": "examples/language/stan.stan",
    "content": "data{\n  int N_national_polls;    // Number of polls\n  int N_state_polls;    // Number of polls\n  int T;    // Number of days\n  int S;    // Number of states (for which at least 1 poll is available) + 1\n  int P;    // Number of pollsters\n  int M;    // Number of poll modes\n  int Pop;    // Number of poll populations\n  int<lower = 1, upper = S + 1> state[N_state_polls]; // State index\n  int<lower = 1, upper = T> day_state[N_state_polls];   // Day index\n  int<lower = 1, upper = T> day_national[N_national_polls];   // Day index\n  int<lower = 1, upper = P> poll_state[N_state_polls];  // Pollster index\n  int<lower = 1, upper = P> poll_national[N_national_polls];  // Pollster index\n  int<lower = 1, upper = M> poll_mode_state[N_state_polls];  // Poll mode index\n  int<lower = 1, upper = M> poll_mode_national[N_national_polls];  // Poll mode index\n  int<lower = 1, upper = Pop> poll_pop_state[N_state_polls];  // Poll mode index\n  int<lower = 1, upper = Pop> poll_pop_national[N_national_polls];  // Poll mode index\n  int n_democrat_national[N_national_polls];\n  int n_two_share_national[N_national_polls];\n  int n_democrat_state[N_state_polls];\n  int n_two_share_state[N_state_polls];\n  vector<lower = 0, upper = 1.0>[N_national_polls] unadjusted_national;\n  vector<lower = 0, upper = 1.0>[N_state_polls] unadjusted_state;\n  // cov_matrix[S] ss_cov_mu_b_walk;\n  // cov_matrix[S] ss_cov_mu_b_T;\n  // cov_matrix[S] ss_cov_poll_bias;\n  //*** prior input\n  vector[S] mu_b_prior;\n  vector[S] state_weights;\n  real sigma_c;\n  real sigma_m;\n  real sigma_pop;\n  real sigma_measure_noise_national;\n  real sigma_measure_noise_state;\n  real sigma_e_bias;\n  // covariance matrix and scales\n  cov_matrix[S] state_covariance_0;\n  real random_walk_scale;\n  real mu_b_T_scale;\n  real polling_bias_scale;\n}\ntransformed data {\n  real national_cov_matrix_error_sd = sqrt(transpose(state_weights) * state_covariance_0 * state_weights);\n  cholesky_factor_cov[S] cholesky_ss_cov_poll_bias;\n  cholesky_factor_cov[S] cholesky_ss_cov_mu_b_T;\n  cholesky_factor_cov[S] cholesky_ss_cov_mu_b_walk;\n  // scale covariance\n  matrix[S, S] ss_cov_poll_bias = state_covariance_0 * square(polling_bias_scale/national_cov_matrix_error_sd);\n  matrix[S, S] ss_cov_mu_b_T = state_covariance_0 * square(mu_b_T_scale/national_cov_matrix_error_sd);\n  matrix[S, S] ss_cov_mu_b_walk = state_covariance_0 * square(random_walk_scale/national_cov_matrix_error_sd);\n  // transformation\n  cholesky_ss_cov_poll_bias = cholesky_decompose(ss_cov_poll_bias);\n  cholesky_ss_cov_mu_b_T = cholesky_decompose(ss_cov_mu_b_T);\n  cholesky_ss_cov_mu_b_walk = cholesky_decompose(ss_cov_mu_b_walk);\n}\nparameters {\n  vector[S] raw_mu_b_T;\n  matrix[S, T] raw_mu_b;\n  vector[P] raw_mu_c;\n  vector[M] raw_mu_m;\n  vector[Pop] raw_mu_pop;\n  real<offset=0, multiplier=0.02> mu_e_bias;\n  real<lower = 0, upper = 1> rho_e_bias;\n  vector[T] raw_e_bias;\n  vector[N_national_polls] raw_measure_noise_national;\n  vector[N_state_polls] raw_measure_noise_state;\n  vector[S] raw_polling_bias;\n  real mu_b_T_model_estimation_error;\n}\ntransformed parameters {\n  //*** parameters\n  matrix[S, T] mu_b;\n  vector[P] mu_c;\n  vector[M] mu_m;\n  vector[Pop] mu_pop;\n  vector[T] e_bias;\n  vector[S] polling_bias = cholesky_ss_cov_poll_bias * raw_polling_bias;\n  vector[T] national_mu_b_average;\n  real national_polling_bias_average = transpose(polling_bias) * state_weights;\n  real sigma_rho;\n  //*** containers\n  vector[N_state_polls] logit_pi_democrat_state;\n  vector[N_national_polls] logit_pi_democrat_national;\n  //*** construct parameters\n  mu_b[:,T] = cholesky_ss_cov_mu_b_T * raw_mu_b_T + mu_b_prior;  // * mu_b_T_model_estimation_error\n  for (i in 1:(T-1)) mu_b[:, T - i] = cholesky_ss_cov_mu_b_walk * raw_mu_b[:, T - i] + mu_b[:, T + 1 - i];\n  national_mu_b_average = transpose(mu_b) * state_weights;\n  mu_c = raw_mu_c * sigma_c;\n  mu_m = raw_mu_m * sigma_m;\n  mu_pop = raw_mu_pop * sigma_pop;\n  e_bias[1] = raw_e_bias[1] * sigma_e_bias;\n  sigma_rho = sqrt(1-square(rho_e_bias)) * sigma_e_bias;\n  for (t in 2:T) e_bias[t] = mu_e_bias + rho_e_bias * (e_bias[t - 1] - mu_e_bias) + raw_e_bias[t] * sigma_rho;\n  //*** fill pi_democrat\n  for (i in 1:N_state_polls){\n    logit_pi_democrat_state[i] =\n      mu_b[state[i], day_state[i]] +\n      mu_c[poll_state[i]] +\n      mu_m[poll_mode_state[i]] +\n      mu_pop[poll_pop_state[i]] +\n      unadjusted_state[i] * e_bias[day_state[i]] +\n      raw_measure_noise_state[i] * sigma_measure_noise_state +\n      polling_bias[state[i]];\n  }\n  logit_pi_democrat_national =\n    national_mu_b_average[day_national] +\n    mu_c[poll_national] +\n    mu_m[poll_mode_national] +\n    mu_pop[poll_pop_national] +\n    unadjusted_national .* e_bias[day_national] +\n    raw_measure_noise_national * sigma_measure_noise_national +\n    national_polling_bias_average;\n}\n\nmodel {\n  //*** priors\n  raw_mu_b_T ~ std_normal();\n  //mu_b_T_model_estimation_error ~ scaled_inv_chi_square(7, 1);\n  to_vector(raw_mu_b) ~ std_normal();\n  raw_mu_c ~ std_normal();\n  raw_mu_m ~ std_normal();\n  raw_mu_pop ~ std_normal();\n  mu_e_bias ~ normal(0, 0.02);\n  rho_e_bias ~ normal(0.7, 0.1);\n  raw_e_bias ~ std_normal();\n  raw_measure_noise_national ~ std_normal();\n  raw_measure_noise_state ~ std_normal();\n  raw_polling_bias ~ std_normal();\n  //*** likelihood\n  n_democrat_state ~ binomial_logit(n_two_share_state, logit_pi_democrat_state);\n  n_democrat_national ~ binomial_logit(n_two_share_national, logit_pi_democrat_national);\n}\n\ngenerated quantities {\n  matrix[T, S] predicted_score;\n  for (s in 1:S){\n    //predicted_score[1:T, s] = inv_logit(mu_a[1:T] + to_vector(mu_b[s, 1:T]));\n    predicted_score[1:T, s] = inv_logit(to_vector(mu_b[s, 1:T]));\n  }\n}\n\n"
  },
  {
    "path": "examples/language/syntax.wren",
    "content": "// This file provides examples of syntactic constructs in wren, which is mainly\n// interesting for testing syntax highlighters.\n\n// This is a comment.\n/* This is /* a nested */ comment. */\n\n// Class definition with a toplevel name.\nclass SyntaxExample {\n  // Constructor\n  construct new() {\n    // Top-level name `IO`\n    System.print(\"I am a constructor!\")\n\n    // Method calls\n    variables\n    fields()\n\n    // Block arguments\n    fields { block }\n    fields {|a, b| block }\n    fields(argument) { block }\n    fields(argument) {|a, b| block }\n\n    // Static method call\n    SyntaxExample.fields(1)\n  }\n\n  // Constructor with arguments\n  construct constructor(a, b) {\n    print(a, b)\n    field = a\n  }\n\n  // Method without arguments\n  variables {\n    // Valid local variable names.\n    var hi\n    var camelCase\n    var PascalCase\n    var abc123\n    var ALL_CAPS\n  }\n\n  // Method with empty argument list\n  fields() {\n    // Fields\n    _under_score = 1\n    _field = 2\n  }\n\n  // Static method with single argument\n  static fields(a) {\n    // Static field\n    __a = a\n  }\n\n  // Setter\n  field=(value) { _field = value }\n\n  // Method with arguments\n  print(a, b) { System.print(a + b) }\n\n  // Operators\n  +(other) { \"infix + %(other)\" }\n  -(other) { \"infix - %(other)\" }\n  *(other) { \"infix * %(other)\" }\n  /(other) { \"infix / %(other)\" }\n  %(other) { \"infix \\% %(other)\" }\n  <(other) { \"infix < %(other)\" }\n  >(other) { \"infix > %(other)\" }\n  <=(other) { \"infix <= %(other)\" }\n  >=(other) { \"infix >= %(other)\" }\n  ==(other) { \"infix == %(other)\" }\n  !=(other) { \"infix != %(other)\" }\n  &(other) { \"infix & %(other)\" }\n  |(other) { \"infix | %(other)\" }\n\n  ! { \"prefix !\" }\n  ~ { \"prefix ~\" }\n  - { \"prefix -\" }\n}\n\n// `class`, `is`\nclass ReservedWords is SyntaxExample {\n  reserved {\n    // `super`, `true`, `false`\n    super(true, false)\n    // `this`\n    this.foo\n  }\n\n  foo {\n    // `var`\n    var n = 27\n    // `while`, `if`, `else`\n    while (n != 1) if (n % 2 == 0) n = n / 2 else n = 3 * n + 1\n\n    // `for`, `in`\n    for (beatle in [\"george\", \"john\", \"paul\", \"ringo\"]) {\n      System.print(beatle)\n      // `break`\n      break\n    }\n\n    // `return`, `null`\n    return null\n  }\n\n  imports {\n    // `import`\n    import \"hello\"\n    // `import`, `for`\n    import \"set\" for Set\n  }\n\n  // `foreign`, `static`\n  // foreign static bar\n  // foreign baz(string)\n  // (Remove lines above to make this file compile)\n}\n\nclass Literals is SyntaxExample {\n  booleans { true || false }\n\n  numbers {\n    0\n    1234\n    -5678\n    3.14159\n    1.0\n    -12.34\n    0x1000000\n    0xdeadbeef\n    0x1234567890ABCDEF\n  }\n\n  strings {\n    \"hi there\"\n    // Escapes:\n    \"\\0\" // The NUL byte: 0.\n    \"\\\"\" // A double quote character.\n    \"\\\\\" // A backslash.\n    \"\\a\" // Alarm beep. (Who uses this?)\n    \"\\b\" // Backspace.\n    \"\\f\" // Formfeed.\n    \"\\n\" // Newline.\n    \"\\r\" // Carriage return.\n    \"\\t\" // Tab.\n    \"\\v\" // Vertical tab.\n    // Unicode code points\n    System.print(\"\\u0041fgdg\\u0b83\\u00DE\") // \"AஃÞ\"\n    // Unencoded bytes\n    System.print(\"\\x48\\x69\\x2e\") // \"Hi.\"\n  }\n\n  ranges {\n    3..8  // inclusive\n    4...6 // half-inclusive\n  }\n\n  nothing { null }\n\n  lists {\n    var list = [1, \"banana\", true]\n    list[0] = 5\n    list[1..2]\n  }\n\n  maps {\n    var stringMap = {\n      \"George\": \"Harrison\",\n      \"John\": \"Lennon\",\n      \"Paul\": \"McCartney\",\n      \"Ringo\": \"Starr\"\n    }\n    var a = 1\n    var weirdMap = {\n      true: 1,\n      false: 0,\n      null: -1,\n      \"str\": \"abc\",\n      (1..5): 10,\n      a: 2,\n      _a: 3,\n      __a: 4\n    }\n  }\n}"
  },
  {
    "path": "examples/language/systemd.service",
    "content": "# exampple systemd file\n[Unit]\nDescription=scc\n\n[Service]\nWorkingDirectory=/webapps/scc\nExecStart=/webapps/scc/scc\nRestart=always\nRestartSec=5s\n# persist to disk\nStandardOutput=file:/tmp/scc-stdout.log\nStandardError=file:/tmp/scc-error.log\n\n[Install]\nWantedBy=multi-user.target"
  },
  {
    "path": "examples/language/tact.tact",
    "content": "// 20 lines 12 code 4 comments 4 blanks\n\nimport \"@stdlib/ownable\"; // comment\n\n/* comment */\nfun global() {\n    let str: String = \"\\n \\r \\t \\u1234 \\xFF // /* ... */\";\n\n    // comment\n    while (true) { // comment\n        if /* comment */ (true) { /* comment */ }\n    }\n}\n\n// \"quoted\"\nstruct St { /* \" */\n    field1: Int; // /*\n    field2: Int as uint128;\n    field3: Int; // */\n}\n"
  },
  {
    "path": "examples/language/teal.teal",
    "content": "#pragma version 4\n// loop 1 - 10\n// init loop var\nint 0 \nloop:\nint 1\n+\ndup\n// implement loop code\n// ...\n// check upper bound\nint 10\n<=\nbnz loop\n// once the loop exits, the last counter value will be left on stack"
  },
  {
    "path": "examples/language/tera.tera",
    "content": "{% set map = section.pages | group_by(attribute=\"year\") %}\n{% set_global years = [] %}\n{% for year, ignored in map %}\n    {% set_global years = years | concat(with=year) %}\n{% endfor %}\n{% for year in years | reverse %}\n    {% set posts = map[year] %}\n{% endfor %}"
  },
  {
    "path": "examples/language/test.ch",
    "content": "/*\n   Constants and macro definitions for the program\n   https://github.com/boyter/scc/issues/484\n*/\n\n// Define a constant for the number to calculate factorial\n#define NUM_TO_FACTORIAL  5\n\n// Define messages to display\n#define MSG_FACT_GT_100   \"Factorial is greater than 100\"\n#define MSG_FACT_LE_100   \"Factorial is less than or equal to 100\"\n\n// Define a macro for maximum factorial limit\n#define MAX_FACT_LIMIT    100\n\n// Prototype for the Factorial function\nFUNCTION Factorial( n )\nRETURN NIL\n\n// Prototype for the Main function\nFUNCTION Main()\nRETURN NIL"
  },
  {
    "path": "examples/language/test.dm",
    "content": "// A singleline comment\n/*\n  A multiline comment\n  /*\n    Nested multiline\n  */\n*/\n\n/proc/foo()\n\tfor(var/turf/station/T in world)\n\t\tif(T.name == \"floor\")\n\t\t\tdel(T)\n\t\tT.color = \"red\"\n\n/turf/station\n\ticon = 'station.dmi'\n\ticon_state = \"wall\"\n\tvar/description = {\"\n\t\tMultiline\n\t\tstring\n\t\"}\n"
  },
  {
    "path": "examples/language/test.java",
    "content": "package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\n/**\n * A simple spell checker based on a few implementations such as the infamous Peter Noving spell checker and\n * the like. Attempts to be highly performing by never changing the first character since we can assume that the\n * user got that correct.\n */\npublic class SpellingCorrector implements ISpellingCorrector {\n\n    // word to count map - how may times a word is present - or a weight attached to a word\n    private Map<String, Integer> dictionary = null;\n\n    public SpellingCorrector(int lruCount) {\n        this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n    }\n\n    @Override\n    public void putWord(String word) {\n        word = word.toLowerCase();\n        if (dictionary.containsKey(word)) {\n            dictionary.put(word, (dictionary.get(word) + 1));\n        }\n        else {\n            dictionary.put(word, 1);\n        }\n    }\n\n    @Override\n    public String correct(String word) {\n        if (word == null || word.trim().isEmpty()) {\n            return word;\n        }\n\n        word = word.toLowerCase();\n\n        // If the word exists in our dictionary then return\n        if (dictionary.containsKey(word)) {\n            return word;\n        }\n\n        Map<String, Integer> possibleMatches = new HashMap<>();\n\n        List<String> closeEdits = wordEdits(word);\n        for (String closeEdit: closeEdits) {\n            if (dictionary.containsKey(closeEdit)) {\n                possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n        // Ok we did't find anything, so lets run the edits function on the previous results and use those\n        // this gives us results which are 2 characters away from whatever was entered\n        List<String> furtherEdits = new ArrayList<>();\n        for(String closeEdit: closeEdits) {\n            furtherEdits.addAll(this.wordEdits(closeEdit));\n        }\n\n        for (String futherEdit: furtherEdits) {\n            if (dictionary.containsKey(futherEdit)) {\n                possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n            }\n        }\n\n        if (!possibleMatches.isEmpty()) {\n            // Sorted least likely first\n            Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n            // Try to match anything of the same length first\n            String bestMatch = \"\";\n            for(Object o: matches) {\n                if (o.toString().length() == word.length()) {\n                    bestMatch = o.toString();\n                }\n            }\n\n            if (!bestMatch.trim().isEmpty()) {\n                return bestMatch;\n            }\n\n            // Just return whatever is the best match\n            return matches[matches.length - 1].toString();\n        }\n\n\n        // If unable to find something better return the same string\n        return word;\n    }\n\n    @Override\n    public boolean containsWord(String word) {\n        if (dictionary.containsKey(word)) {\n            return true;\n        }\n\n        return false;\n    }\n\n\n    /**\n     * Return a list of strings which are words similar to our one which could potentially be misspellings\n     * Abuse the fact that a char can be used as an integer\n     * Assume that they got the first letter correct for all edits to cut on CPU burn time\n     */\n    private List<String> wordEdits(String word) {\n        List<String> closeWords = new ArrayList<String>();\n\n        for (int i = 1; i < word.length() + 1; i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they forgot to type a letter? Try adding one\n                StringBuilder sb = new StringBuilder(word);\n                sb.insert(i, character);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        for (int i = 1; i < word.length(); i++) {\n            for (char character = 'a'; character <= 'z'; character++) {\n                // Maybe they mistyped a single letter? Try replacing them all\n                StringBuilder sb = new StringBuilder(word);\n                sb.setCharAt(i, character);\n                closeWords.add(sb.toString());\n\n                // Maybe they added an extra letter? Try deleting one\n                sb = new StringBuilder(word);\n                sb.deleteCharAt(i);\n                closeWords.add(sb.toString());\n            }\n        }\n\n        return closeWords;\n    }\n\n\n    /**\n     * Sorts a map by value taken from\n     * http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java\n     */\n    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n        Map<K, V> result = new LinkedHashMap<>();\n        Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n        st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n        return result;\n    }\n\n    /**\n     * A very simple LRU cache implementation that can be used for random data types.\n     */\n    public class LruCache<A, B> extends LinkedHashMap<A, B> {\n        private final int maxEntries;\n\n        public LruCache(final int maxEntries) {\n            super(maxEntries + 1, 1.0f, true);\n            this.maxEntries = maxEntries;\n        }\n\n        @Override\n        protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n            return super.size() > maxEntries;\n        }\n    }\n\n}\n"
  },
  {
    "path": "examples/language/test.prg",
    "content": "/*\n   This program demonstrates the calculation\n   of the factorial of a number using a function.\n\n   https://github.com/boyter/scc/issues/484\n*/\n\nFUNCTION Factorial( n )\n   LOCAL result := 1\n   LOCAL i\n\n   // Loop from 1 to n\n   FOR i := 1 TO n\n      result := result * i\n   NEXT\n\n   RETURN result\n\n// Main program execution starts here\nFUNCTION Main()\n   LOCAL num := 5\n   LOCAL fact\n\n   // Calculate the factorial of the number\n   fact := Factorial( num )\n\n   // Check if the factorial is greater than 100\n   IF fact > 100\n      ? \"Factorial is greater than 100\"\n   ELSE\n      ? \"Factorial is less than or equal to 100\"\n   ENDIF\n\n   RETURN"
  },
  {
    "path": "examples/language/test.sieve",
    "content": "require [\"fileinto\", \"reject\", \"vacation\", \"notify\", \"envelope\", \"body\", \"relational\", \"regex\", \"subaddress\", \"copy\", \"mailbox\", \"mboxmetadata\", \"servermetadata\", \"date\", \"index\", \"comparator-i;ascii-numeric\", \"variables\", \"imap4flags\", \"editheader\", \"duplicate\", \"vacation-seconds\", \"fcc\", \"x-cyrus-jmapquery\"];\n# whitelist first since we can't use the address-book whitelisting feature\n# when the from = to address\nif header :contains \"From\" \"root@armakuni.example.com\" {\n  fileinto \"INBOX.ln\";\n  stop;\n}\n\n### 1. Sieve generated for save-on-SMTP identities\nif header :contains \"X-Resolved-To\" \"+personalitysentitem-15989017@\" {\n  setflag \"\\\\Seen\";\n  fileinto \"\\\\Sent\";\n  stop;\n}\nif header :contains \"X-Resolved-To\" \"+personalitysentitem-15989021@\" {\n  setflag \"\\\\Seen\";\n  fileinto \"\\\\Sent\";\n  stop;\n}\n\n### 2. Sieve generated for discard rules\nif not header :matches \"X-Spam-Known-Sender\" \"yes*\" {\n  if address :is [\"To\",\"Cc\",\"Resent-To\",\"X-Delivered-To\"] \"alldaychemist@t.example.com\" {\n    discard;\n    stop;\n  }\n}\n\n### 3. Sieve generated for spam protection\nif not header :matches \"X-Spam-Known-Sender\" \"yes*\" {\n  if \n    allof(\n    header :contains \"X-Backscatter\" \"yes\",\n    not header :matches \"X-LinkName\" \"*\"\n    )\n  {\n    discard;\n    stop;\n  }\n  if header :value \"ge\" :comparator \"i;ascii-numeric\" \"X-Spam-score\" \"8\" {\n    fileinto \"\\\\Junk\";\n    stop;\n  }\n}\n\n### 4. Sieve generated for forwarding rules\nif \n  anyof(\n  address :contains \"From\" \"majswps.example.com\",\n  address :contains \"From\" \"majorsweeps.example.comcom\",\n  address :contains \"From\" \"mjsupdates.example.com\"\n  )\n{\n  redirect :copy \"somespammer@mediacompany.example.com\";\n  discard;\n}\nif address :contains \"From\" \"spammer.example.com\" {\n  redirect :copy \"abuse@someisp.example.com\";\n  discard;\n}\n\n### 5. Sieve generated for vacation responses\n# You do not have vacation responses enabled.\n\n\n\n### 6. Sieve generated for calendar preferences\nif\n  allof(\n  header :is \"X-ME-Cal-Method\" \"request\",\n  not exists \"X-ME-Cal-Exists\",\n  header :contains \"X-Spam-Known-Sender\" \"in-addressbook\"\n  )\n{\n  notify :method \"addcal\";\n}\nelsif exists \"X-ME-Cal-Exists\" {\n  notify :method \"updatecal\";\n}\n\n### 7. Sieve generated for organise rules\nif header :contains [\"List-Id\",\"List-Post\"] \"<freebsd-announce.freebsd.org>\" {\n  fileinto \"INBOX.ml.freebsd-announce\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<iccrg.irtf.org>\" {\n  fileinto \"INBOX.ml.iccrg\";\n}\nelsif \n  anyof(\n  header :contains [\"List-Id\",\"List-Post\"] \"<~sircmpwn/aerc@lists.sr.ht>\",\n  header :contains [\"List-Id\",\"List-Post\"] \"<~sircmpwn/aerc.lists.sr.ht>\"\n  )\n{\n  fileinto \"INBOX.ml.aerc\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<sidrops.ietf.org>\" {\n  fileinto \"INBOX.ml.sidrops\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<tuhs.minnie.tuhs.org>\" {\n  fileinto \"INBOX.ml.tuhs\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<lynx-dev.nongnu.org>\" {\n  fileinto \"INBOX.ml.lynx-dev\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<info-cyrus.lists.andrew.cmu.edu>\" {\n  fileinto \"INBOX.ml.cyrus-info\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<cyrus-announce.lists.andrew.cmu.edu>\" {\n  fileinto \"INBOX.ml.cyrus-announce\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<cyrus-devel.lists.andrew.cmu.edu>\" {\n  fileinto \"INBOX.ml.cyrus-devel\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<mutt-announce.mutt.org>\" {\n  fileinto \"INBOX.ml.mutt-announce\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<mutt-users.mutt.org>\" {\n  fileinto \"INBOX.ml.mutt-users\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<mutt-dev.mutt.org>\" {\n  fileinto \"INBOX.ml.mutt-dev\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<neomutt-users-neomutt.org>\" {\n  fileinto \"INBOX.ml.neomutt-users\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<neomutt-devel-neomutt.org>\" {\n  fileinto \"INBOX.ml.neomutt-devel\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<ccan.lists.ozlabs.org>\" {\n  fileinto \"INBOX.ml.ccan\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<messaging.moderncrypto.org>\" {\n  fileinto \"INBOX.ml.messaging\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<noise.moderncrypto.org>\" {\n  fileinto \"INBOX.ml.noise\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<cfrg.irtf.org>\" {\n  fileinto \"INBOX.ml.cfrg\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<pearg.irtf.org>\" {\n  fileinto \"INBOX.ml.pearg\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<ausnog.lists.ausnog.net>\" {\n  fileinto \"INBOX.ml.ausnog\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<wireguard.lists.zx2c4.com>\" {\n  fileinto \"INBOX.ml.wireguard\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<juniper-nsp.puck.nether.net>\" {\n  fileinto \"INBOX.ml.jnsp\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<cisco-nsp.puck.nether.net>\" {\n  fileinto \"INBOX.ml.cnsp\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<jmap.ietf.org>\" {\n  fileinto \"INBOX.ml.jmap\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<oss-security.lists.openwall.com>\" {\n  fileinto \"INBOX.ml.oss-security\";\n}\nelsif header :contains \"Mail-Followup-To\" \"cryptanalytic-algorithms@list.cr.yp.to\" {\n  fileinto \"INBOX.ml.cryptanalytic-algorithms\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<cryptography.metzdowd.com>\" {\n  fileinto \"INBOX.ml.cryptography\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<nanog.nanog.org>\" {\n  fileinto \"INBOX.ml.nanog\";\n}\nelsif header :contains [\"List-Id\",\"List-Post\"] \"<icnrg.irtf.org>\" {\n  fileinto \"INBOX.ml.icnrg\";\n}\nelsif\n  anyof(\n  address :is [\"To\",\"Cc\",\"Resent-To\",\"X-Delivered-To\"] \"root@armakuni.example.net\",\n  address :is [\"To\",\"Cc\",\"Resent-To\",\"X-Delivered-To\"] \"myname@armakuni.example.net\"\n  )\n{\n  fileinto \"INBOX.ln\";\n}\n\n### 8. Sieve generated for fetch mail filing\n# You have no pop-links filing into special folders.\n\n\n# Start user advanced sieve block 'PostFolder' {{{\nelse {\n}\n# }}} End user advanced sieve block 'PostFolder'\n\n\n"
  },
  {
    "path": "examples/language/test.tf",
    "content": "# This is a comment\n// This is another comment\n\n/* This is a\n   multiline\n   comment\n*/\n\nprovider \"null\" {}\n\nlocals {\n  list = [for i, v in [\"foo\", \"bar\"] : v if v == \"foo\"]\n  map  = { for k, v in { \"a\" = \"foo\", \"b\" = \"bar\" } : v => k }\n}\n\nresource \"null_resource\" \"count\" {\n  count = 2\n\n  triggers = {\n    conditional  = 1 < 2 || 2 <= 3 && \"a\" == \"c\" ? \"foo\" : \"bar\"\n    conditional2 = 1 > 2 || 2 >= 3 && \"a\" != \"c\" ? \"foo\" : \"bar\"\n  }\n\n  provisioner \"local-exec\" {\n    command = \"echo ${join(\" \", local.list)}\"\n  }\n}\n\nresource \"null_resource\" \"foreach\" {\n  for_each = toset(local.map)\n}\n"
  },
  {
    "path": "examples/language/test.tofu",
    "content": "# This is a comment\n// This is another comment\n\n/* This is a\n   multiline\n   comment\n*/\n\nprovider \"null\" {}\n\nlocals {\n  list = [for i, v in [\"foo\", \"bar\"] : v if v == \"foo\"]\n  map  = { for k, v in { \"a\" = \"foo\", \"b\" = \"bar\" } : v => k }\n}\n\nresource \"null_resource\" \"count\" {\n  count = 2\n\n  triggers = {\n    conditional  = 1 < 2 || 2 <= 3 && \"a\" == \"c\" ? \"foo\" : \"bar\"\n    conditional2 = 1 > 2 || 2 >= 3 && \"a\" != \"c\" ? \"foo\" : \"bar\"\n  }\n\n  provisioner \"local-exec\" {\n    command = \"echo ${join(\" \", local.list)}\"\n  }\n}\n\nresource \"null_resource\" \"foreach\" {\n  for_each = toset(local.map)\n}\n"
  },
  {
    "path": "examples/language/textile.textile",
    "content": "###. -*- mode: textile; -*-\n\nSee [\"Textile\":https://textile-lang.com].\n\n###.. ////////////////\n// Local Variables:\n// coding: utf-8-unix\n// End:\n//////////////////////"
  },
  {
    "path": "examples/language/ttcn.ttcn",
    "content": "module TestSystem {\n\n// Define a subtype of integer\ntype integer myNewType (0..50)\n\n// Declare Request struct type with 2 fields\ntype record Request {\n  myNewType param1,\n  charstring param2\n  }\n\n// Declare Answer struct type with one field\ntype record Answer {\n  myNewType param1\n  }\n\n// Declare a message based communication port\ntype port cEnv_type message {\n  out Request;\n  in Answer;\n  }\n\n// Declare the component on which the test case will run\ntype component sSystem {\n  port cEnv_type cEnv;\n  }\n\n// The templates define the outgoing parameter values\n// and verify the incoming parameter values\ntemplate Request Good_Req := {param1 := 42, param2 := \"hello !\" };\ntemplate Answer All_is_OK := {param1 := 0};\n\n// Define testcase1 that will run on sSystem component\ntestcase testcase1() runs on sSystem\n  {\n  // Send Request message with (42, \"hello !\") as parmeters\n  cEnv.send(Good_Req);\n  // An alternative for the 2 possible answers\n  alt\n    {\n    // Do we receive Answer with 0 as parameter\n    []cEnv.receive(All_is_OK)\n      {\n      // Pass verdict !\n      setverdict(pass)\n      }\n    // Or do we receive something else\n    []cEnv.receive\n      {\n      // Fail verdict\n      setverdict(fail)\n      }\n    }\n  }\n\n// Control part chains test cases execution automatically\ncontrol {\n  var verdicttype verdict1;\n  verdict1 := execute(testcase1());\n  }\n}"
  },
  {
    "path": "examples/language/typescript.ts",
    "content": "const url = `/foo/bar/*`;\n\nfunction getUrl(path?: string): string {\n  return path ?? url;\n}\n\nfunction getUrl2() {\n  return url;\n}\n"
  },
  {
    "path": "examples/language/typespec.tsp",
    "content": "import \"@typespec/http\";\n\nusing TypeSpec.Http;\n\nmodel Store {\n  name: string;\n  address: Address;\n}\n\nmodel Address {\n  street: string;\n  city: string;\n}\n\n@route(\"/stores\")\ninterface Stores {\n  list(@query filter: string): Store[];\n  read(@path id: Store): Store;\n}"
  },
  {
    "path": "examples/language/typst.typ",
    "content": "// 16 lines 9 code 3 comments 4 blanks\n\n// Some example settings\n#set document(title: \"a title\", author: \"an author\")\n#set page(numbering: \"1 / 1\", number-align: center)\n#set par(justify: true)\n#set text(size: 13pt, lang: \"fr\") // with a trailing comment\n#set heading(numbering: \"1.1\") /* with another trailing comment */\n\n#let foo = \"multiline\nstring\"\n\n#let bar = \"singleline string\"\n\n/* comment */ /* nested /* comment */ */\n#lorem(50)"
  },
  {
    "path": "examples/language/up.up",
    "content": "// func => function definition keyword (reserved word)\n// function_a => function name (user-defined)\n// int1 => parameter name (user-defined)\n// [variable_name]: int => parameter data type (int is a reserved word)\n// [function] -> string => return data type (string is a reserved word)\n// nilStr => variable name (user-defined)\n// \"nil\" => variable value (user-defined)\nfunc function_a(int1: int) -> string {\n    nilStr = \"nil\"\n    return nilStr + int1\n}\n\n// func => function definition keyword (reserved word)\n// integer_mul => function name (user-defined)\n// integer => parameter name (user-defined)\n// [variable_name]: int => parameter data type (int is a reserved word)\n// [function] -> int => return data type (int is a reserved word)\nfunc integer_mul(integer: int) -> int {\n    return integer * 2\n}\n\nfunc main() -> nil {\n    print(function_a(3) + integer_mul())\n}"
  },
  {
    "path": "examples/language/vala.vala",
    "content": "// test for vala\n\nclass Demo.Demo : GLib.Object {\n    public static int main(string[] args) {\n        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};\n        foreach (var i in arr) {\n            foreach (var j in arr[0:i]) {\n                var n = i * j;\n                stdout.printf(@\"$j * $i = $n \");\n            }\n            stdout.printf(\"\\n\");\n        }\n        stdout.printf(\"\"\"\n        Test for \"verbatim strings\".\n        \\r \\n \\a \\b\n        \"\"\");\n        stdout.printf(\"\\n\");\n        return 0;\n    }\n}\n"
  },
  {
    "path": "examples/language/version.rc",
    "content": "#define VER_FILEVERSION             3,10,349,0\n#define VER_FILEVERSION_STR         \"3.10.349.0\\0\"\n\n#define VER_PRODUCTVERSION          3,10,0,0\n#define VER_PRODUCTVERSION_STR      \"3.10\\0\"\n\n#ifndef DEBUG\n#define VER_DEBUG                   0\n#else\n#define VER_DEBUG                   VS_FF_DEBUG\n#endif\n\nVS_VERSION_INFO VERSIONINFO\nFILEVERSION     VER_FILEVERSION\nPRODUCTVERSION  VER_PRODUCTVERSION\nFILEFLAGSMASK   VS_FFI_FILEFLAGSMASK\nFILEFLAGS       (VER_PRIVATEBUILD|VER_PRERELEASE|VER_DEBUG)\nFILEOS          VOS__WINDOWS32\nFILETYPE        VFT_DLL\nFILESUBTYPE     VFT2_UNKNOWN\nBEGIN\n    BLOCK \"StringFileInfo\"\n    BEGIN\n        BLOCK \"040904E4\"\n        BEGIN\n            VALUE \"CompanyName\",      VER_COMPANYNAME_STR\n            VALUE \"FileDescription\",  VER_FILEDESCRIPTION_STR\n            VALUE \"FileVersion\",      VER_FILEVERSION_STR\n            VALUE \"InternalName\",     VER_INTERNALNAME_STR\n            VALUE \"LegalCopyright\",   VER_LEGALCOPYRIGHT_STR\n            VALUE \"LegalTrademarks1\", VER_LEGALTRADEMARKS1_STR\n            VALUE \"LegalTrademarks2\", VER_LEGALTRADEMARKS2_STR\n            VALUE \"OriginalFilename\", VER_ORIGINALFILENAME_STR\n            VALUE \"ProductName\",      VER_PRODUCTNAME_STR\n            VALUE \"ProductVersion\",   VER_PRODUCTVERSION_STR\n        END\n    END\n\n    BLOCK \"VarFileInfo\"\n    BEGIN\n        /* The following line should only be modified for localized versions.     */\n        /* It consists of any number of WORD,WORD pairs, with each pair           */\n        /* describing a language,codepage combination supported by the file.      */\n        /*                                                                        */\n        /* For example, a file might have values \"0x409,1252\" indicating that it  */\n        /* supports English language (0x409) in the Windows ANSI codepage (1252). */\n\n        VALUE \"Translation\", 0x409, 1252\n\n    END\nEND\n"
  },
  {
    "path": "examples/language/vim.vim",
    "content": "\" func\nfunction! ToggleLineNumbers()\n  if &number\n    set nonumber\n    echo \"turn off line numbers\"\n  else\n    set number\n    echo \"turn on line numbers\"\n  endif\nendfunction\n\nnnoremap <F2> :call ToggleLineNumbers()<CR>\n\n\" auto format go source code\nautocmd BufWritePre *.go :silent! execute '%!gofmt'\n\nset tabstop=4\nset shiftwidth=4\nset expandtab\nset number\n"
  },
  {
    "path": "examples/language/wenyan.wy",
    "content": "批曰。「「文氣淋灕。字句切實」」。\n吾有一言。曰「「春日宴。」」。書之。\n有數九。名之曰「酒數」。\n\n恆為是。若「酒數」等於零者乃止也。\n\n\t吾有三言。曰「「與君」」。曰「酒數」。\n\t\t曰「「杯酒。可以窮歡宴。綠酒一杯歌一遍。」」。書之。\n\n減「酒數」以一。昔之「酒數」者。今其是矣云云。\n\n吾有一言。曰「「綠酒千杯腸已爛。」」。書之。"
  },
  {
    "path": "examples/language/wsdl.wsdl",
    "content": "this is a wsdl file"
  },
  {
    "path": "examples/language/xhtml.xhtml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n  \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<!-- This is a comment -->\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n  <head>\n    <title>XHTML Example</title>\n  </head>\n  <body>\n    <p>Hello, World!</p>\n  </body>\n</html>\n"
  },
  {
    "path": "examples/language/xmake.lua",
    "content": "set_project(\"test-project\")\n\nset_version(\"0.1.0\")\n\nset_xmakever(\"2.9.9\")\n\nset_allowedplats(\"windows\")\nset_allowedmodes(\"debug\", \"release\", \"releasedbg\")\n\nincludes(\"src\", \"xmake\", \"test\")\n\n-- fixed config\nset_languages(\"c++20\")\nadd_rules(\"mode.debug\", \"mode.release\", \"mode.releasedbg\")\n\nif is_mode(\"debug\") then\n    add_defines(\"LIBRARY_DEBUG\")\nelseif is_mode(\"release\") then\n    set_optimize(\"smallest\")\nend\n\nif is_plat(\"windows\") then\n    add_defines(\"UNICODE\", \"_UNICODE\")\n    add_cxflags(\"/permissive-\", {tools = \"cl\"})\nend\n\nset_encodings(\"utf-8\")\n\n-- dynamic config\nif has_config(\"dev\") then\n    set_policy(\"compatibility.version\", \"3.0\")\n\n    set_warnings(\"all\")\n\n    if is_plat(\"windows\") then\n        set_runtimes(\"MD\")\n    end\nend\n"
  },
  {
    "path": "examples/language/xmlschema.xsd",
    "content": "something"
  },
  {
    "path": "examples/language/yaml.yml",
    "content": "%YAML 1.2\n---\nYAML: YAML Ain't Markup Language™\n\nWhat It Is:\n  YAML is a human-friendly data serialization\n  language for all programming languages.\n\nYAML Resources:\n  YAML Specifications:\n    - YAML 1.2:\n        - Revision 1.2.2      # Oct 1, 2021 *New*\n        - Revision 1.2.1      # Oct 1, 2009\n        - Revision 1.2.0      # Jul 21, 2009\n    - YAML 1.1\n    - YAML 1.0\n\n  YAML Matrix Chat:  '#chat:yaml.io'     # Our New Group Chat Room!\n  YAML IRC Channel:  libera.chat#yaml    # The old chat\n  YAML News:         twitter.com/yamlnews\n  YAML Mailing List: yaml-core           # Obsolete, but historical\n\n  YAML on GitHub:                        # github.com/yaml/\n    YAML Specs:        yaml-spec/\n    YAML 1.2 Grammar:  yaml-grammar/\n    YAML Test Suite:   yaml-test-suite/\n    YAML Issues:       issues/\n\n  YAML Reference Parsers:\n    - Generated Reference Parsers\n    - YPaste Interactive Parser\n\n  YAML Test Matrix:   matrix.yaml.io\n\nYAML Frameworks and Tools:\n  C/C++:\n    - libfyaml      # \"C\" YAML 1.2 processor (YTS)\n    - libyaml       # \"C\" Fast YAML 1.1 (YTS)\n    - libcyaml      # YAML de/serialization of C data (using libyaml)\n    - yaml-cpp      # C++ YAML 1.2 implementation\n\n  Crystal:\n    - YAML          # YAML 1.1 from the standard library\n\n  C#/.NET:\n    - YamlDotNet    # YAML 1.1/(1.2) library + serialization (YTS)\n    - yaml-net      # YAML 1.1 library\n\n  D:\n    - D-YAML        # YAML 1.1 library w/ official community support (YTS)\n\n  Dart:\n    - yaml          # YAML package for Dart\n\n  Delphi:\n    - Neslib.Yaml   # YAML 1.1 Delphi binding to libyaml (YTS)\n\n  Elixir:\n    - yaml-elixir   # YAML support for the Elixir language\n\n  Erlang:\n    - yamerl        # YAML support for the Erlang language\n\n  Golang:\n    - Go-yaml       # YAML support for the Go language\n    - Go-gypsy      # Simplified YAML parser written in Go\n    - goccy/go-yaml # YAML 1.2 implementation in pure Go\n\n  Haskell:\n    - HsYAML         # YAML 1.2 implementation in pure Haskell (YTS)\n    - YamlReference  # Haskell 1.2 reference parser\n    - yaml           # YAML 1.1 Haskell framework (based on libyaml)\n\n  Java:\n    - SnakeYAML Engine  # Java 8+ / YAML 1.2\n    - SnakeYAML         # Java 5 / YAML 1.1\n    - YamlBeans         # To/from JavaBeans. YAML 1.0/1.1\n    - eo-yaml           # YAML 1.2 for Java 8. Packaged as a Module (Java 9+)\n    - Chronicle-Wire    # Java Implementation\n\n  JavaScript:\n    - yaml          # JavaScript parser/stringifier (YAML 1.2, 1.1) (YTS)\n    - js-yaml       # Native PyYAML port to JavaScript (Demo)\n\n  Nim:\n    - NimYAML       # YAML 1.2 implementation in pure Nim (YTS)\n\n  OCaml:\n    - ocaml-yaml    # YAML 1.1/1.2 via libyaml bindings\n    - ocaml-syck    # YAML 1.0 via syck bindings\n\n  Perl Modules:\n    - YAML          # Pure Perl YAML 1.0 Module\n    - YAML::XS      # Binding to libyaml\n    - YAML::Syck    # Binding to libsyck\n    - YAML::Tiny    # A small YAML subset module\n    - YAML::PP      # A YAML 1.2/1.1 processor (YTS)\n\n  PHP:\n    - The Yaml Component  # Symfony Yaml Component (YAML 1.2)\n    - php-yaml      # libyaml bindings (YAML 1.1)\n    - syck          # syck bindings (YAML 1.0)\n    - spyc          # yaml loader/dumper (YAML 1.?)\n\n  Python:\n    - PyYAML        # YAML 1.1, pure python and libyaml binding\n    - ruamel.yaml   # YAML 1.2, update of PyYAML; comments round-trip\n    - PySyck        # YAML 1.0, syck binding\n    - strictyaml    # Restricted YAML subset\n\n  R:\n    - R YAML        # libyaml wrapper\n\n  Raku:\n    - YAMLish       # Port of YAMLish to Raku\n    - YAML::Parser::LibYAML  # LibYAML wrapper\n\n  Ruby:\n    - psych         # libyaml wrapper (in Ruby core for 1.9.2)\n    - RbYaml        # YAML 1.1 (PyYAML Port)\n    - yaml4r        # YAML 1.0, standard library syck binding\n\n  Rust:\n    - yaml-rust     # YAML 1.2 implementation in pure Rust\n    - serde-yaml    # YAML de/serialization of structs\n\n  Shell:\n    - parse_yaml    # Simple YAML parser for Bash using sed and awk\n    - shyaml        # Read YAML files - jq style\n\n  Swift:\n    - Yams          # libyaml wrapper\n\n  Others:\n    - yamlvim       # YAML dumper/emitter in pure vimscript\n\nRelated Projects:\n  - Rx            # Multi-Language Schemata Tool for JSON/YAML\n  - Kwalify       # Ruby Schemata Tool for JSON/YAML\n  - pyKwalify     # Python Schemata Tool for JSON/YAML\n  - yatools.net   # Visual Studio editor for YAML\n  - JSON          # Official JSON Website\n  - Pygments      # Python language Syntax Colorizer /w YAML support\n  - yamllint      # YAML Linter based on PyYAML\n  - YAML Diff     # Semantically compare two YAML documents\n  - JSON Schema   # YAML-compliant JSON standard for data validation\n\n# Edit This Website\n..."
  },
  {
    "path": "examples/language/zig.zig",
    "content": "const std = @import(\"std\");\nconst print = std.debug.print;\n\npub fn main() void {\n    const arr = [_]u32{1, 2, 3, 4, 5, 6, 7, 8, 9};\n    for (arr) |m| {\n        var n: u32 = 1;\n        while (n <= m) : (n += 1) {\n            print(\"{} x {} = {}, \", .{n, m, n*m});\n        }\n        print(\"\\n\", .{});\n    }\n}\n"
  },
  {
    "path": "examples/language/zokrates.zok",
    "content": "/*\n    This is a multi-line comment\n    written in more than just one line.\n*/\n\ndef main() -> field {\n    // an inline comment\n\n    u32 mut res = 0;\n    for u32 i in 0..4 {\n        for u32 j in i..5 {\n            res = res + i;\n        }\n    }\n    return res;\n}"
  },
  {
    "path": "examples/long/test.feature",
    "content": ""
  },
  {
    "path": "examples/long/test.ftl",
    "content": ""
  },
  {
    "path": "examples/long/test.jsp",
    "content": ""
  },
  {
    "path": "examples/long/test.mxml",
    "content": ""
  },
  {
    "path": "examples/long/test.rdl",
    "content": ""
  },
  {
    "path": "examples/long/test.vcl",
    "content": ""
  },
  {
    "path": "examples/long/test.xslt",
    "content": ""
  },
  {
    "path": "examples/minified/0-941d61979b9396d94f06.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{245:function(e,t,n){n(5),n(4),n(3),n(6),n(12),t.__esModule=!0,t.Helmet=void 0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=f(n(0)),a=f(n(10)),u=f(n(259)),c=f(n(262)),T=n(263),s=n(253);function f(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var E,p,d,A=(0,u.default)(T.reducePropsToState,T.handleClientStateChange,T.mapStateOnServer)(function(){return null}),S=(E=A,d=p=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t),function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.shouldComponentUpdate=function(e){return!(0,c.default)(this.props,e)},t.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case s.TAG_NAMES.SCRIPT:case s.TAG_NAMES.NOSCRIPT:return{innerHTML:t};case s.TAG_NAMES.STYLE:return{cssText:t}}throw new Error(\"<\"+e.type+\" /> elements are self-closing and can not contain children. Refer to our API for more information.\")},t.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,o=e.arrayTypeChildren,i=e.newChildProps,a=e.nestedChildren;return r({},o,((t={})[n.type]=[].concat(o[n.type]||[],[r({},i,this.mapNestedChildrenToProps(n,a))]),t))},t.prototype.mapObjectTypeChildren=function(e){var t,n,o=e.child,i=e.newProps,a=e.newChildProps,u=e.nestedChildren;switch(o.type){case s.TAG_NAMES.TITLE:return r({},i,((t={})[o.type]=u,t.titleAttributes=r({},a),t));case s.TAG_NAMES.BODY:return r({},i,{bodyAttributes:r({},a)});case s.TAG_NAMES.HTML:return r({},i,{htmlAttributes:r({},a)})}return r({},i,((n={})[o.type]=r({},a),n))},t.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=r({},t);return Object.keys(e).forEach(function(t){var o;n=r({},n,((o={})[t]=e[t],o))}),n},t.prototype.warnOnInvalidChildren=function(e,t){return!0},t.prototype.mapChildrenToProps=function(e,t){var n=this,r={};return i.default.Children.forEach(e,function(e){if(e&&e.props){var o=e.props,i=o.children,a=l(o,[\"children\"]),u=(0,T.convertReactPropstoHtmlAttributes)(a);switch(n.warnOnInvalidChildren(e,i),e.type){case s.TAG_NAMES.LINK:case s.TAG_NAMES.META:case s.TAG_NAMES.NOSCRIPT:case s.TAG_NAMES.SCRIPT:case s.TAG_NAMES.STYLE:r=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:r,newChildProps:u,nestedChildren:i});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:u,nestedChildren:i})}}}),t=this.mapArrayTypeChildrenToProps(r,t)},t.prototype.render=function(){var e=this.props,t=e.children,n=l(e,[\"children\"]),o=r({},n);return t&&(o=this.mapChildrenToProps(t,o)),i.default.createElement(E,o)},o(t,null,[{key:\"canUseDOM\",set:function(e){E.canUseDOM=e}}]),t}(i.default.Component),p.propTypes={base:a.default.object,bodyAttributes:a.default.object,children:a.default.oneOfType([a.default.arrayOf(a.default.node),a.default.node]),defaultTitle:a.default.string,defer:a.default.bool,encodeSpecialCharacters:a.default.bool,htmlAttributes:a.default.object,link:a.default.arrayOf(a.default.object),meta:a.default.arrayOf(a.default.object),noscript:a.default.arrayOf(a.default.object),onChangeClientState:a.default.func,script:a.default.arrayOf(a.default.object),style:a.default.arrayOf(a.default.object),title:a.default.string,titleAttributes:a.default.object,titleTemplate:a.default.string},p.defaultProps={defer:!0,encodeSpecialCharacters:!0},p.peek=E.peek,p.rewind=function(){var e=E.rewind();return e||(e=(0,T.mapStateOnServer)({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:\"\",titleAttributes:{}})),e},d);S.renderStatic=S.rewind,t.Helmet=S,t.default=S},253:function(e,t,n){n(21),n(5),n(4),n(3),n(6),t.__esModule=!0;t.ATTRIBUTE_NAMES={BODY:\"bodyAttributes\",HTML:\"htmlAttributes\",TITLE:\"titleAttributes\"};var r=t.TAG_NAMES={BASE:\"base\",BODY:\"body\",HEAD:\"head\",HTML:\"html\",LINK:\"link\",META:\"meta\",NOSCRIPT:\"noscript\",SCRIPT:\"script\",STYLE:\"style\",TITLE:\"title\"},o=(t.VALID_TAG_NAMES=Object.keys(r).map(function(e){return r[e]}),t.TAG_PROPERTIES={CHARSET:\"charset\",CSS_TEXT:\"cssText\",HREF:\"href\",HTTPEQUIV:\"http-equiv\",INNER_HTML:\"innerHTML\",ITEM_PROP:\"itemprop\",NAME:\"name\",PROPERTY:\"property\",REL:\"rel\",SRC:\"src\"},t.REACT_TAG_MAP={accesskey:\"accessKey\",charset:\"charSet\",class:\"className\",contenteditable:\"contentEditable\",contextmenu:\"contextMenu\",\"http-equiv\":\"httpEquiv\",itemprop:\"itemProp\",tabindex:\"tabIndex\"});t.HELMET_PROPS={DEFAULT_TITLE:\"defaultTitle\",DEFER:\"defer\",ENCODE_SPECIAL_CHARACTERS:\"encodeSpecialCharacters\",ON_CHANGE_CLIENT_STATE:\"onChangeClientState\",TITLE_TEMPLATE:\"titleTemplate\"},t.HTML_TAG_MAP=Object.keys(o).reduce(function(e,t){return e[o[t]]=t,e},{}),t.SELF_CLOSING_TAGS=[r.NOSCRIPT,r.SCRIPT,r.STYLE],t.HELMET_ATTRIBUTE=\"data-react-helmet\"},259:function(e,t,n){\"use strict\";function r(e){return e&&\"object\"==typeof e&&\"default\"in e?e.default:e}n(21);var o=n(0),i=r(o),a=r(n(260)),u=r(n(261));e.exports=function(e,t,n){if(\"function\"!=typeof e)throw new Error(\"Expected reducePropsToState to be a function.\");if(\"function\"!=typeof t)throw new Error(\"Expected handleStateChangeOnClient to be a function.\");if(void 0!==n&&\"function\"!=typeof n)throw new Error(\"Expected mapStateOnServer to either be undefined or a function.\");return function(r){if(\"function\"!=typeof r)throw new Error(\"Expected WrappedComponent to be a React component.\");var c=[],T=void 0;function s(){T=e(c.map(function(e){return e.props})),f.canUseDOM?t(T):n&&(T=n(T))}var f=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t),function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.peek=function(){return T},t.rewind=function(){if(t.canUseDOM)throw new Error(\"You may only call rewind() on the server. Call peek() to read the current state.\");var e=T;return T=void 0,c=[],e},t.prototype.shouldComponentUpdate=function(e){return!u(e,this.props)},t.prototype.componentWillMount=function(){c.push(this),s()},t.prototype.componentDidUpdate=function(){s()},t.prototype.componentWillUnmount=function(){var e=c.indexOf(this);c.splice(e,1),s()},t.prototype.render=function(){return i.createElement(r,this.props)},t}(o.Component);return f.displayName=\"SideEffect(\"+function(e){return e.displayName||e.name||\"Component\"}(r)+\")\",f.canUseDOM=a.canUseDOM,f}}},260:function(e,t,n){var r;!function(){\"use strict\";var o=!(\"undefined\"==typeof window||!window.document||!window.document.createElement),i={canUseDOM:o,canUseWorkers:\"undefined\"!=typeof Worker,canUseEventListeners:o&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:o&&!!window.screen};void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r)}()},261:function(e,t,n){n(5),n(4),n(3),n(6),e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if(\"object\"!=typeof e||!e||\"object\"!=typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var u=Object.prototype.hasOwnProperty.bind(t),c=0;c<i.length;c++){var T=i[c];if(!u(T))return!1;var s=e[T],f=t[T];if(!1===(o=n?n.call(r,s,f,T):void 0)||void 0===o&&s!==f)return!1}return!0}},262:function(e,t,n){\"use strict\";n(21),n(59),n(29),n(60),n(5),n(4),n(3),n(6);var r=Array.isArray,o=Object.keys,i=Object.prototype.hasOwnProperty,a=\"undefined\"!=typeof Element;e.exports=function(e,t){try{return function e(t,n){if(t===n)return!0;if(t&&n&&\"object\"==typeof t&&\"object\"==typeof n){var u,c,T,s=r(t),f=r(n);if(s&&f){if((c=t.length)!=n.length)return!1;for(u=c;0!=u--;)if(!e(t[u],n[u]))return!1;return!0}if(s!=f)return!1;var l=t instanceof Date,E=n instanceof Date;if(l!=E)return!1;if(l&&E)return t.getTime()==n.getTime();var p=t instanceof RegExp,d=n instanceof RegExp;if(p!=d)return!1;if(p&&d)return t.toString()==n.toString();var A=o(t);if((c=A.length)!==o(n).length)return!1;for(u=c;0!=u--;)if(!i.call(n,A[u]))return!1;if(a&&t instanceof Element&&n instanceof Element)return t===n;for(u=c;0!=u--;)if(!(\"_owner\"===(T=A[u])&&t.$$typeof||e(t[T],n[T])))return!1;return!0}return t!=t&&n!=n}(e,t)}catch(n){if(n.message&&n.message.match(/stack|recursion/i)||-2146828260===n.number)return console.warn(\"Warning: react-fast-compare does not handle circular references.\",n.name,n.message),!1;throw n}}},263:function(e,t,n){(function(e){n(22),n(5),n(4),n(3),n(6),n(13),n(12),n(48),n(18),t.__esModule=!0,t.warn=t.requestAnimationFrame=t.reducePropsToState=t.mapStateOnServer=t.handleClientStateChange=t.convertReactPropstoHtmlAttributes=void 0;var r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=c(n(0)),a=c(n(107)),u=n(253);function c(e){return e&&e.__esModule?e:{default:e}}var T,s=function(e){return!1===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])?String(e):String(e).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&#x27;\")},f=function(e){var t=A(e,u.TAG_NAMES.TITLE),n=A(e,u.HELMET_PROPS.TITLE_TEMPLATE);if(n&&t)return n.replace(/%s/g,function(){return t});var r=A(e,u.HELMET_PROPS.DEFAULT_TITLE);return t||r||void 0},l=function(e){return A(e,u.HELMET_PROPS.ON_CHANGE_CLIENT_STATE)||function(){}},E=function(e,t){return t.filter(function(t){return void 0!==t[e]}).map(function(t){return t[e]}).reduce(function(e,t){return o({},e,t)},{})},p=function(e,t){return t.filter(function(e){return void 0!==e[u.TAG_NAMES.BASE]}).map(function(e){return e[u.TAG_NAMES.BASE]}).reverse().reduce(function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o++){var i=r[o].toLowerCase();if(-1!==e.indexOf(i)&&n[i])return t.concat(n)}return t},[])},d=function(e,t,n){var o={};return n.filter(function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&b(\"Helmet: \"+e+' should be of type \"Array\". Instead found type \"'+r(t[e])+'\"'),!1)}).map(function(t){return t[e]}).reverse().reduce(function(e,n){var r={};n.filter(function(e){for(var n=void 0,i=Object.keys(e),a=0;a<i.length;a++){var c=i[a],T=c.toLowerCase();-1===t.indexOf(T)||n===u.TAG_PROPERTIES.REL&&\"canonical\"===e[n].toLowerCase()||T===u.TAG_PROPERTIES.REL&&\"stylesheet\"===e[T].toLowerCase()||(n=T),-1===t.indexOf(c)||c!==u.TAG_PROPERTIES.INNER_HTML&&c!==u.TAG_PROPERTIES.CSS_TEXT&&c!==u.TAG_PROPERTIES.ITEM_PROP||(n=c)}if(!n||!e[n])return!1;var s=e[n].toLowerCase();return o[n]||(o[n]={}),r[n]||(r[n]={}),!o[n][s]&&(r[n][s]=!0,!0)}).reverse().forEach(function(t){return e.push(t)});for(var i=Object.keys(r),c=0;c<i.length;c++){var T=i[c],s=(0,a.default)({},o[T],r[T]);o[T]=s}return e},[]).reverse()},A=function(e,t){for(var n=e.length-1;n>=0;n--){var r=e[n];if(r.hasOwnProperty(t))return r[t]}return null},S=(T=Date.now(),function(e){var t=Date.now();t-T>16?(T=t,e(t)):setTimeout(function(){S(e)},0)}),h=function(e){return clearTimeout(e)},y=\"undefined\"!=typeof window?window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||S:e.requestAnimationFrame||S,_=\"undefined\"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||h:e.cancelAnimationFrame||h,b=function(e){return console&&\"function\"==typeof console.warn&&console.warn(e)},m=null,R=function(e,t){var n=e.baseTag,r=e.bodyAttributes,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,c=e.noscriptTags,T=e.onChangeClientState,s=e.scriptTags,f=e.styleTags,l=e.title,E=e.titleAttributes;O(u.TAG_NAMES.BODY,r),O(u.TAG_NAMES.HTML,o),v(l,E);var p={baseTag:M(u.TAG_NAMES.BASE,n),linkTags:M(u.TAG_NAMES.LINK,i),metaTags:M(u.TAG_NAMES.META,a),noscriptTags:M(u.TAG_NAMES.NOSCRIPT,c),scriptTags:M(u.TAG_NAMES.SCRIPT,s),styleTags:M(u.TAG_NAMES.STYLE,f)},d={},A={};Object.keys(p).forEach(function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(d[e]=n),r.length&&(A[e]=p[e].oldTags)}),t&&t(),T(e,d,A)},P=function(e){return Array.isArray(e)?e.join(\"\"):e},v=function(e,t){void 0!==e&&document.title!==e&&(document.title=P(e)),O(u.TAG_NAMES.TITLE,t)},O=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute(u.HELMET_ATTRIBUTE),o=r?r.split(\",\"):[],i=[].concat(o),a=Object.keys(t),c=0;c<a.length;c++){var T=a[c],s=t[T]||\"\";n.getAttribute(T)!==s&&n.setAttribute(T,s),-1===o.indexOf(T)&&o.push(T);var f=i.indexOf(T);-1!==f&&i.splice(f,1)}for(var l=i.length-1;l>=0;l--)n.removeAttribute(i[l]);o.length===i.length?n.removeAttribute(u.HELMET_ATTRIBUTE):n.getAttribute(u.HELMET_ATTRIBUTE)!==a.join(\",\")&&n.setAttribute(u.HELMET_ATTRIBUTE,a.join(\",\"))}},M=function(e,t){var n=document.head||document.querySelector(u.TAG_NAMES.HEAD),r=n.querySelectorAll(e+\"[\"+u.HELMET_ATTRIBUTE+\"]\"),o=Array.prototype.slice.call(r),i=[],a=void 0;return t&&t.length&&t.forEach(function(t){var n=document.createElement(e);for(var r in t)if(t.hasOwnProperty(r))if(r===u.TAG_PROPERTIES.INNER_HTML)n.innerHTML=t.innerHTML;else if(r===u.TAG_PROPERTIES.CSS_TEXT)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var c=void 0===t[r]?\"\":t[r];n.setAttribute(r,c)}n.setAttribute(u.HELMET_ATTRIBUTE,\"true\"),o.some(function(e,t){return a=t,n.isEqualNode(e)})?o.splice(a,1):i.push(n)}),o.forEach(function(e){return e.parentNode.removeChild(e)}),i.forEach(function(e){return n.appendChild(e)}),{oldTags:o,newTags:i}},C=function(e){return Object.keys(e).reduce(function(t,n){var r=void 0!==e[n]?n+'=\"'+e[n]+'\"':\"\"+n;return t?t+\" \"+r:r},\"\")},g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[u.REACT_TAG_MAP[n]||n]=e[n],t},t)},w=function(e,t,n){switch(e){case u.TAG_NAMES.TITLE:return{toComponent:function(){return e=t.title,n=t.titleAttributes,(r={key:e})[u.HELMET_ATTRIBUTE]=!0,o=g(n,r),[i.default.createElement(u.TAG_NAMES.TITLE,o,e)];var e,n,r,o},toString:function(){return function(e,t,n,r){var o=C(n),i=P(t);return o?\"<\"+e+\" \"+u.HELMET_ATTRIBUTE+'=\"true\" '+o+\">\"+s(i,r)+\"</\"+e+\">\":\"<\"+e+\" \"+u.HELMET_ATTRIBUTE+'=\"true\">'+s(i,r)+\"</\"+e+\">\"}(e,t.title,t.titleAttributes,n)}};case u.ATTRIBUTE_NAMES.BODY:case u.ATTRIBUTE_NAMES.HTML:return{toComponent:function(){return g(t)},toString:function(){return C(t)}};default:return{toComponent:function(){return function(e,t){return t.map(function(t,n){var r,o=((r={key:n})[u.HELMET_ATTRIBUTE]=!0,r);return Object.keys(t).forEach(function(e){var n=u.REACT_TAG_MAP[e]||e;if(n===u.TAG_PROPERTIES.INNER_HTML||n===u.TAG_PROPERTIES.CSS_TEXT){var r=t.innerHTML||t.cssText;o.dangerouslySetInnerHTML={__html:r}}else o[n]=t[e]}),i.default.createElement(e,o)})}(e,t)},toString:function(){return function(e,t,n){return t.reduce(function(t,r){var o=Object.keys(r).filter(function(e){return!(e===u.TAG_PROPERTIES.INNER_HTML||e===u.TAG_PROPERTIES.CSS_TEXT)}).reduce(function(e,t){var o=void 0===r[t]?t:t+'=\"'+s(r[t],n)+'\"';return e?e+\" \"+o:o},\"\"),i=r.innerHTML||r.cssText||\"\",a=-1===u.SELF_CLOSING_TAGS.indexOf(e);return t+\"<\"+e+\" \"+u.HELMET_ATTRIBUTE+'=\"true\" '+o+(a?\"/>\":\">\"+i+\"</\"+e+\">\")},\"\")}(e,t,n)}}}};t.convertReactPropstoHtmlAttributes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[u.HTML_TAG_MAP[n]||n]=e[n],t},t)},t.handleClientStateChange=function(e){m&&_(m),e.defer?m=y(function(){R(e,function(){m=null})}):(R(e),m=null)},t.mapStateOnServer=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,c=e.noscriptTags,T=e.scriptTags,s=e.styleTags,f=e.title,l=void 0===f?\"\":f,E=e.titleAttributes;return{base:w(u.TAG_NAMES.BASE,t,r),bodyAttributes:w(u.ATTRIBUTE_NAMES.BODY,n,r),htmlAttributes:w(u.ATTRIBUTE_NAMES.HTML,o,r),link:w(u.TAG_NAMES.LINK,i,r),meta:w(u.TAG_NAMES.META,a,r),noscript:w(u.TAG_NAMES.NOSCRIPT,c,r),script:w(u.TAG_NAMES.SCRIPT,T,r),style:w(u.TAG_NAMES.STYLE,s,r),title:w(u.TAG_NAMES.TITLE,{title:l,titleAttributes:E},r)}},t.reducePropsToState=function(e){return{baseTag:p([u.TAG_PROPERTIES.HREF],e),bodyAttributes:E(u.ATTRIBUTE_NAMES.BODY,e),defer:A(e,u.HELMET_PROPS.DEFER),encode:A(e,u.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:E(u.ATTRIBUTE_NAMES.HTML,e),linkTags:d(u.TAG_NAMES.LINK,[u.TAG_PROPERTIES.REL,u.TAG_PROPERTIES.HREF],e),metaTags:d(u.TAG_NAMES.META,[u.TAG_PROPERTIES.NAME,u.TAG_PROPERTIES.CHARSET,u.TAG_PROPERTIES.HTTPEQUIV,u.TAG_PROPERTIES.PROPERTY,u.TAG_PROPERTIES.ITEM_PROP],e),noscriptTags:d(u.TAG_NAMES.NOSCRIPT,[u.TAG_PROPERTIES.INNER_HTML],e),onChangeClientState:l(e),scriptTags:d(u.TAG_NAMES.SCRIPT,[u.TAG_PROPERTIES.SRC,u.TAG_PROPERTIES.INNER_HTML],e),styleTags:d(u.TAG_NAMES.STYLE,[u.TAG_PROPERTIES.CSS_TEXT],e),title:f(e),titleAttributes:E(u.ATTRIBUTE_NAMES.TITLE,e)}},t.requestAnimationFrame=y,t.warn=b}).call(this,n(161))}}]);\n//# sourceMappingURL=0-941d61979b9396d94f06.js.map"
  },
  {
    "path": "examples/minified/1-fa6e7d2ffea9ee90c8d8.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{244:function(e,t,r){\"use strict\";r(5),r(4),r(3),r(85),r(160),r(246);var a=r(26);t.__esModule=!0,t.default=void 0;var i,n=a(r(83)),o=a(r(84)),s=a(r(158)),u=a(r(159)),d=a(r(0)),l=a(r(10)),f=function(e){var t=(0,u.default)({},e),r=t.resolutions,a=t.sizes,i=t.critical;return r&&(t.fixed=r,delete t.resolutions),a&&(t.fluid=a,delete t.sizes),i&&(t.loading=\"eager\"),t.fluid&&(t.fluid=x([].concat(t.fluid))),t.fixed&&(t.fixed=x([].concat(t.fixed))),t},c=function(e){var t=e.fluid,r=e.fixed;return(t&&t[0]||r&&r[0]).src},p=Object.create({}),g=function(e){var t=f(e),r=c(t);return p[r]||!1},h=\"undefined\"!=typeof HTMLImageElement&&\"loading\"in HTMLImageElement.prototype,m=\"undefined\"!=typeof window,b=m&&window.IntersectionObserver,v=new WeakMap;function y(e){return e.map(function(e){var t=e.src,r=e.srcSet,a=e.srcSetWebp,i=e.media,n=e.sizes;return d.default.createElement(d.default.Fragment,{key:t},a&&d.default.createElement(\"source\",{type:\"image/webp\",media:i,srcSet:a,sizes:n}),d.default.createElement(\"source\",{media:i,srcSet:r,sizes:n}))})}function x(e){var t=[],r=[];return e.forEach(function(e){return(e.media?t:r).push(e)}),t.concat(r)}function S(e){return e.map(function(e){var t=e.src,r=e.media,a=e.tracedSVG;return d.default.createElement(\"source\",{key:t,media:r,srcSet:a})})}function E(e){return e.map(function(e){var t=e.src,r=e.media,a=e.base64;return d.default.createElement(\"source\",{key:t,media:r,srcSet:a})})}function L(e,t){var r=e.srcSet,a=e.srcSetWebp,i=e.media,n=e.sizes;return\"<source \"+(t?\"type='image/webp' \":\"\")+(i?'media=\"'+i+'\" ':\"\")+'srcset=\"'+(t?a:r)+'\" '+(n?'sizes=\"'+n+'\" ':\"\")+\"/>\"}var w=function(e,t){var r=(void 0===i&&\"undefined\"!=typeof window&&window.IntersectionObserver&&(i=new window.IntersectionObserver(function(e){e.forEach(function(e){if(v.has(e.target)){var t=v.get(e.target);(e.isIntersecting||e.intersectionRatio>0)&&(i.unobserve(e.target),v.delete(e.target),t())}})},{rootMargin:\"200px\"})),i);return r&&(r.observe(e),v.set(e,t)),function(){r.unobserve(e),v.delete(e)}},O=function(e){var t=e.src?'src=\"'+e.src+'\" ':'src=\"\" ',r=e.sizes?'sizes=\"'+e.sizes+'\" ':\"\",a=e.srcSet?'srcset=\"'+e.srcSet+'\" ':\"\",i=e.title?'title=\"'+e.title+'\" ':\"\",n=e.alt?'alt=\"'+e.alt+'\" ':'alt=\"\" ',o=e.width?'width=\"'+e.width+'\" ':\"\",s=e.height?'height=\"'+e.height+'\" ':\"\",u=e.crossOrigin?'crossorigin=\"'+e.crossOrigin+'\" ':\"\",d=e.loading?'loading=\"'+e.loading+'\" ':\"\",l=e.draggable?'draggable=\"'+e.draggable+'\" ':\"\";return\"<picture>\"+e.imageVariants.map(function(e){return(e.srcSetWebp?L(e,!0):\"\")+L(e)}).join(\"\")+\"<img \"+d+o+s+r+a+t+n+i+u+l+'style=\"position:absolute;top:0;left:0;opacity:1;width:100%;height:100%;object-fit:cover;object-position:center\"/></picture>'},I=function(e){var t=e.src,r=e.imageVariants,a=e.generateSources,i=e.spreadProps,n=d.default.createElement(z,(0,u.default)({src:t},i));return r.length>1?d.default.createElement(\"picture\",null,a(r),n):n},z=d.default.forwardRef(function(e,t){var r=e.sizes,a=e.srcSet,i=e.src,n=e.style,o=e.onLoad,l=e.onError,f=e.loading,c=e.draggable,p=(0,s.default)(e,[\"sizes\",\"srcSet\",\"src\",\"style\",\"onLoad\",\"onError\",\"loading\",\"draggable\"]);return d.default.createElement(\"img\",(0,u.default)({sizes:r,srcSet:a,src:i},p,{onLoad:o,onError:l,ref:t,loading:f,draggable:c,style:(0,u.default)({position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",objectFit:\"cover\",objectPosition:\"center\"},n)}))});z.propTypes={style:l.default.object,onError:l.default.func,onLoad:l.default.func};var R=function(e){function t(t){var r;(r=e.call(this,t)||this).seenBefore=m&&g(t),r.addNoScript=!(t.critical&&!t.fadeIn),r.useIOSupport=!h&&b&&!t.critical&&!r.seenBefore;var a=t.critical||m&&(h||!r.useIOSupport);return r.state={isVisible:a,imgLoaded:!1,imgCached:!1,fadeIn:!r.seenBefore&&t.fadeIn},r.imageRef=d.default.createRef(),r.handleImageLoaded=r.handleImageLoaded.bind((0,o.default)((0,o.default)(r))),r.handleRef=r.handleRef.bind((0,o.default)((0,o.default)(r))),r}(0,n.default)(t,e);var r=t.prototype;return r.componentDidMount=function(){if(this.state.isVisible&&\"function\"==typeof this.props.onStartLoad&&this.props.onStartLoad({wasCached:g(this.props)}),this.props.critical){var e=this.imageRef.current;e&&e.complete&&this.handleImageLoaded()}},r.componentWillUnmount=function(){this.cleanUpListeners&&this.cleanUpListeners()},r.handleRef=function(e){var t=this;this.useIOSupport&&e&&(this.cleanUpListeners=w(e,function(){var e=g(t.props);t.state.isVisible||\"function\"!=typeof t.props.onStartLoad||t.props.onStartLoad({wasCached:e}),t.setState({isVisible:!0},function(){return t.setState({imgLoaded:e,imgCached:!!t.imageRef.current.currentSrc})})}))},r.handleImageLoaded=function(){var e,t,r;e=this.props,t=f(e),r=c(t),p[r]=!0,this.setState({imgLoaded:!0}),this.props.onLoad&&this.props.onLoad()},r.render=function(){var e=f(this.props),t=e.title,r=e.alt,a=e.className,i=e.style,n=void 0===i?{}:i,o=e.imgStyle,s=void 0===o?{}:o,l=e.placeholderStyle,c=void 0===l?{}:l,p=e.placeholderClassName,g=e.fluid,h=e.fixed,m=e.backgroundColor,b=e.durationFadeIn,v=e.Tag,x=e.itemProp,L=e.loading,w=e.draggable,R=!1===this.state.fadeIn||this.state.imgLoaded,j=!0===this.state.fadeIn&&!this.state.imgCached,T=(0,u.default)({opacity:R?1:0,transition:j?\"opacity \"+b+\"ms\":\"none\"},s),V=\"boolean\"==typeof m?\"lightgray\":m,A={transitionDelay:b+\"ms\"},N=(0,u.default)({opacity:this.state.imgLoaded?0:1},j&&A,s,c),C={title:t,alt:this.state.isVisible?\"\":r,style:N,className:p};if(g){var k=g,U=k[0];return d.default.createElement(v,{className:(a||\"\")+\" gatsby-image-wrapper\",style:(0,u.default)({position:\"relative\",overflow:\"hidden\"},n),ref:this.handleRef,key:\"fluid-\"+JSON.stringify(U.srcSet)},d.default.createElement(v,{style:{width:\"100%\",paddingBottom:100/U.aspectRatio+\"%\"}}),V&&d.default.createElement(v,{title:t,style:(0,u.default)({backgroundColor:V,position:\"absolute\",top:0,bottom:0,opacity:this.state.imgLoaded?0:1,right:0,left:0},j&&A)}),U.base64&&d.default.createElement(I,{src:U.base64,spreadProps:C,imageVariants:k,generateSources:E}),U.tracedSVG&&d.default.createElement(I,{src:U.tracedSVG,spreadProps:C,imageVariants:k,generateSources:S}),this.state.isVisible&&d.default.createElement(\"picture\",null,y(k),d.default.createElement(z,{alt:r,title:t,sizes:U.sizes,src:U.src,crossOrigin:this.props.crossOrigin,srcSet:U.srcSet,style:T,ref:this.imageRef,onLoad:this.handleImageLoaded,onError:this.props.onError,itemProp:x,loading:L,draggable:w})),this.addNoScript&&d.default.createElement(\"noscript\",{dangerouslySetInnerHTML:{__html:O((0,u.default)({alt:r,title:t,loading:L},U,{imageVariants:k}))}}))}if(h){var P=h,G=P[0],Z=(0,u.default)({position:\"relative\",overflow:\"hidden\",display:\"inline-block\",width:G.width,height:G.height},n);return\"inherit\"===n.display&&delete Z.display,d.default.createElement(v,{className:(a||\"\")+\" gatsby-image-wrapper\",style:Z,ref:this.handleRef,key:\"fixed-\"+JSON.stringify(G.srcSet)},V&&d.default.createElement(v,{title:t,style:(0,u.default)({backgroundColor:V,width:G.width,opacity:this.state.imgLoaded?0:1,height:G.height},j&&A)}),G.base64&&d.default.createElement(I,{src:G.base64,spreadProps:C,imageVariants:P,generateSources:E}),G.tracedSVG&&d.default.createElement(I,{src:G.tracedSVG,spreadProps:C,imageVariants:P,generateSources:S}),this.state.isVisible&&d.default.createElement(\"picture\",null,y(P),d.default.createElement(z,{alt:r,title:t,width:G.width,height:G.height,sizes:G.sizes,src:G.src,crossOrigin:this.props.crossOrigin,srcSet:G.srcSet,style:T,ref:this.imageRef,onLoad:this.handleImageLoaded,onError:this.props.onError,itemProp:x,loading:L,draggable:w})),this.addNoScript&&d.default.createElement(\"noscript\",{dangerouslySetInnerHTML:{__html:O((0,u.default)({alt:r,title:t,loading:L},G,{imageVariants:P}))}}))}return null},t}(d.default.Component);R.defaultProps={fadeIn:!0,durationFadeIn:500,alt:\"\",Tag:\"div\",loading:\"lazy\"};var j=l.default.shape({width:l.default.number.isRequired,height:l.default.number.isRequired,src:l.default.string.isRequired,srcSet:l.default.string.isRequired,base64:l.default.string,tracedSVG:l.default.string,srcWebp:l.default.string,srcSetWebp:l.default.string,media:l.default.string}),T=l.default.shape({aspectRatio:l.default.number.isRequired,src:l.default.string.isRequired,srcSet:l.default.string.isRequired,sizes:l.default.string.isRequired,base64:l.default.string,tracedSVG:l.default.string,srcWebp:l.default.string,srcSetWebp:l.default.string,media:l.default.string});R.propTypes={resolutions:j,sizes:T,fixed:l.default.oneOfType([j,l.default.arrayOf(j)]),fluid:l.default.oneOfType([T,l.default.arrayOf(T)]),fadeIn:l.default.bool,durationFadeIn:l.default.number,title:l.default.string,alt:l.default.string,className:l.default.oneOfType([l.default.string,l.default.object]),critical:l.default.bool,crossOrigin:l.default.oneOfType([l.default.string,l.default.bool]),style:l.default.object,imgStyle:l.default.object,placeholderStyle:l.default.object,placeholderClassName:l.default.string,backgroundColor:l.default.oneOfType([l.default.string,l.default.bool]),onLoad:l.default.func,onError:l.default.func,onStartLoad:l.default.func,Tag:l.default.string,itemProp:l.default.string,loading:l.default.oneOf([\"auto\",\"lazy\",\"eager\"]),draggable:l.default.bool};var V=R;t.default=V},246:function(e,t,r){\"use strict\";r(157)(\"fixed\",function(e){return function(){return e(this,\"tt\",\"\",\"\")}})},250:function(e,t,r){var a=r(270).Symbol;e.exports=a},254:function(e,t,r){var a=r(264)(function(e,t,r){return e+(r?\"-\":\"\")+t.toLowerCase()});e.exports=a},255:function(e,t,r){var a=r(269);e.exports=function(e){return null==e?\"\":a(e)}},264:function(e,t,r){r(13),r(60);var a=r(265),i=r(266),n=r(279),o=RegExp(\"['’]\",\"g\");e.exports=function(e){return function(t){return a(n(i(t).replace(o,\"\")),e,\"\")}}},265:function(e,t){e.exports=function(e,t,r,a){var i=-1,n=null==e?0:e.length;for(a&&n&&(r=e[++i]);++i<n;)r=t(r,e[i],i,e);return r}},266:function(e,t,r){r(13),r(60);var a=r(267),i=r(255),n=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,o=RegExp(\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",\"g\");e.exports=function(e){return(e=i(e))&&e.replace(n,a).replace(o,\"\")}},267:function(e,t,r){var a=r(268)({\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"Ç\":\"C\",\"ç\":\"c\",\"Ð\":\"D\",\"ð\":\"d\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"Ñ\":\"N\",\"ñ\":\"n\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"Ý\":\"Y\",\"ý\":\"y\",\"ÿ\":\"y\",\"Æ\":\"Ae\",\"æ\":\"ae\",\"Þ\":\"Th\",\"þ\":\"th\",\"ß\":\"ss\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ą\":\"A\",\"ā\":\"a\",\"ă\":\"a\",\"ą\":\"a\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"Ď\":\"D\",\"Đ\":\"D\",\"ď\":\"d\",\"đ\":\"d\",\"Ē\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ę\":\"E\",\"Ě\":\"E\",\"ē\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ę\":\"e\",\"ě\":\"e\",\"Ĝ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ģ\":\"G\",\"ĝ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ģ\":\"g\",\"Ĥ\":\"H\",\"Ħ\":\"H\",\"ĥ\":\"h\",\"ħ\":\"h\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"Į\":\"I\",\"İ\":\"I\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"į\":\"i\",\"ı\":\"i\",\"Ĵ\":\"J\",\"ĵ\":\"j\",\"Ķ\":\"K\",\"ķ\":\"k\",\"ĸ\":\"k\",\"Ĺ\":\"L\",\"Ļ\":\"L\",\"Ľ\":\"L\",\"Ŀ\":\"L\",\"Ł\":\"L\",\"ĺ\":\"l\",\"ļ\":\"l\",\"ľ\":\"l\",\"ŀ\":\"l\",\"ł\":\"l\",\"Ń\":\"N\",\"Ņ\":\"N\",\"Ň\":\"N\",\"Ŋ\":\"N\",\"ń\":\"n\",\"ņ\":\"n\",\"ň\":\"n\",\"ŋ\":\"n\",\"Ō\":\"O\",\"Ŏ\":\"O\",\"Ő\":\"O\",\"ō\":\"o\",\"ŏ\":\"o\",\"ő\":\"o\",\"Ŕ\":\"R\",\"Ŗ\":\"R\",\"Ř\":\"R\",\"ŕ\":\"r\",\"ŗ\":\"r\",\"ř\":\"r\",\"Ś\":\"S\",\"Ŝ\":\"S\",\"Ş\":\"S\",\"Š\":\"S\",\"ś\":\"s\",\"ŝ\":\"s\",\"ş\":\"s\",\"š\":\"s\",\"Ţ\":\"T\",\"Ť\":\"T\",\"Ŧ\":\"T\",\"ţ\":\"t\",\"ť\":\"t\",\"ŧ\":\"t\",\"Ũ\":\"U\",\"Ū\":\"U\",\"Ŭ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ų\":\"U\",\"ũ\":\"u\",\"ū\":\"u\",\"ŭ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"ź\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"Ĳ\":\"IJ\",\"ĳ\":\"ij\",\"Œ\":\"Oe\",\"œ\":\"oe\",\"ŉ\":\"'n\",\"ſ\":\"s\"});e.exports=a},268:function(e,t){e.exports=function(e){return function(t){return null==e?void 0:e[t]}}},269:function(e,t,r){r(29),r(3);var a=r(250),i=r(272),n=r(273),o=r(274),s=1/0,u=a?a.prototype:void 0,d=u?u.toString:void 0;e.exports=function e(t){if(\"string\"==typeof t)return t;if(n(t))return i(t,e)+\"\";if(o(t))return d?d.call(t):\"\";var r=t+\"\";return\"0\"==r&&1/t==-s?\"-0\":r}},270:function(e,t,r){var a=r(271),i=\"object\"==typeof self&&self&&self.Object===Object&&self,n=a||i||Function(\"return this\")();e.exports=n},271:function(e,t,r){(function(t){var r=\"object\"==typeof t&&t&&t.Object===Object&&t;e.exports=r}).call(this,r(161))},272:function(e,t){e.exports=function(e,t){for(var r=-1,a=null==e?0:e.length,i=Array(a);++r<a;)i[r]=t(e[r],r,e);return i}},273:function(e,t){var r=Array.isArray;e.exports=r},274:function(e,t,r){var a=r(275),i=r(278),n=\"[object Symbol]\";e.exports=function(e){return\"symbol\"==typeof e||i(e)&&a(e)==n}},275:function(e,t,r){var a=r(250),i=r(276),n=r(277),o=\"[object Null]\",s=\"[object Undefined]\",u=a?a.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:o:u&&u in Object(e)?i(e):n(e)}},276:function(e,t,r){r(29),r(3);var a=r(250),i=Object.prototype,n=i.hasOwnProperty,o=i.toString,s=a?a.toStringTag:void 0;e.exports=function(e){var t=n.call(e,s),r=e[s];try{e[s]=void 0;var a=!0}catch(u){}var i=o.call(e);return a&&(t?e[s]=r:delete e[s]),i}},277:function(e,t,r){r(29),r(3);var a=Object.prototype.toString;e.exports=function(e){return a.call(e)}},278:function(e,t){e.exports=function(e){return null!=e&&\"object\"==typeof e}},279:function(e,t,r){r(59);var a=r(280),i=r(281),n=r(255),o=r(282);e.exports=function(e,t,r){return e=n(e),void 0===(t=r?void 0:t)?i(e)?o(e):a(e):e.match(t)||[]}},280:function(e,t,r){r(59);var a=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;e.exports=function(e){return e.match(a)||[]}},281:function(e,t){var r=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return r.test(e)}},282:function(e,t,r){r(59),r(60);var a=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",i=\"[\"+a+\"]\",n=\"\\\\d+\",o=\"[\\\\u2700-\\\\u27bf]\",s=\"[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]\",u=\"[^\\\\ud800-\\\\udfff\"+a+n+\"\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",d=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",l=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",f=\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",c=\"(?:\"+s+\"|\"+u+\")\",p=\"(?:\"+f+\"|\"+u+\")\",g=\"(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?\",h=\"[\\\\ufe0e\\\\ufe0f]?\"+g+(\"(?:\\\\u200d(?:\"+[\"[^\\\\ud800-\\\\udfff]\",d,l].join(\"|\")+\")[\\\\ufe0e\\\\ufe0f]?\"+g+\")*\"),m=\"(?:\"+[o,d,l].join(\"|\")+\")\"+h,b=RegExp([f+\"?\"+s+\"+(?:['’](?:d|ll|m|re|s|t|ve))?(?=\"+[i,f,\"$\"].join(\"|\")+\")\",p+\"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=\"+[i,f+c,\"$\"].join(\"|\")+\")\",f+\"?\"+c+\"+(?:['’](?:d|ll|m|re|s|t|ve))?\",f+\"+(?:['’](?:D|LL|M|RE|S|T|VE))?\",\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",n,m].join(\"|\"),\"g\");e.exports=function(e){return e.match(b)||[]}}}]);\n//# sourceMappingURL=1-fa6e7d2ffea9ee90c8d8.js.map"
  },
  {
    "path": "examples/minified/app-5cddf2000f4491a89a40.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[2],[function(e,t,n){\"use strict\";e.exports=n(184)},function(e,t,n){n(21),n(5),n(4),n(6),n(60),n(29),n(3),n(59),n(13);var r,o,a,i=(r=0,o={util:{encode:function(e){return e instanceof a?new a(e.type,o.util.encode(e.content),e.alias):\"Array\"===o.util.type(e)?e.map(o.util.encode):e.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/\\u00a0/g,\" \")},type:function(e){return Object.prototype.toString.call(e).match(/\\[object (\\w+)\\]/)[1]},objId:function(e){return e.__id||Object.defineProperty(e,\"__id\",{value:++r}),e.__id},clone:function(e,t){var n=o.util.type(e);switch(t=t||{},n){case\"Object\":if(t[o.util.objId(e)])return t[o.util.objId(e)];a={};for(var r in t[o.util.objId(e)]=a,e)e.hasOwnProperty(r)&&(a[r]=o.util.clone(e[r],t));return a;case\"Array\":if(t[o.util.objId(e)])return t[o.util.objId(e)];var a=[];return t[o.util.objId(e)]=a,e.forEach(function(e,n){a[n]=o.util.clone(e,t)}),a}return e}},languages:{extend:function(e,t){var n=o.util.clone(o.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){var a=(r=r||o.languages)[e];if(2==arguments.length){for(var i in n=arguments[1])n.hasOwnProperty(i)&&(a[i]=n[i]);return a}var l={};for(var u in a)if(a.hasOwnProperty(u)){if(u==t)for(var i in n)n.hasOwnProperty(i)&&(l[i]=n[i]);l[u]=a[u]}return o.languages.DFS(o.languages,function(t,n){n===r[e]&&t!=e&&(this[t]=l)}),r[e]=l},DFS:function(e,t,n,r){for(var a in r=r||{},e)e.hasOwnProperty(a)&&(t.call(e,a,e[a],n||a),\"Object\"!==o.util.type(e[a])||r[o.util.objId(e[a])]?\"Array\"!==o.util.type(e[a])||r[o.util.objId(e[a])]||(r[o.util.objId(e[a])]=!0,o.languages.DFS(e[a],t,a,r)):(r[o.util.objId(e[a])]=!0,o.languages.DFS(e[a],t,null,r)))}},plugins:{},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};return r.tokens=o.tokenize(r.code,r.grammar),a.stringify(o.util.encode(r.tokens),r.language)},matchGrammar:function(e,t,n,r,a,i,l){var u=o.Token;for(var s in n)if(n.hasOwnProperty(s)&&n[s]){if(s==l)return;var c=n[s];c=\"Array\"===o.util.type(c)?c:[c];for(var f=0;f<c.length;++f){var d=c[f],p=d.inside,h=!!d.lookbehind,m=!!d.greedy,g=0,v=d.alias;if(m&&!d.pattern.global){var y=d.pattern.toString().match(/[imuy]*$/)[0];d.pattern=RegExp(d.pattern.source,y+\"g\")}d=d.pattern||d;for(var b=r,w=a;b<t.length;w+=t[b].length,++b){var k=t[b];if(t.length>e.length)return;if(!(k instanceof u)){if(m&&b!=t.length-1){if(d.lastIndex=w,!(C=d.exec(e)))break;for(var x=C.index+(h?C[1].length:0),E=C.index+C[0].length,S=b,_=w,T=t.length;S<T&&(_<E||!t[S].type&&!t[S-1].greedy);++S)x>=(_+=t[S].length)&&(++b,w=_);if(t[b]instanceof u)continue;O=S-b,k=e.slice(w,_),C.index-=w}else{d.lastIndex=0;var C=d.exec(k),O=1}if(C){h&&(g=C[1]?C[1].length:0);E=(x=C.index+g)+(C=C[0].slice(g)).length;var P=k.slice(0,x),A=k.slice(E),I=[b,O];P&&(++b,w+=P.length,I.push(P));var R=new u(s,p?o.tokenize(C,p):C,v,C,m);if(I.push(R),A&&I.push(A),Array.prototype.splice.apply(t,I),1!=O&&o.matchGrammar(e,t,n,b,w,!0,s),i)break}else if(i)break}}}}},hooks:{add:function(){}},tokenize:function(e,t,n){var r=[e],a=t.rest;if(a){for(var i in a)t[i]=a[i];delete t.rest}return o.matchGrammar(e,r,t,0,0,!1),r}},(a=o.Token=function(e,t,n,r,o){this.type=e,this.content=t,this.alias=n,this.length=0|(r||\"\").length,this.greedy=!!o}).stringify=function(e,t,n){if(\"string\"==typeof e)return e;if(\"Array\"===o.util.type(e))return e.map(function(n){return a.stringify(n,t,e)}).join(\"\");var r={type:e.type,content:a.stringify(e.content,t,n),tag:\"span\",classes:[\"token\",e.type],attributes:{},language:t,parent:n};if(e.alias){var i=\"Array\"===o.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(r.classes,i)}var l=Object.keys(r.attributes).map(function(e){return e+'=\"'+(r.attributes[e]||\"\").replace(/\"/g,\"&quot;\")+'\"'}).join(\" \");return\"<\"+r.tag+' class=\"'+r.classes.join(\" \")+'\"'+(l?\" \"+l:\"\")+\">\"+r.content+\"</\"+r.tag+\">\"},o);e.exports=i,i.default=i},function(e,t,n){\"use strict\";(function(e){n.d(t,\"b\",function(){return rt}),n.d(t,\"a\",function(){return Ke}),n.d(t,\"d\",function(){return ot});n(29),n(22),n(5),n(4),n(3),n(6),n(60),n(13),n(21),n(128),n(12),n(48),n(18);var r=n(101),o=n.n(r),a=n(140),i=n.n(a),l=n(0),u=n.n(l),s=n(141),c=n(102),f=n(103),d=(n(10),n(156)),p=n(155),h=function(e,t){for(var n=[e[0]],r=0,o=t.length;r<o;r+=1)n.push(t[r],e[r+1]);return n},m=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},g=function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")},v=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b=function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},w=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},k=function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t},x=function(e){return\"object\"===(void 0===e?\"undefined\":m(e))&&e.constructor===Object},E=Object.freeze([]),S=Object.freeze({});function _(e){return\"function\"==typeof e}function T(e){return e.displayName||e.name||\"Component\"}function C(e){return e&&\"string\"==typeof e.styledComponentId}var O=void 0!==e&&({}.REACT_APP_SC_ATTR||{}.SC_ATTR)||\"data-styled\",P=\"undefined\"!=typeof window&&\"HTMLElement\"in window,A=\"boolean\"==typeof SC_DISABLE_SPEEDY&&SC_DISABLE_SPEEDY||void 0!==e&&({}.REACT_APP_SC_DISABLE_SPEEDY||{}.SC_DISABLE_SPEEDY)||!1,I={};var R=function(e){function t(n){g(this,t);for(var r=arguments.length,o=Array(r>1?r-1:0),a=1;a<r;a++)o[a-1]=arguments[a];var i=k(this,e.call(this,\"An error occurred. See https://github.com/styled-components/styled-components/blob/master/packages/styled-components/src/utils/errors.md#\"+n+\" for more information.\"+(o.length>0?\" Additional arguments: \"+o.join(\", \"):\"\")));return k(i)}return b(t,e),t}(Error),j=/^[^\\S\\n]*?\\/\\* sc-component-id:\\s*(\\S+)\\s+\\*\\//gm,N=function(e){var t=\"\"+(e||\"\"),n=[];return t.replace(j,function(e,t,r){return n.push({componentId:t,matchIndex:r}),e}),n.map(function(e,r){var o=e.componentId,a=e.matchIndex,i=n[r+1];return{componentId:o,cssFromDOM:i?t.slice(a,i.matchIndex):t.slice(a)}})},F=/^\\s*\\/\\/.*$/gm,M=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),L=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),D=[],U=function(e){if(-2===e){var t=D;return D=[],t}},z=i()(function(e){D.push(e)}),B=void 0,$=void 0,W=void 0,H=function(e,t,n){return t>0&&-1!==n.slice(0,t).indexOf($)&&n.slice(t-$.length,t)!==$?\".\"+B:e};L.use([function(e,t,n){2===e&&n.length&&n[0].lastIndexOf($)>0&&(n[0]=n[0].replace(W,H))},z,U]),M.use([z,U]);function q(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"&\",o=e.join(\"\").replace(F,\"\"),a=t&&n?n+\" \"+t+\" { \"+o+\" }\":o;return B=r,$=t,W=new RegExp(\"\\\\\"+$+\"\\\\b\",\"g\"),L(n||!t?\"\":t,a)}var V=function(){return n.nc},G=function(e,t,n){n&&((e[t]||(e[t]=Object.create(null)))[n]=!0)},K=function(e,t){e[t]=Object.create(null)},Y=function(e){return function(t,n){return void 0!==e[t]&&e[t][n]}},X=function(e){var t=\"\";for(var n in e)t+=Object.keys(e[n]).join(\" \")+\" \";return t.trim()},Q=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets.length,n=0;n<t;n+=1){var r=document.styleSheets[n];if(r.ownerNode===e)return r}throw new R(10)},Z=function(e,t,n){if(!t)return!1;var r=e.cssRules.length;try{e.insertRule(t,n<=r?n:r)}catch(o){return!1}return!0},J=function(e){return\"\\n/* sc-component-id: \"+e+\" */\\n\"},ee=function(e,t){for(var n=0,r=0;r<=t;r+=1)n+=e[r];return n},te=function(e,t){return function(n){var r=V();return\"<style \"+[r&&'nonce=\"'+r+'\"',O+'=\"'+X(t)+'\"','data-styled-version=\"4.3.2\"',n].filter(Boolean).join(\" \")+\">\"+e()+\"</style>\"}},ne=function(e,t){return function(){var n,r=((n={})[O]=X(t),n[\"data-styled-version\"]=\"4.3.2\",n),o=V();return o&&(r.nonce=o),u.a.createElement(\"style\",y({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},re=function(e){return function(){return Object.keys(e)}},oe=function(e){return document.createTextNode(J(e))},ae=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,a=function(e){var t=o[e];return void 0!==t?t:o[e]=[\"\"]},i=function(){var e=\"\";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=y({},e[n]);return t}(r),n=Object.create(null);for(var a in o)n[a]=[o[a][0]];return e(t,n)},css:i,getIds:re(o),hasNameForId:Y(r),insertMarker:a,insertRules:function(e,t,n){a(e)[0]+=t.join(\" \"),G(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]=\"\",K(r,e))},sealed:!1,styleTag:null,toElement:ne(i,r),toHTML:te(i,r)}},ie=function(e,t,n,r,o){if(P&&!n){var a=function(e,t,n){var r=document.createElement(\"style\");r.setAttribute(O,\"\"),r.setAttribute(\"data-styled-version\",\"4.3.2\");var o=V();if(o&&r.setAttribute(\"nonce\",o),r.appendChild(document.createTextNode(\"\")),e&&!t)e.appendChild(r);else{if(!t||!e||!t.parentNode)throw new R(6);t.parentNode.insertBefore(r,n?t:t.nextSibling)}return r}(e,t,r);return A?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,a=!1,i=function(t){var o=r[t];return void 0!==o?o:(r[t]=oe(t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},l=function(){var e=\"\";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new R(5)},css:l,getIds:re(r),hasNameForId:Y(n),insertMarker:i,insertRules:function(e,r,l){for(var u=i(e),s=[],c=r.length,f=0;f<c;f+=1){var d=r[f],p=o;if(p&&-1!==d.indexOf(\"@import\"))s.push(d);else{p=!1;var h=f===c-1?\"\":\" \";u.appendData(\"\"+d+h)}}G(n,e,l),o&&s.length>0&&(a=!0,t().insertRules(e+\"-import\",s))},removeRules:function(i){var l=r[i];if(void 0!==l){var u=oe(i);e.replaceChild(u,l),r[i]=u,K(n,i),o&&a&&t().removeRules(i+\"-import\")}},sealed:!1,styleTag:e,toElement:ne(l,n),toHTML:te(l,n)}}(a,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],a=void 0!==t,i=!1,l=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),K(n,e),r[e])},u=function(){var t=Q(e).cssRules,n=\"\";for(var a in r){n+=J(a);for(var i=r[a],l=ee(o,i),u=l-o[i];u<l;u+=1){var s=t[u];void 0!==s&&(n+=s.cssText)}}return n};return{clone:function(){throw new R(5)},css:u,getIds:re(r),hasNameForId:Y(n),insertMarker:l,insertRules:function(r,u,s){for(var c=l(r),f=Q(e),d=ee(o,c),p=0,h=[],m=u.length,g=0;g<m;g+=1){var v=u[g],y=a;y&&-1!==v.indexOf(\"@import\")?h.push(v):Z(f,v,d+p)&&(y=!1,p+=1)}a&&h.length>0&&(i=!0,t().insertRules(r+\"-import\",h)),o[c]+=p,G(n,r,s)},removeRules:function(l){var u=r[l];if(void 0!==u){var s=o[u];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(Q(e),ee(o,u)-1,s),o[u]=0,K(n,l),a&&i&&t().removeRules(l+\"-import\")}},sealed:!1,styleTag:e,toElement:ne(u,n),toHTML:te(u,n)}}(a,o)}return ae()},le=/\\s+/,ue=void 0;ue=P?A?40:1e3:-1;var se=0,ce=void 0,fe=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:P?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];g(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ie(t.target,n?n.styleTag:null,t.forceServer,!0)},se+=1,this.id=se,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!P||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll(\"style[\"+O+'][data-styled-version=\"4.3.2\"]'),o=r.length;if(!o)return this;for(var a=0;a<o;a+=1){var i=r[a];n||(n=!!i.getAttribute(\"data-styled-streamed\"));for(var l,u=(i.getAttribute(O)||\"\").trim().split(le),s=u.length,c=0;c<s;c+=1)l=u[c],this.rehydratedNames[l]=!0;t.push.apply(t,N(i.textContent)),e.push(i)}var f=t.length;if(!f)return this;var d=this.makeTag(null);!function(e,t,n){for(var r=0,o=n.length;r<o;r+=1){var a=n[r],i=a.componentId,l=a.cssFromDOM,u=M(\"\",l);e.insertRules(i,u)}for(var s=0,c=t.length;s<c;s+=1){var f=t[s];f.parentNode&&f.parentNode.removeChild(f)}}(d,e,t),this.capacity=Math.max(1,ue-f),this.tags.push(d);for(var p=0;p<f;p+=1)this.tagMap[t[p].componentId]=d;return this},e.reset=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map(function(e){for(var n=e.getIds(),r=e.clone(),o=0;o<n.length;o+=1)t.tagMap[n[o]]=r;return r}),t.rehydratedNames=y({},this.rehydratedNames),t.deferred=y({},this.deferred),t},e.prototype.sealAllTags=function(){this.capacity=1,this.tags.forEach(function(e){e.sealed=!0})},e.prototype.makeTag=function(e){var t=e?e.styleTag:null;return ie(this.target,t,this.forceServer,!1,this.getImportRuleTag)},e.prototype.getTagForId=function(e){var t=this.tagMap[e];if(void 0!==t&&!t.sealed)return t;var n=this.tags[this.tags.length-1];return this.capacity-=1,0===this.capacity&&(this.capacity=ue,n=this.makeTag(n),this.tags.push(n)),this.tagMap[e]=n},e.prototype.hasId=function(e){return void 0!==this.tagMap[e]},e.prototype.hasNameForId=function(e,t){if(void 0===this.ignoreRehydratedNames[e]&&this.rehydratedNames[t])return!0;var n=this.tagMap[e];return void 0!==n&&n.hasNameForId(e,t)},e.prototype.deferredInject=function(e,t){if(void 0===this.tagMap[e]){for(var n=this.clones,r=0;r<n.length;r+=1)n[r].deferredInject(e,t);this.getTagForId(e).insertMarker(e),this.deferred[e]=t}},e.prototype.inject=function(e,t,n){for(var r=this.clones,o=0;o<r.length;o+=1)r[o].inject(e,t,n);var a=this.getTagForId(e);if(void 0!==this.deferred[e]){var i=this.deferred[e].concat(t);a.insertRules(e,i,n),this.deferred[e]=void 0}else a.insertRules(e,t,n)},e.prototype.remove=function(e){var t=this.tagMap[e];if(void 0!==t){for(var n=this.clones,r=0;r<n.length;r+=1)n[r].remove(e);t.removeRules(e),this.ignoreRehydratedNames[e]=!0,this.deferred[e]=void 0}},e.prototype.toHTML=function(){return this.tags.map(function(e){return e.toHTML()}).join(\"\")},e.prototype.toReactElements=function(){var e=this.id;return this.tags.map(function(t,n){var r=\"sc-\"+e+\"-\"+n;return Object(l.cloneElement)(t.toElement(),{key:r})})},v(e,null,[{key:\"master\",get:function(){return ce||(ce=(new e).rehydrate())}},{key:\"instance\",get:function(){return e.master}}]),e}(),de=function(){function e(t,n){var r=this;g(this,e),this.inject=function(e){e.hasNameForId(r.id,r.name)||e.inject(r.id,r.rules,r.name)},this.toString=function(){throw new R(12,String(r.name))},this.name=t,this.rules=n,this.id=\"sc-keyframes-\"+t}return e.prototype.getName=function(){return this.name},e}(),pe=/([A-Z])/g,he=/^ms-/;function me(e){return e.replace(pe,\"-$1\").toLowerCase().replace(he,\"-ms-\")}var ge=function(e){return null==e||!1===e||\"\"===e},ve=function e(t,n){var r=[];return Object.keys(t).forEach(function(n){if(!ge(t[n])){if(x(t[n]))return r.push.apply(r,e(t[n],n)),r;if(_(t[n]))return r.push(me(n)+\":\",t[n],\";\"),r;r.push(me(n)+\": \"+(o=n,null==(a=t[n])||\"boolean\"==typeof a||\"\"===a?\"\":\"number\"!=typeof a||0===a||o in s.a?String(a).trim():a+\"px\")+\";\")}var o,a;return r}),n?[n+\" {\"].concat(r,[\"}\"]):r};function ye(e,t,n){if(Array.isArray(e)){for(var r,o=[],a=0,i=e.length;a<i;a+=1)null!==(r=ye(e[a],t,n))&&(Array.isArray(r)?o.push.apply(o,r):o.push(r));return o}return ge(e)?null:C(e)?\".\"+e.styledComponentId:_(e)?\"function\"!=typeof(l=e)||l.prototype&&l.prototype.isReactComponent||!t?e:ye(e(t),t,n):e instanceof de?n?(e.inject(n),e.getName()):e:x(e)?ve(e):e.toString();var l}function be(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return _(e)||x(e)?ye(h(E,[e].concat(n))):ye(h(e,n))}function we(e){for(var t,n=0|e.length,r=0|n,o=0;n>=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var ke=52,xe=function(e){return String.fromCharCode(e+(e>25?39:97))};function Ee(e){var t=\"\",n=void 0;for(n=e;n>ke;n=Math.floor(n/ke))t=xe(n%ke)+t;return xe(n%ke)+t}function Se(e,t){for(var n=0;n<e.length;n+=1){var r=e[n];if(Array.isArray(r)&&!Se(r,t))return!1;if(_(r)&&!C(r))return!1}return!t.some(function(e){return _(e)||function(e){for(var t in e)if(_(e[t]))return!0;return!1}(e)})}var _e,Te=!1,Ce=function(e){return Ee(we(e))},Oe=function(){function e(t,n,r){g(this,e),this.rules=t,this.isStatic=!Te&&Se(t,n),this.componentId=r,fe.master.hasId(r)||fe.master.deferredInject(r,[])}return e.prototype.generateAndInjectStyles=function(e,t){var n=this.isStatic,r=this.componentId,o=this.lastClassName;if(P&&n&&\"string\"==typeof o&&t.hasNameForId(r,o))return o;var a=ye(this.rules,e,t),i=Ce(this.componentId+a.join(\"\"));return t.hasNameForId(r,i)||t.inject(this.componentId,q(a,\".\"+i,void 0,r),i),this.lastClassName=i,i},e.generateName=function(e){return Ce(e)},e}(),Pe=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:S,r=!!n&&e.theme===n.theme;return e.theme&&!r?e.theme:t||n.theme},Ae=/[[\\].#*$><+~=|^:(),\"'`-]+/g,Ie=/(^-|-$)/g;function Re(e){return e.replace(Ae,\"-\").replace(Ie,\"\")}function je(e){return\"string\"==typeof e&&!0}var Ne={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Fe={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Me=((_e={})[c.ForwardRef]={$$typeof:!0,render:!0},_e),Le=Object.defineProperty,De=Object.getOwnPropertyNames,Ue=Object.getOwnPropertySymbols,ze=void 0===Ue?function(){return[]}:Ue,Be=Object.getOwnPropertyDescriptor,$e=Object.getPrototypeOf,We=Object.prototype,He=Array.prototype;function qe(e,t,n){if(\"string\"!=typeof t){var r=$e(t);r&&r!==We&&qe(e,r,n);for(var o=He.concat(De(t),ze(t)),a=Me[e.$$typeof]||Ne,i=Me[t.$$typeof]||Ne,l=o.length,u=void 0,s=void 0;l--;)if(s=o[l],!(Fe[s]||n&&n[s]||i&&i[s]||a&&a[s])&&(u=Be(t,s)))try{Le(e,s,u)}catch(c){}return e}return e}var Ve=Object(l.createContext)(),Ge=Ve.Consumer,Ke=function(e){function t(n){g(this,t);var r=k(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}return b(t,e),t.prototype.render=function(){return this.props.children?u.a.createElement(Ve.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return u.a.createElement(Ve.Provider,{value:t},u.a.Children.only(this.props.children))},t.prototype.getTheme=function(e,t){if(_(e))return e(t);if(null===e||Array.isArray(e)||\"object\"!==(void 0===e?\"undefined\":m(e)))throw new R(8);return y({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)},t}(l.Component),Ye=(function(){function e(){g(this,e),this.masterSheet=fe.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new R(2);return u.a.createElement(Qe,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new R(3)}}(),Object(l.createContext)()),Xe=Ye.Consumer,Qe=function(e){function t(n){g(this,t);var r=k(this,e.call(this,n));return r.getContext=Object(f.a)(r.getContext),r}return b(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new fe(t);throw new R(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return u.a.createElement(Ye.Provider,{value:this.getContext(n,r)},t)},t}(l.Component),Ze={};var Je=function(e){function t(){g(this,t);var n=k(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return b(t,e),t.prototype.render=function(){return u.a.createElement(Xe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:fe.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():u.a.createElement(Ge,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),a=t.styledComponentId,i=t.target,u=void 0;u=n.isStatic?this.generateAndInjectStyles(S,this.props):this.generateAndInjectStyles(Pe(this.props,e,r)||S,this.props);var s=this.props.as||this.attrs.as||i,c=je(s),f={},p=y({},this.attrs,this.props),h=void 0;for(h in p)\"forwardedComponent\"!==h&&\"as\"!==h&&(\"forwardedRef\"===h?f.ref=p[h]:\"forwardedAs\"===h?f.as=p[h]:c&&!Object(d.a)(h)||(f[h]=p[h]));return this.props.style&&this.attrs.style&&(f.style=y({},this.attrs.style,this.props.style)),f.className=Array.prototype.concat(o,this.props.className,a,this.attrs.className,u).filter(Boolean).join(\" \"),Object(l.createElement)(s,f)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=y({},t,{theme:e});return n.length?(this.attrs={},n.forEach(function(e){var t,n=e,a=!1,i=void 0,l=void 0;for(l in _(n)&&(n=n(o),a=!0),n)i=n[l],a||!_(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||C(i)||(i=i(o)),r.attrs[l]=i,o[l]=i}),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(S,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(l.Component);function et(e,t,n){var r=C(e),o=!je(e),a=t.displayName,i=void 0===a?function(e){return je(e)?\"styled.\"+e:\"Styled(\"+T(e)+\")\"}(e):a,l=t.componentId,s=void 0===l?function(e,t,n){var r=\"string\"!=typeof t?\"sc\":Re(t),o=(Ze[r]||0)+1;Ze[r]=o;var a=r+\"-\"+e.generateName(r+o);return n?n+\"-\"+a:a}(Oe,t.displayName,t.parentComponentId):l,c=t.ParentComponent,f=void 0===c?Je:c,d=t.attrs,h=void 0===d?E:d,m=t.displayName&&t.componentId?Re(t.displayName)+\"-\"+t.componentId:t.componentId||s,g=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Oe(r?e.componentStyle.rules.concat(n):n,g,m),b=void 0,k=function(e,t){return u.a.createElement(f,y({},e,{forwardedComponent:b,forwardedRef:t}))};return k.displayName=i,(b=u.a.forwardRef(k)).displayName=i,b.attrs=g,b.componentStyle=v,b.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):E,b.styledComponentId=m,b.target=r?e.target:e,b.withComponent=function(e){var r=t.componentId,o=w(t,[\"componentId\"]),a=r&&r+\"-\"+(je(e)?e:Re(T(e)));return et(e,y({},o,{attrs:g,componentId:a,ParentComponent:f}),n)},Object.defineProperty(b,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(p.a)(e.defaultProps,t):t}}),b.toString=function(){return\".\"+b.styledComponentId},o&&qe(b,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),b}var tt=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:S;if(!Object(c.isValidElementType)(n))throw new R(1,String(n));var o=function(){return t(n,r,be.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,y({},r,o))},o.attrs=function(o){return e(t,n,y({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(et,e)};[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"tspan\"].forEach(function(e){tt[e]=tt(e)});var nt=function(){function e(t,n){g(this,e),this.rules=t,this.componentId=n,this.isStatic=Se(t,E),fe.master.hasId(n)||fe.master.deferredInject(n,[])}return e.prototype.createStyles=function(e,t){var n=q(ye(this.rules,e,t),\"\");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)},e}();function rt(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=be.apply(void 0,[e].concat(n)),a=\"sc-global-\"+we(JSON.stringify(o)),i=new nt(o,a),l=function(e){function t(n){g(this,t);var r=k(this,e.call(this,n)),o=r.constructor,a=o.globalStyle,i=o.styledComponentId;return P&&(window.scCGSHMRCache[i]=(window.scCGSHMRCache[i]||0)+1),r.state={globalStyle:a,styledComponentId:i},r}return b(t,e),t.prototype.componentWillUnmount=function(){window.scCGSHMRCache[this.state.styledComponentId]&&(window.scCGSHMRCache[this.state.styledComponentId]-=1),0===window.scCGSHMRCache[this.state.styledComponentId]&&this.state.globalStyle.removeStyles(this.styleSheet)},t.prototype.render=function(){var e=this;return u.a.createElement(Xe,null,function(t){e.styleSheet=t||fe.master;var n=e.state.globalStyle;return n.isStatic?(n.renderStyles(I,e.styleSheet),null):u.a.createElement(Ge,null,function(t){var r=e.constructor.defaultProps,o=y({},e.props);return void 0!==t&&(o.theme=Pe(e.props,t,r)),n.renderStyles(o,e.styleSheet),null})})},t}(u.a.Component);return l.globalStyle=i,l.styledComponentId=a,l}P&&(window.scCGSHMRCache={});var ot=function(e){var t=u.a.forwardRef(function(t,n){return u.a.createElement(Ge,null,function(r){var o=e.defaultProps,a=Pe(t,r,o);return u.a.createElement(e,y({},t,{theme:a,ref:n}))})});return qe(t,e),t.displayName=\"WithTheme(\"+T(e)+\")\",t};t.c=tt}).call(this,n(188))},function(e,t,n){\"use strict\";var r=n(63),o={};o[n(9)(\"toStringTag\")]=\"z\",o+\"\"!=\"[object z]\"&&n(23)(Object.prototype,\"toString\",function(){return\"[object \"+r(this)+\"]\"},!0)},function(e,t,n){\"use strict\";var r=n(56),o=n(125),a=n(54),i=n(34);e.exports=n(94)(Array,\"Array\",function(e,t){this._t=i(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,o(1)):o(0,\"keys\"==t?n:\"values\"==t?e[n]:[n,e[n]])},\"values\"),a.Arguments=a.Array,r(\"keys\"),r(\"values\"),r(\"entries\")},function(e,t,n){for(var r=n(4),o=n(39),a=n(23),i=n(8),l=n(32),u=n(54),s=n(9),c=s(\"iterator\"),f=s(\"toStringTag\"),d=u.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=o(p),m=0;m<h.length;m++){var g,v=h[m],y=p[v],b=i[v],w=b&&b.prototype;if(w&&(w[c]||l(w,c,d),w[f]||l(w,f,v),u[v]=d,y))for(g in r)w[g]||a(w,g,r[g],!0)}},function(e,t,n){var r=n(35),o=n(39);n(126)(\"keys\",function(){return function(e){return o(r(e))}})},function(e,t,n){n(53),n(3);var r=n(172),o=n(20).publicLoader,a=o.getResourcesForPathname,i=o.getResourcesForPathnameSync,l=o.getResourceURLsForPathname,u=o.loadPage,s=o.loadPageSync;t.apiRunner=function(e,t,n,o){void 0===t&&(t={});var c=r.map(function(n){if(n.plugin[e]){t.getResourcesForPathnameSync=i,t.getResourcesForPathname=a,t.getResourceURLsForPathname=l,t.loadPage=u,t.loadPageSync=s;var r=n.plugin[e](t,n.options);return r&&o&&(t=o({args:t,result:r,plugin:n})),r}});return(c=c.filter(function(e){return void 0!==e})).length>0?c:n?[n]:[]},t.apiRunnerAsync=function(e,t,n){return r.reduce(function(n,r){return r.plugin[e]?n.then(function(){return r.plugin[e](t,r.options)}):n},Promise.resolve())}},function(e,t){var n=e.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(e,t,n){var r=n(64)(\"wks\"),o=n(50),a=n(8).Symbol,i=\"function\"==typeof a;(e.exports=function(e){return r[e]||(r[e]=i&&a[e]||(i?a:o)(\"Symbol.\"+e))}).store=r},function(e,t,n){e.exports=n(191)()},function(e,t,n){var r=n(8),o=n(31),a=n(32),i=n(23),l=n(37),u=function(e,t,n){var s,c,f,d,p=e&u.F,h=e&u.G,m=e&u.S,g=e&u.P,v=e&u.B,y=h?r:m?r[t]||(r[t]={}):(r[t]||{}).prototype,b=h?o:o[t]||(o[t]={}),w=b.prototype||(b.prototype={});for(s in h&&(n=t),n)f=((c=!p&&y&&void 0!==y[s])?y:n)[s],d=v&&c?l(f,r):g&&\"function\"==typeof f?l(Function.call,f):f,y&&i(y,s,f,e&u.U),b[s]!=f&&a(b,s,d),g&&w[s]!=f&&(w[s]=f)};r.core=o,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t,n){var r=n(11);r(r.S+r.F,\"Object\",{assign:n(112)})},function(e,t,n){\"use strict\";var r=n(14),o=n(35),a=n(33),i=n(68),l=n(88),u=n(62),s=Math.max,c=Math.min,f=Math.floor,d=/\\$([$&`']|\\d\\d?|<[^>]*>)/g,p=/\\$([$&`']|\\d\\d?)/g;n(65)(\"replace\",2,function(e,t,n,h){return[function(r,o){var a=e(this),i=null==r?void 0:r[t];return void 0!==i?i.call(r,a,o):n.call(String(a),r,o)},function(e,t){var o=h(n,e,this,t);if(o.done)return o.value;var f=r(e),d=String(this),p=\"function\"==typeof t;p||(t=String(t));var g=f.global;if(g){var v=f.unicode;f.lastIndex=0}for(var y=[];;){var b=u(f,d);if(null===b)break;if(y.push(b),!g)break;\"\"===String(b[0])&&(f.lastIndex=l(d,a(f.lastIndex),v))}for(var w,k=\"\",x=0,E=0;E<y.length;E++){b=y[E];for(var S=String(b[0]),_=s(c(i(b.index),d.length),0),T=[],C=1;C<b.length;C++)T.push(void 0===(w=b[C])?w:String(w));var O=b.groups;if(p){var P=[S].concat(T,_,d);void 0!==O&&P.push(O);var A=String(t.apply(void 0,P))}else A=m(S,d,_,T,O,t);_>=x&&(k+=d.slice(x,_)+A,x=_+S.length)}return k+d.slice(x)}];function m(e,t,r,a,i,l){var u=r+e.length,s=a.length,c=p;return void 0!==i&&(i=o(i),c=d),n.call(l,c,function(n,o){var l;switch(o.charAt(0)){case\"$\":return\"$\";case\"&\":return e;case\"`\":return t.slice(0,r);case\"'\":return t.slice(u);case\"<\":l=i[o.slice(1,-1)];break;default:var c=+o;if(0===c)return n;if(c>s){var d=f(c/10);return 0===d?n:d<=s?void 0===a[d-1]?o.charAt(1):a[d-1]+o.charAt(1):n}l=a[c-1]}return void 0===l?\"\":l})}})},function(e,t,n){var r=n(15);e.exports=function(e){if(!r(e))throw TypeError(e+\" is not an object!\");return e}},function(e,t){e.exports=function(e){return\"object\"==typeof e?null!==e:\"function\"==typeof e}},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){e.exports=!n(16)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(e,t,n){\"use strict\";var r=n(8),o=n(28),a=n(17),i=n(11),l=n(23),u=n(44).KEY,s=n(16),c=n(64),f=n(55),d=n(50),p=n(9),h=n(123),m=n(124),g=n(179),v=n(122),y=n(14),b=n(15),w=n(35),k=n(34),x=n(67),E=n(51),S=n(61),_=n(181),T=n(75),C=n(69),O=n(19),P=n(39),A=T.f,I=O.f,R=_.f,j=r.Symbol,N=r.JSON,F=N&&N.stringify,M=p(\"_hidden\"),L=p(\"toPrimitive\"),D={}.propertyIsEnumerable,U=c(\"symbol-registry\"),z=c(\"symbols\"),B=c(\"op-symbols\"),$=Object.prototype,W=\"function\"==typeof j&&!!C.f,H=r.QObject,q=!H||!H.prototype||!H.prototype.findChild,V=a&&s(function(){return 7!=S(I({},\"a\",{get:function(){return I(this,\"a\",{value:7}).a}})).a})?function(e,t,n){var r=A($,t);r&&delete $[t],I(e,t,n),r&&e!==$&&I($,t,r)}:I,G=function(e){var t=z[e]=S(j.prototype);return t._k=e,t},K=W&&\"symbol\"==typeof j.iterator?function(e){return\"symbol\"==typeof e}:function(e){return e instanceof j},Y=function(e,t,n){return e===$&&Y(B,t,n),y(e),t=x(t,!0),y(n),o(z,t)?(n.enumerable?(o(e,M)&&e[M][t]&&(e[M][t]=!1),n=S(n,{enumerable:E(0,!1)})):(o(e,M)||I(e,M,E(1,{})),e[M][t]=!0),V(e,t,n)):I(e,t,n)},X=function(e,t){y(e);for(var n,r=g(t=k(t)),o=0,a=r.length;a>o;)Y(e,n=r[o++],t[n]);return e},Q=function(e){var t=D.call(this,e=x(e,!0));return!(this===$&&o(z,e)&&!o(B,e))&&(!(t||!o(this,e)||!o(z,e)||o(this,M)&&this[M][e])||t)},Z=function(e,t){if(e=k(e),t=x(t,!0),e!==$||!o(z,t)||o(B,t)){var n=A(e,t);return!n||!o(z,t)||o(e,M)&&e[M][t]||(n.enumerable=!0),n}},J=function(e){for(var t,n=R(k(e)),r=[],a=0;n.length>a;)o(z,t=n[a++])||t==M||t==u||r.push(t);return r},ee=function(e){for(var t,n=e===$,r=R(n?B:k(e)),a=[],i=0;r.length>i;)!o(z,t=r[i++])||n&&!o($,t)||a.push(z[t]);return a};W||(l((j=function(){if(this instanceof j)throw TypeError(\"Symbol is not a constructor!\");var e=d(arguments.length>0?arguments[0]:void 0),t=function(n){this===$&&t.call(B,n),o(this,M)&&o(this[M],e)&&(this[M][e]=!1),V(this,e,E(1,n))};return a&&q&&V($,e,{configurable:!0,set:t}),G(e)}).prototype,\"toString\",function(){return this._k}),T.f=Z,O.f=Y,n(57).f=_.f=J,n(52).f=Q,C.f=ee,a&&!n(49)&&l($,\"propertyIsEnumerable\",Q,!0),h.f=function(e){return G(p(e))}),i(i.G+i.W+i.F*!W,{Symbol:j});for(var te=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),ne=0;te.length>ne;)p(te[ne++]);for(var re=P(p.store),oe=0;re.length>oe;)m(re[oe++]);i(i.S+i.F*!W,\"Symbol\",{for:function(e){return o(U,e+=\"\")?U[e]:U[e]=j(e)},keyFor:function(e){if(!K(e))throw TypeError(e+\" is not a symbol!\");for(var t in U)if(U[t]===e)return t},useSetter:function(){q=!0},useSimple:function(){q=!1}}),i(i.S+i.F*!W,\"Object\",{create:function(e,t){return void 0===t?S(e):X(S(e),t)},defineProperty:Y,defineProperties:X,getOwnPropertyDescriptor:Z,getOwnPropertyNames:J,getOwnPropertySymbols:ee});var ae=s(function(){C.f(1)});i(i.S+i.F*ae,\"Object\",{getOwnPropertySymbols:function(e){return C.f(w(e))}}),N&&i(i.S+i.F*(!W||s(function(){var e=j();return\"[null]\"!=F([e])||\"{}\"!=F({a:e})||\"{}\"!=F(Object(e))})),\"JSON\",{stringify:function(e){for(var t,n,r=[e],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=t=r[1],(b(t)||void 0!==e)&&!K(e))return v(t)||(t=function(e,t){if(\"function\"==typeof n&&(t=n.call(this,e,t)),!K(t))return t}),r[1]=t,F.apply(N,r)}}),j.prototype[L]||n(32)(j.prototype,L,j.prototype.valueOf),f(j,\"Symbol\"),f(Math,\"Math\",!0),f(r.JSON,\"JSON\",!0)},function(e,t,n){var r=n(14),o=n(110),a=n(67),i=Object.defineProperty;t.f=n(17)?Object.defineProperty:function(e,t,n){if(r(e),t=a(t,!0),r(n),o)try{return i(e,t,n)}catch(l){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(e[t]=n.value),e}},function(e,t,n){\"use strict\";n.r(t);n(133),n(73),n(134),n(5),n(4),n(85),n(98),n(76),n(77),n(12),n(53),n(3),n(200);var r=function(e){if(\"undefined\"==typeof document)return!1;var t=document.createElement(\"link\");try{if(t.relList&&\"function\"==typeof t.relList.supports)return t.relList.supports(e)}catch(n){return!1}return!1}(\"prefetch\")?function(e){return new Promise(function(t,n){if(\"undefined\"!=typeof document){var r=document.createElement(\"link\");r.setAttribute(\"rel\",\"prefetch\"),r.setAttribute(\"href\",e),r.onload=t,r.onerror=n,(document.getElementsByTagName(\"head\")[0]||document.getElementsByName(\"script\")[0].parentNode).appendChild(r)}else n()})}:function(e){return new Promise(function(t,n){var r=new XMLHttpRequest;r.open(\"GET\",e,!0),r.withCredentials=!0,r.onload=function(){200===r.status?t():n()},r.send(null)})},o={},a=function(e){return new Promise(function(t){o[e]?t():r(e).then(function(){t(),o[e]=!0}).catch(function(){})})},i=n(46),l=(n(48),n(18),n(22),n(25)),u=n(81),s=function(){function e(e){this.matchPaths=e,this.pathCache=new Map}var t=e.prototype;return t.findMatchPath=function(e){var t=this.matchPaths,n=Array.isArray(t),r=0;for(t=n?t:t[Symbol.iterator]();;){var o;if(n){if(r>=t.length)break;o=t[r++]}else{if((r=t.next()).done)break;o=r.value}var a=o,i=a.matchPath,u=a.path;if(Object(l.b)(i,e))return u}return null},t.find=function(e){var t=function(e){var t=decodeURIComponent(e),n=Object(u.a)(t,\"\");return n.split(\"#\").length>1&&(n=n.split(\"#\").slice(0,-1).join(\"\")),n.split(\"?\").length>1&&(n=n.split(\"?\").slice(0,-1).join(\"\")),n}(e);if(this.pathCache.has(t))return this.pathCache.get(t);var n,r=this.findMatchPath(t);return r||(r=\"/index.html\"===t?\"/\":t),r=void 0===(n=r)?n:\"/\"===n?\"/\":\"/\"===n.charAt(n.length-1)?n.slice(0,-1):n,this.pathCache.set(t,r),r},e}();n.d(t,\"BaseLoader\",function(){return m}),n.d(t,\"ProdLoader\",function(){return v}),n.d(t,\"setLoader\",function(){return y}),n.d(t,\"publicLoader\",function(){return b});var c,f=function(e){return e&&e.default||e},d=function(e){var t;return\"/page-data/\"+(\"/\"===e?\"index\":t=(t=\"/\"===(t=e)[0]?t.slice(1):t).endsWith(\"/\")?t.slice(0,-1):t)+\"/page-data.json\"},p=function(e){var t=e.pagePath,n=e.retries,r=void 0===n?0:n;return function(e,t){return void 0===t&&(t=\"GET\"),new Promise(function(n,r){var o=new XMLHttpRequest;o.open(t,e,!0),o.withCredentials=!0,o.onreadystatechange=function(){4==o.readyState&&n(o)},o.send(null)})}(d(t)).then(function(n){var o=n.status,a=n.responseText;if(200===o)try{var i=JSON.parse(a);if(void 0===i.webpackCompilationHash)throw new Error(\"not a valid pageData response\");return Object.assign(e,{status:\"success\",payload:i})}catch(l){}return 404===o||200===o?\"/404.html\"===t?Object.assign(e,{status:\"failure\"}):p(Object.assign(e,{pagePath:\"/404.html\",notFound:!0})):500===o?Object.assign(e,{status:\"error\"}):r<3?p(Object.assign(e,{retries:r+1})):Object.assign(e,{status:\"error\"})})},h=function(e,t){void 0===t&&(t=null);var n={componentChunkName:e.componentChunkName,path:e.path,webpackCompilationHash:e.webpackCompilationHash,matchPath:e.matchPath};return{component:t,json:e.result,page:n}},m=function(){function e(e,t){this.pageDb=new Map,this.inFlightDb=new Map,this.pageDataDb=new Map,this.prefetchTriggered=new Set,this.prefetchCompleted=new Set,this.loadComponent=e,this.pathFinder=new s(t)}var t=e.prototype;return t.setApiRunner=function(e){this.apiRunner=e,this.prefetchDisabled=e(\"disableCorePrefetching\").some(function(e){return e})},t.loadPageDataJson=function(e){var t=this,n=this.pathFinder.find(e);return this.pageDataDb.has(n)?Promise.resolve(this.pageDataDb.get(n)):p({pagePath:n}).then(function(e){return t.pageDataDb.set(n,e),e})},t.loadPage=function(e){var t=this,n=this.pathFinder.find(e);if(this.pageDb.has(n)){var r=this.pageDb.get(n);return Promise.resolve(r.payload)}if(this.inFlightDb.has(n))return this.inFlightDb.get(n);var o=this.loadPageDataJson(n).then(function(e){if(\"error\"===e.status)return{status:\"error\"};if(\"failure\"===e.status)throw new Error(\"404 page could not be found. Checkout https://www.gatsbyjs.org/docs/add-404-page/\");var r=e.payload,o=r.componentChunkName;return t.loadComponent(o).then(function(o){var a,l={createdAt:new Date};return o?(l.status=\"success\",!0===e.notFound&&(l.notFound=!0),a=h(r,o),l.payload=a,i.a.emit(\"onPostLoadPageResources\",{page:a,pageResources:a})):l.status=\"error\",t.pageDb.set(n,l),a})}).finally(function(){t.inFlightDb.delete(n)});return this.inFlightDb.set(n,o),o},t.loadPageSync=function(e){var t=this.pathFinder.find(e);if(this.pageDb.has(t))return this.pageDb.get(t).payload},t.shouldPrefetch=function(e){return!this.prefetchDisabled&&(!!function(){if(\"connection\"in navigator){if((navigator.connection.effectiveType||\"\").includes(\"2g\"))return!1;if(navigator.connection.saveData)return!1}return!0}()&&!this.pageDb.has(e))},t.prefetch=function(e){var t=this;return!!this.shouldPrefetch(e)&&(this.prefetchTriggered.has(e)||(this.apiRunner(\"onPrefetchPathname\",{pathname:e}),this.prefetchTriggered.add(e)),this.doPrefetch(e).then(function(n){var r=t.pathFinder.find(e);if(!t.prefetchCompleted.has(r)){t.apiRunner(\"onPostPrefetchPathname\",{pathname:e});var o=t.pathFinder.find(e);t.prefetchCompleted.add(o)}}),!0)},t.doPrefetch=function(e){throw new Error(\"doPrefetch not implemented\")},t.hovering=function(e){this.loadPage(e)},t.getResourceURLsForPathname=function(e){var t=this.pathFinder.find(e),n=this.pageDataDb.get(t);if(n){var r=h(n.payload);return[].concat(g(r.page.componentChunkName),[d(t)])}return null},t.isPageNotFound=function(e){var t=this.pathFinder.find(e),n=this.pageDb.get(t);return n&&!0===n.notFound},e}(),g=function(e){return window.___chunkMapping[e].map(function(e){return\"\"+e})},v=function(e){var t,n;function r(t,n){return e.call(this,function(e){return t.components[e]().then(f)},n)||this}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,r.prototype.doPrefetch=function(e){var t=this,n=d(e);return a(n).then(function(){return t.loadPageDataJson(e)}).then(function(e){if(\"success\"!==e.status)return Promise.resolve();var t=e.payload,n=t.componentChunkName,r=g(n);return Promise.all(r.map(a)).then(function(){return t})})},r}(m),y=function(e){c=e},b={getResourcesForPathname:function(e){return console.warn(\"Warning: getResourcesForPathname is deprecated. Use loadPage instead\"),c.i.loadPage(e)},getResourcesForPathnameSync:function(e){return console.warn(\"Warning: getResourcesForPathnameSync is deprecated. Use loadPageSync instead\"),c.i.loadPageSync(e)},enqueue:function(e){return c.prefetch(e)},getResourceURLsForPathname:function(e){return c.getResourceURLsForPathname(e)},loadPage:function(e){return c.loadPage(e)},loadPageSync:function(e){return c.loadPageSync(e)},prefetch:function(e){return c.prefetch(e)},isPageNotFound:function(e){return c.isPageNotFound(e)},hovering:function(e){return c.hovering(e)}};t.default=b},function(e,t,n){var r=n(19).f,o=Function.prototype,a=/^\\s*function ([^ (]*)/;\"name\"in o||n(17)&&r(o,\"name\",{configurable:!0,get:function(){try{return(\"\"+this).match(a)[1]}catch(e){return\"\"}}})},function(e,t,n){\"use strict\";var r=n(95),o=n(14),a=n(92),i=n(88),l=n(33),u=n(62),s=n(86),c=n(16),f=Math.min,d=[].push,p=!c(function(){RegExp(4294967295,\"y\")});n(65)(\"split\",2,function(e,t,n,c){var h;return h=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(e,t){var o=String(this);if(void 0===e&&0===t)return[];if(!r(e))return n.call(o,e,t);for(var a,i,l,u=[],c=(e.ignoreCase?\"i\":\"\")+(e.multiline?\"m\":\"\")+(e.unicode?\"u\":\"\")+(e.sticky?\"y\":\"\"),f=0,p=void 0===t?4294967295:t>>>0,h=new RegExp(e.source,c+\"g\");(a=s.call(h,o))&&!((i=h.lastIndex)>f&&(u.push(o.slice(f,a.index)),a.length>1&&a.index<o.length&&d.apply(u,a.slice(1)),l=a[0].length,f=i,u.length>=p));)h.lastIndex===a.index&&h.lastIndex++;return f===o.length?!l&&h.test(\"\")||u.push(\"\"):u.push(o.slice(f)),u.length>p?u.slice(0,p):u}:\"0\".split(void 0,0).length?function(e,t){return void 0===e&&0===t?[]:n.call(this,e,t)}:n,[function(n,r){var o=e(this),a=null==n?void 0:n[t];return void 0!==a?a.call(n,o,r):h.call(String(o),n,r)},function(e,t){var r=c(h,e,this,t,h!==n);if(r.done)return r.value;var s=o(e),d=String(this),m=a(s,RegExp),g=s.unicode,v=(s.ignoreCase?\"i\":\"\")+(s.multiline?\"m\":\"\")+(s.unicode?\"u\":\"\")+(p?\"y\":\"g\"),y=new m(p?s:\"^(?:\"+s.source+\")\",v),b=void 0===t?4294967295:t>>>0;if(0===b)return[];if(0===d.length)return null===u(y,d)?[d]:[];for(var w=0,k=0,x=[];k<d.length;){y.lastIndex=p?k:0;var E,S=u(y,p?d:d.slice(k));if(null===S||(E=f(l(y.lastIndex+(p?0:k)),d.length))===w)k=i(d,k,g);else{if(x.push(d.slice(w,k)),x.length===b)return x;for(var _=1;_<=S.length-1;_++)if(x.push(S[_]),x.length===b)return x;k=w=E}}return x.push(d.slice(w)),x}]})},function(e,t,n){var r=n(8),o=n(32),a=n(28),i=n(50)(\"src\"),l=n(165),u=(\"\"+l).split(\"toString\");n(31).inspectSource=function(e){return l.call(e)},(e.exports=function(e,t,n,l){var s=\"function\"==typeof n;s&&(a(n,\"name\")||o(n,\"name\",t)),e[t]!==n&&(s&&(a(n,i)||o(n,i,e[t]?\"\"+e[t]:u.join(String(t)))),e===r?e[t]=n:l?e[t]?e[t]=n:o(e,t,n):(delete e[t],o(e,t,n)))})(Function.prototype,\"toString\",function(){return\"function\"==typeof this&&this[i]||l.call(this)})},function(e,t,n){\"use strict\";n(13);var r=n(26);t.__esModule=!0,t.withPrefix=p,t.withAssetPrefix=function(e){return[\"\"].concat([e.replace(/^\\//,\"\")]).join(\"/\")},t.navigateTo=t.replace=t.push=t.navigate=t.default=void 0;var o=r(n(158)),a=r(n(159)),i=r(n(83)),l=r(n(84)),u=r(n(97)),s=r(n(10)),c=r(n(0)),f=n(27),d=n(198);function p(e){return function(e){return e.replace(/\\/+/g,\"/\")}([\"\",e].join(\"/\"))}t.parsePath=d.parsePath;var h={activeClassName:s.default.string,activeStyle:s.default.object,partiallyActive:s.default.bool},m=function(e){function t(t){var n;n=e.call(this,t)||this,(0,u.default)((0,l.default)((0,l.default)(n)),\"defaultGetProps\",function(e){var t=e.isPartiallyCurrent,r=e.isCurrent;return(n.props.partiallyActive?t:r)?{className:[n.props.className,n.props.activeClassName].filter(Boolean).join(\" \"),style:(0,a.default)({},n.props.style,n.props.activeStyle)}:null});var r=!1;return\"undefined\"!=typeof window&&window.IntersectionObserver&&(r=!0),n.state={IOSupported:r},n.handleRef=n.handleRef.bind((0,l.default)((0,l.default)(n))),n}(0,i.default)(t,e);var n=t.prototype;return n.componentDidUpdate=function(e,t){this.props.to===e.to||this.state.IOSupported||___loader.enqueue((0,d.parsePath)(this.props.to).pathname)},n.componentDidMount=function(){this.state.IOSupported||___loader.enqueue((0,d.parsePath)(this.props.to).pathname)},n.handleRef=function(e){var t,n,r,o=this;this.props.innerRef&&this.props.innerRef.hasOwnProperty(\"current\")?this.props.innerRef.current=e:this.props.innerRef&&this.props.innerRef(e),this.state.IOSupported&&e&&(t=e,n=function(){___loader.enqueue((0,d.parsePath)(o.props.to).pathname)},(r=new window.IntersectionObserver(function(e){e.forEach(function(e){t===e.target&&(e.isIntersecting||e.intersectionRatio>0)&&(r.unobserve(t),r.disconnect(),n())})})).observe(t))},n.render=function(){var e=this,t=this.props,n=t.to,r=t.getProps,i=void 0===r?this.defaultGetProps:r,l=t.onClick,u=t.onMouseEnter,s=(t.activeClassName,t.activeStyle,t.innerRef,t.partiallyActive,t.state),h=t.replace,m=(0,o.default)(t,[\"to\",\"getProps\",\"onClick\",\"onMouseEnter\",\"activeClassName\",\"activeStyle\",\"innerRef\",\"partiallyActive\",\"state\",\"replace\"]);var g=p(n);return c.default.createElement(f.Link,(0,a.default)({to:g,state:s,getProps:i,innerRef:this.handleRef,onMouseEnter:function(e){u&&u(e),___loader.hovering((0,d.parsePath)(n).pathname)},onClick:function(t){return l&&l(t),0!==t.button||e.props.target||t.defaultPrevented||t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||(t.preventDefault(),v(n,{state:s,replace:h})),!0}},m))},t}(c.default.Component);m.propTypes=(0,a.default)({},h,{onClick:s.default.func,to:s.default.string.isRequired,replace:s.default.bool});var g=c.default.forwardRef(function(e,t){return c.default.createElement(m,(0,a.default)({innerRef:t},e))});t.default=g;var v=function(e,t){window.___navigate(p(e),t)};t.navigate=v;var y=function(e){console.warn('The \"push\" method is now deprecated and will be removed in Gatsby v3. Please use \"navigate\" instead.'),window.___push(p(e))};t.push=y;t.replace=function(e){console.warn('The \"replace\" method is now deprecated and will be removed in Gatsby v3. Please use \"navigate\" instead.'),window.___replace(p(e))};t.navigateTo=function(e){return console.warn('The \"navigateTo\" method is now deprecated and will be removed in Gatsby v3. Please use \"navigate\" instead.'),y(e)}},function(e,t,n){\"use strict\";n.d(t,\"e\",function(){return a}),n.d(t,\"c\",function(){return i}),n.d(t,\"b\",function(){return l}),n.d(t,\"d\",function(){return u}),n.d(t,\"a\",function(){return s}),n.d(t,\"f\",function(){return c});n(13),n(131),n(22);var r=n(42),o=n.n(r),a=function(e,t){return e.substr(0,t.length)===t},i=function(e,t){for(var n=void 0,r=void 0,a=t.split(\"?\")[0],i=m(a),l=\"\"===i[0],u=h(e),s=0,c=u.length;s<c;s++){var d=!1,p=u[s].route;if(p.default)r={route:p,params:{},uri:t};else{for(var g=m(p.path),y={},b=Math.max(i.length,g.length),w=0;w<b;w++){var k=g[w],x=i[w];if(\"*\"===k){y[\"*\"]=i.slice(w).map(decodeURIComponent).join(\"/\");break}if(void 0===x){d=!0;break}var E=f.exec(k);if(E&&!l){-1===v.indexOf(E[1])||o()(!1);var S=decodeURIComponent(x);y[E[1]]=S}else if(k!==x){d=!0;break}}if(!d){n={route:p,params:y,uri:\"/\"+i.slice(0,w).join(\"/\")};break}}}return n||r||null},l=function(e,t){return i([{path:e}],t)},u=function(e,t){if(a(e,\"/\"))return e;var n=e.split(\"?\"),r=n[0],o=n[1],i=t.split(\"?\")[0],l=m(r),u=m(i);if(\"\"===l[0])return g(i,o);if(!a(l[0],\".\")){var s=u.concat(l).join(\"/\");return g((\"/\"===i?\"\":\"/\")+s,o)}for(var c=u.concat(l),f=[],d=0,p=c.length;d<p;d++){var h=c[d];\"..\"===h?f.pop():\".\"!==h&&f.push(h)}return g(\"/\"+f.join(\"/\"),o)},s=function(e,t){return\"/\"+m(e).map(function(e){var n=f.exec(e);return n?t[n[1]]:e}).join(\"/\")},c=function(e,t){var n=function(e){return d(e)};return m(e).filter(n).sort().join(\"/\")===m(t).filter(n).sort().join(\"/\")},f=/^:(.+)/,d=function(e){return f.test(e)},p=function(e,t){return{route:e,score:e.default?0:m(e.path).reduce(function(e,t){return e+=4,!function(e){return\"\"===e}(t)?d(t)?e+=2:!function(e){return\"*\"===e}(t)?e+=3:e-=5:e+=1,e},0),index:t}},h=function(e){return e.map(p).sort(function(e,t){return e.score<t.score?1:e.score>t.score?-1:e.index-t.index})},m=function(e){return e.replace(/(^\\/+|\\/+$)/g,\"\").split(\"/\")},g=function(e,t){return e+(t?\"?\"+t:\"\")},v=[\"uri\",\"path\"]},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){\"use strict\";n.r(t);n(13),n(53),n(3),n(12);var r=n(0),o=n.n(r),a=(n(196),n(10),n(42)),i=n.n(a),l=o.a.createContext,u=n(142),s=n(25),c=n(41);n.d(t,\"Link\",function(){return I}),n.d(t,\"Location\",function(){return y}),n.d(t,\"LocationProvider\",function(){return b}),n.d(t,\"Match\",function(){return L}),n.d(t,\"Redirect\",function(){return M}),n.d(t,\"Router\",function(){return x}),n.d(t,\"ServerLocation\",function(){return w}),n.d(t,\"isRedirect\",function(){return j}),n.d(t,\"redirectTo\",function(){return N}),n.d(t,\"BaseContext\",function(){return k}),n.d(t,\"createHistory\",function(){return c.createHistory}),n.d(t,\"createMemorySource\",function(){return c.createMemorySource}),n.d(t,\"navigate\",function(){return c.navigate}),n.d(t,\"globalHistory\",function(){return c.globalHistory});var f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function d(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function p(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function h(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function m(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var g=function(e,t){var n=l(t);return n.Consumer.displayName=e+\".Consumer\",n.Provider.displayName=e+\".Provider\",n},v=g(\"Location\"),y=function(e){var t=e.children;return o.a.createElement(v.Consumer,null,function(e){return e?t(e):o.a.createElement(b,null,t)})},b=function(e){function t(){var n,r;p(this,t);for(var o=arguments.length,a=Array(o),i=0;i<o;i++)a[i]=arguments[i];return n=r=h(this,e.call.apply(e,[this].concat(a))),r.state={context:r.getContext(),refs:{unlisten:null}},h(r,n)}return m(t,e),t.prototype.getContext=function(){var e=this.props.history;return{navigate:e.navigate,location:e.location}},t.prototype.componentDidCatch=function(e,t){if(!j(e))throw e;(0,this.props.history.navigate)(e.uri,{replace:!0})},t.prototype.componentDidUpdate=function(e,t){t.context.location!==this.state.context.location&&this.props.history._onTransitionComplete()},t.prototype.componentDidMount=function(){var e=this,t=this.state.refs,n=this.props.history;t.unlisten=n.listen(function(){Promise.resolve().then(function(){requestAnimationFrame(function(){e.unmounted||e.setState(function(){return{context:e.getContext()}})})})})},t.prototype.componentWillUnmount=function(){var e=this.state.refs;this.unmounted=!0,e.unlisten()},t.prototype.render=function(){var e=this.state.context,t=this.props.children;return o.a.createElement(v.Provider,{value:e},\"function\"==typeof t?t(e):t||null)},t}(o.a.Component);b.defaultProps={history:c.globalHistory};var w=function(e){var t=e.url,n=e.children;return o.a.createElement(v.Provider,{value:{location:{pathname:t,search:\"\",hash:\"\"},navigate:function(){throw new Error(\"You can't call navigate on the server.\")}}},n)},k=g(\"Base\",{baseuri:\"/\",basepath:\"/\"}),x=function(e){return o.a.createElement(k.Consumer,null,function(t){return o.a.createElement(y,null,function(n){return o.a.createElement(E,f({},t,n,e))})})},E=function(e){function t(){return p(this,t),h(this,e.apply(this,arguments))}return m(t,e),t.prototype.render=function(){var e=this.props,t=e.location,n=e.navigate,r=e.basepath,a=e.primary,i=e.children,l=(e.baseuri,e.component),u=void 0===l?\"div\":l,c=d(e,[\"location\",\"navigate\",\"basepath\",\"primary\",\"children\",\"baseuri\",\"component\"]),p=o.a.Children.map(i,U(r)),h=t.pathname,m=Object(s.c)(p,h);if(m){var g=m.params,v=m.uri,y=m.route,b=m.route.value;r=y.default?r:y.path.replace(/\\*$/,\"\");var w=f({},g,{uri:v,location:t,navigate:function(e,t){return n(Object(s.d)(e,v),t)}}),E=o.a.cloneElement(b,w,b.props.children?o.a.createElement(x,{primary:a},b.props.children):void 0),S=a?_:u,T=a?f({uri:v,location:t,component:u},c):c;return o.a.createElement(k.Provider,{value:{baseuri:v,basepath:r}},o.a.createElement(S,T,E))}return null},t}(o.a.PureComponent);E.defaultProps={primary:!0};var S=g(\"Focus\"),_=function(e){var t=e.uri,n=e.location,r=e.component,a=d(e,[\"uri\",\"location\",\"component\"]);return o.a.createElement(S.Consumer,null,function(e){return o.a.createElement(O,f({},a,{component:r,requestFocus:e,uri:t,location:n}))})},T=!0,C=0,O=function(e){function t(){var n,r;p(this,t);for(var o=arguments.length,a=Array(o),i=0;i<o;i++)a[i]=arguments[i];return n=r=h(this,e.call.apply(e,[this].concat(a))),r.state={},r.requestFocus=function(e){r.state.shouldFocus||e.focus()},h(r,n)}return m(t,e),t.getDerivedStateFromProps=function(e,t){if(null==t.uri)return f({shouldFocus:!0},e);var n=e.uri!==t.uri,r=t.location.pathname!==e.location.pathname&&e.location.pathname===e.uri;return f({shouldFocus:n||r},e)},t.prototype.componentDidMount=function(){C++,this.focus()},t.prototype.componentWillUnmount=function(){0===--C&&(T=!0)},t.prototype.componentDidUpdate=function(e,t){e.location!==this.props.location&&this.state.shouldFocus&&this.focus()},t.prototype.focus=function(){var e=this.props.requestFocus;e?e(this.node):T?T=!1:this.node.contains(document.activeElement)||this.node.focus()},t.prototype.render=function(){var e=this,t=this.props,n=(t.children,t.style),r=(t.requestFocus,t.role),a=void 0===r?\"group\":r,i=t.component,l=void 0===i?\"div\":i,u=(t.uri,t.location,d(t,[\"children\",\"style\",\"requestFocus\",\"role\",\"component\",\"uri\",\"location\"]));return o.a.createElement(l,f({style:f({outline:\"none\"},n),tabIndex:\"-1\",role:a,ref:function(t){return e.node=t}},u),o.a.createElement(S.Provider,{value:this.requestFocus},this.props.children))},t}(o.a.Component);Object(u.polyfill)(O);var P=function(){},A=o.a.forwardRef;void 0===A&&(A=function(e){return e});var I=A(function(e,t){var n=e.innerRef,r=d(e,[\"innerRef\"]);return o.a.createElement(k.Consumer,null,function(e){e.basepath;var a=e.baseuri;return o.a.createElement(y,null,function(e){var i=e.location,l=e.navigate,u=r.to,c=r.state,p=r.replace,h=r.getProps,m=void 0===h?P:h,g=d(r,[\"to\",\"state\",\"replace\",\"getProps\"]),v=Object(s.d)(u,a),y=i.pathname===v,b=Object(s.e)(i.pathname,v);return o.a.createElement(\"a\",f({ref:t||n,\"aria-current\":y?\"page\":void 0},g,m({isCurrent:y,isPartiallyCurrent:b,href:v,location:i}),{href:v,onClick:function(e){g.onClick&&g.onClick(e),z(e)&&(e.preventDefault(),l(v,{state:c,replace:p}))}}))})})});function R(e){this.uri=e}var j=function(e){return e instanceof R},N=function(e){throw new R(e)},F=function(e){function t(){return p(this,t),h(this,e.apply(this,arguments))}return m(t,e),t.prototype.componentDidMount=function(){var e=this.props,t=e.navigate,n=e.to,r=(e.from,e.replace),o=void 0===r||r,a=e.state,i=(e.noThrow,d(e,[\"navigate\",\"to\",\"from\",\"replace\",\"state\",\"noThrow\"]));Promise.resolve().then(function(){t(Object(s.a)(n,i),{replace:o,state:a})})},t.prototype.render=function(){var e=this.props,t=(e.navigate,e.to),n=(e.from,e.replace,e.state,e.noThrow),r=d(e,[\"navigate\",\"to\",\"from\",\"replace\",\"state\",\"noThrow\"]);return n||N(Object(s.a)(t,r)),null},t}(o.a.Component),M=function(e){return o.a.createElement(y,null,function(t){return o.a.createElement(F,f({},t,e))})},L=function(e){var t=e.path,n=e.children;return o.a.createElement(k.Consumer,null,function(e){var r=e.baseuri;return o.a.createElement(y,null,function(e){var o=e.navigate,a=e.location,i=Object(s.d)(t,r),l=Object(s.b)(i,a.pathname);return n({navigate:o,location:a,match:l?f({},l.params,{uri:l.uri,path:t}):null})})})},D=function(e){return e.replace(/(^\\/+|\\/+$)/g,\"\")},U=function(e){return function(t){if(!t)return null;if(t.props.path||t.props.default||t.type===M||i()(!1),t.type!==M||t.props.from&&t.props.to||i()(!1),t.type!==M||Object(s.f)(t.props.from,t.props.to)||i()(!1),t.props.default)return{value:t,default:!0};var n=t.type===M?t.props.from:t.props.path,r=\"/\"===n?e:D(e)+\"/\"+D(n);return{value:t,default:t.props.default,path:t.props.children?D(r)+\"/*\":r}}},z=function(e){return!e.defaultPrevented&&0===e.button&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){\"use strict\";n(185);var r=n(14),o=n(66),a=n(17),i=/./.toString,l=function(e){n(23)(RegExp.prototype,\"toString\",e,!0)};n(16)(function(){return\"/a/b\"!=i.call({source:\"a\",flags:\"b\"})})?l(function(){var e=r(this);return\"/\".concat(e.source,\"/\",\"flags\"in e?e.flags:!a&&e instanceof RegExp?o.call(e):void 0)}):\"toString\"!=i.name&&l(function(){return i.call(this)})},function(e,t,n){var r=n(11),o=n(177),a=n(34),i=n(75),l=n(178);r(r.S,\"Object\",{getOwnPropertyDescriptors:function(e){for(var t,n,r=a(e),u=i.f,s=o(r),c={},f=0;s.length>f;)void 0!==(n=u(r,t=s[f++]))&&l(c,t,n);return c}})},function(e,t){var n=e.exports={version:\"2.6.9\"};\"number\"==typeof __e&&(__e=n)},function(e,t,n){var r=n(19),o=n(51);e.exports=n(17)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(68),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){var r=n(89),o=n(38);e.exports=function(e){return r(o(e))}},function(e,t,n){var r=n(38);e.exports=function(e){return Object(r(e))}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(47);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if(null==e)throw TypeError(\"Can't call method on  \"+e);return e}},function(e,t,n){var r=n(113),o=n(91);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t,n){var r=n(15);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required!\");return e}},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"globalHistory\",function(){return u}),n.d(t,\"navigate\",function(){return s}),n.d(t,\"createHistory\",function(){return a}),n.d(t,\"createMemorySource\",function(){return i});n(22),n(53),n(3),n(13),n(12);var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(e){return r({},e.location,{state:e.history.state,key:e.history.state&&e.history.state.key||\"initial\"})},a=function(e,t){var n=[],a=o(e),i=!1,l=function(){};return{get location(){return a},get transitioning(){return i},_onTransitionComplete:function(){i=!1,l()},listen:function(t){n.push(t);var r=function(){a=o(e),t({location:a,action:\"POP\"})};return e.addEventListener(\"popstate\",r),function(){e.removeEventListener(\"popstate\",r),n=n.filter(function(e){return e!==t})}},navigate:function(t){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=u.state,c=u.replace,f=void 0!==c&&c;s=r({},s,{key:Date.now()+\"\"});try{i||f?e.history.replaceState(s,null,t):e.history.pushState(s,null,t)}catch(p){e.location[f?\"replace\":\"assign\"](t)}a=o(e),i=!0;var d=new Promise(function(e){return l=e});return n.forEach(function(e){return e({location:a,action:\"PUSH\"})}),d}}},i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"/\",t=0,n=[{pathname:e,search:\"\"}],r=[];return{get location(){return n[t]},addEventListener:function(e,t){},removeEventListener:function(e,t){},history:{get entries(){return n},get index(){return t},get state(){return r[t]},pushState:function(e,o,a){var i=a.split(\"?\"),l=i[0],u=i[1],s=void 0===u?\"\":u;t++,n.push({pathname:l,search:s}),r.push(e)},replaceState:function(e,o,a){var i=a.split(\"?\"),l=i[0],u=i[1],s=void 0===u?\"\":u;n[t]={pathname:l,search:s},r[t]=e}}}},l=!(\"undefined\"==typeof window||!window.document||!window.document.createElement),u=a(l?window:i()),s=u.navigate},function(e,t,n){\"use strict\";n(21),n(13);e.exports=function(e,t,n,r,o,a,i,l){if(!e){var u;if(void 0===t)u=new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var s=[n,r,o,a,i,l],c=0;(u=new Error(t.replace(/%s/g,function(){return s[c++]}))).name=\"Invariant Violation\"}throw u.framesToPop=1,u}}},function(e,t,n){\"use strict\";n(5),n(4),n(3),n(6),n(12);var r=n(45),o=n(0),a=n.n(o),i=n(2);var l=Object(i.c)(function(e){var t=e.children,n=e.to,o=e.activeClassName,i=e.partiallyActive,l=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,[\"children\",\"to\",\"activeClassName\",\"partiallyActive\"]);return/^\\/(?!\\/)/.test(n)?a.a.createElement(r.Link,Object.assign({to:n,activeClassName:o,partiallyActive:i},l),t):a.a.createElement(\"a\",Object.assign({href:n},l),t)}).withConfig({displayName:\"link__Anchor\",componentId:\"qvnqzr-0\"})([\"color:\",';font-size:1em;font-feature-settings:\"kern\",\"liga\",\"clig\",\"calt\";'],function(e){return e.theme.site.color.Foreground});Object(i.c)(l).withConfig({displayName:\"link__SubtleLink\",componentId:\"qvnqzr-1\"})([\"color:\",\";font-family:\",\";margin:0 0.4rem;&:hover{color:\",\";}\"],function(e){return e.theme.code.color.Comment},function(e){return e.theme.fonts.Monospace},function(e){return e.theme.site.color.Foreground}),Object(i.c)(l).withConfig({displayName:\"link__NotSoSubtleLink\",componentId:\"qvnqzr-2\"})([\"color:\",\";font-family:\",\";margin:0 0.4rem;&:hover{color:\",\";}\"],function(e){return e.theme.code.color.Comment},function(e){return e.theme.fonts.HeaderSans},function(e){return e.theme.site.color.Foreground});t.a=l},function(e,t,n){var r=n(50)(\"meta\"),o=n(15),a=n(28),i=n(19).f,l=0,u=Object.isExtensible||function(){return!0},s=!n(16)(function(){return u(Object.preventExtensions({}))}),c=function(e){i(e,r,{value:{i:\"O\"+ ++l,w:{}}})},f=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!o(e))return\"symbol\"==typeof e?e:(\"string\"==typeof e?\"S\":\"P\")+e;if(!a(e,r)){if(!u(e))return\"F\";if(!t)return\"E\";c(e)}return e[r].i},getWeak:function(e,t){if(!a(e,r)){if(!u(e))return!0;if(!t)return!1;c(e)}return e[r].w},onFreeze:function(e){return s&&f.NEED&&u(e)&&!a(e,r)&&c(e),e}}},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"graphql\",function(){return m}),n.d(t,\"StaticQueryContext\",function(){return f}),n.d(t,\"StaticQuery\",function(){return p}),n.d(t,\"useStaticQuery\",function(){return h});var r=n(0),o=n.n(r),a=n(10),i=n.n(a),l=n(24),u=n.n(l);n.d(t,\"Link\",function(){return u.a}),n.d(t,\"withAssetPrefix\",function(){return l.withAssetPrefix}),n.d(t,\"withPrefix\",function(){return l.withPrefix}),n.d(t,\"parsePath\",function(){return l.parsePath}),n.d(t,\"navigate\",function(){return l.navigate}),n.d(t,\"push\",function(){return l.push}),n.d(t,\"replace\",function(){return l.replace}),n.d(t,\"navigateTo\",function(){return l.navigateTo});var s=n(132),c=n.n(s);n.d(t,\"PageRenderer\",function(){return c.a});var f=o.a.createContext({});function d(e){var t=e.staticQueryData,n=e.data,r=e.query,a=e.render,i=n?n.data:t[r]&&t[r].data;return o.a.createElement(o.a.Fragment,null,i&&a(i),!i&&o.a.createElement(\"div\",null,\"Loading (StaticQuery)\"))}var p=function(e){var t=e.data,n=e.query,r=e.render,a=e.children;return o.a.createElement(f.Consumer,null,function(e){return o.a.createElement(d,{data:t,query:n,render:r||a,staticQueryData:e})})},h=function(e){o.a.useContext;var t=o.a.useContext(f);if(t[e]&&t[e].data)return t[e].data;throw new Error(\"The result of this StaticQuery could not be fetched.\\n\\nThis is likely a bug in Gatsby and if refreshing the page does not fix it, please open an issue in https://github.com/gatsbyjs/gatsby/issues\")};function m(){throw new Error(\"It appears like Gatsby is misconfigured. Gatsby related `graphql` calls are supposed to only be evaluated at compile time, and then compiled away. Unfortunately, something went wrong and the query was left in the compiled code.\\n\\nUnless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.\")}p.propTypes={data:i.a.object,query:i.a.string.isRequired,render:i.a.func,children:i.a.func}},function(e,t,n){\"use strict\";var r=function(e){return e=e||Object.create(null),{on:function(t,n){(e[t]||(e[t]=[])).push(n)},off:function(t,n){e[t]&&e[t].splice(e[t].indexOf(n)>>>0,1)},emit:function(t,n){(e[t]||[]).slice().map(function(e){e(n)}),(e[\"*\"]||[]).slice().map(function(e){e(t,n)})}}}();t.a=r},function(e,t){e.exports=function(e){if(\"function\"!=typeof e)throw TypeError(e+\" is not a function!\");return e}},function(e,t,n){n(124)(\"asyncIterator\")},function(e,t){e.exports=!1},function(e,t){var n=0,r=Math.random();e.exports=function(e){return\"Symbol(\".concat(void 0===e?\"\":e,\")_\",(++n+r).toString(36))}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){\"use strict\";var r,o,a,i,l=n(49),u=n(8),s=n(37),c=n(63),f=n(11),d=n(15),p=n(47),h=n(70),m=n(71),g=n(92),v=n(116).set,y=n(169)(),b=n(118),w=n(170),k=n(171),x=n(119),E=u.TypeError,S=u.process,_=S&&S.versions,T=_&&_.v8||\"\",C=u.Promise,O=\"process\"==c(S),P=function(){},A=o=b.f,I=!!function(){try{var e=C.resolve(1),t=(e.constructor={})[n(9)(\"species\")]=function(e){e(P,P)};return(O||\"function\"==typeof PromiseRejectionEvent)&&e.then(P)instanceof t&&0!==T.indexOf(\"6.6\")&&-1===k.indexOf(\"Chrome/66\")}catch(r){}}(),R=function(e){var t;return!(!d(e)||\"function\"!=typeof(t=e.then))&&t},j=function(e,t){if(!e._n){e._n=!0;var n=e._c;y(function(){for(var r=e._v,o=1==e._s,a=0,i=function(t){var n,a,i,l=o?t.ok:t.fail,u=t.resolve,s=t.reject,c=t.domain;try{l?(o||(2==e._h&&M(e),e._h=1),!0===l?n=r:(c&&c.enter(),n=l(r),c&&(c.exit(),i=!0)),n===t.promise?s(E(\"Promise-chain cycle\")):(a=R(n))?a.call(n,u,s):u(n)):s(r)}catch(f){c&&!i&&c.exit(),s(f)}};n.length>a;)i(n[a++]);e._c=[],e._n=!1,t&&!e._h&&N(e)})}},N=function(e){v.call(u,function(){var t,n,r,o=e._v,a=F(e);if(a&&(t=w(function(){O?S.emit(\"unhandledRejection\",o,e):(n=u.onunhandledrejection)?n({promise:e,reason:o}):(r=u.console)&&r.error&&r.error(\"Unhandled promise rejection\",o)}),e._h=O||F(e)?2:1),e._a=void 0,a&&t.e)throw t.v})},F=function(e){return 1!==e._h&&0===(e._a||e._c).length},M=function(e){v.call(u,function(){var t;O?S.emit(\"rejectionHandled\",e):(t=u.onrejectionhandled)&&t({promise:e,reason:e._v})})},L=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),j(t,!0))},D=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw E(\"Promise can't be resolved itself\");(t=R(e))?y(function(){var r={_w:n,_d:!1};try{t.call(e,s(D,r,1),s(L,r,1))}catch(o){L.call(r,o)}}):(n._v=e,n._s=1,j(n,!1))}catch(r){L.call({_w:n,_d:!1},r)}}};I||(C=function(e){h(this,C,\"Promise\",\"_h\"),p(e),r.call(this);try{e(s(D,this,1),s(L,this,1))}catch(t){L.call(this,t)}},(r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(72)(C.prototype,{then:function(e,t){var n=A(g(this,C));return n.ok=\"function\"!=typeof e||e,n.fail=\"function\"==typeof t&&t,n.domain=O?S.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&j(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),a=function(){var e=new r;this.promise=e,this.resolve=s(D,e,1),this.reject=s(L,e,1)},b.f=A=function(e){return e===C||e===i?new a(e):o(e)}),f(f.G+f.W+f.F*!I,{Promise:C}),n(55)(C,\"Promise\"),n(93)(\"Promise\"),i=n(31).Promise,f(f.S+f.F*!I,\"Promise\",{reject:function(e){var t=A(this);return(0,t.reject)(e),t.promise}}),f(f.S+f.F*(l||!I),\"Promise\",{resolve:function(e){return x(l&&this===i?C:this,e)}}),f(f.S+f.F*!(I&&n(120)(function(e){C.all(e).catch(P)})),\"Promise\",{all:function(e){var t=this,n=A(t),r=n.resolve,o=n.reject,a=w(function(){var n=[],a=0,i=1;m(e,!1,function(e){var l=a++,u=!1;n.push(void 0),i++,t.resolve(e).then(function(e){u||(u=!0,n[l]=e,--i||r(n))},o)}),--i||r(n)});return a.e&&o(a.v),n.promise},race:function(e){var t=this,n=A(t),r=n.reject,o=w(function(){m(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(e,t){e.exports={}},function(e,t,n){var r=n(19).f,o=n(28),a=n(9)(\"toStringTag\");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},function(e,t,n){var r=n(9)(\"unscopables\"),o=Array.prototype;null==o[r]&&n(32)(o,r,{}),e.exports=function(e){o[r][e]=!0}},function(e,t,n){var r=n(113),o=n(91).concat(\"length\",\"prototype\");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"MDXContext\",function(){return a}),n.d(t,\"MDXProvider\",function(){return u}),n.d(t,\"useMDXComponents\",function(){return l}),n.d(t,\"withMDXComponents\",function(){return i}),n.d(t,\"mdx\",function(){return d});n(12);var r=n(0),o=n.n(r),a=o.a.createContext({}),i=function(e){return function(t){var n=l(t.components);return o.a.createElement(e,Object.assign({},t,{components:n}))}},l=function(e){var t=o.a.useContext(a),n=t;return e&&(n=\"function\"==typeof e?e(t):Object.assign({},t,e)),n},u=function(e){var t=l(e.components);return o.a.createElement(a.Provider,{value:t},e.children)},s=\"mdxType\",c={inlineCode:\"code\",wrapper:function(e){return o.a.createElement(o.a.Fragment,{},e.children)}},f=function(e){var t=e.components,n=e.mdxType,r=e.originalType,a=e.parentName,i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}(e,[\"components\",\"mdxType\",\"originalType\",\"parentName\"]),u=l(t);return o.a.createElement(u[a+\".\"+n]||u[n]||c[n]||r,t?Object.assign({},i,{components:t}):i)};function d(e,t){var n=arguments,r=t&&t.mdxType;if(\"string\"==typeof e||r){var a=n.length,i=new Array(a);i[0]=f;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]=\"string\"==typeof e?e:r,i[1]=l;for(var c=2;c<a;c++)i[c]=n[c];return o.a.createElement.apply(null,i)}return o.a.createElement.apply(null,n)}f.displayName=\"MDXCreateElement\"},function(e,t,n){\"use strict\";var r=n(14),o=n(33),a=n(88),i=n(62);n(65)(\"match\",1,function(e,t,n,l){return[function(n){var r=e(this),o=null==n?void 0:n[t];return void 0!==o?o.call(n,r):new RegExp(n)[t](String(r))},function(e){var t=l(n,e,this);if(t.done)return t.value;var u=r(e),s=String(this);if(!u.global)return i(u,s);var c=u.unicode;u.lastIndex=0;for(var f,d=[],p=0;null!==(f=i(u,s));){var h=String(f[0]);d[p]=h,\"\"===h&&(u.lastIndex=a(s,o(u.lastIndex),c)),p++}return 0===p?null:d}]})},function(e,t,n){var r=n(8),o=n(96),a=n(19).f,i=n(57).f,l=n(95),u=n(66),s=r.RegExp,c=s,f=s.prototype,d=/a/g,p=/a/g,h=new s(d)!==d;if(n(17)&&(!h||n(16)(function(){return p[n(9)(\"match\")]=!1,s(d)!=d||s(p)==p||\"/a/i\"!=s(d,\"i\")}))){s=function(e,t){var n=this instanceof s,r=l(e),a=void 0===t;return!n&&r&&e.constructor===s&&a?e:o(h?new c(r&&!a?e.source:e,t):c((r=e instanceof s)?e.source:e,r&&a?u.call(e):t),n?this:f,s)};for(var m=function(e){e in s||a(s,e,{configurable:!0,get:function(){return c[e]},set:function(t){c[e]=t}})},g=i(c),v=0;g.length>v;)m(g[v++]);f.constructor=s,s.prototype=f,n(23)(r,\"RegExp\",s)}n(93)(\"RegExp\")},function(e,t,n){var r=n(14),o=n(180),a=n(91),i=n(90)(\"IE_PROTO\"),l=function(){},u=function(){var e,t=n(87)(\"iframe\"),r=a.length;for(t.style.display=\"none\",n(117).appendChild(t),t.src=\"javascript:\",(e=t.contentWindow.document).open(),e.write(\"<script>document.F=Object<\\/script>\"),e.close(),u=e.F;r--;)delete u.prototype[a[r]];return u()};e.exports=Object.create||function(e,t){var n;return null!==e?(l.prototype=r(e),n=new l,l.prototype=null,n[i]=e):n=u(),void 0===t?n:o(n,t)}},function(e,t,n){\"use strict\";var r=n(63),o=RegExp.prototype.exec;e.exports=function(e,t){var n=e.exec;if(\"function\"==typeof n){var a=n.call(e,t);if(\"object\"!=typeof a)throw new TypeError(\"RegExp exec method returned something other than an Object or null\");return a}if(\"RegExp\"!==r(e))throw new TypeError(\"RegExp#exec called on incompatible receiver\");return o.call(e,t)}},function(e,t,n){var r=n(36),o=n(9)(\"toStringTag\"),a=\"Arguments\"==r(function(){return arguments}());e.exports=function(e){var t,n,i;return void 0===e?\"Undefined\":null===e?\"Null\":\"string\"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),o))?n:a?r(t):\"Object\"==(i=r(t))&&\"function\"==typeof t.callee?\"Arguments\":i}},function(e,t,n){var r=n(31),o=n(8),a=o[\"__core-js_shared__\"]||(o[\"__core-js_shared__\"]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})(\"versions\",[]).push({version:r.version,mode:n(49)?\"pure\":\"global\",copyright:\"© 2019 Denis Pushkarev (zloirock.ru)\"})},function(e,t,n){\"use strict\";n(164);var r=n(23),o=n(32),a=n(16),i=n(38),l=n(9),u=n(86),s=l(\"species\"),c=!a(function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:\"7\"},e},\"7\"!==\"\".replace(e,\"$<a>\")}),f=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n=\"ab\".split(e);return 2===n.length&&\"a\"===n[0]&&\"b\"===n[1]}();e.exports=function(e,t,n){var d=l(e),p=!a(function(){var t={};return t[d]=function(){return 7},7!=\"\"[e](t)}),h=p?!a(function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},\"split\"===e&&(n.constructor={},n.constructor[s]=function(){return n}),n[d](\"\"),!t}):void 0;if(!p||!h||\"replace\"===e&&!c||\"split\"===e&&!f){var m=/./[d],g=n(i,d,\"\"[e],function(e,t,n,r,o){return t.exec===u?p&&!o?{done:!0,value:m.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),v=g[0],y=g[1];r(String.prototype,e,v),o(RegExp.prototype,d,2==t?function(e,t){return y.call(e,this,t)}:function(e){return y.call(e,this)})}}},function(e,t,n){\"use strict\";var r=n(14);e.exports=function(){var e=r(this),t=\"\";return e.global&&(t+=\"g\"),e.ignoreCase&&(t+=\"i\"),e.multiline&&(t+=\"m\"),e.unicode&&(t+=\"u\"),e.sticky&&(t+=\"y\"),t}},function(e,t,n){var r=n(15);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&\"function\"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if(\"function\"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&\"function\"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError(\"Can't convert object to primitive value\")}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+\": incorrect invocation!\");return e}},function(e,t,n){var r=n(37),o=n(166),a=n(167),i=n(14),l=n(33),u=n(168),s={},c={};(t=e.exports=function(e,t,n,f,d){var p,h,m,g,v=d?function(){return e}:u(e),y=r(n,f,t?2:1),b=0;if(\"function\"!=typeof v)throw TypeError(e+\" is not iterable!\");if(a(v)){for(p=l(e.length);p>b;b++)if((g=t?y(i(h=e[b])[0],h[1]):y(e[b]))===s||g===c)return g}else for(m=v.call(e);!(h=m.next()).done;)if((g=o(m,y,h.value,t))===s||g===c)return g}).BREAK=s,t.RETURN=c},function(e,t,n){var r=n(23);e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},function(e,t,n){\"use strict\";var r=n(11),o=n(74)(5),a=!0;\"find\"in[]&&Array(1).find(function(){a=!1}),r(r.P+r.F*a,\"Array\",{find:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),n(56)(\"find\")},function(e,t,n){var r=n(37),o=n(89),a=n(35),i=n(33),l=n(175);e.exports=function(e,t){var n=1==e,u=2==e,s=3==e,c=4==e,f=6==e,d=5==e||f,p=t||l;return function(t,l,h){for(var m,g,v=a(t),y=o(v),b=r(l,h,3),w=i(y.length),k=0,x=n?p(t,w):u?p(t,0):void 0;w>k;k++)if((d||k in y)&&(g=b(m=y[k],k,v),e))if(n)x[k]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return k;case 2:x.push(m)}else if(c)return!1;return f?-1:s||c?c:x}}},function(e,t,n){var r=n(52),o=n(51),a=n(34),i=n(67),l=n(28),u=n(110),s=Object.getOwnPropertyDescriptor;t.f=n(17)?s:function(e,t){if(e=a(e),t=i(t,!0),u)try{return s(e,t)}catch(n){}if(l(e,t))return o(!r.f.call(e,t),e[t])}},function(e,t,n){\"use strict\";var r=n(11),o=n(114)(!0);r(r.P,\"Array\",{includes:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),n(56)(\"includes\")},function(e,t,n){\"use strict\";var r=n(11),o=n(129);r(r.P+r.F*n(130)(\"includes\"),\"String\",{includes:function(e){return!!~o(this,e,\"includes\").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,n){\"use strict\";var r=n(8),o=n(11),a=n(23),i=n(72),l=n(44),u=n(71),s=n(70),c=n(15),f=n(16),d=n(120),p=n(55),h=n(96);e.exports=function(e,t,n,m,g,v){var y=r[e],b=y,w=g?\"set\":\"add\",k=b&&b.prototype,x={},E=function(e){var t=k[e];a(k,e,\"delete\"==e?function(e){return!(v&&!c(e))&&t.call(this,0===e?0:e)}:\"has\"==e?function(e){return!(v&&!c(e))&&t.call(this,0===e?0:e)}:\"get\"==e?function(e){return v&&!c(e)?void 0:t.call(this,0===e?0:e)}:\"add\"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(\"function\"==typeof b&&(v||k.forEach&&!f(function(){(new b).entries().next()}))){var S=new b,_=S[w](v?{}:-0,1)!=S,T=f(function(){S.has(1)}),C=d(function(e){new b(e)}),O=!v&&f(function(){for(var e=new b,t=5;t--;)e[w](t,t);return!e.has(-0)});C||((b=t(function(t,n){s(t,b,e);var r=h(new y,t,b);return null!=n&&u(n,g,r[w],r),r})).prototype=k,k.constructor=b),(T||O)&&(E(\"delete\"),E(\"has\"),g&&E(\"get\")),(O||_)&&E(w),v&&k.clear&&delete k.clear}else b=m.getConstructor(t,e,g,w),i(b.prototype,n),l.NEED=!0;return p(b,e),x[e]=b,o(o.G+o.W+o.F*(b!=y),x),v||m.setStrong(b,e,g),b}},function(e,t,n){\"use strict\";n.d(t,\"a\",function(){return c}),n.d(t,\"b\",function(){return f});n(203);var r=n(0),o=n.n(r),a=n(2),i=n(104),l=n.n(i),u=n(82),s=a.c.div.withConfig({displayName:\"kablamoBolt__LogoWrapper\",componentId:\"sc-17v810d-0\"})([\"width:\",\";height:\",\";fill:\",\";\"],function(e){return e.small?\"12px\":\"60px\"},function(e){return e.small?\"12px\":\"60px\"},function(e){return e.subtle?e.theme.site.color.SubtleBackground:e.theme.scheme===u.b.LIGHT?\"#020202\":\"#FFFFFF\"}),c=function(e){var t=e.color;return o.a.createElement(\"div\",{style:{fill:\"\"+t}},o.a.createElement(l.a,null))},f=function(e){var t=e.small,n=e.subtle;return o.a.createElement(s,{small:t,subtle:n},o.a.createElement(l.a,null))}},function(e,t,n){\"use strict\";n(30),n(18),n(5),n(4),n(3),n(6);var r=n(0),o=n.n(r),a=n(10),i=n.n(a),l=n(20),u=n(7);function s(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(n,!0).forEach(function(t){f(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e){var t,n;function o(){return e.apply(this,arguments)||this}return n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,o.prototype.render=function(){var e=c({},this.props,{pathContext:this.props.pageContext}),t=Object(u.apiRunner)(\"replaceComponentRenderer\",{props:this.props,loader:l.publicLoader})[0]||Object(r.createElement)(this.props.pageResources.component,c({},e,{key:this.props.path||this.props.pageResources.page.path}));return Object(u.apiRunner)(\"wrapPageElement\",{element:t,props:e},t,function(t){return{element:t.result,props:e}}).pop()},o}(o.a.Component);d.propTypes={location:i.a.object.isRequired,pageResources:i.a.object.isRequired,data:i.a.object,pageContext:i.a.object.isRequired},t.a=d},function(e,t,n){\"use strict\";t.a=function(e,t){return void 0===t&&(t=\"\"),e.substr(0,t.length)===t?e.slice(t.length):e}},function(e,t,n){\"use strict\";var r=n(0),o=n.n(r),a=n(2),i=n(144),l=n.n(i);function u(e,t){if(\"undefined\"==typeof window)return[t,function(){}];var n,o,a,i=\"object\"==typeof t,l=Object(r.useState)(function(){try{var n=window.localStorage.getItem(e);if(n)return i?JSON.parse(n):n}catch(r){console.error(r)}return t}),u=l[0],s=l[1],c=function(t){try{if(!window)return;var n=t instanceof Function?t(u):t;s(n),window.localStorage.setItem(e,i?JSON.stringify(n):n)}catch(r){console.error(r)}};return n=\"storage\",o=function(t){t.key===e&&t.newValue!==u&&c(t.newValue)},void 0===a&&(a=!1),\"undefined\"==typeof window&&Object(r.useEffect)(function(){return window.addEventListener(n,o,a),function(){window.removeEventListener(n,o)}}),[u,c]}n(206);function s(e,t){if(!1===t)return[e,function(){}];var n=u(\"dark-mode-enabled\",e),o=n[0],a=n[1],i=function(e,t,n){if(\"undefined\"!=typeof window){var o=e.map(function(e){return window.matchMedia(e)}),a=function(){var e=o.findIndex(function(e){return e.matches});return void 0!==t[e]?t[e]:n},i=Object(r.useState)(a),l=i[0],u=i[1];return Object(r.useEffect)(function(){var e=function(){return u(a)};return o.forEach(function(t){return t.addListener(e)}),function(){return o.forEach(function(t){return t.removeListener(e)})}},[]),l}}([\"(prefers-color-scheme: dark)\"],[!0],!1);return[void 0!==o?!!o:i,a]}var c=n(145),f=n.n(c),d=n(45),p=n(79),h=(n(12),n(146)),m=n.n(h),g=n(43),v=Object(a.c)(g.a).withConfig({displayName:\"navMenuLink__MenuLink\",componentId:\"sc-18eu672-0\"})([\"color:\",\";text-decoration:none;text-transform:uppercase;font-size:1rem;font-family:\",\";line-height:1rem;letter-spacing:0.05em;&:hover{color:\",\";border-bottom:2px \",\" solid;}\"],function(e){return e.theme.site.color.Foreground},function(e){return e.theme.fonts.Title},function(e){return m()(e.theme.site.color.Foreground).lighten(.1).hex()},function(e){return e.theme.site.color.Title.Foreground}),y=n(27),b=function(e){return o.a.createElement(y.Location,null,o.a.createElement(v,Object.assign({to:\"/\"},e),\"All Posts\"))},w=function(){return o.a.createElement(v,{to:\"https://www.kablamo.com.au/#contactkablamo-section\"},\"Get in touch\")},k=n(147),x=n.n(k),E=n(148),S=n.n(E);function _(){var e=function(e,t){t||(t=e.slice(0));return e.raw=t,e}([\"\\n  html {\\n    overflow: hidden;\\n  }\\n\"]);return _=function(){return e},e}var T,C=a.c.span.withConfig({displayName:\"mobileMenu__MobileMenuIcon\",componentId:\"sc-1pht3mo-0\"})([\"fill:\",\";\"],function(e){return e.theme.site.color.MobileMenuIcons.Foreground}),O=a.c.div.withConfig({displayName:\"mobileMenu__MobileMenuLinksContainer\",componentId:\"sc-1pht3mo-1\"})([\"display:flex;flex-direction:column;margin-top:4.8rem;margin-left:1.2rem;> *{margin-top:2rem;}\"]),P=a.c.div.withConfig({displayName:\"mobileMenu__MobileMenuOverlay\",componentId:\"sc-1pht3mo-2\"})([\"width:100vw;height:100vh;background:rgba(0,0,0,0.4);position:absolute;z-index:2;\"]),A=Object(a.b)(_()),I=a.c.div.withConfig({displayName:\"mobileMenu__MobileMenuWrapper\",componentId:\"sc-1pht3mo-3\"})([\"width:70vw;height:100vh;z-index:3;background-color:\",\";position:absolute;margin-left:-1.6rem;color:white;\"],function(e){return e.theme.site.color.Background}),R=function(){var e=Object(r.useState)(!1),t=e[0],n=e[1],a=function(){return n(!t)},i=function(e){var t=e.children;return o.a.createElement(\"div\",{onClick:a},t)};return o.a.createElement(\"div\",null,t?o.a.createElement(C,{onClick:a},o.a.createElement(S.a,null)):o.a.createElement(C,{onClick:a},o.a.createElement(x.a,null)),t&&o.a.createElement(o.a.Fragment,null,o.a.createElement(A,null),o.a.createElement(P,{onClick:a}),o.a.createElement(I,null,o.a.createElement(O,null,o.a.createElement(i,null,o.a.createElement(b,null)),o.a.createElement(i,null,o.a.createElement(w,null))))))},j=a.c.div.withConfig({displayName:\"navHeader__Header\",componentId:\"sc-1u2sa2x-0\"})([\"position:relative;display:grid;grid-template-columns:1fr auto 1fr;column-gap:1.2rem;align-items:center;width:\",\";margin-top:1.5rem;max-width:98vw;\"],function(e){return e.theme.dimensions.maxWidth}),N=a.c.div.withConfig({displayName:\"navHeader__MenuLeft\",componentId:\"sc-1u2sa2x-1\"})([\"margin-left:1.2rem;\"]),F=a.c.div.withConfig({displayName:\"navHeader__MenuRight\",componentId:\"sc-1u2sa2x-2\"})([\"justify-self:end;margin-right:1.2rem;*:not(:last-child){margin-right:1.7rem;}\"]),M=a.c.span.withConfig({displayName:\"navHeader__DesktopOnly\",componentId:\"sc-1u2sa2x-3\"})([\"@media \",\"{display:none;}\"],function(e){return e.theme.mediaQueries.mobile}),L=a.c.span.withConfig({displayName:\"navHeader__MobileOnly\",componentId:\"sc-1u2sa2x-4\"})([\"@media \",\"{display:none;}\"],function(e){return e.theme.mediaQueries.desktop}),D=function(e){var t=e.theme,n=e.darkMode,r=n.isDarkMode,a=n.setDarkMode;return o.a.createElement(f.a,{\"aria-checked\":!r,\"aria-label\":\"Theme switch\",onChange:a,checked:!r,uncheckedIcon:o.a.createElement(\"span\",{style:{display:\"inline-block\",marginLeft:\"0.5em\",marginTop:\"0.05em\",color:t.site.color.SubtleForeground}},\"☾\"),checkedIcon:o.a.createElement(\"span\",{style:{display:\"inline-block\",marginLeft:\"0.5em\",marginTop:\"0.1em\",color:t.site.color.SubtleForeground}},\"☀\"),onHandleColor:t.siteInverted.color.Foreground,onColor:t.siteInverted.color.SubtleForeground,offHandleColor:t.site.color.Foreground,offColor:t.siteInverted.color.SubtleForeground,width:60})},U=function(e){var t=e.theme,n=e.darkMode,r=n.showToggle,a=n.isDarkMode,i=n.toggleHandler;return o.a.createElement(j,null,o.a.createElement(N,null,o.a.createElement(M,null,o.a.createElement(b,null)),o.a.createElement(L,null,o.a.createElement(R,null))),o.a.createElement(d.Link,{\"aria-label\":\"Navigate to homepage\",name:\"Kablamo logo\",to:\"/\"},o.a.createElement(p.b,null)),o.a.createElement(F,null,o.a.createElement(M,null,o.a.createElement(w,null)),r&&o.a.createElement(D,{theme:t,darkMode:{isDarkMode:a,setDarkMode:i}})))},z=n(149),B=n.n(z),$=n(150),W=n.n($),H=a.c.div.withConfig({displayName:\"footer__FooterWrapper\",componentId:\"sc-1dfi99c-0\"})([\"background-color:\",\";text-align:center;font-family:\",\";color:\",\";width:100vw;padding:0 1.25rem;\"],function(e){return e.theme.site.color.Footer.Background},function(e){return e.theme.fonts.HeaderSans},function(e){return e.theme.site.color.Footer.Foreground}),q=a.c.h2.withConfig({displayName:\"footer__FooterHeader\",componentId:\"sc-1dfi99c-1\"})([\"padding-top:50px;font-size:25px;line-height:30px;font-weight:700;\"]),V=a.c.div.withConfig({displayName:\"footer__FooterLinksWrapper\",componentId:\"sc-1dfi99c-2\"})([\"display:flex;justify-content:center;\"]),G=Object(a.c)(g.a).withConfig({displayName:\"footer__FooterLink\",componentId:\"sc-1dfi99c-3\"})([\"color:\",\";font-size:15px;line-height:19px;font-weight:400;text-transform:uppercase;\"],function(e){return e.theme.site.color.Footer.Foreground}),K=a.c.div.withConfig({displayName:\"footer__KablamoLocation\",componentId:\"sc-1dfi99c-4\"})([\"text-transform:uppercase;margin-top:70px;font-weight:400;font-size:12px;line-height:15px;\"]),Y=a.c.div.withConfig({displayName:\"footer__Copyright\",componentId:\"sc-1dfi99c-5\"})([\"font-size:12px;line-height:15px;margin-top:30px;padding-bottom:30px;\"]),X=Object(a.d)(function(e){var t=e.theme;return o.a.createElement(H,null,o.a.createElement(q,null,\"Our Partners\"),o.a.createElement(\"img\",{src:t.scheme==T.LIGHT?W.a:B.a,alt:\"Our partners\"}),o.a.createElement(V,null,o.a.createElement(G,{to:\"https://github.com/KablamoOSS\"},\"Github\"),o.a.createElement(G,{to:\"https://www.kablamo.com.au/jobs\",style:{margin:\"0 2rem\"}},\"Working With Us\"),o.a.createElement(G,{to:\"https://www.kablamo.com.au/privacy-policy\"},\"Terms & Privacy Policy\")),o.a.createElement(K,null,\"Level 14, 5 Martin Place, Sydney, NSW, 2000, Australia\"),o.a.createElement(Y,null,\"Copyright © 2019. All rights reserved. ABN: 36 618 932 737\"))}),Q={color:{Background:\"#1d1f21\",CurrentLine:\"#282a2e\",Selection:\"#373b41\",Foreground:\"#c5c8c6\",Comment:\"#969896\",Red:\"#cc6666\",Orange:\"#de935f\",Yellow:\"#f0c674\",Green:\"#b5bd68\",Aqua:\"#8abeb7\",Blue:\"#81a2be\",Purple:\"#b294bb\"}},Z={color:{Background:\"#262626\",SubtleBackground:\"#373b41\",Footer:{Background:\"black\",Foreground:\"white\"},Foreground:\"#f6f6f6\",Title:{Foreground:\"#ffffff\"},SubtleForeground:\"#dadada\",Tag:{Foreground:\"#f6f6f6\",Background:\"#1c1c1c\",Border:\"#d6d6d6\",Hover:{Foreground:\"#8d8d8d\",Background:\"#f4f4f4\"}},SocialMediaIcons:{Hover:{Foreground:\"#f6f6f6\"}},MobileMenuIcons:{Foreground:\"#e9e9e9\"}}},J={color:{Background:\"#f9f9f9\",CurrentLine:\"#efefef\",Selection:\"#d6d6d6\",Foreground:\"#4d4d4c\",Comment:\"#8e908c\",Red:\"#c82829\",Orange:\"#f5871f\",Yellow:\"#eab700\",Green:\"#718c00\",Aqua:\"#3e999f\",Blue:\"#4271ae\",Purple:\"#8959a8\"}},ee={color:{Background:\"#ffffff\",SubtleBackground:\"#d6d6d6\",Footer:{Background:\"#f4f4f4\",Foreground:\"#2a2a2a\"},Foreground:\"#1c1c1c\",Title:{Foreground:\"#1c1c1c\"},SubtleForeground:\"#2f2f2f\",Tag:{Foreground:\"#8d8d8d\",Border:\"#d6d6d6\",Background:\"#f4f4f4\",Hover:{Foreground:\"#f6f6f6\",Background:\"#1c1c1c\"}},SocialMediaIcons:{Hover:{Foreground:\"#1d1f21\"}},MobileMenuIcons:{Foreground:\"#8d8d8d\"}}},te=n(106);function ne(){var e=function(e,t){t||(t=e.slice(0));return e.raw=t,e}([\"\\n  html {\\n    font-size: 16px;\\n  }\\n\\n body {\\n    color: \",\";\\n    background-color: \",\"\\n }\\n\"]);return ne=function(){return e},e}n.d(t,\"a\",function(){return ae}),n.d(t,\"b\",function(){return T}),function(e){e.LIGHT=\"light\",e.DARK=\"dark\"}(T||(T={}));var re=Object(a.b)(ne(),function(e){return e.theme.site.color.Foreground},function(e){return e.theme.site.color.Background}),oe=a.c.div.withConfig({displayName:\"theme__Wrapper\",componentId:\"sc-1yzpguy-0\"})([\"display:flex;align-items:center;justify-content:flex-end;flex-direction:column;min-height:100vh;\"]),ae=function(e){var t=e.children,n=e.mounted,i=e.showDarkModeToggle,u=void 0===i||i,c=s(!0,!!n),f=c[0],d=c[1],p=function(e){return{isDarkMode:e,fonts:te,scheme:e?T.DARK:T.LIGHT,dimensions:{maxWidth:\"80rem\",mainWidth:\"60rem\",contentWidth:\"45rem\"},site:e?Z:ee,siteInverted:e?ee:Z,code:e?Q:J,mediaQueries:{mobile:\"(max-width: 900px)\",desktop:\"(min-width: 900px)\"}}},h=Object(r.useState)(p(f)),m=h[0],g=h[1];return o.a.createElement(a.a,{theme:m},o.a.createElement(oe,null,o.a.createElement(l.a,{url:f?\"/favicon-light.ico\":\"/favicon-dark.ico\"}),o.a.createElement(U,{theme:m,darkMode:{showToggle:u,isDarkMode:f,toggleHandler:function(){var e=!(m.scheme===T.DARK);g(p(e)),d(e)}}}),o.a.createElement(re,null),t,o.a.createElement(X,null)))}},function(e,t){e.exports=function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}},function(e,t,n){\"use strict\";var r=n(111)(!0);n(94)(String,\"String\",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){\"use strict\";var r,o,a=n(66),i=RegExp.prototype.exec,l=String.prototype.replace,u=i,s=(r=/a/,o=/b*/g,i.call(r,\"a\"),i.call(o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),c=void 0!==/()??/.exec(\"\")[1];(s||c)&&(u=function(e){var t,n,r,o,u=this;return c&&(n=new RegExp(\"^\"+u.source+\"$(?!\\\\s)\",a.call(u))),s&&(t=u.lastIndex),r=i.call(u,e),s&&r&&(u.lastIndex=u.global?r.index+r[0].length:t),c&&r&&r.length>1&&l.call(r[0],n,function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)}),r}),e.exports=u},function(e,t,n){var r=n(15),o=n(8).document,a=r(o)&&r(o.createElement);e.exports=function(e){return a?o.createElement(e):{}}},function(e,t,n){\"use strict\";var r=n(111)(!0);e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},function(e,t,n){var r=n(36);e.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(e){return\"String\"==r(e)?e.split(\"\"):Object(e)}},function(e,t,n){var r=n(64)(\"keys\"),o=n(50);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t){e.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(e,t,n){var r=n(14),o=n(47),a=n(9)(\"species\");e.exports=function(e,t){var n,i=r(e).constructor;return void 0===i||null==(n=r(i)[a])?t:o(n)}},function(e,t,n){\"use strict\";var r=n(8),o=n(19),a=n(17),i=n(9)(\"species\");e.exports=function(e){var t=r[e];a&&t&&!t[i]&&o.f(t,i,{configurable:!0,get:function(){return this}})}},function(e,t,n){\"use strict\";var r=n(49),o=n(11),a=n(23),i=n(32),l=n(54),u=n(182),s=n(55),c=n(183),f=n(9)(\"iterator\"),d=!([].keys&&\"next\"in[].keys()),p=function(){return this};e.exports=function(e,t,n,h,m,g,v){u(n,t,h);var y,b,w,k=function(e){if(!d&&e in _)return _[e];switch(e){case\"keys\":case\"values\":return function(){return new n(this,e)}}return function(){return new n(this,e)}},x=t+\" Iterator\",E=\"values\"==m,S=!1,_=e.prototype,T=_[f]||_[\"@@iterator\"]||m&&_[m],C=T||k(m),O=m?E?k(\"entries\"):C:void 0,P=\"Array\"==t&&_.entries||T;if(P&&(w=c(P.call(new e)))!==Object.prototype&&w.next&&(s(w,x,!0),r||\"function\"==typeof w[f]||i(w,f,p)),E&&T&&\"values\"!==T.name&&(S=!0,C=function(){return T.call(this)}),r&&!v||!d&&!S&&_[f]||i(_,f,C),l[t]=C,l[x]=p,m)if(y={values:E?C:k(\"values\"),keys:g?C:k(\"keys\"),entries:O},v)for(b in y)b in _||a(_,b,y[b]);else o(o.P+o.F*(d||S),t,y);return y}},function(e,t,n){var r=n(15),o=n(36),a=n(9)(\"match\");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[a])?!!t:\"RegExp\"==o(e))}},function(e,t,n){var r=n(15),o=n(189).set;e.exports=function(e,t,n){var a,i=t.constructor;return i!==n&&\"function\"==typeof i&&(a=i.prototype)!==n.prototype&&r(a)&&o&&o(e,a),e}},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){\"use strict\";var r=n(135),o=n(40);e.exports=n(78)(\"Map\",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(o(this,\"Map\"),e);return t&&t.v},set:function(e,t){return r.def(o(this,\"Map\"),0===e?0:e,t)}},r,!0)},function(e,t,n){\"use strict\";t.__esModule=!0,t.default=void 0;var r=!(\"undefined\"==typeof window||!window.document||!window.document.createElement);t.default=r,e.exports=t.default},function(e,t,n){\"use strict\";!function e(){if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(218)},function(e,t,n){n(22),n(13),e.exports=function e(t){\"use strict\";var n=/^\\0+/g,r=/[\\0\\r\\f]/g,o=/: */g,a=/zoo|gra/,i=/([,: ])(transform)/g,l=/,+\\s*(?![^(]*[)])/g,u=/ +\\s*(?![^(]*[)])/g,s=/ *[\\0] */g,c=/,\\r+?/g,f=/([\\t\\r\\n ])*\\f?&/g,d=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,p=/\\W+/g,h=/@(k\\w+)\\s*(\\S*)\\s*/,m=/::(place)/g,g=/:(read-only)/g,v=/\\s+(?=[{\\];=:>])/g,y=/([[}=:>])\\s+/g,b=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,k=/([^\\(])(:+) */g,x=/[svh]\\w+-[tblr]{2}/,E=/\\(\\s*(.*)\\s*\\)/g,S=/([\\s\\S]*?);/g,_=/-self|flex-/g,T=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,C=/stretch|:\\s*\\w+\\-(?:conte|avail)/,O=/([^-])(image-set\\()/,P=\"-webkit-\",A=\"-moz-\",I=\"-ms-\",R=59,j=125,N=123,F=40,M=41,L=91,D=93,U=10,z=13,B=9,$=64,W=32,H=38,q=45,V=95,G=42,K=44,Y=58,X=39,Q=34,Z=47,J=62,ee=43,te=126,ne=0,re=12,oe=11,ae=107,ie=109,le=115,ue=112,se=111,ce=105,fe=99,de=100,pe=112,he=1,me=1,ge=0,ve=1,ye=1,be=1,we=0,ke=0,xe=0,Ee=[],Se=[],_e=0,Te=null,Ce=-2,Oe=-1,Pe=0,Ae=1,Ie=2,Re=3,je=0,Ne=1,Fe=\"\",Me=\"\",Le=\"\";function De(e,t,o,a,i){for(var l,u,c=0,f=0,d=0,p=0,v=0,y=0,b=0,w=0,x=0,S=0,_=0,T=0,C=0,O=0,V=0,we=0,Se=0,Te=0,Ce=0,Oe=o.length,ze=Oe-1,Ve=\"\",Ge=\"\",Ke=\"\",Ye=\"\",Xe=\"\",Qe=\"\";V<Oe;){if(b=o.charCodeAt(V),V===ze&&f+p+d+c!==0&&(0!==f&&(b=f===Z?U:Z),p=d=c=0,Oe++,ze++),f+p+d+c===0){if(V===ze&&(we>0&&(Ge=Ge.replace(r,\"\")),Ge.trim().length>0)){switch(b){case W:case B:case R:case z:case U:break;default:Ge+=o.charAt(V)}b=R}if(1===Se)switch(b){case N:case j:case R:case Q:case X:case F:case M:case K:Se=0;case B:case z:case U:case W:break;default:for(Se=0,Ce=V,v=b,V--,b=R;Ce<Oe;)switch(o.charCodeAt(Ce++)){case U:case z:case R:++V,b=v,Ce=Oe;break;case Y:we>0&&(++V,b=v);case N:Ce=Oe}}switch(b){case N:for(v=(Ge=Ge.trim()).charCodeAt(0),_=1,Ce=++V;V<Oe;){switch(b=o.charCodeAt(V)){case N:_++;break;case j:_--;break;case Z:switch(y=o.charCodeAt(V+1)){case G:case Z:V=qe(y,V,ze,o)}break;case L:b++;case F:b++;case Q:case X:for(;V++<ze&&o.charCodeAt(V)!==b;);}if(0===_)break;V++}switch(Ke=o.substring(Ce,V),v===ne&&(v=(Ge=Ge.replace(n,\"\").trim()).charCodeAt(0)),v){case $:switch(we>0&&(Ge=Ge.replace(r,\"\")),y=Ge.charCodeAt(1)){case de:case ie:case le:case q:l=t;break;default:l=Ee}if(Ce=(Ke=De(t,l,Ke,y,i+1)).length,xe>0&&0===Ce&&(Ce=Ge.length),_e>0&&(l=Ue(Ee,Ge,Te),u=He(Re,Ke,l,t,me,he,Ce,y,i,a),Ge=l.join(\"\"),void 0!==u&&0===(Ce=(Ke=u.trim()).length)&&(y=0,Ke=\"\")),Ce>0)switch(y){case le:Ge=Ge.replace(E,We);case de:case ie:case q:Ke=Ge+\"{\"+Ke+\"}\";break;case ae:Ke=(Ge=Ge.replace(h,\"$1 $2\"+(Ne>0?Fe:\"\")))+\"{\"+Ke+\"}\",Ke=1===ye||2===ye&&$e(\"@\"+Ke,3)?\"@\"+P+Ke+\"@\"+Ke:\"@\"+Ke;break;default:Ke=Ge+Ke,a===pe&&(Ye+=Ke,Ke=\"\")}else Ke=\"\";break;default:Ke=De(t,Ue(t,Ge,Te),Ke,a,i+1)}Xe+=Ke,T=0,Se=0,O=0,we=0,Te=0,C=0,Ge=\"\",Ke=\"\",b=o.charCodeAt(++V);break;case j:case R:if((Ce=(Ge=(we>0?Ge.replace(r,\"\"):Ge).trim()).length)>1)switch(0===O&&((v=Ge.charCodeAt(0))===q||v>96&&v<123)&&(Ce=(Ge=Ge.replace(\" \",\":\")).length),_e>0&&void 0!==(u=He(Ae,Ge,t,e,me,he,Ye.length,a,i,a))&&0===(Ce=(Ge=u.trim()).length)&&(Ge=\"\\0\\0\"),v=Ge.charCodeAt(0),y=Ge.charCodeAt(1),v){case ne:break;case $:if(y===ce||y===fe){Qe+=Ge+o.charAt(V);break}default:if(Ge.charCodeAt(Ce-1)===Y)break;Ye+=Be(Ge,v,y,Ge.charCodeAt(2))}T=0,Se=0,O=0,we=0,Te=0,Ge=\"\",b=o.charCodeAt(++V)}}switch(b){case z:case U:if(f+p+d+c+ke===0)switch(S){case M:case X:case Q:case $:case te:case J:case G:case ee:case Z:case q:case Y:case K:case R:case N:case j:break;default:O>0&&(Se=1)}f===Z?f=0:ve+T===0&&a!==ae&&Ge.length>0&&(we=1,Ge+=\"\\0\"),_e*je>0&&He(Pe,Ge,t,e,me,he,Ye.length,a,i,a),he=1,me++;break;case R:case j:if(f+p+d+c===0){he++;break}default:switch(he++,Ve=o.charAt(V),b){case B:case W:if(p+c+f===0)switch(w){case K:case Y:case B:case W:Ve=\"\";break;default:b!==W&&(Ve=\" \")}break;case ne:Ve=\"\\\\0\";break;case re:Ve=\"\\\\f\";break;case oe:Ve=\"\\\\v\";break;case H:p+f+c===0&&ve>0&&(Te=1,we=1,Ve=\"\\f\"+Ve);break;case 108:if(p+f+c+ge===0&&O>0)switch(V-O){case 2:w===ue&&o.charCodeAt(V-3)===Y&&(ge=w);case 8:x===se&&(ge=x)}break;case Y:p+f+c===0&&(O=V);break;case K:f+d+p+c===0&&(we=1,Ve+=\"\\r\");break;case Q:case X:0===f&&(p=p===b?0:0===p?b:p);break;case L:p+f+d===0&&c++;break;case D:p+f+d===0&&c--;break;case M:p+f+c===0&&d--;break;case F:if(p+f+c===0){if(0===T)switch(2*w+3*x){case 533:break;default:_=0,T=1}d++}break;case $:f+d+p+c+O+C===0&&(C=1);break;case G:case Z:if(p+c+d>0)break;switch(f){case 0:switch(2*b+3*o.charCodeAt(V+1)){case 235:f=Z;break;case 220:Ce=V,f=G}break;case G:b===Z&&w===G&&Ce+2!==V&&(33===o.charCodeAt(Ce+2)&&(Ye+=o.substring(Ce,V+1)),Ve=\"\",f=0)}}if(0===f){if(ve+p+c+C===0&&a!==ae&&b!==R)switch(b){case K:case te:case J:case ee:case M:case F:if(0===T){switch(w){case B:case W:case U:case z:Ve+=\"\\0\";break;default:Ve=\"\\0\"+Ve+(b===K?\"\":\"\\0\")}we=1}else switch(b){case F:O+7===V&&108===w&&(O=0),T=++_;break;case M:0==(T=--_)&&(we=1,Ve+=\"\\0\")}break;case B:case W:switch(w){case ne:case N:case j:case R:case K:case re:case B:case W:case U:case z:break;default:0===T&&(we=1,Ve+=\"\\0\")}}Ge+=Ve,b!==W&&b!==B&&(S=b)}}x=w,w=b,V++}if(Ce=Ye.length,xe>0&&0===Ce&&0===Xe.length&&0===t[0].length==0&&(a!==ie||1===t.length&&(ve>0?Me:Le)===t[0])&&(Ce=t.join(\",\").length+2),Ce>0){if(l=0===ve&&a!==ae?function(e){for(var t,n,o=0,a=e.length,i=Array(a);o<a;++o){for(var l=e[o].split(s),u=\"\",c=0,f=0,d=0,p=0,h=l.length;c<h;++c)if(!(0===(f=(n=l[c]).length)&&h>1)){if(d=u.charCodeAt(u.length-1),p=n.charCodeAt(0),t=\"\",0!==c)switch(d){case G:case te:case J:case ee:case W:case F:break;default:t=\" \"}switch(p){case H:n=t+Me;case te:case J:case ee:case W:case M:case F:break;case L:n=t+n+Me;break;case Y:switch(2*n.charCodeAt(1)+3*n.charCodeAt(2)){case 530:if(be>0){n=t+n.substring(8,f-1);break}default:(c<1||l[c-1].length<1)&&(n=t+Me+n)}break;case K:t=\"\";default:n=f>1&&n.indexOf(\":\")>0?t+n.replace(k,\"$1\"+Me+\"$2\"):t+n+Me}u+=n}i[o]=u.replace(r,\"\").trim()}return i}(t):t,_e>0&&void 0!==(u=He(Ie,Ye,l,e,me,he,Ce,a,i,a))&&0===(Ye=u).length)return Qe+Ye+Xe;if(Ye=l.join(\",\")+\"{\"+Ye+\"}\",ye*ge!=0){switch(2!==ye||$e(Ye,2)||(ge=0),ge){case se:Ye=Ye.replace(g,\":\"+A+\"$1\")+Ye;break;case ue:Ye=Ye.replace(m,\"::\"+P+\"input-$1\")+Ye.replace(m,\"::\"+A+\"$1\")+Ye.replace(m,\":\"+I+\"input-$1\")+Ye}ge=0}}return Qe+Ye+Xe}function Ue(e,t,n){var r=t.trim().split(c),o=r,a=r.length,i=e.length;switch(i){case 0:case 1:for(var l=0,u=0===i?\"\":e[0]+\" \";l<a;++l)o[l]=ze(u,o[l],n,i).trim();break;default:l=0;var s=0;for(o=[];l<a;++l)for(var f=0;f<i;++f)o[s++]=ze(e[f]+\" \",r[l],n,i).trim()}return o}function ze(e,t,n,r){var o=t,a=o.charCodeAt(0);switch(a<33&&(a=(o=o.trim()).charCodeAt(0)),a){case H:switch(ve+r){case 0:case 1:if(0===e.trim().length)break;default:return o.replace(f,\"$1\"+e.trim())}break;case Y:switch(o.charCodeAt(1)){case 103:if(be>0&&ve>0)return o.replace(d,\"$1\").replace(f,\"$1\"+Le);break;default:return e.trim()+o.replace(f,\"$1\"+e.trim())}default:if(n*ve>0&&o.indexOf(\"\\f\")>0)return o.replace(f,(e.charCodeAt(0)===Y?\"\":\"$1\")+e.trim())}return e+o}function Be(e,t,n,r){var s,c=0,f=e+\";\",d=2*t+3*n+4*r;if(944===d)return function(e){var t=e.length,n=e.indexOf(\":\",9)+1,r=e.substring(0,n).trim(),o=e.substring(n,t-1).trim();switch(e.charCodeAt(9)*Ne){case 0:break;case q:if(110!==e.charCodeAt(10))break;default:for(var a=o.split((o=\"\",l)),i=0,n=0,t=a.length;i<t;n=0,++i){for(var s=a[i],c=s.split(u);s=c[n];){var f=s.charCodeAt(0);if(1===Ne&&(f>$&&f<90||f>96&&f<123||f===V||f===q&&s.charCodeAt(1)!==q))switch(isNaN(parseFloat(s))+(-1!==s.indexOf(\"(\"))){case 1:switch(s){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:s+=Fe}}c[n++]=s}o+=(0===i?\"\":\",\")+c.join(\" \")}}return o=r+o+\";\",1===ye||2===ye&&$e(o,1)?P+o+o:o}(f);if(0===ye||2===ye&&!$e(f,1))return f;switch(d){case 1015:return 97===f.charCodeAt(10)?P+f+f:f;case 951:return 116===f.charCodeAt(3)?P+f+f:f;case 963:return 110===f.charCodeAt(5)?P+f+f:f;case 1009:if(100!==f.charCodeAt(4))break;case 969:case 942:return P+f+f;case 978:return P+f+A+f+f;case 1019:case 983:return P+f+A+f+I+f+f;case 883:return f.charCodeAt(8)===q?P+f+f:f.indexOf(\"image-set(\",11)>0?f.replace(O,\"$1\"+P+\"$2\")+f:f;case 932:if(f.charCodeAt(4)===q)switch(f.charCodeAt(5)){case 103:return P+\"box-\"+f.replace(\"-grow\",\"\")+P+f+I+f.replace(\"grow\",\"positive\")+f;case 115:return P+f+I+f.replace(\"shrink\",\"negative\")+f;case 98:return P+f+I+f.replace(\"basis\",\"preferred-size\")+f}return P+f+I+f+f;case 964:return P+f+I+\"flex-\"+f+f;case 1023:if(99!==f.charCodeAt(8))break;return s=f.substring(f.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),P+\"box-pack\"+s+P+f+I+\"flex-pack\"+s+f;case 1005:return a.test(f)?f.replace(o,\":\"+P)+f.replace(o,\":\"+A)+f:f;case 1e3:switch(c=(s=f.substring(13).trim()).indexOf(\"-\")+1,s.charCodeAt(0)+s.charCodeAt(c)){case 226:s=f.replace(x,\"tb\");break;case 232:s=f.replace(x,\"tb-rl\");break;case 220:s=f.replace(x,\"lr\");break;default:return f}return P+f+I+s+f;case 1017:if(-1===f.indexOf(\"sticky\",9))return f;case 975:switch(c=(f=e).length-10,d=(s=(33===f.charCodeAt(c)?f.substring(0,c):f).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|s.charCodeAt(7))){case 203:if(s.charCodeAt(8)<111)break;case 115:f=f.replace(s,P+s)+\";\"+f;break;case 207:case 102:f=f.replace(s,P+(d>102?\"inline-\":\"\")+\"box\")+\";\"+f.replace(s,P+s)+\";\"+f.replace(s,I+s+\"box\")+\";\"+f}return f+\";\";case 938:if(f.charCodeAt(5)===q)switch(f.charCodeAt(6)){case 105:return s=f.replace(\"-items\",\"\"),P+f+P+\"box-\"+s+I+\"flex-\"+s+f;case 115:return P+f+I+\"flex-item-\"+f.replace(_,\"\")+f;default:return P+f+I+\"flex-line-pack\"+f.replace(\"align-content\",\"\").replace(_,\"\")+f}break;case 973:case 989:if(f.charCodeAt(3)!==q||122===f.charCodeAt(4))break;case 931:case 953:if(!0===C.test(e))return 115===(s=e.substring(e.indexOf(\":\")+1)).charCodeAt(0)?Be(e.replace(\"stretch\",\"fill-available\"),t,n,r).replace(\":fill-available\",\":stretch\"):f.replace(s,P+s)+f.replace(s,A+s.replace(\"fill-\",\"\"))+f;break;case 962:if(f=P+f+(102===f.charCodeAt(5)?I+f:\"\")+f,n+r===211&&105===f.charCodeAt(13)&&f.indexOf(\"transform\",10)>0)return f.substring(0,f.indexOf(\";\",27)+1).replace(i,\"$1\"+P+\"$2\")+f}return f}function $e(e,t){var n=e.indexOf(1===t?\":\":\"{\"),r=e.substring(0,3!==t?n:10),o=e.substring(n+1,e.length-1);return Te(2!==t?r:r.replace(T,\"$1\"),o,t)}function We(e,t){var n=Be(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return n!==t+\";\"?n.replace(S,\" or ($1)\").substring(4):\"(\"+t+\")\"}function He(e,t,n,r,o,a,i,l,u,s){for(var c,f=0,d=t;f<_e;++f)switch(c=Se[f].call(Ge,e,d,n,r,o,a,i,l,u,s)){case void 0:case!1:case!0:case null:break;default:d=c}if(d!==t)return d}function qe(e,t,n,r){for(var o=t+1;o<n;++o)switch(r.charCodeAt(o)){case Z:if(e===G&&r.charCodeAt(o-1)===G&&t+2!==o)return o+1;break;case U:if(e===Z)return o+1}return o}function Ve(e){for(var t in e){var n=e[t];switch(t){case\"keyframe\":Ne=0|n;break;case\"global\":be=0|n;break;case\"cascade\":ve=0|n;break;case\"compress\":we=0|n;break;case\"semicolon\":ke=0|n;break;case\"preserve\":xe=0|n;break;case\"prefix\":Te=null,n?\"function\"!=typeof n?ye=1:(ye=2,Te=n):ye=0}}return Ve}function Ge(t,n){if(void 0!==this&&this.constructor===Ge)return e(t);var o=t,a=o.charCodeAt(0);a<33&&(a=(o=o.trim()).charCodeAt(0)),Ne>0&&(Fe=o.replace(p,a===L?\"\":\"-\")),a=1,1===ve?Le=o:Me=o;var i,l=[Le];_e>0&&void 0!==(i=He(Oe,n,l,l,me,he,0,0,0,0))&&\"string\"==typeof i&&(n=i);var u=De(Ee,l,n,0,0);return _e>0&&void 0!==(i=He(Ce,u,l,l,me,he,u.length,0,0,0))&&\"string\"!=typeof(u=i)&&(a=0),Fe=\"\",Le=\"\",Me=\"\",ge=0,me=1,he=1,we*a==0?u:u.replace(r,\"\").replace(v,\"\").replace(y,\"$1\").replace(b,\"$1\").replace(w,\" \")}return Ge.use=function e(t){switch(t){case void 0:case null:_e=Se.length=0;break;default:if(\"function\"==typeof t)Se[_e++]=t;else if(\"object\"==typeof t)for(var n=0,r=t.length;n<r;++n)e(t[n]);else je=0|!!t}return e},Ge.set=Ve,void 0!==t&&Ve(t),Ge}(null)},function(e,t,n){\"use strict\";e.exports=n(190)},function(e,t,n){\"use strict\";function r(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}t.a=function(e,t){var n;void 0===t&&(t=r);var o,a=[],i=!1;return function(){for(var r=arguments.length,l=new Array(r),u=0;u<r;u++)l[u]=arguments[u];return i&&n===this&&t(l,a)?o:(o=e.apply(this,l),i=!0,n=this,a=l,o)}}},function(e,t,n){var r=n(0);function o(e){return r.createElement(\"svg\",e,r.createElement(\"g\",{\"data-name\":\"BoltWrapper\"},r.createElement(\"path\",{d:\"M32.83 5.08L80.74 0 59.88 40.58l18.46-2.16L11.15 140l15.01-62.88H10L32.83 5.08z\",\"data-name\":\"Bolt\"})))}o.defaultProps={viewBox:\"0 0 80.74 140\"},e.exports=o,o.default=o},function(e,t,n){t.components={\"component---src-templates-post-tsx\":function(){return Promise.all([n.e(0),n.e(1),n.e(6)]).then(n.bind(null,240))},\"component---src-templates-tags-tsx\":function(){return Promise.all([n.e(0),n.e(7)]).then(n.bind(null,237))},\"component---src-templates-author-tsx\":function(){return Promise.all([n.e(0),n.e(5)]).then(n.bind(null,238))},\"component---src-pages-404-tsx\":function(){return Promise.all([n.e(0),n.e(3)]).then(n.bind(null,239))},\"component---src-pages-index-tsx\":function(){return Promise.all([n.e(0),n.e(1),n.e(4)]).then(n.bind(null,241))}}},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"System\",function(){return r}),n.d(t,\"HeaderSans\",function(){return o}),n.d(t,\"HeaderSerif\",function(){return a}),n.d(t,\"Title\",function(){return i}),n.d(t,\"Body\",function(){return l}),n.d(t,\"Monospace\",function(){return u});var r='-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif',o='\"Montserrat\",'+r,a='\"Gentium Book Basic\",'+r,i='\"Fugaz One\",'+r,l='\"Montserrat\",'+r,u=\"'SF Mono', Menlo, Monaco, 'Courier New', monospace\"},function(e,t,n){\"use strict\";n(5),n(4),n(3),n(6),n(22),n(12),n(18);var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String(\"abc\");if(e[5]=\"de\",\"5\"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t[\"_\"+String.fromCharCode(n)]=n;if(\"0123456789\"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(\"\"))return!1;var r={};return\"abcdefghijklmnopqrst\".split(\"\").forEach(function(e){r[e]=e}),\"abcdefghijklmnopqrst\"===Object.keys(Object.assign({},r)).join(\"\")}catch(o){return!1}}()?Object.assign:function(e,t){for(var n,i,l=function(e){if(null==e)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(e)}(e),u=1;u<arguments.length;u++){for(var s in n=Object(arguments[u]))o.call(n,s)&&(l[s]=n[s]);if(r){i=r(n);for(var c=0;c<i.length;c++)a.call(n,i[c])&&(l[i[c]]=n[i[c]])}}return l}},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"ShortTitle\",function(){return o}),n.d(t,\"Title\",function(){return a});var r=n(2),o=r.c.h1.withConfig({displayName:\"typography__ShortTitle\",componentId:\"sc-1w0zu20-0\"})([\"color:\",\";font-size:4.69rem;font-family:\",\";margin:0.4rem 0;line-height:6.88rem;letter-spacing:0.1rem;text-transform:uppercase;max-width:\",\";@media \",\"{font-size:1.75rem;letter-spacing:0.029375rem;line-height:2.75rem;max-width:96vw;}\"],function(e){return e.theme.site.color.Title.Foreground},function(e){return e.theme.fonts.Title},function(e){return e.theme.dimensions.maxWidth},function(e){return e.theme.mediaQueries.mobile}),a=r.c.div.withConfig({displayName:\"typography__Title\",componentId:\"sc-1w0zu20-1\"})([\"color:\",\";font-family:\",\";letter-spacing:0.07em;font-size:2.19rem;margin-top:0.1rem;font-weight:700;@media \",\"{font-size:0.9375rem;line-height:1.5rem;font-weight:normal;}\"],function(e){return e.theme.site.color.Title.Foreground},function(e){return e.theme.fonts.HeaderSans},function(e){return e.theme.mediaQueries.mobile})},function(e,t,n){\"use strict\";var r=n(14),o=n(163),a=n(62);n(65)(\"search\",1,function(e,t,n,i){return[function(n){var r=e(this),o=null==n?void 0:n[t];return void 0!==o?o.call(n,r):new RegExp(n)[t](String(r))},function(e){var t=i(n,e,this);if(t.done)return t.value;var l=r(e),u=String(this),s=l.lastIndex;o(s,0)||(l.lastIndex=0);var c=a(l,u);return o(l.lastIndex,s)||(l.lastIndex=s),null===c?-1:c.index}]})},function(e,t,n){e.exports=!n(17)&&!n(16)(function(){return 7!=Object.defineProperty(n(87)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(e,t,n){var r=n(68),o=n(38);e.exports=function(e){return function(t,n){var a,i,l=String(o(t)),u=r(n),s=l.length;return u<0||u>=s?e?\"\":void 0:(a=l.charCodeAt(u))<55296||a>56319||u+1===s||(i=l.charCodeAt(u+1))<56320||i>57343?e?l.charAt(u):a:e?l.slice(u,u+2):i-56320+(a-55296<<10)+65536}}},function(e,t,n){\"use strict\";var r=n(17),o=n(39),a=n(69),i=n(52),l=n(35),u=n(89),s=Object.assign;e.exports=!s||n(16)(function(){var e={},t={},n=Symbol(),r=\"abcdefghijklmnopqrst\";return e[n]=7,r.split(\"\").forEach(function(e){t[e]=e}),7!=s({},e)[n]||Object.keys(s({},t)).join(\"\")!=r})?function(e,t){for(var n=l(e),s=arguments.length,c=1,f=a.f,d=i.f;s>c;)for(var p,h=u(arguments[c++]),m=f?o(h).concat(f(h)):o(h),g=m.length,v=0;g>v;)p=m[v++],r&&!d.call(h,p)||(n[p]=h[p]);return n}:s},function(e,t,n){var r=n(28),o=n(34),a=n(114)(!1),i=n(90)(\"IE_PROTO\");e.exports=function(e,t){var n,l=o(e),u=0,s=[];for(n in l)n!=i&&r(l,n)&&s.push(n);for(;t.length>u;)r(l,n=t[u++])&&(~a(s,n)||s.push(n));return s}},function(e,t,n){var r=n(34),o=n(33),a=n(115);e.exports=function(e){return function(t,n,i){var l,u=r(t),s=o(u.length),c=a(i,s);if(e&&n!=n){for(;s>c;)if((l=u[c++])!=l)return!0}else for(;s>c;c++)if((e||c in u)&&u[c]===n)return e||c||0;return!e&&-1}}},function(e,t,n){var r=n(68),o=Math.max,a=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):a(e,t)}},function(e,t,n){var r,o,a,i=n(37),l=n(162),u=n(117),s=n(87),c=n(8),f=c.process,d=c.setImmediate,p=c.clearImmediate,h=c.MessageChannel,m=c.Dispatch,g=0,v={},y=function(){var e=+this;if(v.hasOwnProperty(e)){var t=v[e];delete v[e],t()}},b=function(e){y.call(e.data)};d&&p||(d=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return v[++g]=function(){l(\"function\"==typeof e?e:Function(e),t)},r(g),g},p=function(e){delete v[e]},\"process\"==n(36)(f)?r=function(e){f.nextTick(i(y,e,1))}:m&&m.now?r=function(e){m.now(i(y,e,1))}:h?(a=(o=new h).port2,o.port1.onmessage=b,r=i(a.postMessage,a,1)):c.addEventListener&&\"function\"==typeof postMessage&&!c.importScripts?(r=function(e){c.postMessage(e+\"\",\"*\")},c.addEventListener(\"message\",b,!1)):r=\"onreadystatechange\"in s(\"script\")?function(e){u.appendChild(s(\"script\")).onreadystatechange=function(){u.removeChild(this),y.call(e)}}:function(e){setTimeout(i(y,e,1),0)}),e.exports={set:d,clear:p}},function(e,t,n){var r=n(8).document;e.exports=r&&r.documentElement},function(e,t,n){\"use strict\";var r=n(47);function o(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError(\"Bad Promise constructor\");t=e,n=r}),this.resolve=r(t),this.reject=r(n)}e.exports.f=function(e){return new o(e)}},function(e,t,n){var r=n(14),o=n(15),a=n(118);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=a.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){var r=n(9)(\"iterator\"),o=!1;try{var a=[7][r]();a.return=function(){o=!0},Array.from(a,function(){throw 2})}catch(i){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var a=[7],l=a[r]();l.next=function(){return{done:n=!0}},a[r]=function(){return l},e(a)}catch(i){}return n}},function(e,t,n){var r=n(11),o=n(174)(!0);r(r.S,\"Object\",{entries:function(e){return o(e)}})},function(e,t,n){var r=n(36);e.exports=Array.isArray||function(e){return\"Array\"==r(e)}},function(e,t,n){t.f=n(9)},function(e,t,n){var r=n(8),o=n(31),a=n(49),i=n(123),l=n(19).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=a?{}:r.Symbol||{});\"_\"==e.charAt(0)||e in t||l(t,e,{value:i.f(e)})}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var r=n(11),o=n(31),a=n(16);e.exports=function(e,t){var n=(o.Object||{})[e]||Object[e],i={};i[e]=t(n),r(r.S+r.F*a(function(){n(1)}),\"Object\",i)}},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"useMDXScope\",function(){return i}),n.d(t,\"MDXScopeProvider\",function(){return l});var r=n(0),o=n.n(r),a=Object(r.createContext)({}),i=function(e){var t=Object(r.useContext)(a);return e||t},l=function(e){var t=e.__mdxScope,n=e.children;return o.a.createElement(a.Provider,{value:t},n)}},function(e,t,n){var r=n(15),o=n(44).onFreeze;n(126)(\"freeze\",function(e){return function(t){return e&&r(t)?e(o(t)):t}})},function(e,t,n){var r=n(95),o=n(38);e.exports=function(e,t,n){if(r(t))throw TypeError(\"String#\"+n+\" doesn't accept regex!\");return String(o(e))}},function(e,t,n){var r=n(9)(\"match\");e.exports=function(e){var t=/./;try{\"/./\"[e](t)}catch(n){try{return t[r]=!1,!\"/./\"[e](t)}catch(o){}}return!0}},function(e,t,n){\"use strict\";var r=n(11),o=n(47),a=n(35),i=n(16),l=[].sort,u=[1,2,3];r(r.P+r.F*(i(function(){u.sort(void 0)})||!i(function(){u.sort(null)})||!n(197)(l)),\"Array\",{sort:function(e){return void 0===e?l.call(a(this)):l.call(a(this),o(e))}})},function(e,t,n){var r;e.exports=(r=n(199))&&r.default||r},function(e,t,n){\"use strict\";var r=n(11),o=n(31),a=n(8),i=n(92),l=n(119);r(r.P+r.R,\"Promise\",{finally:function(e){var t=i(this,o.Promise||a.Promise),n=\"function\"==typeof e;return this.then(n?function(n){return l(t,e()).then(function(){return n})}:e,n?function(n){return l(t,e()).then(function(){throw n})}:e)}})},function(e,t,n){\"use strict\";var r=n(135),o=n(40);e.exports=n(78)(\"Set\",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(o(this,\"Set\"),e=0===e?0:e,e)}},r)},function(e,t,n){\"use strict\";var r=n(19).f,o=n(61),a=n(72),i=n(37),l=n(70),u=n(71),s=n(94),c=n(125),f=n(93),d=n(17),p=n(44).fastKey,h=n(40),m=d?\"_s\":\"size\",g=function(e,t){var n,r=p(t);if(\"F\"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,s){var c=e(function(e,r){l(e,c,t,\"_i\"),e._t=t,e._i=o(null),e._f=void 0,e._l=void 0,e[m]=0,null!=r&&u(r,n,e[s],e)});return a(c.prototype,{clear:function(){for(var e=h(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var n=h(this,t),r=g(n,e);if(r){var o=r.n,a=r.p;delete n._i[r.i],r.r=!0,a&&(a.n=o),o&&(o.p=a),n._f==r&&(n._f=o),n._l==r&&(n._l=a),n[m]--}return!!r},forEach:function(e){h(this,t);for(var n,r=i(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!g(h(this,t),e)}}),d&&r(c.prototype,\"size\",{get:function(){return h(this,t)[m]}}),c},def:function(e,t,n){var r,o,a=g(e,t);return a?a.v=n:(e._l=a={i:o=p(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=a),r&&(r.n=a),e[m]++,\"F\"!==o&&(e._i[o]=a)),e},getEntry:g,setStrong:function(e,t,n){s(e,t,function(e,n){this._t=h(e,t),this._k=n,this._l=void 0},function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?c(0,\"keys\"==e?t.k:\"values\"==e?t.v:[t.k,t.v]):(this._t=void 0,c(1))},n?\"entries\":\"values\",!n,!0),f(t)}}},function(e,t,n){n(22),n(59),n(29),n(3);var r=n(216),o={};for(var a in r)r.hasOwnProperty(a)&&(o[r[a]]=a);var i=e.exports={rgb:{channels:3,labels:\"rgb\"},hsl:{channels:3,labels:\"hsl\"},hsv:{channels:3,labels:\"hsv\"},hwb:{channels:3,labels:\"hwb\"},cmyk:{channels:4,labels:\"cmyk\"},xyz:{channels:3,labels:\"xyz\"},lab:{channels:3,labels:\"lab\"},lch:{channels:3,labels:\"lch\"},hex:{channels:1,labels:[\"hex\"]},keyword:{channels:1,labels:[\"keyword\"]},ansi16:{channels:1,labels:[\"ansi16\"]},ansi256:{channels:1,labels:[\"ansi256\"]},hcg:{channels:3,labels:[\"h\",\"c\",\"g\"]},apple:{channels:3,labels:[\"r16\",\"g16\",\"b16\"]},gray:{channels:1,labels:[\"gray\"]}};for(var l in i)if(i.hasOwnProperty(l)){if(!(\"channels\"in i[l]))throw new Error(\"missing channels property: \"+l);if(!(\"labels\"in i[l]))throw new Error(\"missing channel labels property: \"+l);if(i[l].labels.length!==i[l].channels)throw new Error(\"channel and label counts mismatch: \"+l);var u=i[l].channels,s=i[l].labels;delete i[l].channels,delete i[l].labels,Object.defineProperty(i[l],\"channels\",{value:u}),Object.defineProperty(i[l],\"labels\",{value:s})}i.rgb.hsl=function(e){var t,n,r=e[0]/255,o=e[1]/255,a=e[2]/255,i=Math.min(r,o,a),l=Math.max(r,o,a),u=l-i;return l===i?t=0:r===l?t=(o-a)/u:o===l?t=2+(a-r)/u:a===l&&(t=4+(r-o)/u),(t=Math.min(60*t,360))<0&&(t+=360),n=(i+l)/2,[t,100*(l===i?0:n<=.5?u/(l+i):u/(2-l-i)),100*n]},i.rgb.hsv=function(e){var t,n,r,o,a,i=e[0]/255,l=e[1]/255,u=e[2]/255,s=Math.max(i,l,u),c=s-Math.min(i,l,u),f=function(e){return(s-e)/6/c+.5};return 0===c?o=a=0:(a=c/s,t=f(i),n=f(l),r=f(u),i===s?o=r-n:l===s?o=1/3+t-r:u===s&&(o=2/3+n-t),o<0?o+=1:o>1&&(o-=1)),[360*o,100*a,100*s]},i.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2];return[i.rgb.hsl(e)[0],100*(1/255*Math.min(t,Math.min(n,r))),100*(r=1-1/255*Math.max(t,Math.max(n,r)))]},i.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,o=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-o)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-o-t)/(1-t)||0),100*t]},i.rgb.keyword=function(e){var t=o[e];if(t)return t;var n,a,i,l=1/0;for(var u in r)if(r.hasOwnProperty(u)){var s=r[u],c=(a=e,i=s,Math.pow(a[0]-i[0],2)+Math.pow(a[1]-i[1],2)+Math.pow(a[2]-i[2],2));c<l&&(l=c,n=u)}return n},i.keyword.rgb=function(e){return r[e]},i.rgb.xyz=function(e){var t=e[0]/255,n=e[1]/255,r=e[2]/255;return[100*(.4124*(t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},i.rgb.lab=function(e){var t=i.rgb.xyz(e),n=t[0],r=t[1],o=t[2];return r/=100,o/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(o=o>.008856?Math.pow(o,1/3):7.787*o+16/116))]},i.hsl.rgb=function(e){var t,n,r,o,a,i=e[0]/360,l=e[1]/100,u=e[2]/100;if(0===l)return[a=255*u,a,a];t=2*u-(n=u<.5?u*(1+l):u+l-u*l),o=[0,0,0];for(var s=0;s<3;s++)(r=i+1/3*-(s-1))<0&&r++,r>1&&r--,a=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,o[s]=255*a;return o},i.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,o=n,a=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,o*=a<=1?a:2-a,[t,100*(0===r?2*o/(a+o):2*n/(r+n)),100*((r+n)/2)]},i.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,o=Math.floor(t)%6,a=t-Math.floor(t),i=255*r*(1-n),l=255*r*(1-n*a),u=255*r*(1-n*(1-a));switch(r*=255,o){case 0:return[r,u,i];case 1:return[l,r,i];case 2:return[i,r,u];case 3:return[i,l,r];case 4:return[u,i,r];case 5:return[r,i,l]}},i.hsv.hsl=function(e){var t,n,r,o=e[0],a=e[1]/100,i=e[2]/100,l=Math.max(i,.01);return r=(2-a)*i,n=a*l,[o,100*(n=(n/=(t=(2-a)*l)<=1?t:2-t)||0),100*(r/=2)]},i.hwb.rgb=function(e){var t,n,r,o,a,i,l,u=e[0]/360,s=e[1]/100,c=e[2]/100,f=s+c;switch(f>1&&(s/=f,c/=f),r=6*u-(t=Math.floor(6*u)),0!=(1&t)&&(r=1-r),o=s+r*((n=1-c)-s),t){default:case 6:case 0:a=n,i=o,l=s;break;case 1:a=o,i=n,l=s;break;case 2:a=s,i=n,l=o;break;case 3:a=s,i=o,l=n;break;case 4:a=o,i=s,l=n;break;case 5:a=n,i=s,l=o}return[255*a,255*i,255*l]},i.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,o=e[3]/100;return[255*(1-Math.min(1,t*(1-o)+o)),255*(1-Math.min(1,n*(1-o)+o)),255*(1-Math.min(1,r*(1-o)+o))]},i.xyz.rgb=function(e){var t,n,r,o=e[0]/100,a=e[1]/100,i=e[2]/100;return n=-.9689*o+1.8758*a+.0415*i,r=.0557*o+-.204*a+1.057*i,t=(t=3.2406*o+-1.5372*a+-.4986*i)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},i.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},i.lab.xyz=function(e){var t,n,r,o=e[0];t=e[1]/500+(n=(o+16)/116),r=n-e[2]/200;var a=Math.pow(n,3),i=Math.pow(t,3),l=Math.pow(r,3);return n=a>.008856?a:(n-16/116)/7.787,t=i>.008856?i:(t-16/116)/7.787,r=l>.008856?l:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},i.lab.lch=function(e){var t,n=e[0],r=e[1],o=e[2];return(t=360*Math.atan2(o,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+o*o),t]},i.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},i.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],o=1 in arguments?arguments[1]:i.rgb.hsv(e)[2];if(0===(o=Math.round(o/50)))return 30;var a=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===o&&(a+=60),a},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},i.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},i.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return\"000000\".substring(t.length)+t},i.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split(\"\").map(function(e){return e+e}).join(\"\"));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},i.rgb.hcg=function(e){var t,n=e[0]/255,r=e[1]/255,o=e[2]/255,a=Math.max(Math.max(n,r),o),i=Math.min(Math.min(n,r),o),l=a-i;return t=l<=0?0:a===n?(r-o)/l%6:a===r?2+(o-n)/l:4+(n-r)/l+4,t/=6,[360*(t%=1),100*l,100*(l<1?i/(1-l):0)]},i.hsl.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1,o=0;return(r=n<.5?2*t*n:2*t*(1-n))<1&&(o=(n-.5*r)/(1-r)),[e[0],100*r,100*o]},i.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,o=0;return r<1&&(o=(n-r)/(1-r)),[e[0],100*r,100*o]},i.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var o,a=[0,0,0],i=t%1*6,l=i%1,u=1-l;switch(Math.floor(i)){case 0:a[0]=1,a[1]=l,a[2]=0;break;case 1:a[0]=u,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=l;break;case 3:a[0]=0,a[1]=u,a[2]=1;break;case 4:a[0]=l,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=u}return o=(1-n)*r,[255*(n*a[0]+o),255*(n*a[1]+o),255*(n*a[2]+o)]},i.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},i.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},i.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},i.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,o=0;return r<1&&(o=(n-r)/(1-r)),[e[0],100*r,100*o]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=i.gray.hsv=function(e){return[0,0,e[0]]},i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return\"000000\".substring(n.length)+n},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},function(e,t,n){\"use strict\";var r=n(72),o=n(44).getWeak,a=n(14),i=n(15),l=n(70),u=n(71),s=n(74),c=n(28),f=n(40),d=s(5),p=s(6),h=0,m=function(e){return e._l||(e._l=new g)},g=function(){this.a=[]},v=function(e,t){return d(e.a,function(e){return e[0]===t})};g.prototype={get:function(e){var t=v(this,e);if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var n=v(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=p(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,a){var s=e(function(e,r){l(e,s,t,\"_i\"),e._t=t,e._i=h++,e._l=void 0,null!=r&&u(r,n,e[a],e)});return r(s.prototype,{delete:function(e){if(!i(e))return!1;var n=o(e);return!0===n?m(f(this,t)).delete(e):n&&c(n,this._i)&&delete n[this._i]},has:function(e){if(!i(e))return!1;var n=o(e);return!0===n?m(f(this,t)).has(e):n&&c(n,this._i)}}),s},def:function(e,t,n){var r=o(a(t),!0);return!0===r?m(e).set(t,n):r[e._i]=n,e},ufstore:m}},function(e,t,n){\"use strict\";t.__esModule=!0,t.default=function(e){return e===e.window?e:9===e.nodeType&&(e.defaultView||e.parentWindow)},e.exports=t.default},function(e,t){e.exports={plugins:[]}},function(e,t,n){n(22),e.exports=function(){\"use strict\";return function(e){function t(t){if(t)try{e(t+\"}\")}catch(n){}}return function(n,r,o,a,i,l,u,s,c,f){switch(n){case 1:if(0===c&&64===r.charCodeAt(0))return e(r+\";\"),\"\";break;case 2:if(0===s)return r+\"/*|*/\";break;case 3:switch(s){case 102:case 112:return e(o[0]+r),\"\";default:return r+(0===f?\"/*|*/\":\"\")}case-2:r.split(\"/*|*/}\").forEach(t)}}}}()},function(e,t,n){\"use strict\";t.a={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1}},function(e,t){t.polyfill=function(e){return e}},function(e,t){e.exports={plain:{backgroundColor:\"#2a2734\",color:\"#9a86fd\"},styles:[{types:[\"comment\",\"prolog\",\"doctype\",\"cdata\",\"punctuation\"],style:{color:\"#6c6783\"}},{types:[\"namespace\"],style:{opacity:.7}},{types:[\"tag\",\"operator\",\"number\"],style:{color:\"#e09142\"}},{types:[\"property\",\"function\"],style:{color:\"#9a86fd\"}},{types:[\"tag-id\",\"selector\",\"atrule-id\"],style:{color:\"#eeebff\"}},{types:[\"attr-name\"],style:{color:\"#c4b9fe\"}},{types:[\"boolean\",\"string\",\"entity\",\"url\",\"attr-value\",\"keyword\",\"control\",\"directive\",\"unit\",\"statement\",\"regex\",\"at-rule\",\"placeholder\",\"variable\"],style:{color:\"#ffcc99\"}},{types:[\"deleted\"],style:{textDecorationLine:\"line-through\"}},{types:[\"inserted\"],style:{textDecorationLine:\"underline\"}},{types:[\"italic\"],style:{fontStyle:\"italic\"}},{types:[\"important\",\"bold\"],style:{fontWeight:\"bold\"}},{types:[\"important\"],style:{color:\"#c4b9fe\"}}]}},function(e,t,n){\"use strict\";n(204);var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function o(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}var a,i=n(0);var l=function(e){function t(){var e,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);for(var a=arguments.length,i=Array(a),l=0;l<a;l++)i[l]=arguments[l];return n=r=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),r.state={animationIndex:0,animationLoop:null,animationRunning:!1},o(r,n)}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.Component),r(t,[{key:\"componentWillMount\",value:function(){t.mountedInstances.push(this),t.update()}},{key:\"componentWillUnmount\",value:function(){var e=t.getActiveInstance();clearInterval(e.state.animationLoop)}},{key:\"componentDidUpdate\",value:function(e){e.url===this.props.url&&e.animated===this.props.animated&&e.alertCount===this.props.alertCount&&e.keepIconLink===this.props.keepIconLink||t.update()}},{key:\"render\",value:function(){return null}}],[{key:\"getActiveInstance\",value:function(){return t.mountedInstances[t.mountedInstances.length-1]}},{key:\"draw\",value:function(){if(\"undefined\"!=typeof document){var e,n,r,o,i,l=t.getActiveInstance();if(void 0===a){var u=document.getElementsByTagName(\"head\")[0];(a=document.createElement(\"link\")).type=\"image/x-icon\",a.rel=\"icon\";for(var s=u.getElementsByTagName(\"link\"),c=s.length;--c>=0;)/\\bicon\\b/i.test(s[c].getAttribute(\"rel\"))&&!l.props.keepIconLink(s[c])&&u.removeChild(s[c]);u.appendChild(a)}e=l.props.url instanceof Array?l.props.url[l.state.animationIndex]:l.props.url,l.props.alertCount?(n=e,r=l.props.alertCount,o=function(e,t){a.href=t},(i=document.createElement(\"img\")).onload=function(){var e=document.createElement(\"canvas\");e.width=i.width,e.height=i.height;var t=e.getContext(\"2d\");t.clearRect(0,0,i.width,i.height),t.drawImage(i,0,0);var n=i.height-9,a=i.width-7-1;t.fillStyle=\"#F03D25\",t.strokeStyle=\"#F03D25\",t.lineWidth=1,t.beginPath(),t.moveTo(a+2,n),t.quadraticCurveTo(a,n,a,n+2),t.lineTo(a,14),t.quadraticCurveTo(a,16,a+2,16),t.lineTo(14,16),t.quadraticCurveTo(16,16,16,14),t.lineTo(16,n+2),t.quadraticCurveTo(16,n,14,n),t.closePath(),t.fill(),t.font=\"bold 10px arial\",t.fillStyle=\"#FFF\",t.textAlign=\"right\",t.textBaseline=\"top\",t.fillText(r,15,6),o(null,t.canvas.toDataURL())},i.src=n):a.href=e}}},{key:\"update\",value:function(){if(\"undefined\"!=typeof document){var e=t.getActiveInstance(),n=e.props.url instanceof Array&&e.props.animated,r=null;if(clearInterval(e.state.animationLoop),n){var o=function(){var n=(e.state.animationIndex+1)%e.props.url.length;t.draw(),e.setState({animationIndex:n})};r=setInterval(o,e.props.animationDelay),o()}else t.draw();e.setState({animationLoop:r})}}}]),t}();l.displayName=\"Favicon\",l.defaultProps={alertCount:null,animated:!0,animationDelay:500,keepIconLink:function(){return!1}},l.mountedInstances=[],e.exports=l},function(e,t,n){e.exports=n(207)},function(e,t,n){\"use strict\";n(208),n(128),n(131),n(5),n(4),n(3),n(6);var r=n(211),o=n(215),a=[].slice,i=[\"keyword\",\"gray\",\"hex\"],l={};Object.keys(o).forEach(function(e){l[a.call(o[e].labels).sort().join(\"\")]=e});var u={};function s(e,t){if(!(this instanceof s))return new s(e,t);if(t&&t in i&&(t=null),t&&!(t in o))throw new Error(\"Unknown model: \"+t);var n,c;if(null==e)this.model=\"rgb\",this.color=[0,0,0],this.valpha=1;else if(e instanceof s)this.model=e.model,this.color=e.color.slice(),this.valpha=e.valpha;else if(\"string\"==typeof e){var f=r.get(e);if(null===f)throw new Error(\"Unable to parse color from string: \"+e);this.model=f.model,c=o[this.model].channels,this.color=f.value.slice(0,c),this.valpha=\"number\"==typeof f.value[c]?f.value[c]:1}else if(e.length){this.model=t||\"rgb\",c=o[this.model].channels;var p=a.call(e,0,c);this.color=d(p,c),this.valpha=\"number\"==typeof e[c]?e[c]:1}else if(\"number\"==typeof e)e&=16777215,this.model=\"rgb\",this.color=[e>>16&255,e>>8&255,255&e],this.valpha=1;else{this.valpha=1;var h=Object.keys(e);\"alpha\"in e&&(h.splice(h.indexOf(\"alpha\"),1),this.valpha=\"number\"==typeof e.alpha?e.alpha:0);var m=h.sort().join(\"\");if(!(m in l))throw new Error(\"Unable to parse color from object: \"+JSON.stringify(e));this.model=l[m];var g=o[this.model].labels,v=[];for(n=0;n<g.length;n++)v.push(e[g[n]]);this.color=d(v)}if(u[this.model])for(c=o[this.model].channels,n=0;n<c;n++){var y=u[this.model][n];y&&(this.color[n]=y(this.color[n]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}function c(e,t,n){return(e=Array.isArray(e)?e:[e]).forEach(function(e){(u[e]||(u[e]=[]))[t]=n}),e=e[0],function(r){var o;return arguments.length?(n&&(r=n(r)),(o=this[e]()).color[t]=r,o):(o=this[e]().color[t],n&&(o=n(o)),o)}}function f(e){return function(t){return Math.max(0,Math.min(e,t))}}function d(e,t){for(var n=0;n<t;n++)\"number\"!=typeof e[n]&&(e[n]=0);return e}s.prototype={toString:function(){return this.string()},toJSON:function(){return this[this.model]()},string:function(e){var t=this.model in r.to?this:this.rgb(),n=1===(t=t.round(\"number\"==typeof e?e:1)).valpha?t.color:t.color.concat(this.valpha);return r.to[t.model](n)},percentString:function(e){var t=this.rgb().round(\"number\"==typeof e?e:1),n=1===t.valpha?t.color:t.color.concat(this.valpha);return r.to.rgb.percent(n)},array:function(){return 1===this.valpha?this.color.slice():this.color.concat(this.valpha)},object:function(){for(var e={},t=o[this.model].channels,n=o[this.model].labels,r=0;r<t;r++)e[n[r]]=this.color[r];return 1!==this.valpha&&(e.alpha=this.valpha),e},unitArray:function(){var e=this.rgb().color;return e[0]/=255,e[1]/=255,e[2]/=255,1!==this.valpha&&e.push(this.valpha),e},unitObject:function(){var e=this.rgb().object();return e.r/=255,e.g/=255,e.b/=255,1!==this.valpha&&(e.alpha=this.valpha),e},round:function(e){return e=Math.max(e||0,0),new s(this.color.map(function(e){return function(t){return function(e,t){return Number(e.toFixed(t))}(t,e)}}(e)).concat(this.valpha),this.model)},alpha:function(e){return arguments.length?new s(this.color.concat(Math.max(0,Math.min(1,e))),this.model):this.valpha},red:c(\"rgb\",0,f(255)),green:c(\"rgb\",1,f(255)),blue:c(\"rgb\",2,f(255)),hue:c([\"hsl\",\"hsv\",\"hsl\",\"hwb\",\"hcg\"],0,function(e){return(e%360+360)%360}),saturationl:c(\"hsl\",1,f(100)),lightness:c(\"hsl\",2,f(100)),saturationv:c(\"hsv\",1,f(100)),value:c(\"hsv\",2,f(100)),chroma:c(\"hcg\",1,f(100)),gray:c(\"hcg\",2,f(100)),white:c(\"hwb\",1,f(100)),wblack:c(\"hwb\",2,f(100)),cyan:c(\"cmyk\",0,f(100)),magenta:c(\"cmyk\",1,f(100)),yellow:c(\"cmyk\",2,f(100)),black:c(\"cmyk\",3,f(100)),x:c(\"xyz\",0,f(100)),y:c(\"xyz\",1,f(100)),z:c(\"xyz\",2,f(100)),l:c(\"lab\",0,f(100)),a:c(\"lab\",1),b:c(\"lab\",2),keyword:function(e){return arguments.length?new s(e):o[this.model].keyword(this.color)},hex:function(e){return arguments.length?new s(e):r.to.hex(this.rgb().round().color)},rgbNumber:function(){var e=this.rgb().color;return(255&e[0])<<16|(255&e[1])<<8|255&e[2]},luminosity:function(){for(var e=this.rgb().color,t=[],n=0;n<e.length;n++){var r=e[n]/255;t[n]=r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4)}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrast:function(e){var t=this.luminosity(),n=e.luminosity();return t>n?(t+.05)/(n+.05):(n+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?\"AAA\":t>=4.5?\"AA\":\"\"},isDark:function(){var e=this.rgb().color;return(299*e[0]+587*e[1]+114*e[2])/1e3<128},isLight:function(){return!this.isDark()},negate:function(){for(var e=this.rgb(),t=0;t<3;t++)e.color[t]=255-e.color[t];return e},lighten:function(e){var t=this.hsl();return t.color[2]+=t.color[2]*e,t},darken:function(e){var t=this.hsl();return t.color[2]-=t.color[2]*e,t},saturate:function(e){var t=this.hsl();return t.color[1]+=t.color[1]*e,t},desaturate:function(e){var t=this.hsl();return t.color[1]-=t.color[1]*e,t},whiten:function(e){var t=this.hwb();return t.color[1]+=t.color[1]*e,t},blacken:function(e){var t=this.hwb();return t.color[2]+=t.color[2]*e,t},grayscale:function(){var e=this.rgb().color,t=.3*e[0]+.59*e[1]+.11*e[2];return s.rgb(t,t,t)},fade:function(e){return this.alpha(this.valpha-this.valpha*e)},opaquer:function(e){return this.alpha(this.valpha+this.valpha*e)},rotate:function(e){var t=this.hsl(),n=t.color[0];return n=(n=(n+e)%360)<0?360+n:n,t.color[0]=n,t},mix:function(e,t){if(!e||!e.rgb)throw new Error('Argument to \"mix\" was not a Color instance, but rather an instance of '+typeof e);var n=e.rgb(),r=this.rgb(),o=void 0===t?.5:t,a=2*o-1,i=n.alpha()-r.alpha(),l=((a*i==-1?a:(a+i)/(1+a*i))+1)/2,u=1-l;return s.rgb(l*n.red()+u*r.red(),l*n.green()+u*r.green(),l*n.blue()+u*r.blue(),n.alpha()*o+r.alpha()*(1-o))}},Object.keys(o).forEach(function(e){if(-1===i.indexOf(e)){var t=o[e].channels;s.prototype[e]=function(){if(this.model===e)return new s(this);if(arguments.length)return new s(arguments,e);var n,r=\"number\"==typeof arguments[t]?t:this.valpha;return new s((n=o[this.model][e].raw(this.color),Array.isArray(n)?n:[n]).concat(r),e)},s[e]=function(n){return\"number\"==typeof n&&(n=d(a.call(arguments),t)),new s(n,e)}}}),e.exports=s},function(e,t,n){var r=n(0);function o(e){return r.createElement(\"svg\",e,[r.createElement(\"defs\",{key:0},r.createElement(\"path\",{d:\"M22.6754698,16 C23.4069876,16 24,15.4081802 24,14.6666667 L24,14.6666667 C24,13.930287 23.4067383,13.3333333 22.6754698,13.3333333 L1.32453024,13.3333333 C0.59301239,13.3333333 0,13.9251531 0,14.6666667 L0,14.6666667 C0,15.4030463 0.593261719,16 1.32453024,16 L22.6754698,16 Z M22.6754698,9.33333333 C23.4069876,9.33333333 24,8.74151357 24,8 L24,8 C24,7.26362033 23.4067383,6.66666667 22.6754698,6.66666667 L1.32453024,6.66666667 C0.59301239,6.66666667 0,7.25848643 0,8 L0,8 C0,8.73637967 0.593261719,9.33333333 1.32453024,9.33333333 L22.6754698,9.33333333 Z M0,1.33333333 C0,2.069713 0.593261719,2.66666667 1.32453024,2.66666667 L22.6754698,2.66666667 C23.4069876,2.66666667 24,2.0748469 24,1.33333333 L24,1.33333333 C24,0.596953667 23.4067383,0 22.6754698,0 L1.32453024,0 C0.59301239,0 0,0.591819763 0,1.33333333 L0,1.33333333 Z\",id:\"path-1\"})),r.createElement(\"g\",{id:\"Symbols\",stroke:\"none\",strokeWidth:\"1\",fillRule:\"evenodd\",key:1},r.createElement(\"g\",{id:\"Mobile-Navbar-Dark\",transform:\"translate(-20.000000, -19.000000)\"},r.createElement(\"g\",{id:\"icon-menu\",transform:\"translate(20.000000, 19.000000)\"},[r.createElement(\"mask\",{id:\"mask-2\",key:0},r.createElement(\"use\",{xlinkHref:\"#path-1\"})),r.createElement(\"use\",{id:\"Mask\",xlinkHref:\"#path-1\",key:1}),r.createElement(\"g\",{id:\"Atoms-/-Colors-/-Gray-#3\",mask:\"url(#mask-2)\",key:2},r.createElement(\"g\",{transform:\"translate(-6.000000, -14.000000)\",id:\"Atoms-/-Colors-/-Black\"},r.createElement(\"rect\",{x:\"0\",y:\"0\",width:\"32\",height:\"32\"})))])))])}o.defaultProps={width:\"24px\",height:\"16px\",viewBox:\"0 0 24 16\",version:\"1.1\"},e.exports=o,o.default=o},function(e,t,n){var r=n(0);function o(e){return r.createElement(\"svg\",e,[r.createElement(\"defs\",{key:0},r.createElement(\"path\",{d:\"M11.4906542,9.60503608 L18.0965422,16.2109241 C18.6136271,16.728009 18.6110165,17.5696184 18.0903175,18.0903175 C17.5659882,18.6146467 16.7281853,18.6138034 16.2109241,18.0965422 L9.60503608,11.4906542 L2.99914807,18.0965422 C2.48206313,18.6136271 1.64045376,18.6110165 1.11975471,18.0903175 C0.595425433,17.5659882 0.596268747,16.7281853 1.11352998,16.2109241 L7.719418,9.60503608 L1.11352998,2.99914807 C0.596445049,2.48206313 0.599055651,1.64045376 1.11975471,1.11975471 C1.64408398,0.595425433 2.48188683,0.596268747 2.99914807,1.11352998 L9.60503608,7.719418 L16.2109241,1.11352998 C16.728009,0.596445049 17.5696184,0.599055651 18.0903175,1.11975471 C18.6146467,1.64408398 18.6138034,2.48188683 18.0965422,2.99914807 L11.4906542,9.60503608 Z\",id:\"path-1\"})),r.createElement(\"g\",{id:\"Symbols\",stroke:\"none\",strokeWidth:\"1\",fillRule:\"evenodd\",key:1},r.createElement(\"g\",{id:\"Mobile-Navbar-Dropdown-Dark\",transform:\"translate(-22.000000, -17.000000)\"},r.createElement(\"g\",{id:\"icon-menu\",transform:\"translate(22.000000, 17.000000)\"},[r.createElement(\"mask\",{id:\"mask-2\",key:0},r.createElement(\"use\",{xlinkHref:\"#path-1\"})),r.createElement(\"use\",{id:\"Mask\",xlinkHref:\"#path-1\",key:1}),r.createElement(\"g\",{id:\"Atoms-/-Colors-/-Gray-#3\",mask:\"url(#mask-2)\",key:2},r.createElement(\"g\",{transform:\"translate(-8.000000, -12.000000)\",id:\"Atoms-/-Colors-/-Black\"},r.createElement(\"rect\",{x:\"0\",y:\"0\",width:\"32\",height:\"32\"})))])))])}o.defaultProps={width:\"19px\",height:\"19px\",viewBox:\"0 0 19 19\",version:\"1.1\"},e.exports=o,o.default=o},function(e,t,n){e.exports=n.p+\"static/partner_brands_light-6a6318922ff591fbb43c64d720555993.png\"},function(e,t,n){e.exports=n.p+\"static/partner_brands_dark-8ce30e7dd94b25fdb1b22343b819e020.png\"},function(e,t,n){\"use strict\";var r=n(26),o=r(n(222)),a=r(n(231));t.ScrollContainer=a.default,t.ScrollContext=o.default},function(e,t,n){n(21),e.exports=function(){var e=!1;-1!==navigator.appVersion.indexOf(\"MSIE 10\")&&(e=!0);var t,n=[],r=\"object\"==typeof document&&document,o=e?r.documentElement.doScroll():r.documentElement.doScroll,a=r&&(o?/^loaded|^c/:/^loaded|^i|^c/).test(r.readyState);return!a&&r&&r.addEventListener(\"DOMContentLoaded\",t=function(){for(r.removeEventListener(\"DOMContentLoaded\",t),a=1;t=n.shift();)t()}),function(e){a?setTimeout(e,0):n.push(e)}}()},function(e){e.exports=[]},function(e){e.exports=[]},function(e,t,n){\"use strict\";n(76),n(77),n(5),n(4),n(3),n(6),n(21),n(29);function r(e){return Object.prototype.toString.call(e).slice(8,-1)}function o(e){return\"Object\"===r(e)&&(e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype)}function a(e){return\"Array\"===r(e)}t.a=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=null,i=e;return o(e)&&e.extensions&&1===Object.keys(e).length&&(i={},r=e.extensions),t.reduce(function(e,t){return function e(t,n,r){if(!o(n))return r&&a(r)&&r.forEach(function(e){n=e(t,n)}),n;var i=o(t)?Object.keys(t).reduce(function(e,r){var o=t[r];return Object.keys(n).includes(r)||(e[r]=o),e},{}):{};return Object.keys(n).reduce(function(i,l){var u=n[l],s=o(t)?t[l]:void 0;return r&&a(r)&&r.forEach(function(e){u=e(s,u)}),void 0===s?(i[l]=u,i):o(u)?(i[l]=e(s,u,r),i):(i[l]=u,i)},i)}(e,t,r)},i)}},function(e,t,n){\"use strict\";var r=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,o=function(e){var t={};return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}(function(e){return r.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91});t.a=o},function(e,t,n){var r=n(11),o=n(16),a=n(38),i=/\"/g,l=function(e,t,n,r){var o=String(a(e)),l=\"<\"+t;return\"\"!==n&&(l+=\" \"+n+'=\"'+String(r).replace(i,\"&quot;\")+'\"'),l+\">\"+o+\"</\"+t+\">\"};e.exports=function(e,t){var n={};n[e]=t(l),r(r.P+r.F*o(function(){var t=\"\"[e]('\"');return t!==t.toLowerCase()||t.split('\"').length>3}),\"String\",n)}},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}},function(e,t){function n(){return e.exports=n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n.apply(this,arguments)}e.exports=n},function(e,t,n){\"use strict\";var r,o=n(8),a=n(74)(0),i=n(23),l=n(44),u=n(112),s=n(137),c=n(15),f=n(40),d=n(40),p=!o.ActiveXObject&&\"ActiveXObject\"in o,h=l.getWeak,m=Object.isExtensible,g=s.ufstore,v=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},y={get:function(e){if(c(e)){var t=h(e);return!0===t?g(f(this,\"WeakMap\")).get(e):t?t[this._i]:void 0}},set:function(e,t){return s.def(f(this,\"WeakMap\"),e,t)}},b=e.exports=n(78)(\"WeakMap\",v,y,s,!0,!0);d&&p&&(u((r=s.getConstructor(v,\"WeakMap\")).prototype,y),l.NEED=!0,a([\"delete\",\"has\",\"get\",\"set\"],function(e){var t=b.prototype,n=t[e];i(t,e,function(t,o){if(c(t)&&!m(t)){this._f||(this._f=new r);var a=this._f[e](t,o);return\"set\"==e?this:a}return n.call(this,t,o)})}))},function(e,t){var n;n=function(){return this}();try{n=n||new Function(\"return this\")()}catch(r){\"object\"==typeof window&&(n=window)}e.exports=n},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){\"use strict\";var r=n(86);n(11)({target:\"RegExp\",proto:!0,forced:r!==/./.exec},{exec:r})},function(e,t,n){e.exports=n(64)(\"native-function-to-string\",Function.toString)},function(e,t,n){var r=n(14);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(i){var a=e.return;throw void 0!==a&&r(a.call(e)),i}}},function(e,t,n){var r=n(54),o=n(9)(\"iterator\"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[o]===e)}},function(e,t,n){var r=n(63),o=n(9)(\"iterator\"),a=n(54);e.exports=n(31).getIteratorMethod=function(e){if(null!=e)return e[o]||e[\"@@iterator\"]||a[r(e)]}},function(e,t,n){var r=n(8),o=n(116).set,a=r.MutationObserver||r.WebKitMutationObserver,i=r.process,l=r.Promise,u=\"process\"==n(36)(i);e.exports=function(){var e,t,n,s=function(){var r,o;for(u&&(r=i.domain)&&r.exit();e;){o=e.fn,e=e.next;try{o()}catch(a){throw e?n():t=void 0,a}}t=void 0,r&&r.enter()};if(u)n=function(){i.nextTick(s)};else if(!a||r.navigator&&r.navigator.standalone)if(l&&l.resolve){var c=l.resolve(void 0);n=function(){c.then(s)}}else n=function(){o.call(r,s)};else{var f=!0,d=document.createTextNode(\"\");new a(s).observe(d,{characterData:!0}),n=function(){d.data=f=!f}}return function(r){var o={fn:r,next:void 0};t&&(t.next=o),e||(e=o,n()),t=o}}},function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(t){return{e:!0,v:t}}}},function(e,t,n){var r=n(8).navigator;e.exports=r&&r.userAgent||\"\"},function(e,t,n){e.exports=[{plugin:n(173),options:{plugins:[],pathToConfigModule:\"src/theme/typography\",omitGoogleFont:!0}},{plugin:n(236),options:{plugins:[{resolve:\"/opt/build/repo/node_modules/gatsby-remark-images\",id:\"51ba02a7-a4c5-5161-ad42-22f2db73cecb\",name:\"gatsby-remark-images\",version:\"3.1.7\",pluginOptions:{plugins:[],maxWidth:1024,linkImagesToOriginal:!1},nodeAPIs:[],browserAPIs:[\"onRouteUpdate\"],ssrAPIs:[\"onRenderBody\"]}],gatsbyRemarkPlugins:[{resolve:\"gatsby-remark-images\",options:{maxWidth:1024,linkImagesToOriginal:!1}}],extensions:[\".mdx\",\".md\"],globalScope:\"\\n          import * as Typography from 'components/post/typography'\\n          export default {\\n            ...Typography\\n          }\\n        \"}},{plugin:n(193),options:{plugins:[],maxWidth:1024,linkImagesToOriginal:!1}},{plugin:n(195),options:{plugins:[]}},{plugin:n(234),options:{plugins:[]}}]},function(e,t,n){\"use strict\"},function(e,t,n){var r=n(17),o=n(39),a=n(34),i=n(52).f;e.exports=function(e){return function(t){for(var n,l=a(t),u=o(l),s=u.length,c=0,f=[];s>c;)n=u[c++],r&&!i.call(l,n)||f.push(e?[n,l[n]]:l[n]);return f}}},function(e,t,n){var r=n(176);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){var r=n(15),o=n(122),a=n(9)(\"species\");e.exports=function(e){var t;return o(e)&&(\"function\"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),r(t)&&null===(t=t[a])&&(t=void 0)),void 0===t?Array:t}},function(e,t,n){var r=n(57),o=n(69),a=n(14),i=n(8).Reflect;e.exports=i&&i.ownKeys||function(e){var t=r.f(a(e)),n=o.f;return n?t.concat(n(e)):t}},function(e,t,n){\"use strict\";var r=n(19),o=n(51);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},function(e,t,n){var r=n(39),o=n(69),a=n(52);e.exports=function(e){var t=r(e),n=o.f;if(n)for(var i,l=n(e),u=a.f,s=0;l.length>s;)u.call(e,i=l[s++])&&t.push(i);return t}},function(e,t,n){var r=n(19),o=n(14),a=n(39);e.exports=n(17)?Object.defineProperties:function(e,t){o(e);for(var n,i=a(t),l=i.length,u=0;l>u;)r.f(e,n=i[u++],t[n]);return e}},function(e,t,n){var r=n(34),o=n(57).f,a={}.toString,i=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return i&&\"[object Window]\"==a.call(e)?function(e){try{return o(e)}catch(t){return i.slice()}}(e):o(r(e))}},function(e,t,n){\"use strict\";var r=n(61),o=n(51),a=n(55),i={};n(32)(i,n(9)(\"iterator\"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(i,{next:o(1,n)}),a(e,t+\" Iterator\")}},function(e,t,n){var r=n(28),o=n(35),a=n(90)(\"IE_PROTO\"),i=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),r(e,a)?e[a]:\"function\"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?i:null}},function(e,t,n){\"use strict\";n(29),n(5),n(4),n(3),n(6),n(21),n(13),n(48),n(18);var r=n(107),o=\"function\"==typeof Symbol&&Symbol.for,a=o?Symbol.for(\"react.element\"):60103,i=o?Symbol.for(\"react.portal\"):60106,l=o?Symbol.for(\"react.fragment\"):60107,u=o?Symbol.for(\"react.strict_mode\"):60108,s=o?Symbol.for(\"react.profiler\"):60114,c=o?Symbol.for(\"react.provider\"):60109,f=o?Symbol.for(\"react.context\"):60110,d=o?Symbol.for(\"react.concurrent_mode\"):60111,p=o?Symbol.for(\"react.forward_ref\"):60112,h=o?Symbol.for(\"react.suspense\"):60113,m=o?Symbol.for(\"react.memo\"):60115,g=o?Symbol.for(\"react.lazy\"):60116,v=\"function\"==typeof Symbol&&Symbol.iterator;function y(e){for(var t=arguments.length-1,n=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+e,r=0;r<t;r++)n+=\"&args[]=\"+encodeURIComponent(arguments[r+1]);!function(e,t,n,r,o,a,i,l){if(!e){if(e=void 0,void 0===t)e=Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var u=[n,r,o,a,i,l],s=0;(e=Error(t.replace(/%s/g,function(){return u[s++]}))).name=\"Invariant Violation\"}throw e.framesToPop=1,e}}(!1,\"Minified React error #\"+e+\"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. \",n)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w={};function k(e,t,n){this.props=e,this.context=t,this.refs=w,this.updater=n||b}function x(){}function E(e,t,n){this.props=e,this.context=t,this.refs=w,this.updater=n||b}k.prototype.isReactComponent={},k.prototype.setState=function(e,t){\"object\"!=typeof e&&\"function\"!=typeof e&&null!=e&&y(\"85\"),this.updater.enqueueSetState(this,e,t,\"setState\")},k.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")},x.prototype=k.prototype;var S=E.prototype=new x;S.constructor=E,r(S,k.prototype),S.isPureReactComponent=!0;var _={current:null},T={current:null},C=Object.prototype.hasOwnProperty,O={key:!0,ref:!0,__self:!0,__source:!0};function P(e,t,n){var r=void 0,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=\"\"+t.key),t)C.call(t,r)&&!O.hasOwnProperty(r)&&(o[r]=t[r]);var u=arguments.length-2;if(1===u)o.children=n;else if(1<u){for(var s=Array(u),c=0;c<u;c++)s[c]=arguments[c+2];o.children=s}if(e&&e.defaultProps)for(r in u=e.defaultProps)void 0===o[r]&&(o[r]=u[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:T.current}}function A(e){return\"object\"==typeof e&&null!==e&&e.$$typeof===a}var I=/\\/+/g,R=[];function j(e,t,n,r){if(R.length){var o=R.pop();return o.result=e,o.keyPrefix=t,o.func=n,o.context=r,o.count=0,o}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function N(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>R.length&&R.push(e)}function F(e,t,n){return null==e?0:function e(t,n,r,o){var l=typeof t;\"undefined\"!==l&&\"boolean\"!==l||(t=null);var u=!1;if(null===t)u=!0;else switch(l){case\"string\":case\"number\":u=!0;break;case\"object\":switch(t.$$typeof){case a:case i:u=!0}}if(u)return r(o,t,\"\"===n?\".\"+M(t,0):n),1;if(u=0,n=\"\"===n?\".\":n+\":\",Array.isArray(t))for(var s=0;s<t.length;s++){var c=n+M(l=t[s],s);u+=e(l,c,r,o)}else if(c=null===t||\"object\"!=typeof t?null:\"function\"==typeof(c=v&&t[v]||t[\"@@iterator\"])?c:null,\"function\"==typeof c)for(t=c.call(t),s=0;!(l=t.next()).done;)u+=e(l=l.value,c=n+M(l,s++),r,o);else\"object\"===l&&y(\"31\",\"[object Object]\"==(r=\"\"+t)?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":r,\"\");return u}(e,\"\",t,n)}function M(e,t){return\"object\"==typeof e&&null!==e&&null!=e.key?function(e){var t={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+e).replace(/[=:]/g,function(e){return t[e]})}(e.key):t.toString(36)}function L(e,t){e.func.call(e.context,t,e.count++)}function D(e,t,n){var r=e.result,o=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?U(e,r,n,function(e){return e}):null!=e&&(A(e)&&(e=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,o+(!e.key||t&&t.key===e.key?\"\":(\"\"+e.key).replace(I,\"$&/\")+\"/\")+n)),r.push(e))}function U(e,t,n,r,o){var a=\"\";null!=n&&(a=(\"\"+n).replace(I,\"$&/\")+\"/\"),F(e,D,t=j(t,a,r,o)),N(t)}function z(){var e=_.current;return null===e&&y(\"321\"),e}var B={Children:{map:function(e,t,n){if(null==e)return e;var r=[];return U(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;F(e,L,t=j(null,null,t,n)),N(t)},count:function(e){return F(e,function(){return null},null)},toArray:function(e){var t=[];return U(e,t,null,function(e){return e}),t},only:function(e){return A(e)||y(\"143\"),e}},createRef:function(){return{current:null}},Component:k,PureComponent:E,createContext:function(e,t){return void 0===t&&(t=null),(e={$$typeof:f,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:c,_context:e},e.Consumer=e},forwardRef:function(e){return{$$typeof:p,render:e}},lazy:function(e){return{$$typeof:g,_ctor:e,_status:-1,_result:null}},memo:function(e,t){return{$$typeof:m,type:e,compare:void 0===t?null:t}},useCallback:function(e,t){return z().useCallback(e,t)},useContext:function(e,t){return z().useContext(e,t)},useEffect:function(e,t){return z().useEffect(e,t)},useImperativeHandle:function(e,t,n){return z().useImperativeHandle(e,t,n)},useDebugValue:function(){},useLayoutEffect:function(e,t){return z().useLayoutEffect(e,t)},useMemo:function(e,t){return z().useMemo(e,t)},useReducer:function(e,t,n){return z().useReducer(e,t,n)},useRef:function(e){return z().useRef(e)},useState:function(e){return z().useState(e)},Fragment:l,StrictMode:u,Suspense:h,createElement:P,cloneElement:function(e,t,n){null==e&&y(\"267\",e);var o=void 0,i=r({},e.props),l=e.key,u=e.ref,s=e._owner;if(null!=t){void 0!==t.ref&&(u=t.ref,s=T.current),void 0!==t.key&&(l=\"\"+t.key);var c=void 0;for(o in e.type&&e.type.defaultProps&&(c=e.type.defaultProps),t)C.call(t,o)&&!O.hasOwnProperty(o)&&(i[o]=void 0===t[o]&&void 0!==c?c[o]:t[o])}if(1===(o=arguments.length-2))i.children=n;else if(1<o){c=Array(o);for(var f=0;f<o;f++)c[f]=arguments[f+2];i.children=c}return{$$typeof:a,type:e.type,key:l,ref:u,props:i,_owner:s}},createFactory:function(e){var t=P.bind(null,e);return t.type=e,t},isValidElement:A,version:\"16.8.6\",unstable_ConcurrentMode:d,unstable_Profiler:s,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentDispatcher:_,ReactCurrentOwner:T,assign:r}},$={default:B},W=$&&B||$;e.exports=W.default||W},function(e,t,n){n(17)&&\"g\"!=/./g.flags&&n(19).f(RegExp.prototype,\"flags\",{configurable:!0,get:n(66)})},function(e,t,n){\"use strict\";n.r(t);var r=n(0),o=n.n(r);t.default={React:o.a}},function(e,t,n){\"use strict\";n.r(t);n(30),n(18),n(5),n(4),n(3),n(6);var r=n(108);function o(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(n,!0).forEach(function(t){a(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},r)},function(e,t){var n,r,o=e.exports={};function a(){throw new Error(\"setTimeout has not been defined\")}function i(){throw new Error(\"clearTimeout has not been defined\")}function l(e){if(n===setTimeout)return setTimeout(e,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n=\"function\"==typeof setTimeout?setTimeout:a}catch(e){n=a}try{r=\"function\"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}}();var u,s=[],c=!1,f=-1;function d(){c&&u&&(c=!1,u.length?s=u.concat(s):f=-1,s.length&&p())}function p(){if(!c){var e=l(d);c=!0;for(var t=s.length;t;){for(u=s,s=[];++f<t;)u&&u[f].run();f=-1,t=s.length}u=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===i||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function m(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];s.push(new h(e,t)),1!==s.length||c||l(p)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title=\"browser\",o.browser=!0,o.env={},o.argv=[],o.version=\"\",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(e){return[]},o.binding=function(e){throw new Error(\"process.binding is not supported\")},o.cwd=function(){return\"/\"},o.chdir=function(e){throw new Error(\"process.chdir is not supported\")},o.umask=function(){return 0}},function(e,t,n){var r=n(15),o=n(14),a=function(e,t){if(o(e),!r(t)&&null!==t)throw TypeError(t+\": can't set as prototype!\")};e.exports={set:Object.setPrototypeOf||(\"__proto__\"in{}?function(e,t,r){try{(r=n(37)(Function.call,n(75).f(Object.prototype,\"__proto__\").set,2))(e,[]),t=!(e instanceof Array)}catch(o){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:a}},function(e,t,n){\"use strict\";n(48),n(18),Object.defineProperty(t,\"__esModule\",{value:!0});var r=\"function\"==typeof Symbol&&Symbol.for,o=r?Symbol.for(\"react.element\"):60103,a=r?Symbol.for(\"react.portal\"):60106,i=r?Symbol.for(\"react.fragment\"):60107,l=r?Symbol.for(\"react.strict_mode\"):60108,u=r?Symbol.for(\"react.profiler\"):60114,s=r?Symbol.for(\"react.provider\"):60109,c=r?Symbol.for(\"react.context\"):60110,f=r?Symbol.for(\"react.async_mode\"):60111,d=r?Symbol.for(\"react.concurrent_mode\"):60111,p=r?Symbol.for(\"react.forward_ref\"):60112,h=r?Symbol.for(\"react.suspense\"):60113,m=r?Symbol.for(\"react.memo\"):60115,g=r?Symbol.for(\"react.lazy\"):60116;function v(e){if(\"object\"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case f:case d:case i:case u:case l:case h:return e;default:switch(e=e&&e.$$typeof){case c:case p:case s:return e;default:return t}}case g:case m:case a:return t}}}function y(e){return v(e)===d}t.typeOf=v,t.AsyncMode=f,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=s,t.Element=o,t.ForwardRef=p,t.Fragment=i,t.Lazy=g,t.Memo=m,t.Portal=a,t.Profiler=u,t.StrictMode=l,t.Suspense=h,t.isValidElementType=function(e){return\"string\"==typeof e||\"function\"==typeof e||e===i||e===d||e===u||e===l||e===h||\"object\"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===s||e.$$typeof===c||e.$$typeof===p)},t.isAsyncMode=function(e){return y(e)||v(e)===f},t.isConcurrentMode=y,t.isContextConsumer=function(e){return v(e)===c},t.isContextProvider=function(e){return v(e)===s},t.isElement=function(e){return\"object\"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return v(e)===p},t.isFragment=function(e){return v(e)===i},t.isLazy=function(e){return v(e)===g},t.isMemo=function(e){return v(e)===m},t.isPortal=function(e){return v(e)===a},t.isProfiler=function(e){return v(e)===u},t.isStrictMode=function(e){return v(e)===l},t.isSuspense=function(e){return v(e)===h}},function(e,t,n){\"use strict\";n(21);var r=n(192);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw l.name=\"Invariant Violation\",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},function(e,t,n){\"use strict\";n(12);var r=n(194),o=r.DEFAULT_OPTIONS,a=r.imageClass,i=r.imageBackgroundClass,l=r.imageWrapperClass;t.onRouteUpdate=function(e,t){for(var n=Object.assign({},o,t),r=document.querySelectorAll(\".\"+l),u=function(e){var t=r[e],o=t.querySelector(\".\"+i),l=t.querySelector(\".\"+a),u=function(){o.style.transition=\"opacity 0.5s 0.5s\",l.style.transition=\"opacity 0.5s\",s()},s=function e(){o.style.opacity=0,l.style.opacity=1,l.style.color=\"inherit\",l.style.boxShadow=\"inset 0px 0px 0px 400px \"+n.backgroundColor,l.removeEventListener(\"load\",u),l.removeEventListener(\"error\",e)};l.style.opacity=0,l.addEventListener(\"load\",u),l.addEventListener(\"error\",s),l.complete&&s()},s=0;s<r.length;s++)u(s)}},function(e,t,n){\"use strict\";t.DEFAULT_OPTIONS={maxWidth:650,wrapperStyle:\"\",backgroundColor:\"white\",linkImagesToOriginal:!0,showCaptions:!1,withWebp:!1,tracedSVG:!1},t.imageClass=\"gatsby-resp-image-image\",t.imageWrapperClass=\"gatsby-resp-image-wrapper\",t.imageBackgroundClass=\"gatsby-resp-image-background-image\"},function(e,t,n){\"use strict\";var r=n(26),o=n(45),a=r(n(201));t.onClientEntry=function(){(0,a.default)(window,function(e){(0,o.navigate)(e)})}},function(e,t,n){\"use strict\";n(13);e.exports=function(){}},function(e,t,n){\"use strict\";var r=n(16);e.exports=function(e,t){return!!e&&r(function(){t?e.call(null,function(){},1):e.call(null)})}},function(e,t,n){\"use strict\";t.__esModule=!0,t.parsePath=function(e){var t=e||\"/\",n=\"\",r=\"\",o=t.indexOf(\"#\");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf(\"?\");-1!==a&&(n=t.substr(a),t=t.substr(0,a));return{pathname:t,search:\"?\"===n?\"\":n,hash:\"#\"===r?\"\":r}}},function(e,t,n){\"use strict\";n.r(t);n(30),n(18),n(5),n(4),n(3),n(6);var r=n(0),o=n.n(r),a=n(10),i=n.n(a),l=n(80);function u(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c=function(e){var t=e.location,n=e.pageResources;return n?o.a.createElement(l.a,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(n,!0).forEach(function(t){s(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({location:t,pageResources:n},n.json)):null};c.propTypes={location:i.a.shape({pathname:i.a.string.isRequired}).isRequired},t.default=c},function(e,t,n){\"use strict\";var r=n(11),o=n(33),a=n(129),i=\"\".endsWith;r(r.P+r.F*n(130)(\"endsWith\"),\"String\",{endsWith:function(e){var t=a(this,e,\"endsWith\"),n=arguments.length>1?arguments[1]:void 0,r=o(t.length),l=void 0===n?r:Math.min(o(n),r),u=String(e);return i?i.call(t,u,l):t.slice(l-u.length,l)===u}})},function(e,t,n){\"use strict\";n(13),n(60),n(109);var r=n(26);t.__esModule=!0,t.default=function(e,t){var n=m(t);return e.addEventListener(\"click\",n),function(){return e.removeEventListener(\"click\",n)}},t.routeThroughBrowserOrApp=t.hashShouldBeFollowed=t.pathIsNotHandledByApp=t.urlsAreOnSameOrigin=t.authorIsForcingNavigation=t.anchorsTargetIsEquivalentToSelf=t.findClosestAnchor=t.navigationWasHandledElsewhere=t.slashedPathname=t.userIsForcingNavigation=void 0;var o=r(n(202)),a=n(45),i=function(e){return 0!==e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey};t.userIsForcingNavigation=i;var l=function(e){return\"/\"===e[0]?e:\"/\"+e};t.slashedPathname=l;var u=function(e){return e.defaultPrevented};t.navigationWasHandledElsewhere=u;var s=function(e){for(;e.parentNode;e=e.parentNode)if(\"a\"===e.nodeName.toLowerCase())return e;return null};t.findClosestAnchor=s;var c=function(e){return!1===e.hasAttribute(\"target\")||null==e.target||-1!==[\"_self\",\"\"].indexOf(e.target)||\"_parent\"===e.target&&(!e.ownerDocument.defaultView.parent||e.ownerDocument.defaultView.parent===e.ownerDocument.defaultView)||\"_top\"===e.target&&(!e.ownerDocument.defaultView.top||e.ownerDocument.defaultView.top===e.ownerDocument.defaultView)};t.anchorsTargetIsEquivalentToSelf=c;var f=function(e){return!0===e.hasAttribute(\"download\")||!1===c(e)};t.authorIsForcingNavigation=f;var d=function(e,t){return e.protocol===t.protocol&&e.host===t.host};t.urlsAreOnSameOrigin=d;var p=function(e,t){return!1===t.test(l(e.pathname))||-1!==e.pathname.search(/^.*\\.((?!htm)[a-z0-9]{1,5})$/i)};t.pathIsNotHandledByApp=p;var h=function(e,t){return\"\"!==t.hash&&(\"\"===t.pathname||t.pathname===e.pathname)};t.hashShouldBeFollowed=h;var m=function(e){return function(t){if(window.___failedResources)return!0;if(i(t))return!0;if(u(t))return!0;var n=s(t.target);if(null==n)return!0;if(f(n))return!0;var r=document.createElement(\"a\");r.href=n.href,n.href instanceof SVGAnimatedString&&(r.href=n.href.animVal);var c=document.createElement(\"a\");if(c.href=window.location.href,!1===d(c,r))return!0;var m=new RegExp(\"^\"+(0,o.default)((0,a.withPrefix)(\"/\")));if(p(r,m))return!0;if(h(c,r))return!0;t.preventDefault();var g=l(r.pathname).replace(m,\"/\");return e(\"\"+g+r.search+r.hash),!1}};t.routeThroughBrowserOrApp=m},function(e,t,n){\"use strict\";n(13);var r=/[|\\\\{}()[\\]^$+*?.]/g;e.exports=function(e){if(\"string\"!=typeof e)throw new TypeError(\"Expected a string\");return e.replace(r,\"\\\\$&\")}},function(e,t,n){\"use strict\";n(157)(\"small\",function(e){return function(){return e(this,\"small\",\"\",\"\")}})},function(e,t,n){var r=n(11);r(r.P,\"Array\",{fill:n(205)}),n(56)(\"fill\")},function(e,t,n){\"use strict\";var r=n(35),o=n(115),a=n(33);e.exports=function(e){for(var t=r(this),n=a(t.length),i=arguments.length,l=o(i>1?arguments[1]:void 0,n),u=i>2?arguments[2]:void 0,s=void 0===u?n:o(u,n);s>l;)t[l++]=e;return t}},function(e,t,n){\"use strict\";var r=n(11),o=n(74)(6),a=\"findIndex\",i=!0;a in[]&&Array(1)[a](function(){i=!1}),r(r.P+r.F*i,\"Array\",{findIndex:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),n(56)(a)},function(e,t,n){n(29),n(3),n(12),Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var a=r.createElement(\"svg\",{viewBox:\"-2 -5 14 20\",height:\"100%\",width:\"100%\",style:{position:\"absolute\",top:0}},r.createElement(\"path\",{d:\"M9.9 2.12L7.78 0 4.95 2.828 2.12 0 0 2.12l2.83 2.83L0 7.776 2.123 9.9 4.95 7.07 7.78 9.9 9.9 7.776 7.072 4.95 9.9 2.12\",fill:\"#fff\",fillRule:\"evenodd\"})),i=r.createElement(\"svg\",{height:\"100%\",width:\"100%\",viewBox:\"-2 -5 17 21\",style:{position:\"absolute\",top:0}},r.createElement(\"path\",{d:\"M11.264 0L5.26 6.004 2.103 2.847 0 4.95l5.26 5.26 8.108-8.107L11.264 0\",fill:\"#fff\",fillRule:\"evenodd\"}));function l(e){if(7===e.length)return e;for(var t=\"#\",n=1;n<4;n+=1)t+=e[n]+e[n];return t}function u(e,t,n,r,o){return function(e,t,n,r,o){var a=(e-n)/(t-n);if(0===a)return r;if(1===a)return o;for(var i=\"#\",l=1;l<6;l+=2){var u=parseInt(r.substr(l,2),16),s=parseInt(o.substr(l,2),16),c=Math.round((1-a)*u+a*s).toString(16);1===c.length&&(c=\"0\"+c),i+=c}return i}(e,t,n,l(r),l(o))}var s=function(e){function t(t){e.call(this,t);var n=t.height,r=t.width,o=t.checked;this.t=t.handleDiameter||n-2,this.i=Math.max(r-n,r-(n+this.t)/2),this.o=Math.max(0,(n-this.t)/2),this.state={s:o?this.i:this.o},this.n=0,this.e=0,this.h=this.h.bind(this),this.r=this.r.bind(this),this.a=this.a.bind(this),this.c=this.c.bind(this),this.l=this.l.bind(this),this.u=this.u.bind(this),this.f=this.f.bind(this),this.p=this.p.bind(this),this.b=this.b.bind(this),this.g=this.g.bind(this),this.v=this.v.bind(this),this.w=this.w.bind(this)}return e&&(t.__proto__=e),((t.prototype=Object.create(e&&e.prototype)).constructor=t).prototype.componentDidUpdate=function(e){e.checked!==this.props.checked&&this.setState({s:this.props.checked?this.i:this.o})},t.prototype.k=function(e){this.y.focus(),this.setState({C:e,M:!0,m:Date.now()})},t.prototype.x=function(e){var t=this.state,n=t.C,r=t.s,o=(this.props.checked?this.i:this.o)+e-n;t.R||e===n||this.setState({R:!0});var a=Math.min(this.i,Math.max(this.o,o));a!==r&&this.setState({s:a})},t.prototype.S=function(e){var t=this.state,n=t.s,r=t.R,o=t.m,a=this.props.checked,i=(this.i+this.o)/2,l=Date.now()-o;!r||l<250?this.T(e):a?i<n?this.setState({s:this.i}):this.T(e):n<i?this.setState({s:this.o}):this.T(e),this.setState({R:!1,M:!1}),this.n=Date.now()},t.prototype.h=function(e){e.preventDefault(),\"number\"==typeof e.button&&0!==e.button||(this.k(e.clientX),window.addEventListener(\"mousemove\",this.r),window.addEventListener(\"mouseup\",this.a))},t.prototype.r=function(e){e.preventDefault(),this.x(e.clientX)},t.prototype.a=function(e){this.S(e),window.removeEventListener(\"mousemove\",this.r),window.removeEventListener(\"mouseup\",this.a)},t.prototype.c=function(e){this.$=null,this.k(e.touches[0].clientX)},t.prototype.l=function(e){this.x(e.touches[0].clientX)},t.prototype.u=function(e){e.preventDefault(),this.S(e)},t.prototype.p=function(e){50<Date.now()-this.n&&(this.T(e),50<Date.now()-this.e&&this.setState({M:!1}))},t.prototype.b=function(){this.e=Date.now()},t.prototype.g=function(){this.setState({M:!0})},t.prototype.v=function(){this.setState({M:!1})},t.prototype.w=function(e){this.y=e},t.prototype.f=function(e){e.preventDefault(),this.y.focus(),this.T(e),this.setState({M:!1})},t.prototype.T=function(e){var t=this.props;(0,t.onChange)(!t.checked,e,t.id)},t.prototype.render=function(){var e=this.props,t=e.disabled,n=e.className,a=e.offColor,i=e.onColor,l=e.offHandleColor,s=e.onHandleColor,c=e.checkedIcon,f=e.uncheckedIcon,d=e.boxShadow,p=e.activeBoxShadow,h=e.height,m=e.width,g=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}(e,[\"disabled\",\"className\",\"offColor\",\"onColor\",\"offHandleColor\",\"onHandleColor\",\"checkedIcon\",\"uncheckedIcon\",\"boxShadow\",\"activeBoxShadow\",\"height\",\"width\",\"handleDiameter\"]),v=this.state,y=v.s,b=v.R,w=v.M,k={position:\"relative\",display:\"inline-block\",textAlign:\"left\",opacity:t?.5:1,direction:\"ltr\",borderRadius:h/2,WebkitTransition:\"opacity 0.25s\",MozTransition:\"opacity 0.25s\",transition:\"opacity 0.25s\",touchAction:\"none\",WebkitTapHighlightColor:\"rgba(0, 0, 0, 0)\",WebkitUserSelect:\"none\",MozUserSelect:\"none\",msUserSelect:\"none\",userSelect:\"none\"},x={height:h,width:m,margin:Math.max(0,(this.t-h)/2),position:\"relative\",background:u(y,this.i,this.o,a,i),borderRadius:h/2,cursor:t?\"default\":\"pointer\",WebkitTransition:b?null:\"background 0.25s\",MozTransition:b?null:\"background 0.25s\",transition:b?null:\"background 0.25s\"},E={height:h,width:Math.min(1.5*h,m-(this.t+h)/2+1),position:\"relative\",opacity:(y-this.o)/(this.i-this.o),pointerEvents:\"none\",WebkitTransition:b?null:\"opacity 0.25s\",MozTransition:b?null:\"opacity 0.25s\",transition:b?null:\"opacity 0.25s\"},S={height:h,width:Math.min(1.5*h,m-(this.t+h)/2+1),position:\"absolute\",opacity:1-(y-this.o)/(this.i-this.o),right:0,top:0,pointerEvents:\"none\",WebkitTransition:b?null:\"opacity 0.25s\",MozTransition:b?null:\"opacity 0.25s\",transition:b?null:\"opacity 0.25s\"},_={height:this.t,width:this.t,background:u(y,this.i,this.o,l,s),display:\"inline-block\",cursor:t?\"default\":\"pointer\",borderRadius:\"50%\",position:\"absolute\",transform:\"translateX(\"+y+\"px)\",top:Math.max(0,(h-this.t)/2),outline:0,boxShadow:w?p:d,border:0,WebkitTransition:b?null:\"background-color 0.25s, transform 0.25s, box-shadow 0.15s\",MozTransition:b?null:\"background-color 0.25s, transform 0.25s, box-shadow 0.15s\",transition:b?null:\"background-color 0.25s, transform 0.25s, box-shadow 0.15s\"};return r.createElement(\"div\",{className:n,style:k},r.createElement(\"div\",{className:\"react-switch-bg\",style:x,onClick:t?null:this.f,onMouseDown:function(e){return e.preventDefault()}},c&&r.createElement(\"div\",{style:E},c),f&&r.createElement(\"div\",{style:S},f)),r.createElement(\"div\",{className:\"react-switch-handle\",style:_,onClick:function(e){return e.preventDefault()},onMouseDown:t?null:this.h,onTouchStart:t?null:this.c,onTouchMove:t?null:this.l,onTouchEnd:t?null:this.u,onTouchCancel:t?null:this.v}),r.createElement(\"input\",o({},{type:\"checkbox\",role:\"switch\",disabled:t,style:{border:0,clip:\"rect(0 0 0 0)\",height:1,margin:-1,overflow:\"hidden\",padding:0,position:\"absolute\",width:1}},g,{ref:this.w,onFocus:this.g,onBlur:this.v,onKeyUp:this.b,onChange:this.p})))},t}(r.Component);s.defaultProps={disabled:!1,offColor:\"#888\",onColor:\"#080\",offHandleColor:\"#fff\",onHandleColor:\"#fff\",uncheckedIcon:a,checkedIcon:i,boxShadow:null,activeBoxShadow:\"0 0 2px 3px #3bf\",height:28,width:56},t.default=s},function(e,t,n){\"use strict\";var r=n(8),o=n(28),a=n(36),i=n(96),l=n(67),u=n(16),s=n(57).f,c=n(75).f,f=n(19).f,d=n(209).trim,p=r.Number,h=p,m=p.prototype,g=\"Number\"==a(n(61)(m)),v=\"trim\"in String.prototype,y=function(e){var t=l(e,!1);if(\"string\"==typeof t&&t.length>2){var n,r,o,a=(t=v?t.trim():d(t,3)).charCodeAt(0);if(43===a||45===a){if(88===(n=t.charCodeAt(2))||120===n)return NaN}else if(48===a){switch(t.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+t}for(var i,u=t.slice(2),s=0,c=u.length;s<c;s++)if((i=u.charCodeAt(s))<48||i>o)return NaN;return parseInt(u,r)}}return+t};if(!p(\" 0o1\")||!p(\"0b1\")||p(\"+0x1\")){p=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof p&&(g?u(function(){m.valueOf.call(n)}):\"Number\"!=a(n))?i(new h(y(t)),n,p):y(t)};for(var b,w=n(17)?s(h):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),k=0;w.length>k;k++)o(h,b=w[k])&&!o(p,b)&&f(p,b,c(h,b));p.prototype=m,m.constructor=p,n(23)(r,\"Number\",p)}},function(e,t,n){var r=n(11),o=n(38),a=n(16),i=n(210),l=\"[\"+i+\"]\",u=RegExp(\"^\"+l+l+\"*\"),s=RegExp(l+l+\"*$\"),c=function(e,t,n){var o={},l=a(function(){return!!i[e]()||\"​\"!=\"​\"[e]()}),u=o[e]=l?t(f):i[e];n&&(o[n]=u),r(r.P+r.F*l,\"String\",o)},f=c.trim=function(e,t){return e=String(o(e)),1&t&&(e=e.replace(u,\"\")),2&t&&(e=e.replace(s,\"\")),e};e.exports=c},function(e,t){e.exports=\"\\t\\n\\v\\f\\r   ᠎             　\\u2028\\u2029\\ufeff\"},function(e,t,n){n(29),n(3),n(59),n(21);var r=n(212),o=n(213),a={};for(var i in r)r.hasOwnProperty(i)&&(a[r[i]]=i);var l=e.exports={to:{},get:{}};function u(e,t,n){return Math.min(Math.max(t,e),n)}function s(e){var t=e.toString(16).toUpperCase();return t.length<2?\"0\"+t:t}l.get=function(e){var t,n;switch(e.substring(0,3).toLowerCase()){case\"hsl\":t=l.get.hsl(e),n=\"hsl\";break;case\"hwb\":t=l.get.hwb(e),n=\"hwb\";break;default:t=l.get.rgb(e),n=\"rgb\"}return t?{model:n,value:t}:null},l.get.rgb=function(e){if(!e)return null;var t,n,o,a=[0,0,0,1];if(t=e.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(o=t[2],t=t[1],n=0;n<3;n++){var i=2*n;a[n]=parseInt(t.slice(i,i+2),16)}o&&(a[3]=Math.round(parseInt(o,16)/255*100)/100)}else if(t=e.match(/^#([a-f0-9]{3,4})$/i)){for(o=(t=t[1])[3],n=0;n<3;n++)a[n]=parseInt(t[n]+t[n],16);o&&(a[3]=Math.round(parseInt(o+o,16)/255*100)/100)}else if(t=e.match(/^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/)){for(n=0;n<3;n++)a[n]=parseInt(t[n+1],0);t[4]&&(a[3]=parseFloat(t[4]))}else{if(!(t=e.match(/^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/)))return(t=e.match(/(\\D+)/))?\"transparent\"===t[1]?[0,0,0,0]:(a=r[t[1]])?(a[3]=1,a):null:null;for(n=0;n<3;n++)a[n]=Math.round(2.55*parseFloat(t[n+1]));t[4]&&(a[3]=parseFloat(t[4]))}for(n=0;n<3;n++)a[n]=u(a[n],0,255);return a[3]=u(a[3],0,1),a},l.get.hsl=function(e){if(!e)return null;var t=e.match(/^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/);if(t){var n=parseFloat(t[4]);return[(parseFloat(t[1])+360)%360,u(parseFloat(t[2]),0,100),u(parseFloat(t[3]),0,100),u(isNaN(n)?1:n,0,1)]}return null},l.get.hwb=function(e){if(!e)return null;var t=e.match(/^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/);if(t){var n=parseFloat(t[4]);return[(parseFloat(t[1])%360+360)%360,u(parseFloat(t[2]),0,100),u(parseFloat(t[3]),0,100),u(isNaN(n)?1:n,0,1)]}return null},l.to.hex=function(){var e=o(arguments);return\"#\"+s(e[0])+s(e[1])+s(e[2])+(e[3]<1?s(Math.round(255*e[3])):\"\")},l.to.rgb=function(){var e=o(arguments);return e.length<4||1===e[3]?\"rgb(\"+Math.round(e[0])+\", \"+Math.round(e[1])+\", \"+Math.round(e[2])+\")\":\"rgba(\"+Math.round(e[0])+\", \"+Math.round(e[1])+\", \"+Math.round(e[2])+\", \"+e[3]+\")\"},l.to.rgb.percent=function(){var e=o(arguments),t=Math.round(e[0]/255*100),n=Math.round(e[1]/255*100),r=Math.round(e[2]/255*100);return e.length<4||1===e[3]?\"rgb(\"+t+\"%, \"+n+\"%, \"+r+\"%)\":\"rgba(\"+t+\"%, \"+n+\"%, \"+r+\"%, \"+e[3]+\")\"},l.to.hsl=function(){var e=o(arguments);return e.length<4||1===e[3]?\"hsl(\"+e[0]+\", \"+e[1]+\"%, \"+e[2]+\"%)\":\"hsla(\"+e[0]+\", \"+e[1]+\"%, \"+e[2]+\"%, \"+e[3]+\")\"},l.to.hwb=function(){var e=o(arguments),t=\"\";return e.length>=4&&1!==e[3]&&(t=\", \"+e[3]),\"hwb(\"+e[0]+\", \"+e[1]+\"%, \"+e[2]+\"%\"+t+\")\"},l.to.keyword=function(e){return a[e.slice(0,3)]}},function(e,t,n){\"use strict\";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},function(e,t,n){\"use strict\";var r=n(214),o=Array.prototype.concat,a=Array.prototype.slice,i=e.exports=function(e){for(var t=[],n=0,i=e.length;n<i;n++){var l=e[n];r(l)?t=o.call(t,a.call(l)):t.push(l)}return t};i.wrap=function(e){return function(){return e(i(arguments))}}},function(e,t,n){n(21),e.exports=function(e){return!(!e||\"string\"==typeof e)&&(e instanceof Array||Array.isArray(e)||e.length>=0&&(e.splice instanceof Function||Object.getOwnPropertyDescriptor(e,e.length-1)&&\"String\"!==e.constructor.name))}},function(e,t,n){n(5),n(4),n(3),n(6);var r=n(136),o=n(217),a={};Object.keys(r).forEach(function(e){a[e]={},Object.defineProperty(a[e],\"channels\",{value:r[e].channels}),Object.defineProperty(a[e],\"labels\",{value:r[e].labels});var t=o(e);Object.keys(t).forEach(function(n){var r=t[n];a[e][n]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if(\"object\"==typeof n)for(var r=n.length,o=0;o<r;o++)n[o]=Math.round(n[o]);return n};return\"conversion\"in e&&(t.conversion=e.conversion),t}(r),a[e][n].raw=function(e){var t=function(t){return null==t?t:(arguments.length>1&&(t=Array.prototype.slice.call(arguments)),e(t))};return\"conversion\"in e&&(t.conversion=e.conversion),t}(r)})}),e.exports=a},function(e,t,n){\"use strict\";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},function(e,t,n){n(5),n(4),n(3),n(6);var r=n(136);function o(e){var t=function(){for(var e={},t=Object.keys(r),n=t.length,o=0;o<n;o++)e[t[o]]={distance:-1,parent:null};return e}(),n=[e];for(t[e].distance=0;n.length;)for(var o=n.pop(),a=Object.keys(r[o]),i=a.length,l=0;l<i;l++){var u=a[l],s=t[u];-1===s.distance&&(s.distance=t[o].distance+1,s.parent=o,n.unshift(u))}return t}function a(e,t){return function(n){return t(e(n))}}function i(e,t){for(var n=[t[e].parent,e],o=r[t[e].parent][e],i=t[e].parent;t[i].parent;)n.unshift(t[i].parent),o=a(r[t[i].parent][i],o),i=t[i].parent;return o.conversion=n,o}e.exports=function(e){for(var t=o(e),n={},r=Object.keys(t),a=r.length,l=0;l<a;l++){var u=r[l];null!==t[u].parent&&(n[u]=i(u,t))}return n}},function(e,t,n){\"use strict\";n(160),n(219),n(98),n(85),n(134),n(5),n(4),n(6),n(48),n(18),n(22),n(29),n(3),n(21),n(13);var r=n(0),o=n(107),a=n(220);function i(e){for(var t=arguments.length-1,n=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+e,r=0;r<t;r++)n+=\"&args[]=\"+encodeURIComponent(arguments[r+1]);!function(e,t,n,r,o,a,i,l){if(!e){if(e=void 0,void 0===t)e=Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var u=[n,r,o,a,i,l],s=0;(e=Error(t.replace(/%s/g,function(){return u[s++]}))).name=\"Invariant Violation\"}throw e.framesToPop=1,e}}(!1,\"Minified React error #\"+e+\"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. \",n)}r||i(\"227\");var l=!1,u=null,s=!1,c=null,f={onError:function(e){l=!0,u=e}};function d(e,t,n,r,o,a,i,s,c){l=!1,u=null,function(e,t,n,r,o,a,i,l,u){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(c){this.onError(c)}}.apply(f,arguments)}var p=null,h={};function m(){if(p)for(var e in h){var t=h[e],n=p.indexOf(e);if(-1<n||i(\"96\",e),!v[n])for(var r in t.extractEvents||i(\"97\",e),v[n]=t,n=t.eventTypes){var o=void 0,a=n[r],l=t,u=r;y.hasOwnProperty(u)&&i(\"99\",u),y[u]=a;var s=a.phasedRegistrationNames;if(s){for(o in s)s.hasOwnProperty(o)&&g(s[o],l,u);o=!0}else a.registrationName?(g(a.registrationName,l,u),o=!0):o=!1;o||i(\"98\",r,e)}}}function g(e,t,n){b[e]&&i(\"100\",e),b[e]=t,w[e]=t.eventTypes[n].dependencies}var v=[],y={},b={},w={},k=null,x=null,E=null;function S(e,t,n){var r=e.type||\"unknown-event\";e.currentTarget=E(n),function(e,t,n,r,o,a,f,p,h){if(d.apply(this,arguments),l){if(l){var m=u;l=!1,u=null}else i(\"198\"),m=void 0;s||(s=!0,c=m)}}(r,t,void 0,e),e.currentTarget=null}function _(e,t){return null==t&&i(\"30\"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function T(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var C=null;function O(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;r<t.length&&!e.isPropagationStopped();r++)S(e,t[r],n[r]);else t&&S(e,t,n);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}var P={injectEventPluginOrder:function(e){p&&i(\"101\"),p=Array.prototype.slice.call(e),m()},injectEventPluginsByName:function(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var r=e[t];h.hasOwnProperty(t)&&h[t]===r||(h[t]&&i(\"102\",t),h[t]=r,n=!0)}n&&m()}};function A(e,t){var n=e.stateNode;if(!n)return null;var r=k(n);if(!r)return null;n=r[t];e:switch(t){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":(r=!r.disabled)||(r=!(\"button\"===(e=e.type)||\"input\"===e||\"select\"===e||\"textarea\"===e)),e=!r;break e;default:e=!1}return e?null:(n&&\"function\"!=typeof n&&i(\"231\",t,typeof n),n)}function I(e){if(null!==e&&(C=_(C,e)),e=C,C=null,e&&(T(e,O),C&&i(\"95\"),s))throw e=c,s=!1,c=null,e}var R=Math.random().toString(36).slice(2),j=\"__reactInternalInstance$\"+R,N=\"__reactEventHandlers$\"+R;function F(e){if(e[j])return e[j];for(;!e[j];){if(!e.parentNode)return null;e=e.parentNode}return 5===(e=e[j]).tag||6===e.tag?e:null}function M(e){return!(e=e[j])||5!==e.tag&&6!==e.tag?null:e}function L(e){if(5===e.tag||6===e.tag)return e.stateNode;i(\"33\")}function D(e){return e[N]||null}function U(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function z(e,t,n){(t=A(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=_(n._dispatchListeners,t),n._dispatchInstances=_(n._dispatchInstances,e))}function B(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,n=[];t;)n.push(t),t=U(t);for(t=n.length;0<t--;)z(n[t],\"captured\",e);for(t=0;t<n.length;t++)z(n[t],\"bubbled\",e)}}function $(e,t,n){e&&n&&n.dispatchConfig.registrationName&&(t=A(e,n.dispatchConfig.registrationName))&&(n._dispatchListeners=_(n._dispatchListeners,t),n._dispatchInstances=_(n._dispatchInstances,e))}function W(e){e&&e.dispatchConfig.registrationName&&$(e._targetInst,null,e)}function H(e){T(e,B)}var q=!(\"undefined\"==typeof window||!window.document||!window.document.createElement);function V(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[\"Webkit\"+e]=\"webkit\"+t,n[\"Moz\"+e]=\"moz\"+t,n}var G={animationend:V(\"Animation\",\"AnimationEnd\"),animationiteration:V(\"Animation\",\"AnimationIteration\"),animationstart:V(\"Animation\",\"AnimationStart\"),transitionend:V(\"Transition\",\"TransitionEnd\")},K={},Y={};function X(e){if(K[e])return K[e];if(!G[e])return e;var t,n=G[e];for(t in n)if(n.hasOwnProperty(t)&&t in Y)return K[e]=n[t];return e}q&&(Y=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete G.animationend.animation,delete G.animationiteration.animation,delete G.animationstart.animation),\"TransitionEvent\"in window||delete G.transitionend.transition);var Q=X(\"animationend\"),Z=X(\"animationiteration\"),J=X(\"animationstart\"),ee=X(\"transitionend\"),te=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),ne=null,re=null,oe=null;function ae(){if(oe)return oe;var e,t,n=re,r=n.length,o=\"value\"in ne?ne.value:ne.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return oe=o.slice(e,1<t?1-t:void 0)}function ie(){return!0}function le(){return!1}function ue(e,t,n,r){for(var o in this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n,e=this.constructor.Interface)e.hasOwnProperty(o)&&((t=e[o])?this[o]=t(n):\"target\"===o?this.target=r:this[o]=n[o]);return this.isDefaultPrevented=(null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue)?ie:le,this.isPropagationStopped=le,this}function se(e,t,n,r){if(this.eventPool.length){var o=this.eventPool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}function ce(e){e instanceof this||i(\"279\"),e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function fe(e){e.eventPool=[],e.getPooled=se,e.release=ce}o(ue.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():\"unknown\"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ie)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():\"unknown\"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ie)},persist:function(){this.isPersistent=ie},isPersistent:le,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=le,this._dispatchInstances=this._dispatchListeners=null}}),ue.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},ue.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var a=new t;return o(a,n.prototype),n.prototype=a,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,fe(n),n},fe(ue);var de=ue.extend({data:null}),pe=ue.extend({data:null}),he=[9,13,27,32],me=q&&\"CompositionEvent\"in window,ge=null;q&&\"documentMode\"in document&&(ge=document.documentMode);var ve=q&&\"TextEvent\"in window&&!ge,ye=q&&(!me||ge&&8<ge&&11>=ge),be=String.fromCharCode(32),we={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",captured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},ke=!1;function xe(e,t){switch(e){case\"keyup\":return-1!==he.indexOf(t.keyCode);case\"keydown\":return 229!==t.keyCode;case\"keypress\":case\"mousedown\":case\"blur\":return!0;default:return!1}}function Ee(e){return\"object\"==typeof(e=e.detail)&&\"data\"in e?e.data:null}var Se=!1;var _e={eventTypes:we,extractEvents:function(e,t,n,r){var o=void 0,a=void 0;if(me)e:{switch(e){case\"compositionstart\":o=we.compositionStart;break e;case\"compositionend\":o=we.compositionEnd;break e;case\"compositionupdate\":o=we.compositionUpdate;break e}o=void 0}else Se?xe(e,n)&&(o=we.compositionEnd):\"keydown\"===e&&229===n.keyCode&&(o=we.compositionStart);return o?(ye&&\"ko\"!==n.locale&&(Se||o!==we.compositionStart?o===we.compositionEnd&&Se&&(a=ae()):(re=\"value\"in(ne=r)?ne.value:ne.textContent,Se=!0)),o=de.getPooled(o,t,n,r),a?o.data=a:null!==(a=Ee(n))&&(o.data=a),H(o),a=o):a=null,(e=ve?function(e,t){switch(e){case\"compositionend\":return Ee(t);case\"keypress\":return 32!==t.which?null:(ke=!0,be);case\"textInput\":return(e=t.data)===be&&ke?null:e;default:return null}}(e,n):function(e,t){if(Se)return\"compositionend\"===e||!me&&xe(e,t)?(e=ae(),oe=re=ne=null,Se=!1,e):null;switch(e){case\"paste\":return null;case\"keypress\":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case\"compositionend\":return ye&&\"ko\"!==t.locale?null:t.data;default:return null}}(e,n))?((t=pe.getPooled(we.beforeInput,t,n,r)).data=e,H(t)):t=null,null===a?t:null===t?a:[a,t]}},Te=null,Ce=null,Oe=null;function Pe(e){if(e=x(e)){\"function\"!=typeof Te&&i(\"280\");var t=k(e.stateNode);Te(e.stateNode,e.type,t)}}function Ae(e){Ce?Oe?Oe.push(e):Oe=[e]:Ce=e}function Ie(){if(Ce){var e=Ce,t=Oe;if(Oe=Ce=null,Pe(e),t)for(e=0;e<t.length;e++)Pe(t[e])}}function Re(e,t){return e(t)}function je(e,t,n){return e(t,n)}function Ne(){}var Fe=!1;function Me(e,t){if(Fe)return e(t);Fe=!0;try{return Re(e,t)}finally{Fe=!1,(null!==Ce||null!==Oe)&&(Ne(),Ie())}}var Le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function De(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return\"input\"===t?!!Le[e.type]:\"textarea\"===t}function Ue(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function ze(e){if(!q)return!1;var t=(e=\"on\"+e)in document;return t||((t=document.createElement(\"div\")).setAttribute(e,\"return;\"),t=\"function\"==typeof t[e]),t}function Be(e){var t=e.type;return(e=e.nodeName)&&\"input\"===e.toLowerCase()&&(\"checkbox\"===t||\"radio\"===t)}function $e(e){e._valueTracker||(e._valueTracker=function(e){var t=Be(e)?\"checked\":\"value\",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=\"\"+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&\"function\"==typeof n.get&&\"function\"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=\"\"+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=\"\"+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function We(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=\"\";return e&&(r=Be(e)?e.checked?\"true\":\"false\":e.value),(e=r)!==n&&(t.setValue(e),!0)}var He=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;He.hasOwnProperty(\"ReactCurrentDispatcher\")||(He.ReactCurrentDispatcher={current:null});var qe=/^(.*)[\\\\\\/]/,Ve=\"function\"==typeof Symbol&&Symbol.for,Ge=Ve?Symbol.for(\"react.element\"):60103,Ke=Ve?Symbol.for(\"react.portal\"):60106,Ye=Ve?Symbol.for(\"react.fragment\"):60107,Xe=Ve?Symbol.for(\"react.strict_mode\"):60108,Qe=Ve?Symbol.for(\"react.profiler\"):60114,Ze=Ve?Symbol.for(\"react.provider\"):60109,Je=Ve?Symbol.for(\"react.context\"):60110,et=Ve?Symbol.for(\"react.concurrent_mode\"):60111,tt=Ve?Symbol.for(\"react.forward_ref\"):60112,nt=Ve?Symbol.for(\"react.suspense\"):60113,rt=Ve?Symbol.for(\"react.memo\"):60115,ot=Ve?Symbol.for(\"react.lazy\"):60116,at=\"function\"==typeof Symbol&&Symbol.iterator;function it(e){return null===e||\"object\"!=typeof e?null:\"function\"==typeof(e=at&&e[at]||e[\"@@iterator\"])?e:null}function lt(e){if(null==e)return null;if(\"function\"==typeof e)return e.displayName||e.name||null;if(\"string\"==typeof e)return e;switch(e){case et:return\"ConcurrentMode\";case Ye:return\"Fragment\";case Ke:return\"Portal\";case Qe:return\"Profiler\";case Xe:return\"StrictMode\";case nt:return\"Suspense\"}if(\"object\"==typeof e)switch(e.$$typeof){case Je:return\"Context.Consumer\";case Ze:return\"Context.Provider\";case tt:var t=e.render;return t=t.displayName||t.name||\"\",e.displayName||(\"\"!==t?\"ForwardRef(\"+t+\")\":\"ForwardRef\");case rt:return lt(e.type);case ot:if(e=1===e._status?e._result:null)return lt(e)}return null}function ut(e){var t=\"\";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n=\"\";break e;default:var r=e._debugOwner,o=e._debugSource,a=lt(e.type);n=null,r&&(n=lt(r.type)),r=a,a=\"\",o?a=\" (at \"+o.fileName.replace(qe,\"\")+\":\"+o.lineNumber+\")\":n&&(a=\" (created by \"+n+\")\"),n=\"\\n    in \"+(r||\"Unknown\")+a}t+=n,e=e.return}while(e);return t}var st=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ct=Object.prototype.hasOwnProperty,ft={},dt={};function pt(e,t,n,r,o){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t}var ht={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(e){ht[e]=new pt(e,0,!1,e,null)}),[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(e){var t=e[0];ht[t]=new pt(t,1,!1,e[1],null)}),[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(e){ht[e]=new pt(e,2,!1,e.toLowerCase(),null)}),[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(e){ht[e]=new pt(e,2,!1,e,null)}),\"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(e){ht[e]=new pt(e,3,!1,e.toLowerCase(),null)}),[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(e){ht[e]=new pt(e,3,!0,e,null)}),[\"capture\",\"download\"].forEach(function(e){ht[e]=new pt(e,4,!1,e,null)}),[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(e){ht[e]=new pt(e,6,!1,e,null)}),[\"rowSpan\",\"start\"].forEach(function(e){ht[e]=new pt(e,5,!1,e.toLowerCase(),null)});var mt=/[\\-:]([a-z])/g;function gt(e){return e[1].toUpperCase()}function vt(e,t,n,r){var o=ht.hasOwnProperty(t)?ht[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&(\"o\"===t[0]||\"O\"===t[0])&&(\"n\"===t[1]||\"N\"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case\"function\":case\"symbol\":return!0;case\"boolean\":return!r&&(null!==n?!n.acceptsBooleans:\"data-\"!==(e=e.toLowerCase().slice(0,5))&&\"aria-\"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!ct.call(dt,e)||!ct.call(ft,e)&&(st.test(e)?dt[e]=!0:(ft[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,\"\"+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&\"\":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?\"\":\"\"+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}function yt(e){switch(typeof e){case\"boolean\":case\"number\":case\"object\":case\"string\":case\"undefined\":return e;default:return\"\"}}function bt(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function wt(e,t){var n=null==t.defaultValue?\"\":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=yt(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:\"checkbox\"===t.type||\"radio\"===t.type?null!=t.checked:null!=t.value}}function kt(e,t){null!=(t=t.checked)&&vt(e,\"checked\",t,!1)}function xt(e,t){kt(e,t);var n=yt(t.value),r=t.type;if(null!=n)\"number\"===r?(0===n&&\"\"===e.value||e.value!=n)&&(e.value=\"\"+n):e.value!==\"\"+n&&(e.value=\"\"+n);else if(\"submit\"===r||\"reset\"===r)return void e.removeAttribute(\"value\");t.hasOwnProperty(\"value\")?St(e,t.type,n):t.hasOwnProperty(\"defaultValue\")&&St(e,t.type,yt(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Et(e,t,n){if(t.hasOwnProperty(\"value\")||t.hasOwnProperty(\"defaultValue\")){var r=t.type;if(!(\"submit\"!==r&&\"reset\"!==r||void 0!==t.value&&null!==t.value))return;t=\"\"+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}\"\"!==(n=e.name)&&(e.name=\"\"),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!!e._wrapperState.initialChecked,\"\"!==n&&(e.name=n)}function St(e,t,n){\"number\"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=\"\"+e._wrapperState.initialValue:e.defaultValue!==\"\"+n&&(e.defaultValue=\"\"+n))}\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(e){var t=e.replace(mt,gt);ht[t]=new pt(t,1,!1,e,null)}),\"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(e){var t=e.replace(mt,gt);ht[t]=new pt(t,1,!1,e,\"http://www.w3.org/1999/xlink\")}),[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(e){var t=e.replace(mt,gt);ht[t]=new pt(t,1,!1,e,\"http://www.w3.org/XML/1998/namespace\")}),[\"tabIndex\",\"crossOrigin\"].forEach(function(e){ht[e]=new pt(e,1,!1,e.toLowerCase(),null)});var _t={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"blur change click focus input keydown keyup selectionchange\".split(\" \")}};function Tt(e,t,n){return(e=ue.getPooled(_t.change,e,t,n)).type=\"change\",Ae(n),H(e),e}var Ct=null,Ot=null;function Pt(e){I(e)}function At(e){if(We(L(e)))return e}function It(e,t){if(\"change\"===e)return t}var Rt=!1;function jt(){Ct&&(Ct.detachEvent(\"onpropertychange\",Nt),Ot=Ct=null)}function Nt(e){\"value\"===e.propertyName&&At(Ot)&&Me(Pt,e=Tt(Ot,e,Ue(e)))}function Ft(e,t,n){\"focus\"===e?(jt(),Ot=n,(Ct=t).attachEvent(\"onpropertychange\",Nt)):\"blur\"===e&&jt()}function Mt(e){if(\"selectionchange\"===e||\"keyup\"===e||\"keydown\"===e)return At(Ot)}function Lt(e,t){if(\"click\"===e)return At(t)}function Dt(e,t){if(\"input\"===e||\"change\"===e)return At(t)}q&&(Rt=ze(\"input\")&&(!document.documentMode||9<document.documentMode));var Ut={eventTypes:_t,_isInputEventSupported:Rt,extractEvents:function(e,t,n,r){var o=t?L(t):window,a=void 0,i=void 0,l=o.nodeName&&o.nodeName.toLowerCase();if(\"select\"===l||\"input\"===l&&\"file\"===o.type?a=It:De(o)?Rt?a=Dt:(a=Mt,i=Ft):(l=o.nodeName)&&\"input\"===l.toLowerCase()&&(\"checkbox\"===o.type||\"radio\"===o.type)&&(a=Lt),a&&(a=a(e,t)))return Tt(a,n,r);i&&i(e,o,t),\"blur\"===e&&(e=o._wrapperState)&&e.controlled&&\"number\"===o.type&&St(o,\"number\",o.value)}},zt=ue.extend({view:null,detail:null}),Bt={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function $t(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Bt[e])&&!!t[e]}function Wt(){return $t}var Ht=0,qt=0,Vt=!1,Gt=!1,Kt=zt.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Wt,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},movementX:function(e){if(\"movementX\"in e)return e.movementX;var t=Ht;return Ht=e.screenX,Vt?\"mousemove\"===e.type?e.screenX-t:0:(Vt=!0,0)},movementY:function(e){if(\"movementY\"in e)return e.movementY;var t=qt;return qt=e.screenY,Gt?\"mousemove\"===e.type?e.screenY-t:0:(Gt=!0,0)}}),Yt=Kt.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Xt={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"mouseout\",\"mouseover\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"mouseout\",\"mouseover\"]},pointerEnter:{registrationName:\"onPointerEnter\",dependencies:[\"pointerout\",\"pointerover\"]},pointerLeave:{registrationName:\"onPointerLeave\",dependencies:[\"pointerout\",\"pointerover\"]}},Qt={eventTypes:Xt,extractEvents:function(e,t,n,r){var o=\"mouseover\"===e||\"pointerover\"===e,a=\"mouseout\"===e||\"pointerout\"===e;if(o&&(n.relatedTarget||n.fromElement)||!a&&!o)return null;if(o=r.window===r?r:(o=r.ownerDocument)?o.defaultView||o.parentWindow:window,a?(a=t,t=(t=n.relatedTarget||n.toElement)?F(t):null):a=null,a===t)return null;var i=void 0,l=void 0,u=void 0,s=void 0;\"mouseout\"===e||\"mouseover\"===e?(i=Kt,l=Xt.mouseLeave,u=Xt.mouseEnter,s=\"mouse\"):\"pointerout\"!==e&&\"pointerover\"!==e||(i=Yt,l=Xt.pointerLeave,u=Xt.pointerEnter,s=\"pointer\");var c=null==a?o:L(a);if(o=null==t?o:L(t),(e=i.getPooled(l,a,n,r)).type=s+\"leave\",e.target=c,e.relatedTarget=o,(n=i.getPooled(u,t,n,r)).type=s+\"enter\",n.target=o,n.relatedTarget=c,r=t,a&&r)e:{for(o=r,s=0,i=t=a;i;i=U(i))s++;for(i=0,u=o;u;u=U(u))i++;for(;0<s-i;)t=U(t),s--;for(;0<i-s;)o=U(o),i--;for(;s--;){if(t===o||t===o.alternate)break e;t=U(t),o=U(o)}t=null}else t=null;for(o=t,t=[];a&&a!==o&&(null===(s=a.alternate)||s!==o);)t.push(a),a=U(a);for(a=[];r&&r!==o&&(null===(s=r.alternate)||s!==o);)a.push(r),r=U(r);for(r=0;r<t.length;r++)$(t[r],\"bubbled\",e);for(r=a.length;0<r--;)$(a[r],\"captured\",n);return[e,n]}};function Zt(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}var Jt=Object.prototype.hasOwnProperty;function en(e,t){if(Zt(e,t))return!0;if(\"object\"!=typeof e||null===e||\"object\"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!Jt.call(t,n[r])||!Zt(e[n[r]],t[n[r]]))return!1;return!0}function tn(e){var t=e;if(e.alternate)for(;t.return;)t=t.return;else{if(0!=(2&t.effectTag))return 1;for(;t.return;)if(0!=(2&(t=t.return).effectTag))return 1}return 3===t.tag?2:3}function nn(e){2!==tn(e)&&i(\"188\")}function rn(e){if(!(e=function(e){var t=e.alternate;if(!t)return 3===(t=tn(e))&&i(\"188\"),1===t?null:e;for(var n=e,r=t;;){var o=n.return,a=o?o.alternate:null;if(!o||!a)break;if(o.child===a.child){for(var l=o.child;l;){if(l===n)return nn(o),e;if(l===r)return nn(o),t;l=l.sibling}i(\"188\")}if(n.return!==r.return)n=o,r=a;else{l=!1;for(var u=o.child;u;){if(u===n){l=!0,n=o,r=a;break}if(u===r){l=!0,r=o,n=a;break}u=u.sibling}if(!l){for(u=a.child;u;){if(u===n){l=!0,n=a,r=o;break}if(u===r){l=!0,r=a,n=o;break}u=u.sibling}l||i(\"189\")}}n.alternate!==r&&i(\"190\")}return 3!==n.tag&&i(\"188\"),n.stateNode.current===n?e:t}(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}var on=ue.extend({animationName:null,elapsedTime:null,pseudoElement:null}),an=ue.extend({clipboardData:function(e){return\"clipboardData\"in e?e.clipboardData:window.clipboardData}}),ln=zt.extend({relatedTarget:null});function un(e){var t=e.keyCode;return\"charCode\"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}var sn={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},cn={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},fn=zt.extend({key:function(e){if(e.key){var t=sn[e.key]||e.key;if(\"Unidentified\"!==t)return t}return\"keypress\"===e.type?13===(e=un(e))?\"Enter\":String.fromCharCode(e):\"keydown\"===e.type||\"keyup\"===e.type?cn[e.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Wt,charCode:function(e){return\"keypress\"===e.type?un(e):0},keyCode:function(e){return\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0},which:function(e){return\"keypress\"===e.type?un(e):\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0}}),dn=Kt.extend({dataTransfer:null}),pn=zt.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Wt}),hn=ue.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),mn=Kt.extend({deltaX:function(e){return\"deltaX\"in e?e.deltaX:\"wheelDeltaX\"in e?-e.wheelDeltaX:0},deltaY:function(e){return\"deltaY\"in e?e.deltaY:\"wheelDeltaY\"in e?-e.wheelDeltaY:\"wheelDelta\"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),gn=[[\"abort\",\"abort\"],[Q,\"animationEnd\"],[Z,\"animationIteration\"],[J,\"animationStart\"],[\"canplay\",\"canPlay\"],[\"canplaythrough\",\"canPlayThrough\"],[\"drag\",\"drag\"],[\"dragenter\",\"dragEnter\"],[\"dragexit\",\"dragExit\"],[\"dragleave\",\"dragLeave\"],[\"dragover\",\"dragOver\"],[\"durationchange\",\"durationChange\"],[\"emptied\",\"emptied\"],[\"encrypted\",\"encrypted\"],[\"ended\",\"ended\"],[\"error\",\"error\"],[\"gotpointercapture\",\"gotPointerCapture\"],[\"load\",\"load\"],[\"loadeddata\",\"loadedData\"],[\"loadedmetadata\",\"loadedMetadata\"],[\"loadstart\",\"loadStart\"],[\"lostpointercapture\",\"lostPointerCapture\"],[\"mousemove\",\"mouseMove\"],[\"mouseout\",\"mouseOut\"],[\"mouseover\",\"mouseOver\"],[\"playing\",\"playing\"],[\"pointermove\",\"pointerMove\"],[\"pointerout\",\"pointerOut\"],[\"pointerover\",\"pointerOver\"],[\"progress\",\"progress\"],[\"scroll\",\"scroll\"],[\"seeking\",\"seeking\"],[\"stalled\",\"stalled\"],[\"suspend\",\"suspend\"],[\"timeupdate\",\"timeUpdate\"],[\"toggle\",\"toggle\"],[\"touchmove\",\"touchMove\"],[ee,\"transitionEnd\"],[\"waiting\",\"waiting\"],[\"wheel\",\"wheel\"]],vn={},yn={};function bn(e,t){var n=e[0],r=\"on\"+((e=e[1])[0].toUpperCase()+e.slice(1));t={phasedRegistrationNames:{bubbled:r,captured:r+\"Capture\"},dependencies:[n],isInteractive:t},vn[e]=t,yn[n]=t}[[\"blur\",\"blur\"],[\"cancel\",\"cancel\"],[\"click\",\"click\"],[\"close\",\"close\"],[\"contextmenu\",\"contextMenu\"],[\"copy\",\"copy\"],[\"cut\",\"cut\"],[\"auxclick\",\"auxClick\"],[\"dblclick\",\"doubleClick\"],[\"dragend\",\"dragEnd\"],[\"dragstart\",\"dragStart\"],[\"drop\",\"drop\"],[\"focus\",\"focus\"],[\"input\",\"input\"],[\"invalid\",\"invalid\"],[\"keydown\",\"keyDown\"],[\"keypress\",\"keyPress\"],[\"keyup\",\"keyUp\"],[\"mousedown\",\"mouseDown\"],[\"mouseup\",\"mouseUp\"],[\"paste\",\"paste\"],[\"pause\",\"pause\"],[\"play\",\"play\"],[\"pointercancel\",\"pointerCancel\"],[\"pointerdown\",\"pointerDown\"],[\"pointerup\",\"pointerUp\"],[\"ratechange\",\"rateChange\"],[\"reset\",\"reset\"],[\"seeked\",\"seeked\"],[\"submit\",\"submit\"],[\"touchcancel\",\"touchCancel\"],[\"touchend\",\"touchEnd\"],[\"touchstart\",\"touchStart\"],[\"volumechange\",\"volumeChange\"]].forEach(function(e){bn(e,!0)}),gn.forEach(function(e){bn(e,!1)});var wn={eventTypes:vn,isInteractiveTopLevelEventType:function(e){return void 0!==(e=yn[e])&&!0===e.isInteractive},extractEvents:function(e,t,n,r){var o=yn[e];if(!o)return null;switch(e){case\"keypress\":if(0===un(n))return null;case\"keydown\":case\"keyup\":e=fn;break;case\"blur\":case\"focus\":e=ln;break;case\"click\":if(2===n.button)return null;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":e=Kt;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":e=dn;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":e=pn;break;case Q:case Z:case J:e=on;break;case ee:e=hn;break;case\"scroll\":e=zt;break;case\"wheel\":e=mn;break;case\"copy\":case\"cut\":case\"paste\":e=an;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":e=Yt;break;default:e=ue}return H(t=e.getPooled(o,t,n,r)),t}},kn=wn.isInteractiveTopLevelEventType,xn=[];function En(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r;for(r=n;r.return;)r=r.return;if(!(r=3!==r.tag?null:r.stateNode.containerInfo))break;e.ancestors.push(n),n=F(r)}while(n);for(n=0;n<e.ancestors.length;n++){t=e.ancestors[n];var o=Ue(e.nativeEvent);r=e.topLevelType;for(var a=e.nativeEvent,i=null,l=0;l<v.length;l++){var u=v[l];u&&(u=u.extractEvents(r,t,a,o))&&(i=_(i,u))}I(i)}}var Sn=!0;function _n(e,t){if(!t)return null;var n=(kn(e)?Cn:On).bind(null,e);t.addEventListener(e,n,!1)}function Tn(e,t){if(!t)return null;var n=(kn(e)?Cn:On).bind(null,e);t.addEventListener(e,n,!0)}function Cn(e,t){je(On,e,t)}function On(e,t){if(Sn){var n=Ue(t);if(null===(n=F(n))||\"number\"!=typeof n.tag||2===tn(n)||(n=null),xn.length){var r=xn.pop();r.topLevelType=e,r.nativeEvent=t,r.targetInst=n,e=r}else e={topLevelType:e,nativeEvent:t,targetInst:n,ancestors:[]};try{Me(En,e)}finally{e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,10>xn.length&&xn.push(e)}}}var Pn={},An=0,In=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);function Rn(e){return Object.prototype.hasOwnProperty.call(e,In)||(e[In]=An++,Pn[e[In]]={}),Pn[e[In]]}function jn(e){if(void 0===(e=e||(\"undefined\"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Nn(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Fn(e,t){var n,r=Nn(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Nn(r)}}function Mn(){for(var e=window,t=jn();t instanceof e.HTMLIFrameElement;){try{var n=\"string\"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=jn((e=t.contentWindow).document)}return t}function Ln(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(\"input\"===t&&(\"text\"===e.type||\"search\"===e.type||\"tel\"===e.type||\"url\"===e.type||\"password\"===e.type)||\"textarea\"===t||\"true\"===e.contentEditable)}function Dn(e){var t=Mn(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&function e(t,n){return!(!t||!n)&&(t===n||(!t||3!==t.nodeType)&&(n&&3===n.nodeType?e(t,n.parentNode):\"contains\"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(n.ownerDocument.documentElement,n)){if(null!==r&&Ln(n))if(t=r.start,void 0===(e=r.end)&&(e=t),\"selectionStart\"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=Fn(n,a);var i=Fn(n,r);o&&i&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(\"function\"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Un=q&&\"documentMode\"in document&&11>=document.documentMode,zn={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},Bn=null,$n=null,Wn=null,Hn=!1;function qn(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return Hn||null==Bn||Bn!==jn(n)?null:(\"selectionStart\"in(n=Bn)&&Ln(n)?n={start:n.selectionStart,end:n.selectionEnd}:n={anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},Wn&&en(Wn,n)?null:(Wn=n,(e=ue.getPooled(zn.select,$n,e,t)).type=\"select\",e.target=Bn,H(e),e))}var Vn={eventTypes:zn,extractEvents:function(e,t,n,r){var o,a=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(o=!a)){e:{a=Rn(a),o=w.onSelect;for(var i=0;i<o.length;i++){var l=o[i];if(!a.hasOwnProperty(l)||!a[l]){a=!1;break e}}a=!0}o=!a}if(o)return null;switch(a=t?L(t):window,e){case\"focus\":(De(a)||\"true\"===a.contentEditable)&&(Bn=a,$n=t,Wn=null);break;case\"blur\":Wn=$n=Bn=null;break;case\"mousedown\":Hn=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":return Hn=!1,qn(n,r);case\"selectionchange\":if(Un)break;case\"keydown\":case\"keyup\":return qn(n,r)}return null}};function Gn(e,t){return e=o({children:void 0},t),(t=function(e){var t=\"\";return r.Children.forEach(e,function(e){null!=e&&(t+=e)}),t}(t.children))&&(e.children=t),e}function Kn(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t[\"$\"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty(\"$\"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=\"\"+yt(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function Yn(e,t){return null!=t.dangerouslySetInnerHTML&&i(\"91\"),o({},t,{value:void 0,defaultValue:void 0,children:\"\"+e._wrapperState.initialValue})}function Xn(e,t){var n=t.value;null==n&&(n=t.defaultValue,null!=(t=t.children)&&(null!=n&&i(\"92\"),Array.isArray(t)&&(1>=t.length||i(\"93\"),t=t[0]),n=t),null==n&&(n=\"\")),e._wrapperState={initialValue:yt(n)}}function Qn(e,t){var n=yt(t.value),r=yt(t.defaultValue);null!=n&&((n=\"\"+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=\"\"+r)}function Zn(e){var t=e.textContent;t===e._wrapperState.initialValue&&(e.value=t)}P.injectEventPluginOrder(\"ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \")),k=D,x=M,E=L,P.injectEventPluginsByName({SimpleEventPlugin:wn,EnterLeaveEventPlugin:Qt,ChangeEventPlugin:Ut,SelectEventPlugin:Vn,BeforeInputEventPlugin:_e});var Jn={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};function er(e){switch(e){case\"svg\":return\"http://www.w3.org/2000/svg\";case\"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function tr(e,t){return null==e||\"http://www.w3.org/1999/xhtml\"===e?er(t):\"http://www.w3.org/2000/svg\"===e&&\"foreignObject\"===t?\"http://www.w3.org/1999/xhtml\":e}var nr,rr=void 0,or=(nr=function(e,t){if(e.namespaceURI!==Jn.svg||\"innerHTML\"in e)e.innerHTML=t;else{for((rr=rr||document.createElement(\"div\")).innerHTML=\"<svg>\"+t+\"</svg>\",t=rr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},\"undefined\"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction(function(){return nr(e,t)})}:nr);function ar(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ir={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},lr=[\"Webkit\",\"ms\",\"Moz\",\"O\"];function ur(e,t,n){return null==t||\"boolean\"==typeof t||\"\"===t?\"\":n||\"number\"!=typeof t||0===t||ir.hasOwnProperty(e)&&ir[e]?(\"\"+t).trim():t+\"px\"}function sr(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf(\"--\"),o=ur(n,t[n],r);\"float\"===n&&(n=\"cssFloat\"),r?e.setProperty(n,o):e[n]=o}}Object.keys(ir).forEach(function(e){lr.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ir[t]=ir[e]})});var cr=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function fr(e,t){t&&(cr[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML)&&i(\"137\",e,\"\"),null!=t.dangerouslySetInnerHTML&&(null!=t.children&&i(\"60\"),\"object\"==typeof t.dangerouslySetInnerHTML&&\"__html\"in t.dangerouslySetInnerHTML||i(\"61\")),null!=t.style&&\"object\"!=typeof t.style&&i(\"62\",\"\"))}function dr(e,t){if(-1===e.indexOf(\"-\"))return\"string\"==typeof t.is;switch(e){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}function pr(e,t){var n=Rn(e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument);t=w[t];for(var r=0;r<t.length;r++){var o=t[r];if(!n.hasOwnProperty(o)||!n[o]){switch(o){case\"scroll\":Tn(\"scroll\",e);break;case\"focus\":case\"blur\":Tn(\"focus\",e),Tn(\"blur\",e),n.blur=!0,n.focus=!0;break;case\"cancel\":case\"close\":ze(o)&&Tn(o,e);break;case\"invalid\":case\"submit\":case\"reset\":break;default:-1===te.indexOf(o)&&_n(o,e)}n[o]=!0}}}function hr(){}var mr=null,gr=null;function vr(e,t){switch(e){case\"button\":case\"input\":case\"select\":case\"textarea\":return!!t.autoFocus}return!1}function yr(e,t){return\"textarea\"===e||\"option\"===e||\"noscript\"===e||\"string\"==typeof t.children||\"number\"==typeof t.children||\"object\"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var br=\"function\"==typeof setTimeout?setTimeout:void 0,wr=\"function\"==typeof clearTimeout?clearTimeout:void 0,kr=a.unstable_scheduleCallback,xr=a.unstable_cancelCallback;function Er(e){for(e=e.nextSibling;e&&1!==e.nodeType&&3!==e.nodeType;)e=e.nextSibling;return e}function Sr(e){for(e=e.firstChild;e&&1!==e.nodeType&&3!==e.nodeType;)e=e.nextSibling;return e}new Set;var _r=[],Tr=-1;function Cr(e){0>Tr||(e.current=_r[Tr],_r[Tr]=null,Tr--)}function Or(e,t){_r[++Tr]=e.current,e.current=t}var Pr={},Ar={current:Pr},Ir={current:!1},Rr=Pr;function jr(e,t){var n=e.type.contextTypes;if(!n)return Pr;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Nr(e){return null!=(e=e.childContextTypes)}function Fr(e){Cr(Ir),Cr(Ar)}function Mr(e){Cr(Ir),Cr(Ar)}function Lr(e,t,n){Ar.current!==Pr&&i(\"168\"),Or(Ar,t),Or(Ir,n)}function Dr(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,\"function\"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())a in e||i(\"108\",lt(t)||\"Unknown\",a);return o({},n,r)}function Ur(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Pr,Rr=Ar.current,Or(Ar,t),Or(Ir,Ir.current),!0}function zr(e,t,n){var r=e.stateNode;r||i(\"169\"),n?(t=Dr(e,t,Rr),r.__reactInternalMemoizedMergedChildContext=t,Cr(Ir),Cr(Ar),Or(Ar,t)):Cr(Ir),Or(Ir,n)}var Br=null,$r=null;function Wr(e){return function(t){try{return e(t)}catch(n){}}}function Hr(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.contextDependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function qr(e,t,n,r){return new Hr(e,t,n,r)}function Vr(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Gr(e,t){var n=e.alternate;return null===n?((n=qr(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,n.contextDependencies=e.contextDependencies,n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Kr(e,t,n,r,o,a){var l=2;if(r=e,\"function\"==typeof e)Vr(e)&&(l=1);else if(\"string\"==typeof e)l=5;else e:switch(e){case Ye:return Yr(n.children,o,a,t);case et:return Xr(n,3|o,a,t);case Xe:return Xr(n,2|o,a,t);case Qe:return(e=qr(12,n,t,4|o)).elementType=Qe,e.type=Qe,e.expirationTime=a,e;case nt:return(e=qr(13,n,t,o)).elementType=nt,e.type=nt,e.expirationTime=a,e;default:if(\"object\"==typeof e&&null!==e)switch(e.$$typeof){case Ze:l=10;break e;case Je:l=9;break e;case tt:l=11;break e;case rt:l=14;break e;case ot:l=16,r=null;break e}i(\"130\",null==e?e:typeof e,\"\")}return(t=qr(l,n,t,o)).elementType=e,t.type=r,t.expirationTime=a,t}function Yr(e,t,n,r){return(e=qr(7,e,r,t)).expirationTime=n,e}function Xr(e,t,n,r){return e=qr(8,e,r,t),t=0==(1&t)?Xe:et,e.elementType=t,e.type=t,e.expirationTime=n,e}function Qr(e,t,n){return(e=qr(6,e,null,t)).expirationTime=n,e}function Zr(e,t,n){return(t=qr(4,null!==e.children?e.children:[],e.key,t)).expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Jr(e,t){e.didError=!1;var n=e.earliestPendingTime;0===n?e.earliestPendingTime=e.latestPendingTime=t:n<t?e.earliestPendingTime=t:e.latestPendingTime>t&&(e.latestPendingTime=t),no(t,e)}function eo(e,t){e.didError=!1,e.latestPingedTime>=t&&(e.latestPingedTime=0);var n=e.earliestPendingTime,r=e.latestPendingTime;n===t?e.earliestPendingTime=r===t?e.latestPendingTime=0:r:r===t&&(e.latestPendingTime=n),n=e.earliestSuspendedTime,r=e.latestSuspendedTime,0===n?e.earliestSuspendedTime=e.latestSuspendedTime=t:n<t?e.earliestSuspendedTime=t:r>t&&(e.latestSuspendedTime=t),no(t,e)}function to(e,t){var n=e.earliestPendingTime;return n>t&&(t=n),(e=e.earliestSuspendedTime)>t&&(t=e),t}function no(e,t){var n=t.earliestSuspendedTime,r=t.latestSuspendedTime,o=t.earliestPendingTime,a=t.latestPingedTime;0===(o=0!==o?o:a)&&(0===e||r<e)&&(o=r),0!==(e=o)&&n>e&&(e=n),t.nextExpirationTimeToWorkOn=o,t.expirationTime=e}function ro(e,t){if(e&&e.defaultProps)for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}var oo=(new r.Component).refs;function ao(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,null!==(r=e.updateQueue)&&0===e.expirationTime&&(r.baseState=n)}var io={isMounted:function(e){return!!(e=e._reactInternalFiber)&&2===tn(e)},enqueueSetState:function(e,t,n){e=e._reactInternalFiber;var r=xl(),o=Xa(r=Yi(r,e));o.payload=t,null!=n&&(o.callback=n),Wi(),Za(e,o),Zi(e,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternalFiber;var r=xl(),o=Xa(r=Yi(r,e));o.tag=Ha,o.payload=t,null!=n&&(o.callback=n),Wi(),Za(e,o),Zi(e,r)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var n=xl(),r=Xa(n=Yi(n,e));r.tag=qa,null!=t&&(r.callback=t),Wi(),Za(e,r),Zi(e,n)}};function lo(e,t,n,r,o,a,i){return\"function\"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!en(n,r)||!en(o,a))}function uo(e,t,n){var r=!1,o=Pr,a=t.contextType;return\"object\"==typeof a&&null!==a?a=$a(a):(o=Nr(t)?Rr:Ar.current,a=(r=null!=(r=t.contextTypes))?jr(e,o):Pr),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=io,e.stateNode=t,t._reactInternalFiber=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function so(e,t,n,r){e=t.state,\"function\"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),\"function\"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&io.enqueueReplaceState(t,t.state,null)}function co(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=oo;var a=t.contextType;\"object\"==typeof a&&null!==a?o.context=$a(a):(a=Nr(t)?Rr:Ar.current,o.context=jr(e,a)),null!==(a=e.updateQueue)&&(ni(e,a,n,o,r),o.state=e.memoizedState),\"function\"==typeof(a=t.getDerivedStateFromProps)&&(ao(e,t,a,n),o.state=e.memoizedState),\"function\"==typeof t.getDerivedStateFromProps||\"function\"==typeof o.getSnapshotBeforeUpdate||\"function\"!=typeof o.UNSAFE_componentWillMount&&\"function\"!=typeof o.componentWillMount||(t=o.state,\"function\"==typeof o.componentWillMount&&o.componentWillMount(),\"function\"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&io.enqueueReplaceState(o,o.state,null),null!==(a=e.updateQueue)&&(ni(e,a,n,o,r),o.state=e.memoizedState)),\"function\"==typeof o.componentDidMount&&(e.effectTag|=4)}var fo=Array.isArray;function po(e,t,n){if(null!==(e=n.ref)&&\"function\"!=typeof e&&\"object\"!=typeof e){if(n._owner){n=n._owner;var r=void 0;n&&(1!==n.tag&&i(\"309\"),r=n.stateNode),r||i(\"147\",e);var o=\"\"+e;return null!==t&&null!==t.ref&&\"function\"==typeof t.ref&&t.ref._stringRef===o?t.ref:((t=function(e){var t=r.refs;t===oo&&(t=r.refs={}),null===e?delete t[o]:t[o]=e})._stringRef=o,t)}\"string\"!=typeof e&&i(\"284\"),n._owner||i(\"290\",e)}return e}function ho(e,t){\"textarea\"!==e.type&&i(\"31\",\"[object Object]\"===Object.prototype.toString.call(t)?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":t,\"\")}function mo(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t,n){return(e=Gr(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.effectTag=2,n):r:(t.effectTag=2,n):n}function l(t){return e&&null===t.alternate&&(t.effectTag=2),t}function u(e,t,n,r){return null===t||6!==t.tag?((t=Qr(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function s(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=po(e,t,n),r.return=e,r):((r=Kr(n.type,n.key,n.props,null,e.mode,r)).ref=po(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Zr(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function f(e,t,n,r,a){return null===t||7!==t.tag?((t=Yr(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function d(e,t,n){if(\"string\"==typeof t||\"number\"==typeof t)return(t=Qr(\"\"+t,e.mode,n)).return=e,t;if(\"object\"==typeof t&&null!==t){switch(t.$$typeof){case Ge:return(n=Kr(t.type,t.key,t.props,null,e.mode,n)).ref=po(e,null,t),n.return=e,n;case Ke:return(t=Zr(t,e.mode,n)).return=e,t}if(fo(t)||it(t))return(t=Yr(t,e.mode,n,null)).return=e,t;ho(e,t)}return null}function p(e,t,n,r){var o=null!==t?t.key:null;if(\"string\"==typeof n||\"number\"==typeof n)return null!==o?null:u(e,t,\"\"+n,r);if(\"object\"==typeof n&&null!==n){switch(n.$$typeof){case Ge:return n.key===o?n.type===Ye?f(e,t,n.props.children,r,o):s(e,t,n,r):null;case Ke:return n.key===o?c(e,t,n,r):null}if(fo(n)||it(n))return null!==o?null:f(e,t,n,r,null);ho(e,n)}return null}function h(e,t,n,r,o){if(\"string\"==typeof r||\"number\"==typeof r)return u(t,e=e.get(n)||null,\"\"+r,o);if(\"object\"==typeof r&&null!==r){switch(r.$$typeof){case Ge:return e=e.get(null===r.key?n:r.key)||null,r.type===Ye?f(t,e,r.props.children,o,r.key):s(t,e,r,o);case Ke:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(fo(r)||it(r))return f(t,e=e.get(n)||null,r,o,null);ho(t,r)}return null}function m(o,i,l,u){for(var s=null,c=null,f=i,m=i=0,g=null;null!==f&&m<l.length;m++){f.index>m?(g=f,f=null):g=f.sibling;var v=p(o,f,l[m],u);if(null===v){null===f&&(f=g);break}e&&f&&null===v.alternate&&t(o,f),i=a(v,i,m),null===c?s=v:c.sibling=v,c=v,f=g}if(m===l.length)return n(o,f),s;if(null===f){for(;m<l.length;m++)(f=d(o,l[m],u))&&(i=a(f,i,m),null===c?s=f:c.sibling=f,c=f);return s}for(f=r(o,f);m<l.length;m++)(g=h(f,o,m,l[m],u))&&(e&&null!==g.alternate&&f.delete(null===g.key?m:g.key),i=a(g,i,m),null===c?s=g:c.sibling=g,c=g);return e&&f.forEach(function(e){return t(o,e)}),s}function g(o,l,u,s){var c=it(u);\"function\"!=typeof c&&i(\"150\"),null==(u=c.call(u))&&i(\"151\");for(var f=c=null,m=l,g=l=0,v=null,y=u.next();null!==m&&!y.done;g++,y=u.next()){m.index>g?(v=m,m=null):v=m.sibling;var b=p(o,m,y.value,s);if(null===b){m||(m=v);break}e&&m&&null===b.alternate&&t(o,m),l=a(b,l,g),null===f?c=b:f.sibling=b,f=b,m=v}if(y.done)return n(o,m),c;if(null===m){for(;!y.done;g++,y=u.next())null!==(y=d(o,y.value,s))&&(l=a(y,l,g),null===f?c=y:f.sibling=y,f=y);return c}for(m=r(o,m);!y.done;g++,y=u.next())null!==(y=h(m,o,g,y.value,s))&&(e&&null!==y.alternate&&m.delete(null===y.key?g:y.key),l=a(y,l,g),null===f?c=y:f.sibling=y,f=y);return e&&m.forEach(function(e){return t(o,e)}),c}return function(e,r,a,u){var s=\"object\"==typeof a&&null!==a&&a.type===Ye&&null===a.key;s&&(a=a.props.children);var c=\"object\"==typeof a&&null!==a;if(c)switch(a.$$typeof){case Ge:e:{for(c=a.key,s=r;null!==s;){if(s.key===c){if(7===s.tag?a.type===Ye:s.elementType===a.type){n(e,s.sibling),(r=o(s,a.type===Ye?a.props.children:a.props)).ref=po(e,s,a),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}a.type===Ye?((r=Yr(a.props.children,e.mode,u,a.key)).return=e,e=r):((u=Kr(a.type,a.key,a.props,null,e.mode,u)).ref=po(e,r,a),u.return=e,e=u)}return l(e);case Ke:e:{for(s=a.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=o(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Zr(a,e.mode,u)).return=e,e=r}return l(e)}if(\"string\"==typeof a||\"number\"==typeof a)return a=\"\"+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,a)).return=e,e=r):(n(e,r),(r=Qr(a,e.mode,u)).return=e,e=r),l(e);if(fo(a))return m(e,r,a,u);if(it(a))return g(e,r,a,u);if(c&&ho(e,a),void 0===a&&!s)switch(e.tag){case 1:case 0:i(\"152\",(u=e.type).displayName||u.name||\"Component\")}return n(e,r)}}var go=mo(!0),vo=mo(!1),yo={},bo={current:yo},wo={current:yo},ko={current:yo};function xo(e){return e===yo&&i(\"174\"),e}function Eo(e,t){Or(ko,t),Or(wo,e),Or(bo,yo);var n=t.nodeType;switch(n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:tr(null,\"\");break;default:t=tr(t=(n=8===n?t.parentNode:t).namespaceURI||null,n=n.tagName)}Cr(bo),Or(bo,t)}function So(e){Cr(bo),Cr(wo),Cr(ko)}function _o(e){xo(ko.current);var t=xo(bo.current),n=tr(t,e.type);t!==n&&(Or(wo,e),Or(bo,n))}function To(e){wo.current===e&&(Cr(bo),Cr(wo))}var Co=0,Oo=2,Po=4,Ao=8,Io=16,Ro=32,jo=64,No=128,Fo=He.ReactCurrentDispatcher,Mo=0,Lo=null,Do=null,Uo=null,zo=null,Bo=null,$o=null,Wo=0,Ho=null,qo=0,Vo=!1,Go=null,Ko=0;function Yo(){i(\"321\")}function Xo(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Zt(e[n],t[n]))return!1;return!0}function Qo(e,t,n,r,o,a){if(Mo=a,Lo=t,Uo=null!==e?e.memoizedState:null,Fo.current=null===Uo?ca:fa,t=n(r,o),Vo){do{Vo=!1,Ko+=1,Uo=null!==e?e.memoizedState:null,$o=zo,Ho=Bo=Do=null,Fo.current=fa,t=n(r,o)}while(Vo);Go=null,Ko=0}return Fo.current=sa,(e=Lo).memoizedState=zo,e.expirationTime=Wo,e.updateQueue=Ho,e.effectTag|=qo,e=null!==Do&&null!==Do.next,Mo=0,$o=Bo=zo=Uo=Do=Lo=null,Wo=0,Ho=null,qo=0,e&&i(\"300\"),t}function Zo(){Fo.current=sa,Mo=0,$o=Bo=zo=Uo=Do=Lo=null,Wo=0,Ho=null,qo=0,Vo=!1,Go=null,Ko=0}function Jo(){var e={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return null===Bo?zo=Bo=e:Bo=Bo.next=e,Bo}function ea(){if(null!==$o)$o=(Bo=$o).next,Uo=null!==(Do=Uo)?Do.next:null;else{null===Uo&&i(\"310\");var e={memoizedState:(Do=Uo).memoizedState,baseState:Do.baseState,queue:Do.queue,baseUpdate:Do.baseUpdate,next:null};Bo=null===Bo?zo=e:Bo.next=e,Uo=Do.next}return Bo}function ta(e,t){return\"function\"==typeof t?t(e):t}function na(e){var t=ea(),n=t.queue;if(null===n&&i(\"311\"),n.lastRenderedReducer=e,0<Ko){var r=n.dispatch;if(null!==Go){var o=Go.get(n);if(void 0!==o){Go.delete(n);var a=t.memoizedState;do{a=e(a,o.action),o=o.next}while(null!==o);return Zt(a,t.memoizedState)||(xa=!0),t.memoizedState=a,t.baseUpdate===n.last&&(t.baseState=a),n.lastRenderedState=a,[a,r]}}return[t.memoizedState,r]}r=n.last;var l=t.baseUpdate;if(a=t.baseState,null!==l?(null!==r&&(r.next=null),r=l.next):r=null!==r?r.next:null,null!==r){var u=o=null,s=r,c=!1;do{var f=s.expirationTime;f<Mo?(c||(c=!0,u=l,o=a),f>Wo&&(Wo=f)):a=s.eagerReducer===e?s.eagerState:e(a,s.action),l=s,s=s.next}while(null!==s&&s!==r);c||(u=l,o=a),Zt(a,t.memoizedState)||(xa=!0),t.memoizedState=a,t.baseUpdate=u,t.baseState=o,n.lastRenderedState=a}return[t.memoizedState,n.dispatch]}function ra(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===Ho?(Ho={lastEffect:null}).lastEffect=e.next=e:null===(t=Ho.lastEffect)?Ho.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,Ho.lastEffect=e),e}function oa(e,t,n,r){var o=Jo();qo|=e,o.memoizedState=ra(t,n,void 0,void 0===r?null:r)}function aa(e,t,n,r){var o=ea();r=void 0===r?null:r;var a=void 0;if(null!==Do){var i=Do.memoizedState;if(a=i.destroy,null!==r&&Xo(r,i.deps))return void ra(Co,n,a,r)}qo|=e,o.memoizedState=ra(t,n,a,r)}function ia(e,t){return\"function\"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function la(){}function ua(e,t,n){25>Ko||i(\"301\");var r=e.alternate;if(e===Lo||null!==r&&r===Lo)if(Vo=!0,e={expirationTime:Mo,action:n,eagerReducer:null,eagerState:null,next:null},null===Go&&(Go=new Map),void 0===(n=Go.get(t)))Go.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{Wi();var o=xl(),a={expirationTime:o=Yi(o,e),action:n,eagerReducer:null,eagerState:null,next:null},l=t.last;if(null===l)a.next=a;else{var u=l.next;null!==u&&(a.next=u),l.next=a}if(t.last=a,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var s=t.lastRenderedState,c=r(s,n);if(a.eagerReducer=r,a.eagerState=c,Zt(c,s))return}catch(f){}Zi(e,o)}}var sa={readContext:$a,useCallback:Yo,useContext:Yo,useEffect:Yo,useImperativeHandle:Yo,useLayoutEffect:Yo,useMemo:Yo,useReducer:Yo,useRef:Yo,useState:Yo,useDebugValue:Yo},ca={readContext:$a,useCallback:function(e,t){return Jo().memoizedState=[e,void 0===t?null:t],e},useContext:$a,useEffect:function(e,t){return oa(516,No|jo,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,oa(4,Po|Ro,ia.bind(null,t,e),n)},useLayoutEffect:function(e,t){return oa(4,Po|Ro,e,t)},useMemo:function(e,t){var n=Jo();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Jo();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=ua.bind(null,Lo,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Jo().memoizedState=e},useState:function(e){var t=Jo();return\"function\"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:ta,lastRenderedState:e}).dispatch=ua.bind(null,Lo,e),[t.memoizedState,e]},useDebugValue:la},fa={readContext:$a,useCallback:function(e,t){var n=ea();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Xo(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:$a,useEffect:function(e,t){return aa(516,No|jo,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,aa(4,Po|Ro,ia.bind(null,t,e),n)},useLayoutEffect:function(e,t){return aa(4,Po|Ro,e,t)},useMemo:function(e,t){var n=ea();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Xo(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:na,useRef:function(){return ea().memoizedState},useState:function(e){return na(ta)},useDebugValue:la},da=null,pa=null,ha=!1;function ma(e,t){var n=qr(5,null,null,0);n.elementType=\"DELETED\",n.type=\"DELETED\",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function ga(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=\"\"===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function va(e){if(ha){var t=pa;if(t){var n=t;if(!ga(e,t)){if(!(t=Er(n))||!ga(e,t))return e.effectTag|=2,ha=!1,void(da=e);ma(da,n)}da=e,pa=Sr(t)}else e.effectTag|=2,ha=!1,da=e}}function ya(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&18!==e.tag;)e=e.return;da=e}function ba(e){if(e!==da)return!1;if(!ha)return ya(e),ha=!0,!1;var t=e.type;if(5!==e.tag||\"head\"!==t&&\"body\"!==t&&!yr(t,e.memoizedProps))for(t=pa;t;)ma(e,t),t=Er(t);return ya(e),pa=da?Er(e.stateNode):null,!0}function wa(){pa=da=null,ha=!1}var ka=He.ReactCurrentOwner,xa=!1;function Ea(e,t,n,r){t.child=null===e?vo(t,null,n,r):go(t,e.child,n,r)}function Sa(e,t,n,r,o){n=n.render;var a=t.ref;return Ba(t,o),r=Qo(e,t,n,r,a,o),null===e||xa?(t.effectTag|=1,Ea(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=o&&(e.expirationTime=0),ja(e,t,o))}function _a(e,t,n,r,o,a){if(null===e){var i=n.type;return\"function\"!=typeof i||Vr(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Kr(n.type,null,r,null,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Ta(e,t,i,r,o,a))}return i=e.child,o<a&&(o=i.memoizedProps,(n=null!==(n=n.compare)?n:en)(o,r)&&e.ref===t.ref)?ja(e,t,a):(t.effectTag|=1,(e=Gr(i,r)).ref=t.ref,e.return=t,t.child=e)}function Ta(e,t,n,r,o,a){return null!==e&&en(e.memoizedProps,r)&&e.ref===t.ref&&(xa=!1,o<a)?ja(e,t,a):Oa(e,t,n,r,a)}function Ca(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.effectTag|=128)}function Oa(e,t,n,r,o){var a=Nr(n)?Rr:Ar.current;return a=jr(t,a),Ba(t,o),n=Qo(e,t,n,r,a,o),null===e||xa?(t.effectTag|=1,Ea(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=o&&(e.expirationTime=0),ja(e,t,o))}function Pa(e,t,n,r,o){if(Nr(n)){var a=!0;Ur(t)}else a=!1;if(Ba(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),uo(t,n,r),co(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var u=i.context,s=n.contextType;\"object\"==typeof s&&null!==s?s=$a(s):s=jr(t,s=Nr(n)?Rr:Ar.current);var c=n.getDerivedStateFromProps,f=\"function\"==typeof c||\"function\"==typeof i.getSnapshotBeforeUpdate;f||\"function\"!=typeof i.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof i.componentWillReceiveProps||(l!==r||u!==s)&&so(t,i,r,s),Ga=!1;var d=t.memoizedState;u=i.state=d;var p=t.updateQueue;null!==p&&(ni(t,p,r,i,o),u=t.memoizedState),l!==r||d!==u||Ir.current||Ga?(\"function\"==typeof c&&(ao(t,n,c,r),u=t.memoizedState),(l=Ga||lo(t,n,l,r,d,u,s))?(f||\"function\"!=typeof i.UNSAFE_componentWillMount&&\"function\"!=typeof i.componentWillMount||(\"function\"==typeof i.componentWillMount&&i.componentWillMount(),\"function\"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),\"function\"==typeof i.componentDidMount&&(t.effectTag|=4)):(\"function\"==typeof i.componentDidMount&&(t.effectTag|=4),t.memoizedProps=r,t.memoizedState=u),i.props=r,i.state=u,i.context=s,r=l):(\"function\"==typeof i.componentDidMount&&(t.effectTag|=4),r=!1)}else i=t.stateNode,l=t.memoizedProps,i.props=t.type===t.elementType?l:ro(t.type,l),u=i.context,\"object\"==typeof(s=n.contextType)&&null!==s?s=$a(s):s=jr(t,s=Nr(n)?Rr:Ar.current),(f=\"function\"==typeof(c=n.getDerivedStateFromProps)||\"function\"==typeof i.getSnapshotBeforeUpdate)||\"function\"!=typeof i.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof i.componentWillReceiveProps||(l!==r||u!==s)&&so(t,i,r,s),Ga=!1,u=t.memoizedState,d=i.state=u,null!==(p=t.updateQueue)&&(ni(t,p,r,i,o),d=t.memoizedState),l!==r||u!==d||Ir.current||Ga?(\"function\"==typeof c&&(ao(t,n,c,r),d=t.memoizedState),(c=Ga||lo(t,n,l,r,u,d,s))?(f||\"function\"!=typeof i.UNSAFE_componentWillUpdate&&\"function\"!=typeof i.componentWillUpdate||(\"function\"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,d,s),\"function\"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,d,s)),\"function\"==typeof i.componentDidUpdate&&(t.effectTag|=4),\"function\"==typeof i.getSnapshotBeforeUpdate&&(t.effectTag|=256)):(\"function\"!=typeof i.componentDidUpdate||l===e.memoizedProps&&u===e.memoizedState||(t.effectTag|=4),\"function\"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&u===e.memoizedState||(t.effectTag|=256),t.memoizedProps=r,t.memoizedState=d),i.props=r,i.state=d,i.context=s,r=c):(\"function\"!=typeof i.componentDidUpdate||l===e.memoizedProps&&u===e.memoizedState||(t.effectTag|=4),\"function\"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&u===e.memoizedState||(t.effectTag|=256),r=!1);return Aa(e,t,n,r,a,o)}function Aa(e,t,n,r,o,a){Ca(e,t);var i=0!=(64&t.effectTag);if(!r&&!i)return o&&zr(t,n,!1),ja(e,t,a);r=t.stateNode,ka.current=t;var l=i&&\"function\"!=typeof n.getDerivedStateFromError?null:r.render();return t.effectTag|=1,null!==e&&i?(t.child=go(t,e.child,null,a),t.child=go(t,null,l,a)):Ea(e,t,l,a),t.memoizedState=r.state,o&&zr(t,n,!0),t.child}function Ia(e){var t=e.stateNode;t.pendingContext?Lr(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Lr(0,t.context,!1),Eo(e,t.containerInfo)}function Ra(e,t,n){var r=t.mode,o=t.pendingProps,a=t.memoizedState;if(0==(64&t.effectTag)){a=null;var i=!1}else a={timedOutAt:null!==a?a.timedOutAt:0},i=!0,t.effectTag&=-65;if(null===e)if(i){var l=o.fallback;e=Yr(null,r,0,null),0==(1&t.mode)&&(e.child=null!==t.memoizedState?t.child.child:t.child),r=Yr(l,r,n,null),e.sibling=r,(n=e).return=r.return=t}else n=r=vo(t,null,o.children,n);else null!==e.memoizedState?(l=(r=e.child).sibling,i?(n=o.fallback,o=Gr(r,r.pendingProps),0==(1&t.mode)&&((i=null!==t.memoizedState?t.child.child:t.child)!==r.child&&(o.child=i)),r=o.sibling=Gr(l,n,l.expirationTime),n=o,o.childExpirationTime=0,n.return=r.return=t):n=r=go(t,r.child,o.children,n)):(l=e.child,i?(i=o.fallback,(o=Yr(null,r,0,null)).child=l,0==(1&t.mode)&&(o.child=null!==t.memoizedState?t.child.child:t.child),(r=o.sibling=Yr(i,r,n,null)).effectTag|=2,n=o,o.childExpirationTime=0,n.return=r.return=t):r=n=go(t,l,o.children,n)),t.stateNode=e.stateNode;return t.memoizedState=a,t.child=n,r}function ja(e,t,n){if(null!==e&&(t.contextDependencies=e.contextDependencies),t.childExpirationTime<n)return null;if(null!==e&&t.child!==e.child&&i(\"153\"),null!==t.child){for(n=Gr(e=t.child,e.pendingProps,e.expirationTime),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Gr(e,e.pendingProps,e.expirationTime)).return=t;n.sibling=null}return t.child}function Na(e,t,n){var r=t.expirationTime;if(null!==e){if(e.memoizedProps!==t.pendingProps||Ir.current)xa=!0;else if(r<n){switch(xa=!1,t.tag){case 3:Ia(t),wa();break;case 5:_o(t);break;case 1:Nr(t.type)&&Ur(t);break;case 4:Eo(t,t.stateNode.containerInfo);break;case 10:Ua(t,t.memoizedProps.value);break;case 13:if(null!==t.memoizedState)return 0!==(r=t.child.childExpirationTime)&&r>=n?Ra(e,t,n):null!==(t=ja(e,t,n))?t.sibling:null}return ja(e,t,n)}}else xa=!1;switch(t.expirationTime=0,t.tag){case 2:r=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps;var o=jr(t,Ar.current);if(Ba(t,n),o=Qo(null,t,r,e,o,n),t.effectTag|=1,\"object\"==typeof o&&null!==o&&\"function\"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,Zo(),Nr(r)){var a=!0;Ur(t)}else a=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null;var l=r.getDerivedStateFromProps;\"function\"==typeof l&&ao(t,r,l,e),o.updater=io,t.stateNode=o,o._reactInternalFiber=t,co(t,r,e,n),t=Aa(null,t,r,!0,a,n)}else t.tag=0,Ea(null,t,o,n),t=t.child;return t;case 16:switch(o=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),a=t.pendingProps,e=function(e){var t=e._result;switch(e._status){case 1:return t;case 2:case 0:throw t;default:switch(e._status=0,(t=(t=e._ctor)()).then(function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)},function(t){0===e._status&&(e._status=2,e._result=t)}),e._status){case 1:return e._result;case 2:throw e._result}throw e._result=t,t}}(o),t.type=e,o=t.tag=function(e){if(\"function\"==typeof e)return Vr(e)?1:0;if(null!=e){if((e=e.$$typeof)===tt)return 11;if(e===rt)return 14}return 2}(e),a=ro(e,a),l=void 0,o){case 0:l=Oa(null,t,e,a,n);break;case 1:l=Pa(null,t,e,a,n);break;case 11:l=Sa(null,t,e,a,n);break;case 14:l=_a(null,t,e,ro(e.type,a),r,n);break;default:i(\"306\",e,\"\")}return l;case 0:return r=t.type,o=t.pendingProps,Oa(e,t,r,o=t.elementType===r?o:ro(r,o),n);case 1:return r=t.type,o=t.pendingProps,Pa(e,t,r,o=t.elementType===r?o:ro(r,o),n);case 3:return Ia(t),null===(r=t.updateQueue)&&i(\"282\"),o=null!==(o=t.memoizedState)?o.element:null,ni(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===o?(wa(),t=ja(e,t,n)):(o=t.stateNode,(o=(null===e||null===e.child)&&o.hydrate)&&(pa=Sr(t.stateNode.containerInfo),da=t,o=ha=!0),o?(t.effectTag|=2,t.child=vo(t,null,r,n)):(Ea(e,t,r,n),wa()),t=t.child),t;case 5:return _o(t),null===e&&va(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,l=o.children,yr(r,o)?l=null:null!==a&&yr(r,a)&&(t.effectTag|=16),Ca(e,t),1!==n&&1&t.mode&&o.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(Ea(e,t,l,n),t=t.child),t;case 6:return null===e&&va(t),null;case 13:return Ra(e,t,n);case 4:return Eo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=go(t,null,r,n):Ea(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Sa(e,t,r,o=t.elementType===r?o:ro(r,o),n);case 7:return Ea(e,t,t.pendingProps,n),t.child;case 8:case 12:return Ea(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,l=t.memoizedProps,Ua(t,a=o.value),null!==l){var u=l.value;if(0===(a=Zt(u,a)?0:0|(\"function\"==typeof r._calculateChangedBits?r._calculateChangedBits(u,a):1073741823))){if(l.children===o.children&&!Ir.current){t=ja(e,t,n);break e}}else for(null!==(u=t.child)&&(u.return=t);null!==u;){var s=u.contextDependencies;if(null!==s){l=u.child;for(var c=s.first;null!==c;){if(c.context===r&&0!=(c.observedBits&a)){1===u.tag&&((c=Xa(n)).tag=qa,Za(u,c)),u.expirationTime<n&&(u.expirationTime=n),null!==(c=u.alternate)&&c.expirationTime<n&&(c.expirationTime=n),c=n;for(var f=u.return;null!==f;){var d=f.alternate;if(f.childExpirationTime<c)f.childExpirationTime=c,null!==d&&d.childExpirationTime<c&&(d.childExpirationTime=c);else{if(!(null!==d&&d.childExpirationTime<c))break;d.childExpirationTime=c}f=f.return}s.expirationTime<n&&(s.expirationTime=n);break}c=c.next}}else l=10===u.tag&&u.type===t.type?null:u.child;if(null!==l)l.return=u;else for(l=u;null!==l;){if(l===t){l=null;break}if(null!==(u=l.sibling)){u.return=l.return,l=u;break}l=l.return}u=l}}Ea(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(a=t.pendingProps).children,Ba(t,n),r=r(o=$a(o,a.unstable_observedBits)),t.effectTag|=1,Ea(e,t,r,n),t.child;case 14:return a=ro(o=t.type,t.pendingProps),_a(e,t,o,a=ro(o.type,a),r,n);case 15:return Ta(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:ro(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),t.tag=1,Nr(r)?(e=!0,Ur(t)):e=!1,Ba(t,n),uo(t,r,o),co(t,r,o,n),Aa(null,t,r,!0,e,n)}i(\"156\")}var Fa={current:null},Ma=null,La=null,Da=null;function Ua(e,t){var n=e.type._context;Or(Fa,n._currentValue),n._currentValue=t}function za(e){var t=Fa.current;Cr(Fa),e.type._context._currentValue=t}function Ba(e,t){Ma=e,Da=La=null;var n=e.contextDependencies;null!==n&&n.expirationTime>=t&&(xa=!0),e.contextDependencies=null}function $a(e,t){return Da!==e&&!1!==t&&0!==t&&(\"number\"==typeof t&&1073741823!==t||(Da=e,t=1073741823),t={context:e,observedBits:t,next:null},null===La?(null===Ma&&i(\"308\"),La=t,Ma.contextDependencies={first:t,expirationTime:0}):La=La.next=t),e._currentValue}var Wa=0,Ha=1,qa=2,Va=3,Ga=!1;function Ka(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ya(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Xa(e){return{expirationTime:e,tag:Wa,payload:null,callback:null,next:null,nextEffect:null}}function Qa(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function Za(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,o=null;null===r&&(r=e.updateQueue=Ka(e.memoizedState))}else r=e.updateQueue,o=n.updateQueue,null===r?null===o?(r=e.updateQueue=Ka(e.memoizedState),o=n.updateQueue=Ka(n.memoizedState)):r=e.updateQueue=Ya(o):null===o&&(o=n.updateQueue=Ya(r));null===o||r===o?Qa(r,t):null===r.lastUpdate||null===o.lastUpdate?(Qa(r,t),Qa(o,t)):(Qa(r,t),o.lastUpdate=t)}function Ja(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=Ka(e.memoizedState):ei(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function ei(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=Ya(t)),t}function ti(e,t,n,r,a,i){switch(n.tag){case Ha:return\"function\"==typeof(e=n.payload)?e.call(i,r,a):e;case Va:e.effectTag=-2049&e.effectTag|64;case Wa:if(null==(a=\"function\"==typeof(e=n.payload)?e.call(i,r,a):e))break;return o({},r,a);case qa:Ga=!0}return r}function ni(e,t,n,r,o){Ga=!1;for(var a=(t=ei(e,t)).baseState,i=null,l=0,u=t.firstUpdate,s=a;null!==u;){var c=u.expirationTime;c<o?(null===i&&(i=u,a=s),l<c&&(l=c)):(s=ti(e,0,u,s,n,r),null!==u.callback&&(e.effectTag|=32,u.nextEffect=null,null===t.lastEffect?t.firstEffect=t.lastEffect=u:(t.lastEffect.nextEffect=u,t.lastEffect=u))),u=u.next}for(c=null,u=t.firstCapturedUpdate;null!==u;){var f=u.expirationTime;f<o?(null===c&&(c=u,null===i&&(a=s)),l<f&&(l=f)):(s=ti(e,0,u,s,n,r),null!==u.callback&&(e.effectTag|=32,u.nextEffect=null,null===t.lastCapturedEffect?t.firstCapturedEffect=t.lastCapturedEffect=u:(t.lastCapturedEffect.nextEffect=u,t.lastCapturedEffect=u))),u=u.next}null===i&&(t.lastUpdate=null),null===c?t.lastCapturedUpdate=null:e.effectTag|=32,null===i&&null===c&&(a=s),t.baseState=a,t.firstUpdate=i,t.firstCapturedUpdate=c,e.expirationTime=l,e.memoizedState=s}function ri(e,t,n){null!==t.firstCapturedUpdate&&(null!==t.lastUpdate&&(t.lastUpdate.next=t.firstCapturedUpdate,t.lastUpdate=t.lastCapturedUpdate),t.firstCapturedUpdate=t.lastCapturedUpdate=null),oi(t.firstEffect,n),t.firstEffect=t.lastEffect=null,oi(t.firstCapturedEffect,n),t.firstCapturedEffect=t.lastCapturedEffect=null}function oi(e,t){for(;null!==e;){var n=e.callback;if(null!==n){e.callback=null;var r=t;\"function\"!=typeof n&&i(\"191\",n),n.call(r)}e=e.nextEffect}}function ai(e,t){return{value:e,source:t,stack:ut(t)}}function ii(e){e.effectTag|=4}var li=void 0,ui=void 0,si=void 0,ci=void 0;li=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},ui=function(){},si=function(e,t,n,r,a){var i=e.memoizedProps;if(i!==r){var l=t.stateNode;switch(xo(bo.current),e=null,n){case\"input\":i=bt(l,i),r=bt(l,r),e=[];break;case\"option\":i=Gn(l,i),r=Gn(l,r),e=[];break;case\"select\":i=o({},i,{value:void 0}),r=o({},r,{value:void 0}),e=[];break;case\"textarea\":i=Yn(l,i),r=Yn(l,r),e=[];break;default:\"function\"!=typeof i.onClick&&\"function\"==typeof r.onClick&&(l.onclick=hr)}fr(n,r),l=n=void 0;var u=null;for(n in i)if(!r.hasOwnProperty(n)&&i.hasOwnProperty(n)&&null!=i[n])if(\"style\"===n){var s=i[n];for(l in s)s.hasOwnProperty(l)&&(u||(u={}),u[l]=\"\")}else\"dangerouslySetInnerHTML\"!==n&&\"children\"!==n&&\"suppressContentEditableWarning\"!==n&&\"suppressHydrationWarning\"!==n&&\"autoFocus\"!==n&&(b.hasOwnProperty(n)?e||(e=[]):(e=e||[]).push(n,null));for(n in r){var c=r[n];if(s=null!=i?i[n]:void 0,r.hasOwnProperty(n)&&c!==s&&(null!=c||null!=s))if(\"style\"===n)if(s){for(l in s)!s.hasOwnProperty(l)||c&&c.hasOwnProperty(l)||(u||(u={}),u[l]=\"\");for(l in c)c.hasOwnProperty(l)&&s[l]!==c[l]&&(u||(u={}),u[l]=c[l])}else u||(e||(e=[]),e.push(n,u)),u=c;else\"dangerouslySetInnerHTML\"===n?(c=c?c.__html:void 0,s=s?s.__html:void 0,null!=c&&s!==c&&(e=e||[]).push(n,\"\"+c)):\"children\"===n?s===c||\"string\"!=typeof c&&\"number\"!=typeof c||(e=e||[]).push(n,\"\"+c):\"suppressContentEditableWarning\"!==n&&\"suppressHydrationWarning\"!==n&&(b.hasOwnProperty(n)?(null!=c&&pr(a,n),e||s===c||(e=[])):(e=e||[]).push(n,c))}u&&(e=e||[]).push(\"style\",u),a=e,(t.updateQueue=a)&&ii(t)}},ci=function(e,t,n,r){n!==r&&ii(t)};var fi=\"function\"==typeof WeakSet?WeakSet:Set;function di(e,t){var n=t.source,r=t.stack;null===r&&null!==n&&(r=ut(n)),null!==n&&lt(n.type),t=t.value,null!==e&&1===e.tag&&lt(e.type);try{console.error(t)}catch(o){setTimeout(function(){throw o})}}function pi(e){var t=e.ref;if(null!==t)if(\"function\"==typeof t)try{t(null)}catch(n){Ki(e,n)}else t.current=null}function hi(e,t,n){if(null!==(n=null!==(n=n.updateQueue)?n.lastEffect:null)){var r=n=n.next;do{if((r.tag&e)!==Co){var o=r.destroy;r.destroy=void 0,void 0!==o&&o()}(r.tag&t)!==Co&&(o=r.create,r.destroy=o()),r=r.next}while(r!==n)}}function mi(e){switch(\"function\"==typeof $r&&$r(e),e.tag){case 0:case 11:case 14:case 15:var t=e.updateQueue;if(null!==t&&null!==(t=t.lastEffect)){var n=t=t.next;do{var r=n.destroy;if(void 0!==r){var o=e;try{r()}catch(a){Ki(o,a)}}n=n.next}while(n!==t)}break;case 1:if(pi(e),\"function\"==typeof(t=e.stateNode).componentWillUnmount)try{t.props=e.memoizedProps,t.state=e.memoizedState,t.componentWillUnmount()}catch(a){Ki(e,a)}break;case 5:pi(e);break;case 4:yi(e)}}function gi(e){return 5===e.tag||3===e.tag||4===e.tag}function vi(e){e:{for(var t=e.return;null!==t;){if(gi(t)){var n=t;break e}t=t.return}i(\"160\"),n=void 0}var r=t=void 0;switch(n.tag){case 5:t=n.stateNode,r=!1;break;case 3:case 4:t=n.stateNode.containerInfo,r=!0;break;default:i(\"161\")}16&n.effectTag&&(ar(t,\"\"),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||gi(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var o=e;;){if(5===o.tag||6===o.tag)if(n)if(r){var a=t,l=o.stateNode,u=n;8===a.nodeType?a.parentNode.insertBefore(l,u):a.insertBefore(l,u)}else t.insertBefore(o.stateNode,n);else r?(l=t,u=o.stateNode,8===l.nodeType?(a=l.parentNode).insertBefore(u,l):(a=l).appendChild(u),null!=(l=l._reactRootContainer)||null!==a.onclick||(a.onclick=hr)):t.appendChild(o.stateNode);else if(4!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===e)break;for(;null===o.sibling;){if(null===o.return||o.return===e)return;o=o.return}o.sibling.return=o.return,o=o.sibling}}function yi(e){for(var t=e,n=!1,r=void 0,o=void 0;;){if(!n){n=t.return;e:for(;;){switch(null===n&&i(\"160\"),n.tag){case 5:r=n.stateNode,o=!1;break e;case 3:case 4:r=n.stateNode.containerInfo,o=!0;break e}n=n.return}n=!0}if(5===t.tag||6===t.tag){e:for(var a=t,l=a;;)if(mi(l),null!==l.child&&4!==l.tag)l.child.return=l,l=l.child;else{if(l===a)break;for(;null===l.sibling;){if(null===l.return||l.return===a)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}o?(a=r,l=t.stateNode,8===a.nodeType?a.parentNode.removeChild(l):a.removeChild(l)):r.removeChild(t.stateNode)}else if(4===t.tag){if(null!==t.child){r=t.stateNode.containerInfo,o=!0,t.child.return=t,t=t.child;continue}}else if(mi(t),null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;4===(t=t.return).tag&&(n=!1)}t.sibling.return=t.return,t=t.sibling}}function bi(e,t){switch(t.tag){case 0:case 11:case 14:case 15:hi(Po,Ao,t);break;case 1:break;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps;e=null!==e?e.memoizedProps:r;var o=t.type,a=t.updateQueue;t.updateQueue=null,null!==a&&function(e,t,n,r,o){e[N]=o,\"input\"===n&&\"radio\"===o.type&&null!=o.name&&kt(e,o),dr(n,r),r=dr(n,o);for(var a=0;a<t.length;a+=2){var i=t[a],l=t[a+1];\"style\"===i?sr(e,l):\"dangerouslySetInnerHTML\"===i?or(e,l):\"children\"===i?ar(e,l):vt(e,i,l,r)}switch(n){case\"input\":xt(e,o);break;case\"textarea\":Qn(e,o);break;case\"select\":t=e._wrapperState.wasMultiple,e._wrapperState.wasMultiple=!!o.multiple,null!=(n=o.value)?Kn(e,!!o.multiple,n,!1):t!==!!o.multiple&&(null!=o.defaultValue?Kn(e,!!o.multiple,o.defaultValue,!0):Kn(e,!!o.multiple,o.multiple?[]:\"\",!1))}}(n,a,o,e,r)}break;case 6:null===t.stateNode&&i(\"162\"),t.stateNode.nodeValue=t.memoizedProps;break;case 3:case 12:break;case 13:if(n=t.memoizedState,r=void 0,e=t,null===n?r=!1:(r=!0,e=t.child,0===n.timedOutAt&&(n.timedOutAt=xl())),null!==e&&function(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)r.style.display=\"none\";else{r=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty(\"display\")?o.display:null,r.style.display=ur(\"display\",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?\"\":n.memoizedProps;else{if(13===n.tag&&null!==n.memoizedState){(r=n.child.sibling).return=n,n=r;continue}if(null!==n.child){n.child.return=n,n=n.child;continue}}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}(e,r),null!==(n=t.updateQueue)){t.updateQueue=null;var l=t.stateNode;null===l&&(l=t.stateNode=new fi),n.forEach(function(e){var n=function(e,t){var n=e.stateNode;null!==n&&n.delete(t),t=Yi(t=xl(),e),null!==(e=Qi(e,t))&&(Jr(e,t),0!==(t=e.expirationTime)&&El(e,t))}.bind(null,t,e);l.has(e)||(l.add(e),e.then(n,n))})}break;case 17:break;default:i(\"163\")}}var wi=\"function\"==typeof WeakMap?WeakMap:Map;function ki(e,t,n){(n=Xa(n)).tag=Va,n.payload={element:null};var r=t.value;return n.callback=function(){Rl(r),di(e,t)},n}function xi(e,t,n){(n=Xa(n)).tag=Va;var r=e.type.getDerivedStateFromError;if(\"function\"==typeof r){var o=t.value;n.payload=function(){return r(o)}}var a=e.stateNode;return null!==a&&\"function\"==typeof a.componentDidCatch&&(n.callback=function(){\"function\"!=typeof r&&(null===Di?Di=new Set([this]):Di.add(this));var n=t.value,o=t.stack;di(e,t),this.componentDidCatch(n,{componentStack:null!==o?o:\"\"})}),n}function Ei(e){switch(e.tag){case 1:Nr(e.type)&&Fr();var t=e.effectTag;return 2048&t?(e.effectTag=-2049&t|64,e):null;case 3:return So(),Mr(),0!=(64&(t=e.effectTag))&&i(\"285\"),e.effectTag=-2049&t|64,e;case 5:return To(e),null;case 13:return 2048&(t=e.effectTag)?(e.effectTag=-2049&t|64,e):null;case 18:return null;case 4:return So(),null;case 10:return za(e),null;default:return null}}var Si=He.ReactCurrentDispatcher,_i=He.ReactCurrentOwner,Ti=1073741822,Ci=!1,Oi=null,Pi=null,Ai=0,Ii=-1,Ri=!1,ji=null,Ni=!1,Fi=null,Mi=null,Li=null,Di=null;function Ui(){if(null!==Oi)for(var e=Oi.return;null!==e;){var t=e;switch(t.tag){case 1:var n=t.type.childContextTypes;null!=n&&Fr();break;case 3:So(),Mr();break;case 5:To(t);break;case 4:So();break;case 10:za(t)}e=e.return}Pi=null,Ai=0,Ii=-1,Ri=!1,Oi=null}function zi(){for(;null!==ji;){var e=ji.effectTag;if(16&e&&ar(ji.stateNode,\"\"),128&e){var t=ji.alternate;null!==t&&(null!==(t=t.ref)&&(\"function\"==typeof t?t(null):t.current=null))}switch(14&e){case 2:vi(ji),ji.effectTag&=-3;break;case 6:vi(ji),ji.effectTag&=-3,bi(ji.alternate,ji);break;case 4:bi(ji.alternate,ji);break;case 8:yi(e=ji),e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null,null!==(e=e.alternate)&&(e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null)}ji=ji.nextEffect}}function Bi(){for(;null!==ji;){if(256&ji.effectTag)e:{var e=ji.alternate,t=ji;switch(t.tag){case 0:case 11:case 15:hi(Oo,Co,t);break e;case 1:if(256&t.effectTag&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:ro(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}break e;case 3:case 5:case 6:case 4:case 17:break e;default:i(\"163\")}}ji=ji.nextEffect}}function $i(e,t){for(;null!==ji;){var n=ji.effectTag;if(36&n){var r=ji.alternate,o=ji,a=t;switch(o.tag){case 0:case 11:case 15:hi(Io,Ro,o);break;case 1:var l=o.stateNode;if(4&o.effectTag)if(null===r)l.componentDidMount();else{var u=o.elementType===o.type?r.memoizedProps:ro(o.type,r.memoizedProps);l.componentDidUpdate(u,r.memoizedState,l.__reactInternalSnapshotBeforeUpdate)}null!==(r=o.updateQueue)&&ri(0,r,l);break;case 3:if(null!==(r=o.updateQueue)){if(l=null,null!==o.child)switch(o.child.tag){case 5:l=o.child.stateNode;break;case 1:l=o.child.stateNode}ri(0,r,l)}break;case 5:a=o.stateNode,null===r&&4&o.effectTag&&vr(o.type,o.memoizedProps)&&a.focus();break;case 6:case 4:case 12:case 13:case 17:break;default:i(\"163\")}}128&n&&(null!==(o=ji.ref)&&(a=ji.stateNode,\"function\"==typeof o?o(a):o.current=a)),512&n&&(Fi=e),ji=ji.nextEffect}}function Wi(){null!==Mi&&xr(Mi),null!==Li&&Li()}function Hi(e,t){Ni=Ci=!0,e.current===t&&i(\"177\");var n=e.pendingCommitExpirationTime;0===n&&i(\"261\"),e.pendingCommitExpirationTime=0;var r=t.expirationTime,o=t.childExpirationTime;for(function(e,t){if(e.didError=!1,0===t)e.earliestPendingTime=0,e.latestPendingTime=0,e.earliestSuspendedTime=0,e.latestSuspendedTime=0,e.latestPingedTime=0;else{t<e.latestPingedTime&&(e.latestPingedTime=0);var n=e.latestPendingTime;0!==n&&(n>t?e.earliestPendingTime=e.latestPendingTime=0:e.earliestPendingTime>t&&(e.earliestPendingTime=e.latestPendingTime)),0===(n=e.earliestSuspendedTime)?Jr(e,t):t<e.latestSuspendedTime?(e.earliestSuspendedTime=0,e.latestSuspendedTime=0,e.latestPingedTime=0,Jr(e,t)):t>n&&Jr(e,t)}no(0,e)}(e,o>r?o:r),_i.current=null,r=void 0,1<t.effectTag?null!==t.lastEffect?(t.lastEffect.nextEffect=t,r=t.firstEffect):r=t:r=t.firstEffect,mr=Sn,gr=function(){var e=Mn();if(Ln(e)){if(\"selectionStart\"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{var n=(t=(t=e.ownerDocument)&&t.defaultView||window).getSelection&&t.getSelection();if(n&&0!==n.rangeCount){t=n.anchorNode;var r=n.anchorOffset,o=n.focusNode;n=n.focusOffset;try{t.nodeType,o.nodeType}catch(p){t=null;break e}var a=0,i=-1,l=-1,u=0,s=0,c=e,f=null;t:for(;;){for(var d;c!==t||0!==r&&3!==c.nodeType||(i=a+r),c!==o||0!==n&&3!==c.nodeType||(l=a+n),3===c.nodeType&&(a+=c.nodeValue.length),null!==(d=c.firstChild);)f=c,c=d;for(;;){if(c===e)break t;if(f===t&&++u===r&&(i=a),f===o&&++s===n&&(l=a),null!==(d=c.nextSibling))break;f=(c=f).parentNode}c=d}t=-1===i||-1===l?null:{start:i,end:l}}else t=null}t=t||{start:0,end:0}}else t=null;return{focusedElem:e,selectionRange:t}}(),Sn=!1,ji=r;null!==ji;){o=!1;var l=void 0;try{Bi()}catch(s){o=!0,l=s}o&&(null===ji&&i(\"178\"),Ki(ji,l),null!==ji&&(ji=ji.nextEffect))}for(ji=r;null!==ji;){o=!1,l=void 0;try{zi()}catch(s){o=!0,l=s}o&&(null===ji&&i(\"178\"),Ki(ji,l),null!==ji&&(ji=ji.nextEffect))}for(Dn(gr),gr=null,Sn=!!mr,mr=null,e.current=t,ji=r;null!==ji;){o=!1,l=void 0;try{$i(e,n)}catch(s){o=!0,l=s}o&&(null===ji&&i(\"178\"),Ki(ji,l),null!==ji&&(ji=ji.nextEffect))}if(null!==r&&null!==Fi){var u=function(e,t){Li=Mi=Fi=null;var n=ol;ol=!0;do{if(512&t.effectTag){var r=!1,o=void 0;try{var a=t;hi(No,Co,a),hi(Co,jo,a)}catch(u){r=!0,o=u}r&&Ki(t,o)}t=t.nextEffect}while(null!==t);ol=n,0!==(n=e.expirationTime)&&El(e,n),cl||ol||Ol(1073741823,!1)}.bind(null,e,r);Mi=a.unstable_runWithPriority(a.unstable_NormalPriority,function(){return kr(u)}),Li=u}Ci=Ni=!1,\"function\"==typeof Br&&Br(t.stateNode),n=t.expirationTime,0===(t=(t=t.childExpirationTime)>n?t:n)&&(Di=null),function(e,t){e.expirationTime=t,e.finishedWork=null}(e,t)}function qi(e){for(;;){var t=e.alternate,n=e.return,r=e.sibling;if(0==(1024&e.effectTag)){Oi=e;e:{var a=t,l=Ai,u=(t=e).pendingProps;switch(t.tag){case 2:case 16:break;case 15:case 0:break;case 1:Nr(t.type)&&Fr();break;case 3:So(),Mr(),(u=t.stateNode).pendingContext&&(u.context=u.pendingContext,u.pendingContext=null),null!==a&&null!==a.child||(ba(t),t.effectTag&=-3),ui(t);break;case 5:To(t);var s=xo(ko.current);if(l=t.type,null!==a&&null!=t.stateNode)si(a,t,l,u,s),a.ref!==t.ref&&(t.effectTag|=128);else if(u){var c=xo(bo.current);if(ba(t)){a=(u=t).stateNode;var f=u.type,d=u.memoizedProps,p=s;switch(a[j]=u,a[N]=d,l=void 0,s=f){case\"iframe\":case\"object\":_n(\"load\",a);break;case\"video\":case\"audio\":for(f=0;f<te.length;f++)_n(te[f],a);break;case\"source\":_n(\"error\",a);break;case\"img\":case\"image\":case\"link\":_n(\"error\",a),_n(\"load\",a);break;case\"form\":_n(\"reset\",a),_n(\"submit\",a);break;case\"details\":_n(\"toggle\",a);break;case\"input\":wt(a,d),_n(\"invalid\",a),pr(p,\"onChange\");break;case\"select\":a._wrapperState={wasMultiple:!!d.multiple},_n(\"invalid\",a),pr(p,\"onChange\");break;case\"textarea\":Xn(a,d),_n(\"invalid\",a),pr(p,\"onChange\")}for(l in fr(s,d),f=null,d)d.hasOwnProperty(l)&&(c=d[l],\"children\"===l?\"string\"==typeof c?a.textContent!==c&&(f=[\"children\",c]):\"number\"==typeof c&&a.textContent!==\"\"+c&&(f=[\"children\",\"\"+c]):b.hasOwnProperty(l)&&null!=c&&pr(p,l));switch(s){case\"input\":$e(a),Et(a,d,!0);break;case\"textarea\":$e(a),Zn(a);break;case\"select\":case\"option\":break;default:\"function\"==typeof d.onClick&&(a.onclick=hr)}l=f,u.updateQueue=l,(u=null!==l)&&ii(t)}else{d=t,p=l,a=u,f=9===s.nodeType?s:s.ownerDocument,c===Jn.html&&(c=er(p)),c===Jn.html?\"script\"===p?((a=f.createElement(\"div\")).innerHTML=\"<script><\\/script>\",f=a.removeChild(a.firstChild)):\"string\"==typeof a.is?f=f.createElement(p,{is:a.is}):(f=f.createElement(p),\"select\"===p&&(p=f,a.multiple?p.multiple=!0:a.size&&(p.size=a.size))):f=f.createElementNS(c,p),(a=f)[j]=d,a[N]=u,li(a,t,!1,!1),p=a;var h=s,m=dr(f=l,d=u);switch(f){case\"iframe\":case\"object\":_n(\"load\",p),s=d;break;case\"video\":case\"audio\":for(s=0;s<te.length;s++)_n(te[s],p);s=d;break;case\"source\":_n(\"error\",p),s=d;break;case\"img\":case\"image\":case\"link\":_n(\"error\",p),_n(\"load\",p),s=d;break;case\"form\":_n(\"reset\",p),_n(\"submit\",p),s=d;break;case\"details\":_n(\"toggle\",p),s=d;break;case\"input\":wt(p,d),s=bt(p,d),_n(\"invalid\",p),pr(h,\"onChange\");break;case\"option\":s=Gn(p,d);break;case\"select\":p._wrapperState={wasMultiple:!!d.multiple},s=o({},d,{value:void 0}),_n(\"invalid\",p),pr(h,\"onChange\");break;case\"textarea\":Xn(p,d),s=Yn(p,d),_n(\"invalid\",p),pr(h,\"onChange\");break;default:s=d}fr(f,s),c=void 0;var g=f,v=p,y=s;for(c in y)if(y.hasOwnProperty(c)){var w=y[c];\"style\"===c?sr(v,w):\"dangerouslySetInnerHTML\"===c?null!=(w=w?w.__html:void 0)&&or(v,w):\"children\"===c?\"string\"==typeof w?(\"textarea\"!==g||\"\"!==w)&&ar(v,w):\"number\"==typeof w&&ar(v,\"\"+w):\"suppressContentEditableWarning\"!==c&&\"suppressHydrationWarning\"!==c&&\"autoFocus\"!==c&&(b.hasOwnProperty(c)?null!=w&&pr(h,c):null!=w&&vt(v,c,w,m))}switch(f){case\"input\":$e(p),Et(p,d,!1);break;case\"textarea\":$e(p),Zn(p);break;case\"option\":null!=d.value&&p.setAttribute(\"value\",\"\"+yt(d.value));break;case\"select\":(s=p).multiple=!!d.multiple,null!=(p=d.value)?Kn(s,!!d.multiple,p,!1):null!=d.defaultValue&&Kn(s,!!d.multiple,d.defaultValue,!0);break;default:\"function\"==typeof s.onClick&&(p.onclick=hr)}(u=vr(l,u))&&ii(t),t.stateNode=a}null!==t.ref&&(t.effectTag|=128)}else null===t.stateNode&&i(\"166\");break;case 6:a&&null!=t.stateNode?ci(a,t,a.memoizedProps,u):(\"string\"!=typeof u&&(null===t.stateNode&&i(\"166\")),a=xo(ko.current),xo(bo.current),ba(t)?(l=(u=t).stateNode,a=u.memoizedProps,l[j]=u,(u=l.nodeValue!==a)&&ii(t)):(l=t,(u=(9===a.nodeType?a:a.ownerDocument).createTextNode(u))[j]=t,l.stateNode=u));break;case 11:break;case 13:if(u=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=l,Oi=t;break e}u=null!==u,l=null!==a&&null!==a.memoizedState,null!==a&&!u&&l&&(null!==(a=a.child.sibling)&&(null!==(s=t.firstEffect)?(t.firstEffect=a,a.nextEffect=s):(t.firstEffect=t.lastEffect=a,a.nextEffect=null),a.effectTag=8)),(u||l)&&(t.effectTag|=4);break;case 7:case 8:case 12:break;case 4:So(),ui(t);break;case 10:za(t);break;case 9:case 14:break;case 17:Nr(t.type)&&Fr();break;case 18:break;default:i(\"156\")}Oi=null}if(t=e,1===Ai||1!==t.childExpirationTime){for(u=0,l=t.child;null!==l;)(a=l.expirationTime)>u&&(u=a),(s=l.childExpirationTime)>u&&(u=s),l=l.sibling;t.childExpirationTime=u}if(null!==Oi)return Oi;null!==n&&0==(1024&n.effectTag)&&(null===n.firstEffect&&(n.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==n.lastEffect&&(n.lastEffect.nextEffect=e.firstEffect),n.lastEffect=e.lastEffect),1<e.effectTag&&(null!==n.lastEffect?n.lastEffect.nextEffect=e:n.firstEffect=e,n.lastEffect=e))}else{if(null!==(e=Ei(e)))return e.effectTag&=1023,e;null!==n&&(n.firstEffect=n.lastEffect=null,n.effectTag|=1024)}if(null!==r)return r;if(null===n)break;e=n}return null}function Vi(e){var t=Na(e.alternate,e,Ai);return e.memoizedProps=e.pendingProps,null===t&&(t=qi(e)),_i.current=null,t}function Gi(e,t){Ci&&i(\"243\"),Wi(),Ci=!0;var n=Si.current;Si.current=sa;var r=e.nextExpirationTimeToWorkOn;r===Ai&&e===Pi&&null!==Oi||(Ui(),Ai=r,Oi=Gr((Pi=e).current,null),e.pendingCommitExpirationTime=0);for(var o=!1;;){try{if(t)for(;null!==Oi&&!Tl();)Oi=Vi(Oi);else for(;null!==Oi;)Oi=Vi(Oi)}catch(v){if(Da=La=Ma=null,Zo(),null===Oi)o=!0,Rl(v);else{null===Oi&&i(\"271\");var a=Oi,l=a.return;if(null!==l){e:{var u=e,s=l,c=a,f=v;if(l=Ai,c.effectTag|=1024,c.firstEffect=c.lastEffect=null,null!==f&&\"object\"==typeof f&&\"function\"==typeof f.then){var d=f;f=s;var p=-1,h=-1;do{if(13===f.tag){var m=f.alternate;if(null!==m&&null!==(m=m.memoizedState)){h=10*(1073741822-m.timedOutAt);break}\"number\"==typeof(m=f.pendingProps.maxDuration)&&(0>=m?p=0:(-1===p||m<p)&&(p=m))}f=f.return}while(null!==f);f=s;do{if((m=13===f.tag)&&(m=void 0!==f.memoizedProps.fallback&&null===f.memoizedState),m){if(null===(s=f.updateQueue)?((s=new Set).add(d),f.updateQueue=s):s.add(d),0==(1&f.mode)){f.effectTag|=64,c.effectTag&=-1957,1===c.tag&&(null===c.alternate?c.tag=17:((l=Xa(1073741823)).tag=qa,Za(c,l))),c.expirationTime=1073741823;break e}s=l;var g=(c=u).pingCache;null===g?(g=c.pingCache=new wi,m=new Set,g.set(d,m)):void 0===(m=g.get(d))&&(m=new Set,g.set(d,m)),m.has(s)||(m.add(s),c=Xi.bind(null,c,d,s),d.then(c,c)),-1===p?u=1073741823:(-1===h&&(h=10*(1073741822-to(u,l))-5e3),u=h+p),0<=u&&Ii<u&&(Ii=u),f.effectTag|=2048,f.expirationTime=l;break e}f=f.return}while(null!==f);f=Error((lt(c.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\"+ut(c))}Ri=!0,f=ai(f,c),u=s;do{switch(u.tag){case 3:u.effectTag|=2048,u.expirationTime=l,Ja(u,l=ki(u,f,l));break e;case 1:if(p=f,h=u.type,c=u.stateNode,0==(64&u.effectTag)&&(\"function\"==typeof h.getDerivedStateFromError||null!==c&&\"function\"==typeof c.componentDidCatch&&(null===Di||!Di.has(c)))){u.effectTag|=2048,u.expirationTime=l,Ja(u,l=xi(u,p,l));break e}}u=u.return}while(null!==u)}Oi=qi(a);continue}o=!0,Rl(v)}}break}if(Ci=!1,Si.current=n,Da=La=Ma=null,Zo(),o)Pi=null,e.finishedWork=null;else if(null!==Oi)e.finishedWork=null;else{if(null===(n=e.current.alternate)&&i(\"281\"),Pi=null,Ri){if(o=e.latestPendingTime,a=e.latestSuspendedTime,l=e.latestPingedTime,0!==o&&o<r||0!==a&&a<r||0!==l&&l<r)return eo(e,r),void kl(e,n,r,e.expirationTime,-1);if(!e.didError&&t)return e.didError=!0,r=e.nextExpirationTimeToWorkOn=r,t=e.expirationTime=1073741823,void kl(e,n,r,t,-1)}t&&-1!==Ii?(eo(e,r),(t=10*(1073741822-to(e,r)))<Ii&&(Ii=t),t=10*(1073741822-xl()),t=Ii-t,kl(e,n,r,e.expirationTime,0>t?0:t)):(e.pendingCommitExpirationTime=r,e.finishedWork=n)}}function Ki(e,t){for(var n=e.return;null!==n;){switch(n.tag){case 1:var r=n.stateNode;if(\"function\"==typeof n.type.getDerivedStateFromError||\"function\"==typeof r.componentDidCatch&&(null===Di||!Di.has(r)))return Za(n,e=xi(n,e=ai(t,e),1073741823)),void Zi(n,1073741823);break;case 3:return Za(n,e=ki(n,e=ai(t,e),1073741823)),void Zi(n,1073741823)}n=n.return}3===e.tag&&(Za(e,n=ki(e,n=ai(t,e),1073741823)),Zi(e,1073741823))}function Yi(e,t){var n=a.unstable_getCurrentPriorityLevel(),r=void 0;if(0==(1&t.mode))r=1073741823;else if(Ci&&!Ni)r=Ai;else{switch(n){case a.unstable_ImmediatePriority:r=1073741823;break;case a.unstable_UserBlockingPriority:r=1073741822-10*(1+((1073741822-e+15)/10|0));break;case a.unstable_NormalPriority:r=1073741822-25*(1+((1073741822-e+500)/25|0));break;case a.unstable_LowPriority:case a.unstable_IdlePriority:r=1;break;default:i(\"313\")}null!==Pi&&r===Ai&&--r}return n===a.unstable_UserBlockingPriority&&(0===ll||r<ll)&&(ll=r),r}function Xi(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),null!==Pi&&Ai===n?Pi=null:(t=e.earliestSuspendedTime,r=e.latestSuspendedTime,0!==t&&n<=t&&n>=r&&(e.didError=!1,(0===(t=e.latestPingedTime)||t>n)&&(e.latestPingedTime=n),no(n,e),0!==(n=e.expirationTime)&&El(e,n)))}function Qi(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t);var r=e.return,o=null;if(null===r&&3===e.tag)o=e.stateNode;else for(;null!==r;){if(n=r.alternate,r.childExpirationTime<t&&(r.childExpirationTime=t),null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t),null===r.return&&3===r.tag){o=r.stateNode;break}r=r.return}return o}function Zi(e,t){null!==(e=Qi(e,t))&&(!Ci&&0!==Ai&&t>Ai&&Ui(),Jr(e,t),Ci&&!Ni&&Pi===e||El(e,e.expirationTime),vl>gl&&(vl=0,i(\"185\")))}function Ji(e,t,n,r,o){return a.unstable_runWithPriority(a.unstable_ImmediatePriority,function(){return e(t,n,r,o)})}var el=null,tl=null,nl=0,rl=void 0,ol=!1,al=null,il=0,ll=0,ul=!1,sl=null,cl=!1,fl=!1,dl=null,pl=a.unstable_now(),hl=1073741822-(pl/10|0),ml=hl,gl=50,vl=0,yl=null;function bl(){hl=1073741822-((a.unstable_now()-pl)/10|0)}function wl(e,t){if(0!==nl){if(t<nl)return;null!==rl&&a.unstable_cancelCallback(rl)}nl=t,e=a.unstable_now()-pl,rl=a.unstable_scheduleCallback(Cl,{timeout:10*(1073741822-t)-e})}function kl(e,t,n,r,o){e.expirationTime=r,0!==o||Tl()?0<o&&(e.timeoutHandle=br(function(e,t,n){e.pendingCommitExpirationTime=n,e.finishedWork=t,bl(),ml=hl,Pl(e,n)}.bind(null,e,t,n),o)):(e.pendingCommitExpirationTime=n,e.finishedWork=t)}function xl(){return ol?ml:(Sl(),0!==il&&1!==il||(bl(),ml=hl),ml)}function El(e,t){null===e.nextScheduledRoot?(e.expirationTime=t,null===tl?(el=tl=e,e.nextScheduledRoot=e):(tl=tl.nextScheduledRoot=e).nextScheduledRoot=el):t>e.expirationTime&&(e.expirationTime=t),ol||(cl?fl&&(al=e,il=1073741823,Al(e,1073741823,!1)):1073741823===t?Ol(1073741823,!1):wl(e,t))}function Sl(){var e=0,t=null;if(null!==tl)for(var n=tl,r=el;null!==r;){var o=r.expirationTime;if(0===o){if((null===n||null===tl)&&i(\"244\"),r===r.nextScheduledRoot){el=tl=r.nextScheduledRoot=null;break}if(r===el)el=o=r.nextScheduledRoot,tl.nextScheduledRoot=o,r.nextScheduledRoot=null;else{if(r===tl){(tl=n).nextScheduledRoot=el,r.nextScheduledRoot=null;break}n.nextScheduledRoot=r.nextScheduledRoot,r.nextScheduledRoot=null}r=n.nextScheduledRoot}else{if(o>e&&(e=o,t=r),r===tl)break;if(1073741823===e)break;n=r,r=r.nextScheduledRoot}}al=t,il=e}var _l=!1;function Tl(){return!!_l||!!a.unstable_shouldYield()&&(_l=!0)}function Cl(){try{if(!Tl()&&null!==el){bl();var e=el;do{var t=e.expirationTime;0!==t&&hl<=t&&(e.nextExpirationTimeToWorkOn=hl),e=e.nextScheduledRoot}while(e!==el)}Ol(0,!0)}finally{_l=!1}}function Ol(e,t){if(Sl(),t)for(bl(),ml=hl;null!==al&&0!==il&&e<=il&&!(_l&&hl>il);)Al(al,il,hl>il),Sl(),bl(),ml=hl;else for(;null!==al&&0!==il&&e<=il;)Al(al,il,!1),Sl();if(t&&(nl=0,rl=null),0!==il&&wl(al,il),vl=0,yl=null,null!==dl)for(e=dl,dl=null,t=0;t<e.length;t++){var n=e[t];try{n._onComplete()}catch(r){ul||(ul=!0,sl=r)}}if(ul)throw e=sl,sl=null,ul=!1,e}function Pl(e,t){ol&&i(\"253\"),al=e,il=t,Al(e,t,!1),Ol(1073741823,!1)}function Al(e,t,n){if(ol&&i(\"245\"),ol=!0,n){var r=e.finishedWork;null!==r?Il(e,r,t):(e.finishedWork=null,-1!==(r=e.timeoutHandle)&&(e.timeoutHandle=-1,wr(r)),Gi(e,n),null!==(r=e.finishedWork)&&(Tl()?e.finishedWork=r:Il(e,r,t)))}else null!==(r=e.finishedWork)?Il(e,r,t):(e.finishedWork=null,-1!==(r=e.timeoutHandle)&&(e.timeoutHandle=-1,wr(r)),Gi(e,n),null!==(r=e.finishedWork)&&Il(e,r,t));ol=!1}function Il(e,t,n){var r=e.firstBatch;if(null!==r&&r._expirationTime>=n&&(null===dl?dl=[r]:dl.push(r),r._defer))return e.finishedWork=t,void(e.expirationTime=0);e.finishedWork=null,e===yl?vl++:(yl=e,vl=0),a.unstable_runWithPriority(a.unstable_ImmediatePriority,function(){Hi(e,t)})}function Rl(e){null===al&&i(\"246\"),al.expirationTime=0,ul||(ul=!0,sl=e)}function jl(e,t){var n=cl;cl=!0;try{return e(t)}finally{(cl=n)||ol||Ol(1073741823,!1)}}function Nl(e,t){if(cl&&!fl){fl=!0;try{return e(t)}finally{fl=!1}}return e(t)}function Fl(e,t,n){cl||ol||0===ll||(Ol(ll,!1),ll=0);var r=cl;cl=!0;try{return a.unstable_runWithPriority(a.unstable_UserBlockingPriority,function(){return e(t,n)})}finally{(cl=r)||ol||Ol(1073741823,!1)}}function Ml(e,t,n,r,o){var a=t.current;e:if(n){t:{2===tn(n=n._reactInternalFiber)&&1===n.tag||i(\"170\");var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(Nr(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);i(\"171\"),l=void 0}if(1===n.tag){var u=n.type;if(Nr(u)){n=Dr(n,u,l);break e}}n=l}else n=Pr;return null===t.context?t.context=n:t.pendingContext=n,t=o,(o=Xa(r)).payload={element:e},null!==(t=void 0===t?null:t)&&(o.callback=t),Wi(),Za(a,o),Zi(a,r),r}function Ll(e,t,n,r){var o=t.current;return Ml(e,t,n,o=Yi(xl(),o),r)}function Dl(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function Ul(e){var t=1073741822-25*(1+((1073741822-xl()+500)/25|0));t>=Ti&&(t=Ti-1),this._expirationTime=Ti=t,this._root=e,this._callbacks=this._next=null,this._hasChildren=this._didComplete=!1,this._children=null,this._defer=!0}function zl(){this._callbacks=null,this._didCommit=!1,this._onCommit=this._onCommit.bind(this)}function Bl(e,t,n){e={current:t=qr(3,null,null,t?3:0),containerInfo:e,pendingChildren:null,pingCache:null,earliestPendingTime:0,latestPendingTime:0,earliestSuspendedTime:0,latestSuspendedTime:0,latestPingedTime:0,didError:!1,pendingCommitExpirationTime:0,finishedWork:null,timeoutHandle:-1,context:null,pendingContext:null,hydrate:n,nextExpirationTimeToWorkOn:0,expirationTime:0,firstBatch:null,nextScheduledRoot:null},this._internalRoot=t.stateNode=e}function $l(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||\" react-mount-point-unstable \"!==e.nodeValue))}function Wl(e,t,n,r,o){var a=n._reactRootContainer;if(a){if(\"function\"==typeof o){var i=o;o=function(){var e=Dl(a._internalRoot);i.call(e)}}null!=e?a.legacy_renderSubtreeIntoContainer(e,t,o):a.render(t,o)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute(\"data-reactroot\"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new Bl(e,!1,t)}(n,r),\"function\"==typeof o){var l=o;o=function(){var e=Dl(a._internalRoot);l.call(e)}}Nl(function(){null!=e?a.legacy_renderSubtreeIntoContainer(e,t,o):a.render(t,o)})}return Dl(a._internalRoot)}function Hl(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;return $l(t)||i(\"200\"),function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Ke,key:null==r?null:\"\"+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Te=function(e,t,n){switch(t){case\"input\":if(xt(e,n),t=n.name,\"radio\"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+t)+'][type=\"radio\"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=D(r);o||i(\"90\"),We(r),xt(r,o)}}}break;case\"textarea\":Qn(e,n);break;case\"select\":null!=(t=n.value)&&Kn(e,!!n.multiple,t,!1)}},Ul.prototype.render=function(e){this._defer||i(\"250\"),this._hasChildren=!0,this._children=e;var t=this._root._internalRoot,n=this._expirationTime,r=new zl;return Ml(e,t,null,n,r._onCommit),r},Ul.prototype.then=function(e){if(this._didComplete)e();else{var t=this._callbacks;null===t&&(t=this._callbacks=[]),t.push(e)}},Ul.prototype.commit=function(){var e=this._root._internalRoot,t=e.firstBatch;if(this._defer&&null!==t||i(\"251\"),this._hasChildren){var n=this._expirationTime;if(t!==this){this._hasChildren&&(n=this._expirationTime=t._expirationTime,this.render(this._children));for(var r=null,o=t;o!==this;)r=o,o=o._next;null===r&&i(\"251\"),r._next=o._next,this._next=t,e.firstBatch=this}this._defer=!1,Pl(e,n),t=this._next,this._next=null,null!==(t=e.firstBatch=t)&&t._hasChildren&&t.render(t._children)}else this._next=null,this._defer=!1},Ul.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var e=this._callbacks;if(null!==e)for(var t=0;t<e.length;t++)(0,e[t])()}},zl.prototype.then=function(e){if(this._didCommit)e();else{var t=this._callbacks;null===t&&(t=this._callbacks=[]),t.push(e)}},zl.prototype._onCommit=function(){if(!this._didCommit){this._didCommit=!0;var e=this._callbacks;if(null!==e)for(var t=0;t<e.length;t++){var n=e[t];\"function\"!=typeof n&&i(\"191\",n),n()}}},Bl.prototype.render=function(e,t){var n=this._internalRoot,r=new zl;return null!==(t=void 0===t?null:t)&&r.then(t),Ll(e,n,null,r._onCommit),r},Bl.prototype.unmount=function(e){var t=this._internalRoot,n=new zl;return null!==(e=void 0===e?null:e)&&n.then(e),Ll(null,t,null,n._onCommit),n},Bl.prototype.legacy_renderSubtreeIntoContainer=function(e,t,n){var r=this._internalRoot,o=new zl;return null!==(n=void 0===n?null:n)&&o.then(n),Ll(t,r,e,o._onCommit),o},Bl.prototype.createBatch=function(){var e=new Ul(this),t=e._expirationTime,n=this._internalRoot,r=n.firstBatch;if(null===r)n.firstBatch=e,e._next=null;else{for(n=null;null!==r&&r._expirationTime>=t;)n=r,r=r._next;e._next=r,null!==n&&(n._next=e)}return e},Re=jl,je=Fl,Ne=function(){ol||0===ll||(Ol(ll,!1),ll=0)};var ql={createPortal:Hl,findDOMNode:function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternalFiber;return void 0===t&&(\"function\"==typeof e.render?i(\"188\"):i(\"268\",Object.keys(e))),e=null===(e=rn(t))?null:e.stateNode},hydrate:function(e,t,n){return $l(t)||i(\"200\"),Wl(null,e,t,!0,n)},render:function(e,t,n){return $l(t)||i(\"200\"),Wl(null,e,t,!1,n)},unstable_renderSubtreeIntoContainer:function(e,t,n,r){return $l(n)||i(\"200\"),(null==e||void 0===e._reactInternalFiber)&&i(\"38\"),Wl(e,t,n,!1,r)},unmountComponentAtNode:function(e){return $l(e)||i(\"40\"),!!e._reactRootContainer&&(Nl(function(){Wl(null,null,e,!1,function(){e._reactRootContainer=null})}),!0)},unstable_createPortal:function(){return Hl.apply(void 0,arguments)},unstable_batchedUpdates:jl,unstable_interactiveUpdates:Fl,flushSync:function(e,t){ol&&i(\"187\");var n=cl;cl=!0;try{return Ji(e,t)}finally{cl=n,Ol(1073741823,!1)}},unstable_createRoot:function(e,t){return $l(e)||i(\"299\",\"unstable_createRoot\"),new Bl(e,!0,null!=t&&!0===t.hydrate)},unstable_flushControlled:function(e){var t=cl;cl=!0;try{Ji(e)}finally{(cl=t)||ol||Ol(1073741823,!1)}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[M,L,D,P.injectEventPluginsByName,y,H,function(e){T(e,W)},Ae,Ie,On,I]}};!function(e){var t=e.findFiberByHostInstance;(function(e){if(\"undefined\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Br=Wr(function(e){return t.onCommitFiberRoot(n,e)}),$r=Wr(function(e){return t.onCommitFiberUnmount(n,e)})}catch(r){}})(o({},e,{overrideProps:null,currentDispatcherRef:He.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=rn(e))?null:e.stateNode},findFiberByHostInstance:function(e){return t?t(e):null}}))}({findFiberByHostInstance:F,bundleType:0,version:\"16.8.6\",rendererPackageName:\"react-dom\"});var Vl={default:ql},Gl=Vl&&ql||Vl;e.exports=Gl.default||Gl},function(e,t,n){\"use strict\";var r=n(137),o=n(40);n(78)(\"WeakSet\",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(o(this,\"WeakSet\"),e,!0)}},r,!1,!0)},function(e,t,n){\"use strict\";e.exports=n(221)},function(e,t,n){\"use strict\";(function(e){Object.defineProperty(t,\"__esModule\",{value:!0});var n=null,r=!1,o=3,a=-1,i=-1,l=!1,u=!1;function s(){if(!l){var e=n.expirationTime;u?E():u=!0,x(d,e)}}function c(){var e=n,t=n.next;if(n===t)n=null;else{var r=n.previous;n=r.next=t,t.previous=r}e.next=e.previous=null,r=e.callback,t=e.expirationTime,e=e.priorityLevel;var a=o,l=i;o=e,i=t;try{var u=r()}finally{o=a,i=l}if(\"function\"==typeof u)if(u={callback:u,priorityLevel:e,expirationTime:t,next:null,previous:null},null===n)n=u.next=u.previous=u;else{r=null,e=n;do{if(e.expirationTime>=t){r=e;break}e=e.next}while(e!==n);null===r?r=n:r===n&&(n=u,s()),(t=r.previous).next=r.previous=u,u.next=r,u.previous=t}}function f(){if(-1===a&&null!==n&&1===n.priorityLevel){l=!0;try{do{c()}while(null!==n&&1===n.priorityLevel)}finally{l=!1,null!==n?s():u=!1}}}function d(e){l=!0;var o=r;r=e;try{if(e)for(;null!==n;){var a=t.unstable_now();if(!(n.expirationTime<=a))break;do{c()}while(null!==n&&n.expirationTime<=a)}else if(null!==n)do{c()}while(null!==n&&!S())}finally{l=!1,r=o,null!==n?s():u=!1,f()}}var p,h,m=Date,g=\"function\"==typeof setTimeout?setTimeout:void 0,v=\"function\"==typeof clearTimeout?clearTimeout:void 0,y=\"function\"==typeof requestAnimationFrame?requestAnimationFrame:void 0,b=\"function\"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;function w(e){p=y(function(t){v(h),e(t)}),h=g(function(){b(p),e(t.unstable_now())},100)}if(\"object\"==typeof performance&&\"function\"==typeof performance.now){var k=performance;t.unstable_now=function(){return k.now()}}else t.unstable_now=function(){return m.now()};var x,E,S,_=null;if(\"undefined\"!=typeof window?_=window:void 0!==e&&(_=e),_&&_._schedMock){var T=_._schedMock;x=T[0],E=T[1],S=T[2],t.unstable_now=T[3]}else if(\"undefined\"==typeof window||\"function\"!=typeof MessageChannel){var C=null,O=function(e){if(null!==C)try{C(e)}finally{C=null}};x=function(e){null!==C?setTimeout(x,0,e):(C=e,setTimeout(O,0,!1))},E=function(){C=null},S=function(){return!1}}else{\"undefined\"!=typeof console&&(\"function\"!=typeof y&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"),\"function\"!=typeof b&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"));var P=null,A=!1,I=-1,R=!1,j=!1,N=0,F=33,M=33;S=function(){return N<=t.unstable_now()};var L=new MessageChannel,D=L.port2;L.port1.onmessage=function(){A=!1;var e=P,n=I;P=null,I=-1;var r=t.unstable_now(),o=!1;if(0>=N-r){if(!(-1!==n&&n<=r))return R||(R=!0,w(U)),P=e,void(I=n);o=!0}if(null!==e){j=!0;try{e(o)}finally{j=!1}}};var U=function e(t){if(null!==P){w(e);var n=t-N+M;n<M&&F<M?(8>n&&(n=8),M=n<F?F:n):F=n,N=t+M,A||(A=!0,D.postMessage(void 0))}else R=!1};x=function(e,t){P=e,I=t,j||0>t?D.postMessage(void 0):R||(R=!0,w(U))},E=function(){P=null,A=!1,I=-1}}t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=o,i=a;o=e,a=t.unstable_now();try{return n()}finally{o=r,a=i,f()}},t.unstable_next=function(e){switch(o){case 1:case 2:case 3:var n=3;break;default:n=o}var r=o,i=a;o=n,a=t.unstable_now();try{return e()}finally{o=r,a=i,f()}},t.unstable_scheduleCallback=function(e,r){var i=-1!==a?a:t.unstable_now();if(\"object\"==typeof r&&null!==r&&\"number\"==typeof r.timeout)r=i+r.timeout;else switch(o){case 1:r=i+-1;break;case 2:r=i+250;break;case 5:r=i+1073741823;break;case 4:r=i+1e4;break;default:r=i+5e3}if(e={callback:e,priorityLevel:o,expirationTime:r,next:null,previous:null},null===n)n=e.next=e.previous=e,s();else{i=null;var l=n;do{if(l.expirationTime>r){i=l;break}l=l.next}while(l!==n);null===i?i=n:i===n&&(n=e,s()),(r=i.previous).next=i.previous=e,e.next=i,e.previous=r}return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)n=null;else{e===n&&(n=t);var r=e.previous;r.next=t,t.previous=r}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var n=o;return function(){var r=o,i=a;o=n,a=t.unstable_now();try{return e.apply(this,arguments)}finally{o=r,a=i,f()}}},t.unstable_getCurrentPriorityLevel=function(){return o},t.unstable_shouldYield=function(){return!r&&(null!==n&&n.expirationTime<i||S())},t.unstable_continueExecution=function(){null!==n&&s()},t.unstable_pauseExecution=function(){},t.unstable_getFirstCallbackNode=function(){return n}}).call(this,n(161))},function(e,t,n){\"use strict\";var r=n(26);t.__esModule=!0,t.default=void 0;var o=r(n(83)),a=r(n(84)),i=r(n(97)),l=r(n(0)),u=r(n(223)),s=r(n(10)),c=n(41),f=r(n(230)),d={shouldUpdateScroll:s.default.func,children:s.default.element.isRequired,location:s.default.object.isRequired},p={scrollBehavior:s.default.object.isRequired},h=function(e){function t(t,n){var r;return r=e.call(this,t,n)||this,(0,i.default)((0,a.default)((0,a.default)(r)),\"shouldUpdateScroll\",function(e,t){var n=r.props.shouldUpdateScroll;return!n||n.call(r.scrollBehavior,e,t)}),(0,i.default)((0,a.default)((0,a.default)(r)),\"registerElement\",function(e,t,n){r.scrollBehavior.registerElement(e,t,n,r.getRouterProps())}),(0,i.default)((0,a.default)((0,a.default)(r)),\"unregisterElement\",function(e){r.scrollBehavior.unregisterElement(e)}),r.scrollBehavior=new u.default({addTransitionHook:c.globalHistory.listen,stateStorage:new f.default,getCurrentLocation:function(){return r.props.location},shouldUpdateScroll:r.shouldUpdateScroll}),r}(0,o.default)(t,e);var n=t.prototype;return n.getChildContext=function(){return{scrollBehavior:this}},n.componentDidUpdate=function(e){var t=this.props.location;if(t!==e.location){var n={location:e.location};window.__navigatingToLink?t.action=\"PUSH\":t.action=\"POP\",this.scrollBehavior.updateScroll(n,{history:c.globalHistory,location:t})}},n.componentWillUnmount=function(){this.scrollBehavior.stop()},n.getRouterProps=function(){return{location:this.props.location,history:c.globalHistory}},n.render=function(){return l.default.Children.only(this.props.children)},t}(l.default.Component);h.propTypes=d,h.childContextTypes=p;var m=h;t.default=m},function(e,t,n){\"use strict\";n(5),n(4),n(3),n(6),t.__esModule=!0;var r=c(n(224)),o=c(n(225)),a=c(n(226)),i=c(n(227)),l=c(n(228)),u=c(n(42)),s=n(229);function c(e){return e&&e.__esModule?e:{default:e}}var f=2,d=function(){function e(t){var n=this,r=t.addTransitionHook,u=t.stateStorage,c=t.getCurrentLocation,d=t.shouldUpdateScroll;if(function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this._restoreScrollRestoration=function(){if(n._oldScrollRestoration)try{window.history.scrollRestoration=n._oldScrollRestoration}catch(e){}},this._onWindowScroll=function(){if(n._saveWindowPositionHandle||(n._saveWindowPositionHandle=(0,l.default)(n._saveWindowPosition)),n._windowScrollTarget){var e=n._windowScrollTarget,t=e[0],r=e[1],o=(0,a.default)(window),u=(0,i.default)(window);o===t&&u===r&&(n._windowScrollTarget=null,n._cancelCheckWindowScroll())}},this._saveWindowPosition=function(){n._saveWindowPositionHandle=null,n._savePosition(null,window)},this._checkWindowScrollPosition=function(){n._checkWindowScrollHandle=null,n._windowScrollTarget&&(n.scrollToTarget(window,n._windowScrollTarget),++n._numWindowScrollAttempts,n._numWindowScrollAttempts>=f?n._windowScrollTarget=null:n._checkWindowScrollHandle=(0,l.default)(n._checkWindowScrollPosition))},this._stateStorage=u,this._getCurrentLocation=c,this._shouldUpdateScroll=d,\"scrollRestoration\"in window.history&&!(0,s.isMobileSafari)()){this._oldScrollRestoration=window.history.scrollRestoration;try{window.history.scrollRestoration=\"manual\",(0,o.default)(window,\"beforeunload\",this._restoreScrollRestoration)}catch(p){this._oldScrollRestoration=null}}else this._oldScrollRestoration=null;this._saveWindowPositionHandle=null,this._checkWindowScrollHandle=null,this._windowScrollTarget=null,this._numWindowScrollAttempts=0,this._scrollElements={},(0,o.default)(window,\"scroll\",this._onWindowScroll),this._removeTransitionHook=r(function(){l.default.cancel(n._saveWindowPositionHandle),n._saveWindowPositionHandle=null,Object.keys(n._scrollElements).forEach(function(e){var t=n._scrollElements[e];l.default.cancel(t.savePositionHandle),t.savePositionHandle=null,n._saveElementPosition(e)})})}return e.prototype.registerElement=function(e,t,n,r){var a=this;this._scrollElements[e]&&(0,u.default)(!1);var i=function(){a._saveElementPosition(e)},s={element:t,shouldUpdateScroll:n,savePositionHandle:null,onScroll:function(){s.savePositionHandle||(s.savePositionHandle=(0,l.default)(i))}};this._scrollElements[e]=s,(0,o.default)(t,\"scroll\",s.onScroll),this._updateElementScroll(e,null,r)},e.prototype.unregisterElement=function(e){this._scrollElements[e]||(0,u.default)(!1);var t=this._scrollElements[e],n=t.element,o=t.onScroll,a=t.savePositionHandle;(0,r.default)(n,\"scroll\",o),l.default.cancel(a),delete this._scrollElements[e]},e.prototype.updateScroll=function(e,t){var n=this;this._updateWindowScroll(e,t),Object.keys(this._scrollElements).forEach(function(r){n._updateElementScroll(r,e,t)})},e.prototype.stop=function(){this._restoreScrollRestoration(),(0,r.default)(window,\"scroll\",this._onWindowScroll),this._cancelCheckWindowScroll(),this._removeTransitionHook()},e.prototype._cancelCheckWindowScroll=function(){l.default.cancel(this._checkWindowScrollHandle),this._checkWindowScrollHandle=null},e.prototype._saveElementPosition=function(e){var t=this._scrollElements[e];t.savePositionHandle=null,this._savePosition(e,t.element)},e.prototype._savePosition=function(e,t){this._stateStorage.save(this._getCurrentLocation(),e,[(0,a.default)(t),(0,i.default)(t)])},e.prototype._updateWindowScroll=function(e,t){this._cancelCheckWindowScroll(),this._windowScrollTarget=this._getScrollTarget(null,this._shouldUpdateScroll,e,t),this._numWindowScrollAttempts=0,this._checkWindowScrollPosition()},e.prototype._updateElementScroll=function(e,t,n){var r=this._scrollElements[e],o=r.element,a=r.shouldUpdateScroll,i=this._getScrollTarget(e,a,t,n);i&&this.scrollToTarget(o,i)},e.prototype._getDefaultScrollTarget=function(e){var t=e.hash;return t&&\"#\"!==t?\"#\"===t.charAt(0)?t.slice(1):t:[0,0]},e.prototype._getScrollTarget=function(e,t,n,r){var o=!t||t.call(this,n,r);if(!o||Array.isArray(o)||\"string\"==typeof o)return o;var a=this._getCurrentLocation();return this._getSavedScrollTarget(e,a)||this._getDefaultScrollTarget(a)},e.prototype._getSavedScrollTarget=function(e,t){return\"PUSH\"===t.action?null:this._stateStorage.read(t,e)},e.prototype.scrollToTarget=function(e,t){if(\"string\"==typeof t){var n=document.getElementById(t)||document.getElementsByName(t)[0];if(n)return void n.scrollIntoView();t=[0,0]}var r=t,o=r[0],l=r[1];(0,a.default)(e,o),(0,i.default)(e,l)},e}();t.default=d,e.exports=t.default},function(e,t,n){\"use strict\";var r=n(26);t.__esModule=!0,t.default=void 0;var o=function(){};r(n(99)).default&&(o=document.addEventListener?function(e,t,n,r){return e.removeEventListener(t,n,r||!1)}:document.attachEvent?function(e,t,n){return e.detachEvent(\"on\"+t,n)}:void 0);var a=o;t.default=a,e.exports=t.default},function(e,t,n){\"use strict\";var r=n(26);t.__esModule=!0,t.default=void 0;var o=function(){};r(n(99)).default&&(o=document.addEventListener?function(e,t,n,r){return e.addEventListener(t,n,r||!1)}:document.attachEvent?function(e,t,n){return e.attachEvent(\"on\"+t,function(t){(t=t||window.event).target=t.target||t.srcElement,t.currentTarget=e,n.call(e,t)})}:void 0);var a=o;t.default=a,e.exports=t.default},function(e,t,n){\"use strict\";var r=n(26);t.__esModule=!0,t.default=function(e,t){var n=(0,o.default)(e);if(void 0===t)return n?\"pageXOffset\"in n?n.pageXOffset:n.document.documentElement.scrollLeft:e.scrollLeft;n?n.scrollTo(t,\"pageYOffset\"in n?n.pageYOffset:n.document.documentElement.scrollTop):e.scrollLeft=t};var o=r(n(138));e.exports=t.default},function(e,t,n){\"use strict\";var r=n(26);t.__esModule=!0,t.default=function(e,t){var n=(0,o.default)(e);if(void 0===t)return n?\"pageYOffset\"in n?n.pageYOffset:n.document.documentElement.scrollTop:e.scrollTop;n?n.scrollTo(\"pageXOffset\"in n?n.pageXOffset:n.document.documentElement.scrollLeft,t):e.scrollTop=t};var o=r(n(138));e.exports=t.default},function(e,t,n){\"use strict\";var r=n(26);t.__esModule=!0,t.default=void 0;var o,a=r(n(99)),i=\"clearTimeout\",l=function(e){var t=(new Date).getTime(),n=Math.max(0,16-(t-s)),r=setTimeout(e,n);return s=t,r},u=function(e,t){return e+(e?t[0].toUpperCase()+t.substr(1):t)+\"AnimationFrame\"};a.default&&[\"\",\"webkit\",\"moz\",\"o\",\"ms\"].some(function(e){var t=u(e,\"request\");if(t in window)return i=u(e,\"cancel\"),l=function(e){return window[t](e)}});var s=(new Date).getTime();(o=function(e){return l(e)}).cancel=function(e){window[i]&&\"function\"==typeof window[i]&&window[i](e)};var c=o;t.default=c,e.exports=t.default},function(e,t,n){\"use strict\";t.__esModule=!0,t.isMobileSafari=function(){return/iPad|iPhone|iPod/.test(window.navigator.platform)&&/^((?!CriOS).)*Safari/.test(window.navigator.userAgent)}},function(e,t,n){\"use strict\";t.__esModule=!0,t.default=void 0;var r=function(){function e(){}var t=e.prototype;return t.read=function(e,t){var n=this.getStateKey(e,t);try{var r=window.sessionStorage.getItem(n);return JSON.parse(r)}catch(o){return window&&window.___GATSBY_REACT_ROUTER_SCROLL&&window.___GATSBY_REACT_ROUTER_SCROLL[n]?window.___GATSBY_REACT_ROUTER_SCROLL[n]:{}}},t.save=function(e,t,n){var r=this.getStateKey(e,t),o=JSON.stringify(n);try{window.sessionStorage.setItem(r,o)}catch(a){window&&window.___GATSBY_REACT_ROUTER_SCROLL?window.___GATSBY_REACT_ROUTER_SCROLL[r]=JSON.parse(o):(window.___GATSBY_REACT_ROUTER_SCROLL={},window.___GATSBY_REACT_ROUTER_SCROLL[r]=JSON.parse(o))}},t.getStateKey=function(e,t){var n=\"@@scroll|\"+(e.key||e.pathname);return null==t?n:n+\"|\"+t},e}();t.default=r},function(e,t,n){\"use strict\";var r=n(26);t.__esModule=!0,t.default=void 0;var o=r(n(83)),a=r(n(84)),i=r(n(97)),l=r(n(0)),u=r(n(100)),s=r(n(232)),c=r(n(10)),f={scrollKey:c.default.string.isRequired,shouldUpdateScroll:c.default.func,children:c.default.element.isRequired},d={scrollBehavior:c.default.object},p=function(e){function t(t,n){var r;return r=e.call(this,t,n)||this,(0,i.default)((0,a.default)((0,a.default)(r)),\"shouldUpdateScroll\",function(e,t){var n=r.props.shouldUpdateScroll;return!n||n.call(r.context.scrollBehavior.scrollBehavior,e,t)}),r.scrollKey=t.scrollKey,r}(0,o.default)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.context.scrollBehavior.registerElement(this.props.scrollKey,u.default.findDOMNode(this),this.shouldUpdateScroll)},n.componentDidUpdate=function(e){(0,s.default)(e.scrollKey===this.props.scrollKey,\"<ScrollContainer> does not support changing scrollKey.\")},n.componentWillUnmount=function(){this.context.scrollBehavior.unregisterElement(this.scrollKey)},n.render=function(){return this.props.children},t}(l.default.Component);p.propTypes=f,p.contextTypes=d;var h=p;t.default=h},function(e,t,n){\"use strict\";n(13);e.exports=function(){}},function(e,t,n){\"use strict\";n.r(t);var r=n(7);\"https:\"!==window.location.protocol&&\"localhost\"!==window.location.hostname?console.error(\"Service workers can only be used over HTTPS, or on localhost for development\"):\"serviceWorker\"in navigator&&navigator.serviceWorker.register(\"/sw.js\").then(function(e){e.addEventListener(\"updatefound\",function(){Object(r.apiRunner)(\"onServiceWorkerUpdateFound\",{serviceWorker:e});var t=e.installing;console.log(\"installingWorker\",t),t.addEventListener(\"statechange\",function(){switch(t.state){case\"installed\":navigator.serviceWorker.controller?(window.___swUpdated=!0,Object(r.apiRunner)(\"onServiceWorkerUpdateReady\",{serviceWorker:e}),window.___failedResources&&(console.log(\"resources failed, SW updated - reloading\"),window.location.reload())):(console.log(\"Content is now available offline!\"),Object(r.apiRunner)(\"onServiceWorkerInstalled\",{serviceWorker:e}));break;case\"redundant\":console.error(\"The installing service worker became redundant.\"),Object(r.apiRunner)(\"onServiceWorkerRedundant\",{serviceWorker:e});break;case\"activated\":Object(r.apiRunner)(\"onServiceWorkerActive\",{serviceWorker:e})}})})}).catch(function(e){console.error(\"Error during service worker registration:\",e)})},function(e,t,n){\"use strict\";n.r(t);var r,o,a,i=n(58),l=n(0),u=n.n(l),s=n(2),c=(n(12),n(30),n(18),n(5),n(4),n(3),n(6),n(13),n(76),n(77),n(22),n(60),n(1)),f=n.n(c);f.a.languages.markup={comment:/<!--[\\s\\S]*?-->/,prolog:/<\\?[\\s\\S]+?\\?>/,doctype:/<!DOCTYPE[\\s\\S]+?>/i,cdata:/<!\\[CDATA\\[[\\s\\S]*?]]>/i,tag:{pattern:/<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s\\/>])))+)?\\s*\\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\\/?[^\\s>\\/]+/i,inside:{punctuation:/^<\\/?/,namespace:/^[^\\s>\\/:]+:/}},\"attr-value\":{pattern:/=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\\s*)[\"']|[\"']$/,lookbehind:!0}]}},punctuation:/\\/?>/,\"attr-name\":{pattern:/[^\\s>\\/]+/,inside:{namespace:/^[^\\s>\\/:]+:/}}}},entity:/&#?[\\da-z]{1,8};/i},f.a.languages.markup.tag.inside[\"attr-value\"].inside.entity=f.a.languages.markup.entity,f.a.hooks.add(\"wrap\",function(e){\"entity\"===e.type&&(e.attributes.title=e.content.replace(/&amp;/,\"&\"))}),Object.defineProperty(f.a.languages.markup.tag,\"addInlined\",{value:function(e,t){var n={};n[\"language-\"+t]={pattern:/(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,lookbehind:!0,inside:f.a.languages[t]},n.cdata=/^<!\\[CDATA\\[|\\]\\]>$/i;var r={\"included-cdata\":{pattern:/<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,inside:n}};r[\"language-\"+t]={pattern:/[\\s\\S]+/,inside:f.a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[\\s\\S]*?>)(?:<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\s*|[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g,e),\"i\"),lookbehind:!0,greedy:!0,inside:r},f.a.languages.insertBefore(\"markup\",\"cdata\",o)}}),f.a.languages.xml=f.a.languages.extend(\"markup\",{}),f.a.languages.html=f.a.languages.markup,f.a.languages.mathml=f.a.languages.markup,f.a.languages.svg=f.a.languages.markup,function(e){var t={variable:[{pattern:/\\$?\\(\\([\\s\\S]+?\\)\\)/,inside:{variable:[{pattern:/(^\\$\\(\\([\\s\\S]+)\\)\\)/,lookbehind:!0},/^\\$\\(\\(/],number:/\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,operator:/--?|-=|\\+\\+?|\\+=|!=?|~|\\*\\*?|\\*=|\\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\\^=?|\\|\\|?|\\|=|\\?|:/,punctuation:/\\(\\(?|\\)\\)?|,|;/}},{pattern:/\\$\\([^)]+\\)|`[^`]+`/,greedy:!0,inside:{variable:/^\\$\\(|^`|\\)$|`$/}},/\\$(?:[\\w#?*!@]+|\\{[^}]+\\})/i]};e.languages.bash={shebang:{pattern:/^#!\\s*\\/bin\\/bash|^#!\\s*\\/bin\\/sh/,alias:\"important\"},comment:{pattern:/(^|[^\"{\\\\])#.*/,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<\\s*)[\"']?(\\w+?)[\"']?\\s*\\r?\\n(?:[\\s\\S])*?\\r?\\n\\2/,lookbehind:!0,greedy:!0,inside:t},{pattern:/([\"'])(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|`[^`]+`|(?!\\1)[^\\\\])*\\1/,greedy:!0,inside:t}],variable:t.variable,function:{pattern:/(^|[\\s;|&])(?:add|alias|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|builtin|bzip2|cal|cat|cd|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|comm|command|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|enable|env|ethtool|eval|exec|expand|expect|export|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|getopts|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|hash|head|help|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logout|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|printf|ps|pushd|pv|pwd|quota|quotacheck|quotactl|ram|rar|rcp|read|readarray|readonly|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|shift|shopt|shutdown|sleep|slocate|sort|source|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tail|tar|tee|test|time|timeout|times|top|touch|tr|traceroute|trap|tsort|tty|type|ulimit|umask|umount|unalias|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zip|zypper)(?=$|[\\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\\s;|&])(?:let|:|\\.|if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)(?=$|[\\s;|&])/,lookbehind:!0},boolean:{pattern:/(^|[\\s;|&])(?:true|false)(?=$|[\\s;|&])/,lookbehind:!0},operator:/&&?|\\|\\|?|==?|!=?|<<<?|>>|<=?|>=?|=~/,punctuation:/\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];]/};var n=t.variable[1].inside;n.string=e.languages.bash.string,n.function=e.languages.bash.function,n.keyword=e.languages.bash.keyword,n.boolean=e.languages.bash.boolean,n.operator=e.languages.bash.operator,n.punctuation=e.languages.bash.punctuation,e.languages.shell=e.languages.bash}(f.a),f.a.languages.clike={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,lookbehind:!0},{pattern:/(^|[^\\\\:])\\/\\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},\"class-name\":{pattern:/((?:\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+)|(?:catch\\s+\\())[\\w.\\\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\\\]/}},keyword:/\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,boolean:/\\b(?:true|false)\\b/,function:/\\w+(?=\\()/,number:/\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,operator:/--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,punctuation:/[{}[\\];(),.:]/},f.a.languages.c=f.a.languages.extend(\"clike\",{\"class-name\":{pattern:/(\\b(?:enum|struct)\\s+)\\w+/,lookbehind:!0},keyword:/\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\\b/,operator:/>>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*\\/%&|^!=<>]=?/,number:/(?:\\b0x(?:[\\da-f]+\\.?[\\da-f]*|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]*/i}),f.a.languages.insertBefore(\"c\",\"string\",{macro:{pattern:/(^\\s*)#\\s*[a-z]+(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n|[\\s\\S]))*/im,lookbehind:!0,alias:\"property\",inside:{string:{pattern:/(#\\s*include\\s*)(?:<.+?>|(\"|')(?:\\\\?.)+?\\2)/,lookbehind:!0},directive:{pattern:/(#\\s*)\\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\\b/,lookbehind:!0,alias:\"keyword\"}}},constant:/\\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\\b/}),delete f.a.languages.c.boolean,f.a.languages.cpp=f.a.languages.extend(\"c\",{\"class-name\":{pattern:/(\\b(?:class|enum|struct)\\s+)\\w+/,lookbehind:!0},keyword:/\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/,boolean:/\\b(?:true|false)\\b/,operator:/>>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*\\/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/}),f.a.languages.insertBefore(\"cpp\",\"string\",{\"raw-string\":{pattern:/R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,alias:\"string\",greedy:!0}}),function(e){var t=/(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/;e.languages.css={comment:/\\/\\*[\\s\\S]*?\\*\\//,atrule:{pattern:/@[\\w-]+?[\\s\\S]*?(?:;|(?=\\s*\\{))/i,inside:{rule:/@[\\w-]+/}},url:RegExp(\"url\\\\((?:\"+t.source+\"|.*?)\\\\)\",\"i\"),selector:RegExp(\"[^{}\\\\s](?:[^{};\\\"']|\"+t.source+\")*?(?=\\\\s*\\\\{)\"),string:{pattern:t,greedy:!0},property:/[-_a-z\\xA0-\\uFFFF][-\\w\\xA0-\\uFFFF]*(?=\\s*:)/i,important:/!important\\b/i,function:/[-a-z0-9]+(?=\\()/i,punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined(\"style\",\"css\"),e.languages.insertBefore(\"inside\",\"attr-value\",{\"style-attr\":{pattern:/\\s*style=(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/i,inside:{\"attr-name\":{pattern:/^\\s*style/i,inside:n.tag.inside},punctuation:/^\\s*=\\s*['\"]|['\"]\\s*$/,\"attr-value\":{pattern:/.+/i,inside:e.languages.css}},alias:\"language-css\"}},n.tag))}(f.a),f.a.languages.css.selector={pattern:f.a.languages.css.selector,inside:{\"pseudo-element\":/:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\"pseudo-class\":/:[-\\w]+/,class:/\\.[-:.\\w]+/,id:/#[-:.\\w]+/,attribute:{pattern:/\\[(?:[^[\\]\"']|(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1)*\\]/,greedy:!0,inside:{punctuation:/^\\[|\\]$/,\"case-sensitivity\":{pattern:/(\\s)[si]$/i,lookbehind:!0,alias:\"keyword\"},namespace:{pattern:/^(\\s*)[-*\\w\\xA0-\\uFFFF]*\\|(?!=)/,lookbehind:!0,inside:{punctuation:/\\|$/}},attribute:{pattern:/^(\\s*)[-\\w\\xA0-\\uFFFF]+/,lookbehind:!0},value:[/(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,{pattern:/(=\\s*)[-\\w\\xA0-\\uFFFF]+(?=\\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},\"n-th\":{pattern:/(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/,lookbehind:!0,inside:{number:/[\\dn]+/,operator:/[+-]/}},punctuation:/[()]/}},f.a.languages.insertBefore(\"css\",\"property\",{variable:{pattern:/(^|[^-\\w\\xA0-\\uFFFF])--[-_a-z\\xA0-\\uFFFF][-\\w\\xA0-\\uFFFF]*/i,lookbehind:!0}}),f.a.languages.insertBefore(\"css\",\"function\",{operator:{pattern:/(\\s)[+\\-*\\/](?=\\s)/,lookbehind:!0},hexcode:/#[\\da-f]{3,8}/i,entity:/\\\\[\\da-f]{1,8}/i,unit:{pattern:/(\\d)(?:%|[a-z]+)/,lookbehind:!0},number:/-?[\\d.]+/}),f.a.languages.javascript=f.a.languages.extend(\"clike\",{\"class-name\":[f.a.languages.clike[\"class-name\"],{pattern:/(^|[^$\\w\\xA0-\\uFFFF])[_$A-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\\s*)(?:catch|finally)\\b/,lookbehind:!0},{pattern:/(^|[^.])\\b(?:as|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,lookbehind:!0}],number:/\\b(?:(?:0[xX][\\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\\d+n|NaN|Infinity)\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,function:/[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,operator:/-[-=]?|\\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\\|[|=]?|\\*\\*?=?|\\/=?|~|\\^=?|%=?|\\?|\\.{3}/}),f.a.languages.javascript[\"class-name\"][0].pattern=/(\\b(?:class|interface|extends|implements|instanceof|new)\\s+)[\\w.\\\\]+/,f.a.languages.insertBefore(\"javascript\",\"keyword\",{regex:{pattern:/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s])\\s*)\\/(\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*]|\\\\.|[^\\/\\\\\\[\\r\\n])+\\/[gimyu]{0,5}(?=\\s*($|[\\r\\n,.;})\\]]))/,lookbehind:!0,greedy:!0},\"function-variable\":{pattern:/[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/,alias:\"function\"},parameter:[{pattern:/(function(?:\\s+[_$A-Za-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)?\\s*\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\))/,lookbehind:!0,inside:f.a.languages.javascript},{pattern:/[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=>)/i,inside:f.a.languages.javascript},{pattern:/(\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\)\\s*=>)/,lookbehind:!0,inside:f.a.languages.javascript},{pattern:/((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:[_$A-Za-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\s*)\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\)\\s*\\{)/,lookbehind:!0,inside:f.a.languages.javascript}],constant:/\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/}),f.a.languages.insertBefore(\"javascript\",\"string\",{\"template-string\":{pattern:/`(?:\\\\[\\s\\S]|\\${[^}]+}|[^\\\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\\${[^}]+}/,inside:{\"interpolation-punctuation\":{pattern:/^\\${|}$/,alias:\"punctuation\"},rest:f.a.languages.javascript}},string:/[\\s\\S]+/}}}),f.a.languages.markup&&f.a.languages.markup.tag.addInlined(\"script\",\"javascript\"),f.a.languages.js=f.a.languages.javascript,function(e){var t=e.util.clone(e.languages.javascript);e.languages.jsx=e.languages.extend(\"markup\",t),e.languages.jsx.tag.pattern=/<\\/?(?:[\\w.:-]+\\s*(?:\\s+(?:[\\w.:-]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s{'\">=]+|\\{(?:\\{(?:\\{[^}]*\\}|[^{}])*\\}|[^{}])+\\}))?|\\{\\.{3}[a-z_$][\\w$]*(?:\\.[a-z_$][\\w$]*)*\\}))*\\s*\\/?)?>/i,e.languages.jsx.tag.inside.tag.pattern=/^<\\/?[^\\s>\\/]*/i,e.languages.jsx.tag.inside[\"attr-value\"].pattern=/=(?!\\{)(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">]+)/i,e.languages.jsx.tag.inside.tag.inside[\"class-name\"]=/^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/,e.languages.insertBefore(\"inside\",\"attr-name\",{spread:{pattern:/\\{\\.{3}[a-z_$][\\w$]*(?:\\.[a-z_$][\\w$]*)*\\}/,inside:{punctuation:/\\.{3}|[{}.]/,\"attr-value\":/\\w+/}}},e.languages.jsx.tag),e.languages.insertBefore(\"inside\",\"attr-value\",{script:{pattern:/=(\\{(?:\\{(?:\\{[^}]*\\}|[^}])*\\}|[^}])+\\})/i,inside:{\"script-punctuation\":{pattern:/^=(?={)/,alias:\"punctuation\"},rest:e.languages.jsx},alias:\"language-javascript\"}},e.languages.jsx.tag);var n=function e(t){return t?\"string\"==typeof t?t:\"string\"==typeof t.content?t.content:t.content.map(e).join(\"\"):\"\"};e.hooks.add(\"after-tokenize\",function(t){\"jsx\"!==t.language&&\"tsx\"!==t.language||function t(r){for(var o=[],a=0;a<r.length;a++){var i=r[a],l=!1;if(\"string\"!=typeof i&&(\"tag\"===i.type&&i.content[0]&&\"tag\"===i.content[0].type?\"</\"===i.content[0].content[0].content?o.length>0&&o[o.length-1].tagName===n(i.content[0].content[1])&&o.pop():\"/>\"===i.content[i.content.length-1].content||o.push({tagName:n(i.content[0].content[1]),openedBraces:0}):o.length>0&&\"punctuation\"===i.type&&\"{\"===i.content?o[o.length-1].openedBraces++:o.length>0&&o[o.length-1].openedBraces>0&&\"punctuation\"===i.type&&\"}\"===i.content?o[o.length-1].openedBraces--:l=!0),(l||\"string\"==typeof i)&&o.length>0&&0===o[o.length-1].openedBraces){var u=n(i);a<r.length-1&&(\"string\"==typeof r[a+1]||\"plain-text\"===r[a+1].type)&&(u+=n(r[a+1]),r.splice(a+1,1)),a>0&&(\"string\"==typeof r[a-1]||\"plain-text\"===r[a-1].type)&&(u=n(r[a-1])+u,r.splice(a-1,1),a--),r[a]=new e.Token(\"plain-text\",u,null,u)}i.content&&\"string\"!=typeof i.content&&t(i.content)}}(t.tokens)})}(f.a),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^\\s*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:param|arg|arguments)\\s+)\\w+/m,lookbehind:!0},keyword:{pattern:/(^\\s*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,\"addSupport\",{value:function(t,n){\"string\"==typeof t&&(t=[t]),t.forEach(function(t){!function(t,n){var r=e.languages[t];if(r){var o=r[\"doc-comment\"];if(!o){var a={\"doc-comment\":{pattern:/(^|[^\\\\])\\/\\*\\*[^\\/][\\s\\S]*?(?:\\*\\/|$)/,alias:\"comment\"}};o=(r=e.languages.insertBefore(t,\"comment\",a))[\"doc-comment\"]}if(o instanceof RegExp&&(o=r[\"doc-comment\"]={pattern:o}),Array.isArray(o))for(var i=0,l=o.length;i<l;i++)o[i]instanceof RegExp&&(o[i]={pattern:o[i]}),n(o[i]);else n(o)}}(t,function(e){e.inside||(e.inside={}),e.inside.rest=n})})}}),t.addSupport([\"java\",\"javascript\",\"php\"],t)}(f.a),r=f.a,o=/\\b(?:abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while|var|null|exports|module|open|opens|provides|requires|to|transitive|uses|with)\\b/,a=/\\b[A-Z](?:\\w*[a-z]\\w*)?\\b/,r.languages.java=r.languages.extend(\"clike\",{\"class-name\":[a,/\\b[A-Z]\\w*(?=\\s+\\w+\\s*[;,=())])/],keyword:o,function:[r.languages.clike.function,{pattern:/(\\:\\:)[a-z_]\\w*/,lookbehind:!0}],number:/\\b0b[01][01_]*L?\\b|\\b0x[\\da-f_]*\\.?[\\da-f_p+-]+\\b|(?:\\b\\d[\\d_]*\\.?[\\d_]*|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|([-+&|])\\2|[?:~]|[-+*\\/%&|^!=<>]=?)/m,lookbehind:!0}}),r.languages.insertBefore(\"java\",\"class-name\",{annotation:{alias:\"punctuation\",pattern:/(^|[^.])@\\w+/,lookbehind:!0},namespace:{pattern:/(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)[a-z]\\w*(\\.[a-z]\\w*)+/,lookbehind:!0,inside:{punctuation:/\\./}},generics:{pattern:/<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<[\\w\\s,.&?]*>)*>)*>)*>/,inside:{\"class-name\":a,keyword:o,punctuation:/[<>(),.:]/,operator:/[?&|]/}}}),function(e){function t(e,t){return\"___\"+e.toUpperCase()+t+\"___\"}Object.defineProperties(e.languages[\"markup-templating\"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,function(e){if(\"function\"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o}),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var u=0;u<l.length&&!(o>=a.length);u++){var s=l[u];if(\"string\"==typeof s||s.content&&\"string\"==typeof s.content){var c=a[o],f=n.tokenStack[c],d=\"string\"==typeof s?s:s.content,p=t(r,c),h=d.indexOf(p);if(h>-1){++o;var m=d.substring(0,h),g=new e.Token(r,e.tokenize(f,n.grammar),\"language-\"+r,f),v=d.substring(h+p.length),y=[];m&&y.push.apply(y,i([m])),y.push(g),v&&y.push.apply(y,i([v])),\"string\"==typeof s?l.splice.apply(l,[u,1].concat(y)):s.content=y}}else s.content&&i(s.content)}return l}(n.tokens)}}}})}(f.a),function(e){e.languages.php=e.languages.extend(\"clike\",{keyword:/\\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\\b/i,boolean:{pattern:/\\b(?:false|true)\\b/i,alias:\"constant\"},constant:[/\\b[A-Z_][A-Z0-9_]*\\b/,/\\b(?:null)\\b/i],comment:{pattern:/(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,lookbehind:!0}}),e.languages.insertBefore(\"php\",\"string\",{\"shell-comment\":{pattern:/(^|[^\\\\])#.*/,lookbehind:!0,alias:\"comment\"}}),e.languages.insertBefore(\"php\",\"comment\",{delimiter:{pattern:/\\?>$|^<\\?(?:php(?=\\s)|=)?/i,alias:\"important\"}}),e.languages.insertBefore(\"php\",\"keyword\",{variable:/\\$+(?:\\w+\\b|(?={))/i,package:{pattern:/(\\\\|namespace\\s+|use\\s+)[\\w\\\\]+/,lookbehind:!0,inside:{punctuation:/\\\\/}}}),e.languages.insertBefore(\"php\",\"operator\",{property:{pattern:/(->)[\\w]+/,lookbehind:!0}});var t={pattern:/{\\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[.+?]|->\\w+)*)/,lookbehind:!0,inside:{rest:e.languages.php}};e.languages.insertBefore(\"php\",\"string\",{\"nowdoc-string\":{pattern:/<<<'([^']+)'(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?\\1;/,greedy:!0,alias:\"string\",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\\w*;$/i,alias:\"symbol\",inside:{punctuation:/^<<<'?|[';]$/}}}},\"heredoc-string\":{pattern:/<<<(?:\"([^\"]+)\"(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?\\1;|([a-z_]\\w*)(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?\\2;)/i,greedy:!0,alias:\"string\",inside:{delimiter:{pattern:/^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,alias:\"symbol\",inside:{punctuation:/^<<<\"?|[\";]$/}},interpolation:t}},\"single-quoted-string\":{pattern:/'(?:\\\\[\\s\\S]|[^\\\\'])*'/,greedy:!0,alias:\"string\"},\"double-quoted-string\":{pattern:/\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,greedy:!0,alias:\"string\",inside:{interpolation:t}}}),delete e.languages.php.string,e.hooks.add(\"before-tokenize\",function(t){if(/<\\?/.test(t.code)){e.languages[\"markup-templating\"].buildPlaceholders(t,\"php\",/<\\?(?:[^\"'\\/#]|\\/(?![*\\/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#)(?:[^?\\n\\r]|\\?(?!>))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$))*?(?:\\?>|$)/gi)}}),e.hooks.add(\"after-tokenize\",function(t){e.languages[\"markup-templating\"].tokenizePlaceholders(t,\"php\")})}(f.a),function(e){var t=e.languages.javascript,n=/{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})+}/.source,r=\"(@(?:param|arg|argument|property)\\\\s+(?:\"+n+\"\\\\s+)?)\";e.languages.jsdoc=e.languages.extend(\"javadoclike\",{parameter:{pattern:RegExp(r+/[$\\w\\xA0-\\uFFFF.]+(?=\\s|$)/.source),lookbehind:!0,inside:{punctuation:/\\./}}}),e.languages.insertBefore(\"jsdoc\",\"keyword\",{\"optional-parameter\":{pattern:RegExp(r+/\\[[$\\w\\xA0-\\uFFFF.]+(?:=[^[\\]]+)?\\](?=\\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/,lookbehind:!0,inside:{punctuation:/\\./}},code:{pattern:/(=)[\\s\\S]*(?=\\]$)/,lookbehind:!0,inside:t,alias:\"language-javascript\"},punctuation:/[=[\\]]/}},\"class-name\":[{pattern:RegExp(\"(@[a-z]+\\\\s+)\"+n),lookbehind:!0,inside:{punctuation:/[.,:?=<>|{}()[\\]]/}},{pattern:/(@(?:augments|extends|class|interface|memberof!?|this)\\s+)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/,lookbehind:!0,inside:{punctuation:/\\./}}],example:{pattern:/(@example\\s+)[^@]+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/,lookbehind:!0,inside:{code:{pattern:/^(\\s*(?:\\*\\s*)?).+$/m,lookbehind:!0,inside:t,alias:\"language-javascript\"}}}}),e.languages.javadoclike.addSupport(\"javascript\",e.languages.jsdoc)}(f.a),f.a.languages.actionscript=f.a.languages.extend(\"javascript\",{keyword:/\\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\\b/,operator:/\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),f.a.languages.actionscript[\"class-name\"].alias=\"function\",f.a.languages.markup&&f.a.languages.insertBefore(\"actionscript\",\"string\",{xml:{pattern:/(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/,lookbehind:!0,inside:{rest:f.a.languages.markup}}}),function(e){var t=/#(?!\\{).+/,n={pattern:/#\\{[^}]+\\}/,alias:\"variable\"};e.languages.coffeescript=e.languages.extend(\"javascript\",{comment:t,string:[{pattern:/'(?:\\\\[\\s\\S]|[^\\\\'])*'/,greedy:!0},{pattern:/\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,greedy:!0,inside:{interpolation:n}}],keyword:/\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/,\"class-member\":{pattern:/@(?!\\d)\\w+/,alias:\"variable\"}}),e.languages.insertBefore(\"coffeescript\",\"comment\",{\"multiline-comment\":{pattern:/###[\\s\\S]+?###/,alias:\"comment\"},\"block-regex\":{pattern:/\\/{3}[\\s\\S]*?\\/{3}/,alias:\"regex\",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore(\"coffeescript\",\"string\",{\"inline-javascript\":{pattern:/`(?:\\\\[\\s\\S]|[^\\\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:\"punctuation\"},rest:e.languages.javascript}},\"multiline-string\":[{pattern:/'''[\\s\\S]*?'''/,greedy:!0,alias:\"string\"},{pattern:/\"\"\"[\\s\\S]*?\"\"\"/,greedy:!0,alias:\"string\",inside:{interpolation:n}}]}),e.languages.insertBefore(\"coffeescript\",\"keyword\",{property:/(?!\\d)\\w+(?=\\s*:(?!:))/}),delete e.languages.coffeescript[\"template-string\"],e.languages.coffee=e.languages.coffeescript}(f.a),function(e){e.languages.insertBefore(\"javascript\",\"function-variable\",{\"method-variable\":{pattern:RegExp(\"(\\\\.\\\\s*)\"+e.languages.javascript[\"function-variable\"].pattern.source),lookbehind:!0,alias:[\"function-variable\",\"method\",\"function\",\"property-access\"]}}),e.languages.insertBefore(\"javascript\",\"function\",{method:{pattern:RegExp(\"(\\\\.\\\\s*)\"+e.languages.javascript.function.source),lookbehind:!0,alias:[\"function\",\"property-access\"]}}),e.languages.insertBefore(\"javascript\",\"constant\",{\"known-class-name\":[{pattern:/\\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\\b/,alias:\"class-name\"},{pattern:/\\b(?:[A-Z]\\w*)Error\\b/,alias:\"class-name\"}]}),e.languages.javascript.keyword.unshift({pattern:/\\b(?:as|default|export|from|import)\\b/,alias:\"module\"},{pattern:/\\bnull\\b/,alias:[\"null\",\"nil\"]},{pattern:/\\bundefined\\b/,alias:\"nil\"}),e.languages.insertBefore(\"javascript\",\"operator\",{spread:{pattern:/\\.{3}/,alias:\"operator\"},arrow:{pattern:/=>/,alias:\"operator\"}}),e.languages.insertBefore(\"javascript\",\"punctuation\",{\"property-access\":{pattern:/(\\.\\s*)[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*/,lookbehind:!0},\"maybe-class-name\":{pattern:/(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,lookbehind:!0},dom:{pattern:/\\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\\b/,alias:\"variable\"},console:{pattern:/\\bconsole(?=\\s*\\.)/,alias:\"class-name\"}});for(var t=[\"function\",\"function-variable\",\"method\",\"method-variable\",\"property-access\"],n=0;n<t.length;n++){var r=t[n],o=e.languages.javascript[r];\"RegExp\"===e.util.type(o)&&(o=e.languages.javascript[r]={pattern:o});var a=o.inside||{};o.inside=a,a[\"maybe-class-name\"]=/^[A-Z][\\s\\S]*/}}(f.a),function(e){e.languages.flow=e.languages.extend(\"javascript\",{}),e.languages.insertBefore(\"flow\",\"keyword\",{type:[{pattern:/\\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\\b/,alias:\"tag\"}]}),e.languages.flow[\"function-variable\"].pattern=/[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore(\"flow\",\"operator\",{\"flow-punctuation\":{pattern:/\\{\\||\\|\\}/,alias:\"punctuation\"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\\b)(?:type|opaque|declare|Class)\\b(?!\\$)/,lookbehind:!0},{pattern:/(^|[^$]\\B)\\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\\b(?!\\$)/,lookbehind:!0})}(f.a),f.a.languages.n4js=f.a.languages.extend(\"javascript\",{keyword:/\\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/}),f.a.languages.insertBefore(\"n4js\",\"constant\",{annotation:{pattern:/@+\\w+/,alias:\"operator\"}}),f.a.languages.n4jsd=f.a.languages.n4js,f.a.languages.typescript=f.a.languages.extend(\"javascript\",{keyword:/\\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\\b/,builtin:/\\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\\b/}),f.a.languages.ts=f.a.languages.typescript,f.a.languages.diff={coord:[/^(?:\\*{3}|-{3}|\\+{3}).*$/m,/^@@.*@@$/m,/^\\d+.*$/m],deleted:/^[-<].*$/m,inserted:/^[+>].*$/m,diff:{pattern:/^!(?!!).+$/m,alias:\"important\"}},f.a.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\\+.*/m,string:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/m,command:{pattern:/^.*\\$ git .*$/m,inside:{parameter:/\\s--?\\w+/m}},coord:/^@@.*@@$/m,commit_sha1:/^commit \\w{40}$/m},f.a.languages.go=f.a.languages.extend(\"clike\",{keyword:/\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,builtin:/\\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\\b/,boolean:/\\b(?:_|iota|nil|true|false)\\b/,operator:/[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,number:/(?:\\b0x[a-f\\d]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[-+]?\\d+)?)i?/i,string:{pattern:/([\"'`])(\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,greedy:!0}}),delete f.a.languages.go[\"class-name\"],f.a.languages.graphql={comment:/#.*/,string:{pattern:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,greedy:!0},number:/(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,boolean:/\\b(?:true|false)\\b/,variable:/\\$[a-z_]\\w*/i,directive:{pattern:/@[a-z_]\\w*/i,alias:\"function\"},\"attr-name\":{pattern:/[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,greedy:!0},\"class-name\":{pattern:/(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+)[a-zA-Z_]\\w*/,lookbehind:!0},fragment:{pattern:/(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,lookbehind:!0,alias:\"function\"},keyword:/\\b(?:enum|fragment|implements|input|interface|mutation|on|query|scalar|schema|type|union)\\b/,operator:/[!=|]|\\.{3}/,punctuation:/[!(){}\\[\\]:=,]/,constant:/\\b(?!ID\\b)[A-Z][A-Z_\\d]*\\b/},function(e){e.languages.handlebars={comment:/\\{\\{![\\s\\S]*?\\}\\}/,delimiter:{pattern:/^\\{\\{\\{?|\\}\\}\\}?$/i,alias:\"punctuation\"},string:/([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,number:/\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,boolean:/\\b(?:true|false)\\b/,block:{pattern:/^(\\s*~?\\s*)[#\\/]\\S+?(?=\\s*~?\\s*$|\\s)/i,lookbehind:!0,alias:\"keyword\"},brackets:{pattern:/\\[[^\\]]+\\]/,inside:{punctuation:/\\[|\\]/,variable:/[\\s\\S]+/}},punctuation:/[!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]/,variable:/[^!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~\\s]+/},e.hooks.add(\"before-tokenize\",function(t){e.languages[\"markup-templating\"].buildPlaceholders(t,\"handlebars\",/\\{\\{\\{[\\s\\S]+?\\}\\}\\}|\\{\\{[\\s\\S]+?\\}\\}/g)}),e.hooks.add(\"after-tokenize\",function(t){e.languages[\"markup-templating\"].tokenizePlaceholders(t,\"handlebars\")})}(f.a),f.a.languages.json={comment:/\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,property:{pattern:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,greedy:!0},string:{pattern:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,greedy:!0},number:/-?\\d+\\.?\\d*(e[+-]?\\d+)?/i,punctuation:/[{}[\\],]/,operator:/:/,boolean:/\\b(?:true|false)\\b/,null:{pattern:/\\bnull\\b/,alias:\"keyword\"}},f.a.languages.less=f.a.languages.extend(\"css\",{comment:[/\\/\\*[\\s\\S]*?\\*\\//,{pattern:/(^|[^\\\\])\\/\\/.*/,lookbehind:!0}],atrule:{pattern:/@[\\w-]+?(?:\\([^{}]+\\)|[^(){};])*?(?=\\s*\\{)/i,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\([^{}]*\\)|[^{};@])*?(?=\\s*\\{)/,inside:{variable:/@+[\\w-]+/}},property:/(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/i,operator:/[+\\-*\\/]/}),f.a.languages.insertBefore(\"less\",\"property\",{variable:[{pattern:/@[\\w-]+\\s*:/,inside:{punctuation:/:/}},/@@?[\\w-]+/],\"mixin-usage\":{pattern:/([{;]\\s*)[.#](?!\\d)[\\w-]+.*?(?=[(;])/,lookbehind:!0,alias:\"function\"}}),f.a.languages.makefile={comment:{pattern:/(^|[^\\\\])#(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/,lookbehind:!0},string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},builtin:/\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,symbol:{pattern:/^[^:=\\r\\n]+(?=\\s*:(?!=))/m,inside:{variable:/\\$+(?:[^(){}:#=\\s]+|(?=[({]))/}},variable:/\\$+(?:[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,keyword:[/-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/,{pattern:/(\\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \\t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},f.a.languages.markdown=f.a.languages.extend(\"markup\",{}),f.a.languages.insertBefore(\"markdown\",\"prolog\",{blockquote:{pattern:/^>(?:[\\t ]*>)*/m,alias:\"punctuation\"},code:[{pattern:/^(?: {4}|\\t).+/m,alias:\"keyword\"},{pattern:/``.+?``|`[^`\\n]+`/,alias:\"keyword\"},{pattern:/^```[\\s\\S]*?^```$/m,greedy:!0,inside:{\"code-block\":{pattern:/^(```.*(?:\\r?\\n|\\r))[\\s\\S]+?(?=(?:\\r?\\n|\\r)^```$)/m,lookbehind:!0},\"code-language\":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\\S.*(?:\\r?\\n|\\r)(?:==+|--+)/,alias:\"important\",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\\s*)#+.+/m,lookbehind:!0,alias:\"important\",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,lookbehind:!0,alias:\"punctuation\"},list:{pattern:/(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,lookbehind:!0,alias:\"punctuation\"},\"url-reference\":{pattern:/!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,inside:{variable:{pattern:/^(!?\\[)[^\\]]+/,lookbehind:!0},string:/(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,punctuation:/^[\\[\\]!:]|[<>]/},alias:\"url\"},bold:{pattern:/(^|[^\\\\])(\\*\\*|__)(?:(?:\\r?\\n|\\r)(?!\\r?\\n|\\r)|.)+?\\2/,lookbehind:!0,greedy:!0,inside:{punctuation:/^\\*\\*|^__|\\*\\*$|__$/}},italic:{pattern:/(^|[^\\\\])([*_])(?:(?:\\r?\\n|\\r)(?!\\r?\\n|\\r)|.)+?\\2/,lookbehind:!0,greedy:!0,inside:{punctuation:/^[*_]|[*_]$/}},strike:{pattern:/(^|[^\\\\])(~~?)(?:(?:\\r?\\n|\\r)(?!\\r?\\n|\\r)|.)+?\\2/,lookbehind:!0,greedy:!0,inside:{punctuation:/^~~?|~~?$/}},url:{pattern:/!?\\[[^\\]]+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)| ?\\[[^\\]\\n]*\\])/,inside:{variable:{pattern:/(!?\\[)[^\\]]+(?=\\]$)/,lookbehind:!0},string:{pattern:/\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/}}}}),[\"bold\",\"italic\",\"strike\"].forEach(function(e){[\"url\",\"bold\",\"italic\",\"strike\"].forEach(function(t){e!==t&&(f.a.languages.markdown[e].inside[t]=f.a.languages.markdown[t])})}),f.a.hooks.add(\"after-tokenize\",function(e){\"markdown\"!==e.language&&\"md\"!==e.language||function e(t){if(t&&\"string\"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o=t[n];if(\"code\"===o.type){var a=o.content[1],i=o.content[3];if(a&&i&&\"code-language\"===a.type&&\"code-block\"===i.type&&\"string\"==typeof a.content){var l=\"language-\"+a.content.trim().split(/\\s+/)[0].toLowerCase();i.alias?\"string\"==typeof i.alias?i.alias=[i.alias,l]:i.alias.push(l):i.alias=[l]}}else e(o.content)}}(e.tokens)}),f.a.hooks.add(\"wrap\",function(e){if(\"code-block\"===e.type){for(var t=\"\",n=0,r=e.classes.length;n<r;n++){var o=e.classes[n],a=/language-(.+)/.exec(o);if(a){t=a[1];break}}var i=f.a.languages[t];if(i){var l=e.content.replace(/&lt;/g,\"<\").replace(/&amp;/g,\"&\");e.content=f.a.highlight(l,i,t)}}}),f.a.languages.md=f.a.languages.markdown,f.a.languages.objectivec=f.a.languages.extend(\"c\",{keyword:/\\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,string:/(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|@\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,operator:/-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/}),delete f.a.languages.objectivec[\"class-name\"],f.a.languages.ocaml={comment:/\\(\\*[\\s\\S]*?\\*\\)/,string:[{pattern:/\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,greedy:!0},{pattern:/(['`])(?:\\\\(?:\\d+|x[\\da-f]+|.)|(?!\\1)[^\\\\\\r\\n])\\1/i,greedy:!0}],number:/\\b(?:0x[\\da-f][\\da-f_]+|(?:0[bo])?\\d[\\d_]*\\.?[\\d_]*(?:e[+-]?[\\d_]+)?)/i,type:{pattern:/\\B['`]\\w*/,alias:\"variable\"},directive:{pattern:/\\B#\\w+/,alias:\"function\"},keyword:/\\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\\b/,boolean:/\\b(?:false|true)\\b/,operator:/:=|[=<>@^|&+\\-*\\/$%!?~][!$%&*+\\-.\\/:<=>?@^|~]*|\\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\\b/,punctuation:/[(){}\\[\\]|_.,:;]/},f.a.languages.python={comment:{pattern:/(^|[^\\\\])#.*/,lookbehind:!0},\"string-interpolation\":{pattern:/(?:f|rf|fr)(?:(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{\"format-spec\":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},\"conversion-option\":{pattern:/![sra](?=[:}]$)/,alias:\"punctuation\"},rest:null}},string:/[\\s\\S]+/}},\"triple-quoted-string\":{pattern:/(?:[rub]|rb|br)?(\"\"\"|''')[\\s\\S]+?\\1/i,greedy:!0,alias:\"string\"},string:{pattern:/(?:[rub]|rb|br)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,greedy:!0},function:{pattern:/((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,lookbehind:!0},\"class-name\":{pattern:/(\\bclass\\s+)\\w+/i,lookbehind:!0},decorator:{pattern:/(^\\s*)@\\w+(?:\\.\\w+)*/i,lookbehind:!0,alias:[\"annotation\",\"punctuation\"],inside:{punctuation:/\\./}},keyword:/\\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,builtin:/\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,boolean:/\\b(?:True|False|None)\\b/,number:/(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*\\.?\\d*|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,operator:/[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\\];(),.:]/},f.a.languages.python[\"string-interpolation\"].inside.interpolation.inside.rest=f.a.languages.python,f.a.languages.py=f.a.languages.python,f.a.languages.reason=f.a.languages.extend(\"clike\",{comment:{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0},string:{pattern:/\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,greedy:!0},\"class-name\":/\\b[A-Z]\\w*/,keyword:/\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/,operator:/\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:mod|land|lor|lxor|lsl|lsr|asr)\\b/}),f.a.languages.insertBefore(\"reason\",\"class-name\",{character:{pattern:/'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/,alias:\"string\"},constructor:{pattern:/\\b[A-Z]\\w*\\b(?!\\s*\\.)/,alias:\"variable\"},label:{pattern:/\\b[a-z]\\w*(?=::)/,alias:\"symbol\"}}),delete f.a.languages.reason.function,function(e){e.languages.sass=e.languages.extend(\"css\",{comment:{pattern:/^([ \\t]*)\\/[\\/*].*(?:(?:\\r?\\n|\\r)\\1[ \\t]+.+)*/m,lookbehind:!0}}),e.languages.insertBefore(\"sass\",\"atrule\",{\"atrule-line\":{pattern:/^(?:[ \\t]*)[@+=].+/m,inside:{atrule:/(?:@[\\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var t=/\\$[-\\w]+|#\\{\\$[-\\w]+\\}/,n=[/[+*\\/%]|[=!]=|<=?|>=?|\\b(?:and|or|not)\\b/,{pattern:/(\\s+)-(?=\\s)/,lookbehind:!0}];e.languages.insertBefore(\"sass\",\"property\",{\"variable-line\":{pattern:/^[ \\t]*\\$.+/m,inside:{punctuation:/:/,variable:t,operator:n}},\"property-line\":{pattern:/^[ \\t]*(?:[^:\\s]+ *:.*|:[^:\\s]+.*)/m,inside:{property:[/[^:\\s]+(?=\\s*:)/,{pattern:/(:)[^:\\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore(\"sass\",\"punctuation\",{selector:{pattern:/([ \\t]*)\\S(?:,?[^,\\r\\n]+)*(?:,(?:\\r?\\n|\\r)\\1[ \\t]+\\S(?:,?[^,\\r\\n]+)*)*/,lookbehind:!0}})}(f.a),f.a.languages.scss=f.a.languages.extend(\"css\",{comment:{pattern:/(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,lookbehind:!0},atrule:{pattern:/@[\\w-]+(?:\\([^()]+\\)|[^(])*?(?=\\s+[{;])/,inside:{rule:/@[\\w-]+/}},url:/(?:[-a-z]+-)*url(?=\\()/i,selector:{pattern:/(?=\\S)[^@;{}()]?(?:[^@;{}()]|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}]+[:{][^}]+))/m,inside:{parent:{pattern:/&/,alias:\"important\"},placeholder:/%[-\\w]+/,variable:/\\$[-\\w]+|#\\{\\$[-\\w]+\\}/}},property:{pattern:/(?:[\\w-]|\\$[-\\w]+|#\\{\\$[-\\w]+\\})+(?=\\s*:)/,inside:{variable:/\\$[-\\w]+|#\\{\\$[-\\w]+\\}/}}}),f.a.languages.insertBefore(\"scss\",\"atrule\",{keyword:[/@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),f.a.languages.insertBefore(\"scss\",\"important\",{variable:/\\$[-\\w]+|#\\{\\$[-\\w]+\\}/}),f.a.languages.insertBefore(\"scss\",\"function\",{placeholder:{pattern:/%[-\\w]+/,alias:\"selector\"},statement:{pattern:/\\B!(?:default|optional)\\b/i,alias:\"keyword\"},boolean:/\\b(?:true|false)\\b/,null:{pattern:/\\bnull\\b/,alias:\"keyword\"},operator:{pattern:/(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|or|not)(?=\\s)/,lookbehind:!0}}),f.a.languages.scss.atrule.inside.rest=f.a.languages.scss,f.a.languages.sql={comment:{pattern:/(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,lookbehind:!0},variable:[{pattern:/@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,greedy:!0},/@[\\w.$]+/],string:{pattern:/(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,greedy:!0,lookbehind:!0},function:/\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i,keyword:/\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,boolean:/\\b(?:TRUE|FALSE|NULL)\\b/i,number:/\\b0x[\\da-f]+\\b|\\b\\d+\\.?\\d*|\\B\\.\\d+\\b/i,operator:/[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,punctuation:/[;[\\]()`,.]/},function(e){var t={url:/url\\(([\"']?).*?\\1\\)/i,string:{pattern:/(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,greedy:!0},interpolation:null,func:null,important:/\\B!(?:important|optional)\\b/i,keyword:{pattern:/(^|\\s+)(?:(?:if|else|for|return|unless)(?=\\s+|$)|@[\\w-]+)/,lookbehind:!0},hexcode:/#[\\da-f]{3,6}/i,number:/\\b\\d+(?:\\.\\d+)?%?/,boolean:/\\b(?:true|false)\\b/,operator:[/~|[+!\\/%<>?=]=?|[-:]=|\\*[*=]?|\\.+|&&|\\|\\||\\B-\\B|\\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\\b/],punctuation:/[{}()\\[\\];:,]/};t.interpolation={pattern:/\\{[^\\r\\n}:]+\\}/,alias:\"variable\",inside:{delimiter:{pattern:/^{|}$/,alias:\"punctuation\"},rest:t}},t.func={pattern:/[\\w-]+\\([^)]*\\).*/,inside:{function:/^[^(]+/,rest:t}},e.languages.stylus={comment:{pattern:/(^|[^\\\\])(\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,lookbehind:!0},\"atrule-declaration\":{pattern:/(^\\s*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\\w-]+/,rest:t}},\"variable-declaration\":{pattern:/(^[ \\t]*)[\\w$-]+\\s*.?=[ \\t]*(?:(?:\\{[^}]*\\}|.+)|$)/m,lookbehind:!0,inside:{variable:/^\\S+/,rest:t}},statement:{pattern:/(^[ \\t]*)(?:if|else|for|return|unless)[ \\t]+.+/m,lookbehind:!0,inside:{keyword:/^\\S+/,rest:t}},\"property-declaration\":{pattern:/((?:^|\\{)([ \\t]*))(?:[\\w-]|\\{[^}\\r\\n]+\\})+(?:\\s*:\\s*|[ \\t]+)[^{\\r\\n]*(?:;|[^{\\r\\n,](?=$)(?!(\\r?\\n|\\r)(?:\\{|\\2[ \\t]+)))/m,lookbehind:!0,inside:{property:{pattern:/^[^\\s:]+/,inside:{interpolation:t.interpolation}},rest:t}},selector:{pattern:/(^[ \\t]*)(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\))?|\\{[^}\\r\\n]+\\})+)(?:(?:\\r?\\n|\\r)(?:\\1(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\))?|\\{[^}\\r\\n]+\\})+)))*(?:,$|\\{|(?=(?:\\r?\\n|\\r)(?:\\{|\\1[ \\t]+)))/m,lookbehind:!0,inside:{interpolation:t.interpolation,punctuation:/[{},]/}},func:t.func,string:t.string,interpolation:t.interpolation,punctuation:/[{}()\\[\\];:.]/}}(f.a),f.a.languages.wasm={comment:[/\\(;[\\s\\S]*?;\\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,greedy:!0},keyword:[{pattern:/\\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\\b(?:(?:f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))?|memory\\.(?:grow|size))\\b/,inside:{punctuation:/\\./}},/\\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\\b/],variable:/\\$[\\w!#$%&'*+\\-.\\/:<=>?@\\\\^_`|~]+/i,number:/[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/,punctuation:/[()]/},f.a.languages.yaml={scalar:{pattern:/([\\-:]\\s*(?:![^\\s]+)?[ \\t]*[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)[^\\r\\n]+(?:\\2[^\\r\\n]+)*)/,lookbehind:!0,alias:\"string\"},comment:/#.*/,key:{pattern:/(\\s*(?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:![^\\s]+)?[ \\t]*)[^\\r\\n{[\\]},#\\s]+?(?=\\s*:\\s)/,lookbehind:!0,alias:\"atrule\"},directive:{pattern:/(^[ \\t]*)%.+/m,lookbehind:!0,alias:\"important\"},datetime:{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?)?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?)(?=[ \\t]*(?:$|,|]|}))/m,lookbehind:!0,alias:\"number\"},boolean:{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:true|false)[ \\t]*(?=$|,|]|})/im,lookbehind:!0,alias:\"important\"},null:{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:null|~)[ \\t]*(?=$|,|]|})/im,lookbehind:!0,alias:\"important\"},string:{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(\"|')(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2(?=[ \\t]*(?:$|,|]|}|\\s*#))/m,lookbehind:!0,greedy:!0},number:{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+\\.?\\d*|\\.?\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)[ \\t]*(?=$|,|]|})/im,lookbehind:!0},tag:/![^\\s]+/,important:/[&*][\\w]+/,punctuation:/---|[:[\\]{}\\-,|>?]|\\.\\.\\./},f.a.languages.yml=f.a.languages.yaml;var d=f.a,p=n(143),h={Prism:d,theme:n.n(p).a},m=/\\r\\n|\\r|\\n/,g=function(e){0===e.length?e.push({types:[\"plain\"],content:\"\",empty:!0}):1===e.length&&\"\"===e[0].content&&(e[0].empty=!0)},v=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},y=function(e){for(var t=[[]],n=[e],r=[0],o=[e.length],a=0,i=0,l=[],u=[l];i>-1;){for(;(a=r[i]++)<o[i];){var s=void 0,c=t[i],f=n[i][a];if(\"string\"==typeof f?(c=i>0?c:[\"plain\"],s=f):(c=v(c,f.type),f.alias&&(c=v(c,f.alias)),s=f.content),\"string\"==typeof s){var d=s.split(m),p=d.length;l.push({types:c,content:d[0]});for(var h=1;h<p;h++)g(l),u.push(l=[]),l.push({types:c,content:d[h]})}else i++,t.push(c),n.push(s),r.push(0),o.push(s.length)}i--,t.pop(),n.pop(),r.pop(),o.pop()}return g(l),u};function b(){return(b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var w=function(e,t){var n=e.plain,r=Object.create(null),o=e.styles.reduce(function(e,n){n.types;var r=n.languages,o=n.style;return r&&!r.includes(t)?e:(n.types.forEach(function(t){var n=b({},e[t],o);e[t]=n}),e)},r);return o.root=n,o.plain=b({},n,{backgroundColor:null}),o};function k(){return(k=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function x(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}var E=function(e){var t,n;function r(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).prevTheme=void 0,t.prevLanguage=void 0,t.themeDict=void 0,t.getThemeDict=function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?w(e.theme,e.language):void 0;return t.themeDict=n},t.getLineProps=function(e){var n=e.key,r=e.className,o=e.style,a=(e.line,k({},x(e,[\"key\",\"className\",\"style\",\"line\"]),{className:\"token-line\",style:void 0,key:void 0})),i=t.getThemeDict(t.props);return void 0!==i&&(a.style=i.plain),void 0!==o&&(a.style=void 0!==a.style?k({},a.style,o):o),void 0!==n&&(a.key=n),r&&(a.className+=\" \"+r),a},t.getStyleForToken=function(e){var n=e.types,r=e.empty,o=n.length,a=t.getThemeDict(t.props);if(void 0!==a){if(1===o&&\"plain\"===n[0])return r?{display:\"inline-block\"}:void 0;if(1===o&&!r)return a[n[0]];var i=r?{display:\"inline-block\"}:{},l=n.map(function(e){return a[e]});return Object.assign.apply(Object,[i].concat(l))}},t.getTokenProps=function(e){var n=e.key,r=e.className,o=e.style,a=e.token,i=k({},x(e,[\"key\",\"className\",\"style\",\"token\"]),{className:\"token \"+a.types.join(\" \"),children:a.content,style:t.getStyleForToken(a),key:void 0});return void 0!==o&&(i.style=void 0!==i.style?k({},i.style,o):o),void 0!==n&&(i.key=n),r&&(i.className+=\" \"+r),i},t}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,r.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,r=e.code,o=e.children,a=this.getThemeDict(this.props),i=t.languages[n],l=void 0!==i?t.tokenize(r,i,n):[r];return o({tokens:y(l),className:\"prism-code language-\"+n,style:void 0!==a?a.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},r}(l.Component),S=function(e){return{plain:{color:e.code.color.Foreground,backgroundColor:e.code.color.Background},styles:[{types:[\"prolog\",\"comment\",\"block-comment\",\"doctype\",\"cdata\"],style:{color:e.code.color.Comment}},{types:[\"punctuation\"],style:{color:e.code.color.Foreground}},{types:[\"tag\",\"attr-name\",\"namespace\",\"deleted\"],style:{color:e.code.color.Red}},{types:[\"function-name\"],style:{color:e.code.color.Blue}},{types:[\"boolean\",\"number\",\"function\"],style:{color:e.code.color.Orange}},{types:[\"property\",\"class-name\",\"constant\",\"symbol\",\"console\",\"Promise\",\"unknown\",\"never\"],style:{color:e.code.color.Yellow}},{types:[\"selector\",\"important\",\"atrule\",\"keyword\",\"builtin\",\"keyof\",\"module\",\"import\",\"require\"],style:{color:e.code.color.Purple}},{types:[\"string\",\"char\",\"attr-value\",\"regex\",\"variable\"],style:{color:e.code.color.Green}},{types:[\"operator\",\"entity\",\"url\",\"of\"],style:{color:e.code.color.Aqua}},{types:[\"important\",\"bold\"],style:{fontWeight:\"bold\"}},{types:[\"italic\"],style:{fontStyle:\"italic\"}},{types:[\"inserted\"],style:{color:e.code.color.Green}},{types:[\"highlight-line\"],style:{backgroundColor:e.code.color.CurrentLine}}]}},_=s.c.pre.withConfig({displayName:\"styled__Pre\",componentId:\"isqdc3-0\"})([\"padding:1.2em 0.5em;width:50rem;border-radius:0.3rem;margin:3em auto;font-family:\",\";max-width:98%;overflow:scroll;@media \",\"{font-size:0.8125rem;line-height:1.375rem;}\"],function(e){return e.theme.fonts.Monospace},function(e){return e.theme.mediaQueries.mobile}),T=s.c.div.withConfig({displayName:\"styled__Line\",componentId:\"isqdc3-1\"})([\"margin-left:0.5em;display:flex;\"]),C=s.c.div.withConfig({displayName:\"styled__LineNumber\",componentId:\"isqdc3-2\"})([\"padding-right:1em;display:inline-block;text-align:right;color:\",\";flex-grow:0;flex-shrink:0;flex-basis:3em;\"],function(e){return e.theme.code.color.Selection}),O=s.c.span.withConfig({displayName:\"styled__CodeLine\",componentId:\"isqdc3-3\"})([\"\"]),P=s.c.div.withConfig({displayName:\"styled__HighlightedLineNumber\",componentId:\"isqdc3-4\"})([\"padding-right:1em;display:inline-block;text-align:right;color:\",\";flex-grow:0;flex-shrink:0;flex-basis:3em;\"],function(e){return e.theme.code.color.Comment}),A=s.c.div.withConfig({displayName:\"styled__HighlightedLine\",componentId:\"isqdc3-5\"})([\"background-color:\",\";border-left:1em solid \",\";margin-left:-0.5em;padding-left:0;padding-right:0.5em;margin-right:-0.5em;display:flex;\"],function(e){return e.theme.code.color.CurrentLine},function(e){return e.theme.code.color.Selection}),I=s.c.div.withConfig({displayName:\"styled__Meta\",componentId:\"isqdc3-6\"})([\"margin:0 2em;display:flex;justify-content:space-between;\"]),R=s.c.div.withConfig({displayName:\"styled__Language\",componentId:\"isqdc3-7\"})([\"position:relative;text-align:left;color:\",\";font-family:\",\";text-transform:uppercase;font-weight:bold;\"],function(e){return e.theme.code.color.Selection},function(e){return e.theme.fonts.Monospace}),j=s.c.div.withConfig({displayName:\"styled__Filename\",componentId:\"isqdc3-8\"})([\"text-align:right;color:\",\";font-family:\",\";font-weight:bold;\"],function(e){return e.theme.code.color.Selection},function(e){return e.theme.fonts.Monospace});function N(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n}function F(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var M=/{([\\d,-]+)}/,L=function(e){var t=/(\\w+)=([^\\s]+)/g.exec(e);if(void 0!==t&&Array.isArray(t))return t.map(function(e){if(e.includes(\"=\")){var t,n=e.split(\"=\"),r=n[0],o=n[1];return(t={})[r]=o,t}}).filter(Boolean).reduce(function(e,t){var n;return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?N(n,!0).forEach(function(t){F(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},e,((n={})[t.k]=t.v,n))})},D=Object(s.d)(function(e){var t=e.children,n=e.metastring,r=e.className,o=e.theme,a=function(e){if(M.test(e)){var t=M.exec(e)[1].split(\",\").map(function(e){return e.split(\"-\").map(function(e){return parseInt(e,10)})});return function(e){var n=e+1;return t.some(function(e){var t=e[0],r=e[1];return r?n>=t&&n<=r:n===t})}}return function(){return!1}}(n),i=r?r.replace(/language-/,\"\"):\"plaintext\",l=L(n);return u.a.createElement(E,Object.assign({},h,{code:t,language:i,theme:S(o)}),function(e){var t=e.className,n=e.style,r=e.tokens,o=e.getLineProps,s=e.getTokenProps;return u.a.createElement(_,{className:t,style:n},u.a.createElement(I,null,u.a.createElement(R,null,\"plaintext\"===i?\"\":i),l&&l.filename&&u.a.createElement(j,null,l.filename)),r.map(function(e,t){var n=o({line:e,key:t}),r=T,l=C;return a(t)&&(r=A,l=P),\"plaintext\"===i&&e[0].empty?null:u.a.createElement(r,Object.assign({},n,{key:t}),u.a.createElement(l,null,t+1),e.map(function(e,t){return u.a.createElement(O,Object.assign({},s({token:e,key:t}),{key:t}))}))}))})}),U=(Object(s.d)(function(e){var t=e.source,n=e.language,r=e.theme,o=e.filename;return u.a.createElement(E,Object.assign({},h,{code:t,language:n,theme:S(r)}),function(e){var t=e.className,r=e.style,a=e.tokens,i=e.getLineProps,l=e.getTokenProps;return u.a.createElement(_,{className:t,style:r},u.a.createElement(I,null,u.a.createElement(R,null,n),o&&u.a.createElement(j,null,o)),a.map(function(e,t){var n=i({line:e,key:t}),r=T,o=C;return u.a.createElement(r,Object.assign({},n,{key:t}),u.a.createElement(o,null,t+1),e.map(function(e,t){return u.a.createElement(O,Object.assign({},l({token:e,key:t}),{key:t}))}))}))})}),s.c.h1.withConfig({displayName:\"headings__Heading1\",componentId:\"sc-1wptsoj-0\"})([\"color:\",\";max-width:\",\";\"],function(e){return e.theme.site.color[e.color]||e.theme.site.color.Foreground},function(e){return e.theme.dimensions.maxWidth})),z=s.c.h2.withConfig({displayName:\"headings__Heading2\",componentId:\"sc-1wptsoj-1\"})([\"color:\",\";max-width:\",\";padding-bottom:0.4rem;font-size:2rem;margin:1.8em auto 0.5em auto;font-family:\",\";text-transform:uppercase;letter-spacing:0.05em;@media \",\"{font-size:1.125rem;}\"],function(e){return e.theme.site.color[e.color]||e.theme.site.color.Foreground},function(e){return e.theme.dimensions.maxWidth},function(e){return e.theme.fonts.Title},function(e){return e.theme.mediaQueries.mobile}),B=s.c.h3.withConfig({displayName:\"headings__Heading3\",componentId:\"sc-1wptsoj-2\"})([\"color:\",\";max-width:\",\";padding-bottom:0.4rem;margin:1.8em auto 0.5em auto;font-family:\",\";text-transform:uppercase;letter-spacing:0.05em;@media \",\"{font-size:0.9375rem;}\"],function(e){return e.theme.site.color[e.color]||e.theme.site.color.Foreground},function(e){return e.theme.dimensions.maxWidth},function(e){return e.theme.fonts.Title},function(e){return e.theme.mediaQueries.mobile}),$=s.c.h4.withConfig({displayName:\"headings__Heading4\",componentId:\"sc-1wptsoj-3\"})([\"color:\",\";max-width:\",\";border-bottom:1px solid \",\";padding-bottom:0.4rem;margin:1.8em auto 0.5em auto;\"],function(e){return e.theme.site.color[e.color]||e.theme.site.color.Foreground},function(e){return e.theme.dimensions.maxWidth},function(e){return e.theme.site.color.SubtleBackground}),W=s.c.h5.withConfig({displayName:\"headings__Heading5\",componentId:\"sc-1wptsoj-4\"})([\"color:\",\";max-width:\",\";border-bottom:1px solid \",\";padding-bottom:0.4rem;margin:1.8em auto 0.5em auto;\"],function(e){return e.theme.site.color[e.color]||e.theme.site.color.Foreground},function(e){return e.theme.dimensions.maxWidth},function(e){return e.theme.site.color.SubtleBackground}),H=s.c.h6.withConfig({displayName:\"headings__Heading6\",componentId:\"sc-1wptsoj-5\"})([\"color:\",\";max-width:\",\";font-family:\",\";text-transform:uppercase;font-weight:normal;font-size:1rem;margin:0.3rem auto;padding:0;@media \",\"{font-size:0.75rem;}\"],function(e){return e.theme.site.color[e.color]||e.theme.site.color.SubtleForeground},function(e){return e.theme.dimensions.maxWidth},function(e){return e.theme.fonts.Monospace},function(e){return e.theme.mediaQueries.mobile}),q=n(79),V=s.c.div.withConfig({displayName:\"hr__Outer\",componentId:\"jzqev7-0\"})([\"border-top:1px solid \",\";margin:3rem auto 2rem auto;text-align:center;text-transform:uppercase;max-width:\",\";\"],function(e){return e.theme.site.color.SubtleBackground},function(e){return e.theme.dimensions.mainWidth}),G=s.c.div.withConfig({displayName:\"hr__Inner\",componentId:\"jzqev7-1\"})([\"background:\",\";padding:0 1.6rem 0 1rem;color:\",\";margin:-6px auto 0 auto;width:12px;\"],function(e){return e.theme.site.color.Background},function(e){return e.theme.site.color.Foreground}),K=function(e){var t=e.width;return u.a.createElement(V,{style:{maxWidth:t}},u.a.createElement(G,null,u.a.createElement(q.b,{small:!0,subtle:!0})))},Y=n(43),X=s.c.p.withConfig({displayName:\"paragraph__Paragraph\",componentId:\"gsml0g-0\"})([\"color:\",';font-size:1.125rem;font-weight:400;line-height:1.7rem;font-feature-settings:\"kern\",\"liga\",\"clig\",\"calt\";margin:0 auto 1.4rem auto;font-family:',\";width:\",\";max-width:90%;@media \",\"{font-size:0.8125rem;line-height:1.375rem;}\"],function(e){return e.theme.site.color.SubtleForeground},function(e){return e.theme.fonts.Body},function(e){return e.theme.dimensions.contentWidth},function(e){return e.theme.mediaQueries.mobile}),Q=Object(s.c)(U).withConfig({displayName:\"mdx__PostHeading1\",componentId:\"sc-188ddkx-0\"})([\"width:\",\";max-width:90%;\"],function(e){return e.theme.dimensions.contentWidth}),Z=Object(s.c)(z).withConfig({displayName:\"mdx__PostHeading2\",componentId:\"sc-188ddkx-1\"})([\"width:\",\";max-width:90%;\"],function(e){return e.theme.dimensions.contentWidth}),J=Object(s.c)(B).withConfig({displayName:\"mdx__PostHeading3\",componentId:\"sc-188ddkx-2\"})([\"width:\",\";max-width:90%;\"],function(e){return e.theme.dimensions.contentWidth}),ee=Object(s.c)($).withConfig({displayName:\"mdx__PostHeading4\",componentId:\"sc-188ddkx-3\"})([\"width:\",\";max-width:90%;\"],function(e){return e.theme.dimensions.contentWidth}),te=Object(s.c)(W).withConfig({displayName:\"mdx__PostHeading5\",componentId:\"sc-188ddkx-4\"})([\"width:\",\";max-width:90%;\"],function(e){return e.theme.dimensions.contentWidth}),ne=Object(s.c)(H).withConfig({displayName:\"mdx__PostHeading6\",componentId:\"sc-188ddkx-5\"})([\"width:\",\";max-width:90%;text-transform:uppercase;font-size:1rem;\"],function(e){return e.theme.dimensions.contentWidth}),re=Object(s.c)(X).withConfig({displayName:\"mdx__PostParagraph\",componentId:\"sc-188ddkx-6\"})([\"\"]),oe=s.c.ul.withConfig({displayName:\"mdx__List\",componentId:\"sc-188ddkx-7\"})([\"color:\",\";width:\",';max-width:90%;font-size:1.125em;font-weight:400;line-height:1.6rem;font-feature-settings:\"kern\",\"liga\",\"clig\",\"calt\";margin:0.4rem auto 0.4rem auto;font-family:',\";@media \",\"{margin-left:2.2rem;font-size:0.8125rem;}\"],function(e){return e.theme.site.color.SubtleForeground},function(e){return e.theme.dimensions.contentWidth},function(e){return e.theme.fonts.Body},function(e){return e.theme.mediaQueries.mobile}),ae=s.c.span.withConfig({displayName:\"mdx__InlineCode\",componentId:\"sc-188ddkx-8\"})([\"color:\",\";background-color:\",\";border:1px solid \",\";font-family:\",\";padding:0.2em 0.4em;font-size:0.8em;border-radius:3px;\"],function(e){return e.theme.site.color.SubtleForeground},function(e){return e.theme.site.color.Background},function(e){return e.theme.site.color.SubtleBackground},function(e){return e.theme.fonts.Monospace}),ie={h1:function(e){return u.a.createElement(Q,e)},h2:function(e){return u.a.createElement(Z,e)},h3:function(e){return u.a.createElement(J,e)},h4:function(e){return u.a.createElement(ee,e)},h5:function(e){return u.a.createElement(te,e)},h6:function(e){return u.a.createElement(ne,e)},p:function(e){return u.a.createElement(re,e)},ul:function(e){return u.a.createElement(oe,e)},ol:function(e){return u.a.createElement(oe,e)},thematicBreak:function(e){return u.a.createElement(K,e)},hr:function(e){return u.a.createElement(K,e)},a:function(e){return u.a.createElement(Y.a,Object.assign({},e,{to:e.href}))},code:function(e){return u.a.createElement(D,e)},inlineCode:function(e){return u.a.createElement(ae,e)}},le=n(82);var ue=s.c.div.withConfig({displayName:\"App__Container\",componentId:\"sc-1ocgh4k-0\"})([\"margin:0 auto;max-width:100%;width:100%;\"]),se=function(e){var t,n;function r(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).state={hasMounted:!1},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var o=r.prototype;return o.componentDidMount=function(){this.setState({hasMounted:!0})},o.render=function(){return\"undefined\"!=typeof window&&!1===this.state.hasMounted?null:u.a.createElement(ue,null,u.a.createElement(i.MDXProvider,{components:ie},u.a.createElement(le.a,{mounted:this.state.hasMounted,showDarkModeToggle:!0},this.props.children)))},r}(u.a.Component),ce=function(e){var t=e.element;return u.a.createElement(se,null,t)};n.d(t,\"wrapRootElement\",function(){return ce})},function(e,t,n){\"use strict\";n.r(t);n(109),n(59),n(12);var r=n(7),o=n(0),a=n.n(o),i=n(100),l=n.n(i),u=n(27),s=n(151),c=n(152),f=n.n(c),d=(n(13),n(10)),p=n.n(d),h=n(20),m=n(153),g=n(46),v=n(24);var y=m.reduce(function(e,t){return e[t.fromPath]=t,e},{});function b(e){var t=y[e];return null!=t&&(window.___replace(t.toPath),!0)}var w=function(e,t){b(e.pathname)||Object(r.apiRunner)(\"onPreRouteUpdate\",{location:e,prevLocation:t})},k=function(e,t){b(e.pathname)||(Object(r.apiRunner)(\"onRouteUpdate\",{location:e,prevLocation:t}),window.__navigatingToLink=!1)},x=function(e,t){void 0===t&&(t={}),t.replace||(window.__navigatingToLink=!0);var n=Object(v.parsePath)(e).pathname,o=y[n];if(o&&(e=o.toPath,n=Object(v.parsePath)(e).pathname),window.___swUpdated)window.location=n;else{var a=setTimeout(function(){g.a.emit(\"onDelayedLoadPageResources\",{pathname:n}),Object(r.apiRunner)(\"onRouteUpdateDelayed\",{location:window.location})},1e3);h.default.loadPage(n).then(function(r){r&&\"error\"!==r.status||(window.history.replaceState({},\"\",location.href),window.location=n),r&&r.page.webpackCompilationHash!==window.___webpackCompilationHash&&(\"serviceWorker\"in navigator&&null!==navigator.serviceWorker.controller&&\"activated\"===navigator.serviceWorker.controller.state&&navigator.serviceWorker.controller.postMessage({gatsbyApi:\"resetWhitelist\"}),console.log(\"Site has changed on server. Reloading browser\"),window.location=n),Object(u.navigate)(e,t),clearTimeout(a)})}};function E(e,t){var n=this,o=t.location,a=o.pathname,i=o.hash,l=Object(r.apiRunner)(\"shouldUpdateScroll\",{prevRouterProps:e,pathname:a,routerProps:{location:o},getSavedScrollPosition:function(e){return n._stateStorage.read(e)}});if(l.length>0)return l[0];if(e&&e.location.pathname===a)return i?i.slice(1):[0,0];return!0}var S=function(e){var t,n;function r(t){var n;return n=e.call(this,t)||this,w(t.location,null),n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var o=r.prototype;return o.componentDidMount=function(){k(this.props.location,null)},o.componentDidUpdate=function(e,t,n){n&&k(this.props.location,e.location)},o.getSnapshotBeforeUpdate=function(e){return this.props.location.pathname!==e.location.pathname&&(w(this.props.location,e.location),!0)},o.render=function(){return this.props.children},r}(a.a.Component);S.propTypes={location:p.a.object.isRequired};var _=n(80),T=n(105),C=n.n(T);n(30),n(18),n(5),n(4),n(3),n(6);function O(e,t){for(var n in e)if(!(n in t))return!0;for(var r in t)if(e[r]!==t[r])return!0;return!1}function P(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n}function A(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?P(n,!0).forEach(function(t){I(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):P(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function I(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var R=function(e){var t,n;function r(t){var n;n=e.call(this)||this;var r=t.location,o=t.pageResources;return n.state={location:A({},r),pageResources:o||h.default.loadPageSync(r.pathname)},n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,r.getDerivedStateFromProps=function(e,t){var n=e.location;return t.location.href!==n.href?{pageResources:h.default.loadPageSync(n.pathname),location:A({},n)}:null};var o=r.prototype;return o.loadResources=function(e){var t=this;h.default.loadPage(e).then(function(n){n&&\"error\"!==n.status?t.setState({location:A({},window.location),pageResources:n}):(window.history.replaceState({},\"\",location.href),window.location=e)})},o.shouldComponentUpdate=function(e,t){return t.pageResources?this.state.pageResources!==t.pageResources||(this.state.pageResources.component!==t.pageResources.component||(this.state.pageResources.json!==t.pageResources.json||(!(this.state.location.key===t.location.key||!t.pageResources.page||!t.pageResources.page.matchPath&&!t.pageResources.page.path)||function(e,t,n){return O(e.props,t)||O(e.state,n)}(this,e,t)))):(this.loadResources(e.location.pathname),!1)},o.render=function(){return this.props.children(this.state)},r}(a.a.Component),j=n(81),N=n(154);var F=new h.ProdLoader(C.a,N);Object(h.setLoader)(F),F.setApiRunner(r.apiRunner),window.asyncRequires=C.a,window.___emitter=g.a,window.___loader=F,window.___webpackCompilationHash=window.webpackCompilationHash,window.__navigatingToLink=!1,window.___loader=h.default,window.___push=function(e){return x(e,{replace:!1})},window.___replace=function(e){return x(e,{replace:!0})},window.___navigate=function(e,t){return x(e,t)},b(window.location.pathname),Object(r.apiRunnerAsync)(\"onClientEntry\").then(function(){Object(r.apiRunner)(\"registerServiceWorker\").length>0&&n(233);var e=function(e){return a.a.createElement(u.BaseContext.Provider,{value:{baseuri:\"/\",basepath:\"/\"}},a.a.createElement(_.a,e))},t=function(t){var n,r;function o(){return t.apply(this,arguments)||this}return r=t,(n=o).prototype=Object.create(r.prototype),n.prototype.constructor=n,n.__proto__=r,o.prototype.render=function(){var t=this,n=this.props.location;return a.a.createElement(R,{location:n},function(n){var r=n.pageResources,o=n.location;return a.a.createElement(S,{location:o},a.a.createElement(s.ScrollContext,{location:o,shouldUpdateScroll:E},a.a.createElement(u.Router,{basepath:\"\",location:o,id:\"gatsby-focus-wrapper\"},a.a.createElement(e,Object.assign({path:encodeURI(\"/404.html\"===r.page.path?o.pathname:r.page.matchPath||r.page.path)},t.props,{location:o,pageResources:r},r.json)))))})},o}(a.a.Component),o=window,i=o.pagePath,c=o.location;i&&\"\"+i!==c.pathname&&!(F.pathFinder.findMatchPath(Object(j.a)(c.pathname,\"\"))||\"/404.html\"===i||i.match(/^\\/404\\/?$/)||i.match(/^\\/offline-plugin-app-shell-fallback\\/?$/))&&Object(u.navigate)(\"\"+i+c.search+c.hash,{replace:!0}),F.loadPage(c.pathname).then(function(e){if(!e||\"error\"===e.status)throw new Error(\"page resources for \"+c.pathname+\" not found. Not rendering React\");var n=function(){return a.a.createElement(u.Location,null,function(e){return a.a.createElement(t,e)})},o=Object(r.apiRunner)(\"wrapRootElement\",{element:a.a.createElement(n,null)},a.a.createElement(n,null),function(e){return{element:e.result}}).pop(),i=function(){return o},s=Object(r.apiRunner)(\"replaceHydrateFunction\",void 0,l.a.hydrate)[0];f()(function(){s(a.a.createElement(i,null),\"undefined\"!=typeof window?document.getElementById(\"___gatsby\"):void 0,function(){Object(r.apiRunner)(\"onInitialClientRender\")})})})})},function(e,t,n){\"use strict\";n.r(t);n(21),n(121),n(73),n(30),n(18),n(5),n(4),n(3),n(6);var r=n(0),o=n.n(r),a=n(58),i=n(127),l=n(139),u=(n(12),n(186).default),s=n(187).default,c=Object.assign({},u,s);function f(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(n,!0).forEach(function(t){p(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h={};l.plugins.forEach(function(e){var t=e.guards,n=void 0===t?{}:t,r=e.components;Object.entries(r).forEach(function(e){var t=e[0],r=e[1];h[t]?h.push({guard:n[t],Component:r}):h[t]=[{guard:n[t],Component:r}]})});var m=Object.entries(h).map(function(e){var t,n=e[0],r=e[1];return(t={})[n]=function(e){return function(t){var n=e.find(function(e){var n=e.guard;return!n||n(t)}).Component;return o.a.createElement(n,t)}}(r.concat({guard:void 0,Component:n})),t}).reduce(function(e,t){return d({},e,{},t)},{}),g=Object(a.withMDXComponents)(function(e){var t=e.components,n=e.children;return o.a.createElement(i.MDXScopeProvider,{__mdxScope:c},o.a.createElement(a.MDXProvider,{components:d({},t,{},m)},n))}),v=function(e){var t=e.element;return o.a.createElement(g,null,t)};n.d(t,\"wrapRootElement\",function(){return y});var y=v}],[[235,8]]]);\n//# sourceMappingURL=app-5cddf2000f4491a89a40.js.map"
  },
  {
    "path": "examples/minified/component---src-pages-index-tsx-65151e9f2f564e3fe49c.js",
    "content": "(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{241:function(e,t,n){\"use strict\";n.r(t);var i=n(0),r=n.n(i),a=n(2),o=n(245),l=n(247),c=n(249),m=n(287),d=n.n(m),u=a.c.div.withConfig({displayName:\"MetadataSection__MetadataSectionContainer\",componentId:\"sc-2n8vyk-0\"})([\"display:flex;flex-direction:column;align-items:center;\"]),s=a.c.div.withConfig({displayName:\"MetadataSection__MetadataSearchBar\",componentId:\"sc-2n8vyk-1\"})([\"width:100vw;display:flex;justify-content:center;background-color:black;padding:20px 0;\"]),f=a.c.div.withConfig({displayName:\"MetadataSection__MetadataTogglesContainer\",componentId:\"sc-2n8vyk-2\"})([\"width:\",\";display:flex;font-family:\",\";@media \",\"{font-size:0.9375rem;letter-spacing:0.0625rem;line-height:1.1875rem;margin-right:2.5rem;justify-content:flex-end;}@media \",\"{justify-content:space-around;font-size:0.6875rem;letter-spacing:0.045625rem;line-height:0.875rem;}\"],function(e){return e.theme.dimensions.maxWidth},function(e){return e.theme.fonts.HeaderSans},function(e){return e.theme.mediaQueries.desktop},function(e){return e.theme.mediaQueries.mobile}),g=a.c.button.withConfig({displayName:\"MetadataSection__ToggleButton\",componentId:\"sc-2n8vyk-3\"})([\"border:none;background-color:black;color:#ffffff;cursor:pointer;@media \",\"{margin-left:3rem;}\"],function(e){return e.theme.mediaQueries.desktop}),h=a.c.span.withConfig({displayName:\"MetadataSection__ChevronContainer\",componentId:\"sc-2n8vyk-4\"})([\"margin-left:7rem;@media \",\"{margin-left:1.1rem;}> svg{transform:\",\";transition-duration:0.3s;}\"],function(e){return e.theme.mediaQueries.mobile},function(e){return e.showContent?\"rotate(180deg)\":\"rotate(0deg)\"}),p=a.c.div.withConfig({displayName:\"MetadataSection__MetadataContent\",componentId:\"sc-2n8vyk-5\"})([\"background-color:\",\";width:\",\";@media \",\"{max-width:96vw;}transition:max-height 0.3s ease-out;max-height:\",\";overflow-y:hidden;\"],function(e){return e.theme.site.color.Background},function(e){return e.theme.dimensions.maxWidth},function(e){return e.theme.mediaQueries.mobile},function(e){return e.showContent?\"300px\":\"0px\"}),y=a.c.div.withConfig({displayName:\"MetadataSection__TagsContainer\",componentId:\"sc-2n8vyk-6\"})([\"margin-top:60px;padding-bottom:60px;display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;border-bottom:2px gray solid;> *{margin:1rem;}\"]),x=function(e){return r.a.createElement(g,{type:\"button\",onClick:e.onClickHandler},e.children,r.a.createElement(h,{showContent:e.showContent},r.a.createElement(d.a,null)))},w=function(e){var t=e.allTags,n=e.allAuthors,a=Object(i.useState)(!1),o=a[0],l=a[1],m=Object(i.useState)(!1),d=m[0],g=m[1];return r.a.createElement(u,null,r.a.createElement(s,null,r.a.createElement(f,null,r.a.createElement(x,{showContent:d,onClickHandler:function(){g(!d),l(!1)}},\"ALL AUTHORS\"),r.a.createElement(x,{showContent:o,onClickHandler:function(){l(!o),g(!1)}},\"ALL TAGS\"))),r.a.createElement(p,{showContent:o},r.a.createElement(y,null,t.map(function(e){return r.a.createElement(c.b,{key:e.fieldValue,name:e.fieldValue})}))),r.a.createElement(p,{showContent:d},r.a.createElement(y,null,n.map(function(e){return r.a.createElement(c.a,{key:e.fieldValue,name:e.fieldValue})}))))};n.d(t,\"pageQuery\",function(){return k});var b=a.c.div.withConfig({displayName:\"pages__PageTitle\",componentId:\"sc-1puqih7-0\"})([\"font-size:4.6875rem;line-height:6.875rem;letter-spacing:0.09375rem;font-family:\",\";@media \",\"{font-size:1.875rem;line-height:2.75rem;}\"],function(e){return e.theme.fonts.Title},function(e){return e.theme.mediaQueries.mobile}),v=a.c.div.withConfig({displayName:\"pages__SiteDescription\",componentId:\"sc-1puqih7-1\"})([\"font-size:2.1875rem;line-height:2.8125rem;font-family:\",\";font-weight:700;@media \",\"{font-size:0.9375rem;line-height:1.5rem;}\"],function(e){return e.theme.fonts.HeaderSans},function(e){return e.theme.mediaQueries.mobile}),E=a.c.div.withConfig({displayName:\"pages__HomePageBanner\",componentId:\"sc-1puqih7-2\"})([\"height:465px;max-width:100vw;margin:13px auto 0;background-image:\",\";background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:center;text-align:center;color:white;@media \",\"{height:210px;}\"],function(e){var t=e.bgUrl;return\"url(\"+e.bgWebPUrl+\"), \\n url(\"+t+\")\"},function(e){return e.theme.mediaQueries.mobile}),k=(t.default=function(e){var t=e.data;return r.a.createElement(\"div\",null,r.a.createElement(o.Helmet,null,r.a.createElement(\"html\",{lang:\"en\"}),r.a.createElement(\"title\",null,\"Kablamo Engineering blog\")),r.a.createElement(E,{bgUrl:t.allFile.edges&&t.allFile.edges[0]&&t.allFile.edges[0].node&&t.allFile.edges[0].node.childImageSharp&&t.allFile.edges[0].node.childImageSharp.fluid&&t.allFile.edges[0].node.childImageSharp.fluid.src,bgWebPUrl:t.allFile.edges&&t.allFile.edges[0]&&t.allFile.edges[0].node&&t.allFile.edges[0].node.childImageSharp&&t.allFile.edges[0].node.childImageSharp.fluid&&t.allFile.edges[0].node.childImageSharp.fluid.srcWebp},r.a.createElement(b,null,\"THE BLOG\"),r.a.createElement(v,null,\"Insights from the Kablamo Team.\")),r.a.createElement(w,{allTags:t.allMdx.tags,allAuthors:t.allMdx.authors}),r.a.createElement(l.a,{mdxEdges:t.allMdx.edges}))},\"3991476874\")},242:function(e,t,n){\"use strict\";n.d(t,\"a\",function(){return o});var i=n(0),r=n.n(i),a=n(2).c.div.withConfig({displayName:\"byLine__DateWrapper\",componentId:\"sc-1vu2w2p-0\"})([\"font-family:\",\";color:\",\";letter-spacing:0.03em;font-size:1rem;line-height:1.1875rem;@media \",\"{font-size:0.75rem;letter-spacing:0.025rem;line-height:0.9375rem;}\"],function(e){return e.theme.fonts.Body},function(e){return e.theme.site.color.Title.Foreground},function(e){return e.theme.mediaQueries.mobile}),o=function(e){var t=e.date,n=e.author,i=new Date(t);return r.a.createElement(a,null,i.getDate()+\".\"+(i.getMonth()+1)+\".\"+i.getFullYear()+\" - By \"+n)}},243:function(e,t,n){\"use strict\";n.d(t,\"a\",function(){return w});n(5),n(4),n(3),n(6),n(12);var i=n(0),r=n.n(i),a=n(2),o=n(244),l=n.n(o),c=n(43),m=n(242);function d(e,t){if(null==e)return{};var n,i,r={},a=Object.keys(e);for(i=0;i<a.length;i++)n=a[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}var u=Object(a.c)(c.a).withConfig({displayName:\"card__Link\",componentId:\"sc-14d9ofs-0\"})([\"text-decoration:none;border-radius:1rem;padding:1rem;flex:1;margin:0.2rem;\"]),s=a.c.h1.withConfig({displayName:\"card__Title\",componentId:\"sc-14d9ofs-1\"})([\"display:inline;color:\",\";font-size:1.56rem;font-family:\",\";text-transform:uppercase;line-height:2.5rem;letter-spacing:0.03rem;text-decoration:none;@media \",\"{font-size:1.125rem;line-height:1.6875rem;letter-spacing:-0.008125rem;}\",\":hover &{background-image:linear-gradient( to right,\",\",\",\" );background-repeat:repeat-x;background-position:0 1.4em;background-size:8px 3px;}\"],function(e){return e.theme.site.color.Foreground},function(e){return e.theme.fonts.Title},function(e){return e.theme.mediaQueries.mobile},u,function(e){return e.theme.site.color.Title.Foreground},function(e){return e.theme.site.color.Title.Foreground}),f=a.c.div.withConfig({displayName:\"card__Excerpt\",componentId:\"sc-14d9ofs-2\"})([\"font-family:\",\";text-transform:none;font-size:1.125rem;letter-spacing:0.03em;line-height:1.7rem;min-height:2em;align-self:flex-end;justify-self:flex-end;width:100%;margin-top:0.9rem;@media \",\"{font-size:0.8125rem;line-height:1.375rem;}\"],function(e){return e.theme.fonts.Body},function(e){return e.theme.mediaQueries.mobile}),g=a.c.div.withConfig({displayName:\"card__Meta\",componentId:\"sc-14d9ofs-3\"})([\"display:flex;flex-direction:row;margin:1rem 0;\"]),h=Object(a.c)(l.a).withConfig({displayName:\"card__Image\",componentId:\"sc-14d9ofs-4\"})([\"min-height:300px;max-height:375px;@media \",\"{\",\"}\"],function(e){return e.theme.mediaQueries.desktop},function(e){return e.fullwidth&&\"width: 40%;\\n      float: left;\\n      margin: 0 3rem 0 0;\\n    \"}),p=function(e){var t=e.node,n=t.fields.route,i=t.frontmatter,a=i.title,o=i.excerpt,l=i.date,c=i.author,p=i.cardImage,y=e.fullwidth,x=d(e,[\"node\",\"fullwidth\"]);return r.a.createElement(u,Object.assign({to:n},x),p&&r.a.createElement(h,{objectFit:\"fill\",objectPosition:\"50% 50%\",fluid:p.childImageSharp.fluid,fullwidth:!!y}),r.a.createElement(g,null,r.a.createElement(m.a,{author:c.id,date:l})),r.a.createElement(s,null,a),r.a.createElement(f,null,o))},y=a.c.div.withConfig({displayName:\"card__CardPairWrapper\",componentId:\"sc-14d9ofs-5\"})([\"display:flex;justify-content:space-between;max-width:\",\";margin:0rem auto 0 auto;width:100%;@media \",\"{padding:4rem 0;}\"],function(e){return e.theme.dimensions.maxWidth},function(e){return e.theme.mediaQueries.desktop}),x=a.c.div.withConfig({displayName:\"card__CardPairInner\",componentId:\"sc-14d9ofs-6\"})([\"display:flex;justify-content:space-between;max-width:\",\";width:100%;margin:0 auto;@media \",\"{flex-direction:column;}\"],function(e){return e.theme.dimensions.maxWidth},function(e){return e.theme.mediaQueries.mobile}),w=function(e){var t=e.prev,n=e.next,i=d(e,[\"prev\",\"next\"]);return t||n?r.a.createElement(y,i,r.a.createElement(x,null,t&&r.a.createElement(p,Object.assign({},t,{fullwidth:!n})),n&&r.a.createElement(p,n))):null}},247:function(e,t,n){\"use strict\";var i=n(0),r=n.n(i),a=n(243);t.a=function(e){var t=e.mdxEdges,n=t.filter(function(e,t){return t%2==0}),i=t.filter(function(e,t){return t%2!=0});return r.a.createElement(\"div\",null,n.map(function(e,t){var n=i[t];return r.a.createElement(a.a,{prev:e,next:n,key:e.node.fields.route})}))}},249:function(e,t,n){\"use strict\";n.d(t,\"a\",function(){return s}),n.d(t,\"b\",function(){return u});n(5),n(4),n(3),n(6),n(21);var i=n(2),r=n(0),a=n.n(r),o=n(43),l=n(254),c=n.n(l);var m=Object(i.c)(o.a).withConfig({displayName:\"tag__Link\",componentId:\"wl9txb-0\"})([\"color:\",\";background-color:\",\";border:0.06rem solid \",\";text-decoration:none;font-family:\",\";display:inline-block;font-size:0.9375em;padding:0.03rem 0.84rem;&:hover{color:\",\";background-color:\",\";border:1px solid \",\";}\"],function(e){return e.theme.site.color.Tag.Foreground},function(e){return e.theme.site.color.Tag.Background},function(e){return e.theme.site.color.Tag.Border},function(e){return e.theme.fonts.Body},function(e){return e.theme.site.color.Tag.Hover.Foreground},function(e){return e.theme.site.color.Tag.Hover.Background},function(e){return e.theme.site.color.SubtleForeground}),d=function(e){var t=e.name,n=e.to,i=function(e,t){if(null==e)return{};var n,i,r={},a=Object.keys(e);for(i=0;i<a.length;i++)n=a[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,[\"name\",\"to\"]);return a.a.createElement(m,{to:n,className:i.className},t)},u=function(e){var t=e.name;return a.a.createElement(d,{name:t,to:\"/tag/\"+c()(t)})},s=function(e){var t=e.name;return a.a.createElement(d,{name:t,to:\"/author/\"+c()(t)})};i.c.span.withConfig({displayName:\"tag__TagSpan\",componentId:\"wl9txb-1\"})([\"color:\",\";font-family:\",\";font-size:0.8rem;display:inline-block;margin:0 0.2rem 0 0;\"],function(e){return e.theme.code.color.Comment},function(e){return e.theme.fonts.Body})},287:function(e,t,n){var i=n(0);function r(e){return i.createElement(\"svg\",e,i.createElement(\"g\",{stroke:\"none\",strokeWidth:\"1\",fill:\"none\",fillRule:\"evenodd\"},i.createElement(\"g\",{transform:\"translate(-1332.000000, -587.000000)\",fill:\"#FFFFFF\"},i.createElement(\"g\",{transform:\"translate(1150.000000, 579.000000)\"},i.createElement(\"g\",{transform:\"translate(176.000000, 0.000000)\"},i.createElement(\"polygon\",{points:\"16.6 8.59997559 12 13.1999756 7.4 8.59997559 6 9.99997559 12 15.9999756 18 9.99997559\"}))))))}r.defaultProps={width:\"12px\",height:\"8px\",viewBox:\"0 0 12 8\",version:\"1.1\"},e.exports=r,r.default=r}}]);\n//# sourceMappingURL=component---src-pages-index-tsx-65151e9f2f564e3fe49c.js.map"
  },
  {
    "path": "examples/minified/webpack-runtime-c6e0a1eee0c3fa087a21.js",
    "content": "!function(e){function t(t){for(var n,u,c=t[0],f=t[1],i=t[2],p=0,l=[];p<c.length;p++)u=c[p],o[u]&&l.push(o[u][0]),o[u]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(s&&s(t);l.length;)l.shift()();return a.push.apply(a,i||[]),r()}function r(){for(var e,t=0;t<a.length;t++){for(var r=a[t],n=!0,c=1;c<r.length;c++){var f=r[c];0!==o[f]&&(n=!1)}n&&(a.splice(t--,1),e=u(u.s=r[0]))}return e}var n={},o={8:0},a=[];function u(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,u),r.l=!0,r.exports}u.e=function(e){var t=[],r=o[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise(function(t,n){r=o[e]=[t,n]});t.push(r[2]=n);var a,c=document.createElement(\"script\");c.charset=\"utf-8\",c.timeout=120,u.nc&&c.setAttribute(\"nonce\",u.nc),c.src=function(e){return u.p+\"\"+({3:\"component---src-pages-404-tsx\",4:\"component---src-pages-index-tsx\",5:\"component---src-templates-author-tsx\",6:\"component---src-templates-post-tsx\",7:\"component---src-templates-tags-tsx\"}[e]||e)+\"-\"+{0:\"941d61979b9396d94f06\",1:\"fa6e7d2ffea9ee90c8d8\",3:\"dfa78f5d0dc7fee636d8\",4:\"65151e9f2f564e3fe49c\",5:\"026991d49ed0586b7a52\",6:\"a610717067fd49269a2b\",7:\"1667edf373aa2f440e07\"}[e]+\".js\"}(e),a=function(t){c.onerror=c.onload=null,clearTimeout(f);var r=o[e];if(0!==r){if(r){var n=t&&(\"load\"===t.type?\"missing\":t.type),a=t&&t.target&&t.target.src,u=new Error(\"Loading chunk \"+e+\" failed.\\n(\"+n+\": \"+a+\")\");u.type=n,u.request=a,r[1](u)}o[e]=void 0}};var f=setTimeout(function(){a({type:\"timeout\",target:c})},12e4);c.onerror=c.onload=a,document.head.appendChild(c)}return Promise.all(t)},u.m=e,u.c=n,u.d=function(e,t,r){u.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},u.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},u.t=function(e,t){if(1&t&&(e=u(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(u.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var n in e)u.d(r,n,function(t){return e[t]}.bind(null,n));return r},u.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(t,\"a\",t),t},u.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},u.p=\"/\",u.oe=function(e){throw console.error(e),e};var c=window.webpackJsonp=window.webpackJsonp||[],f=c.push.bind(c);c.push=t,c=c.slice();for(var i=0;i<c.length;i++)t(c[i]);var s=f;r()}([]);\n//# sourceMappingURL=webpack-runtime-c6e0a1eee0c3fa087a21.js.map"
  },
  {
    "path": "examples/nolines.py",
    "content": ""
  },
  {
    "path": "examples/oneline.py",
    "content": "import this"
  },
  {
    "path": "examples/onenewline.py",
    "content": "\n"
  },
  {
    "path": "examples/performance_tests/create_folders_with_files.py",
    "content": "# Create folders with files in them to check out the performance of parallel file walk algorithms\n# in really unusual edge cases to determine the best all round algorithm for walking\n\nimport os\nimport errno\n\ndef make_sure_path_exists(path):\n    try:\n        os.makedirs(path)\n    except OSError as exception:\n        if exception.errno != errno.EEXIST:\n            raise\n\n# Case 0\n# Create a directory thats quite deep and put a 10000 files at the end\ndeep_dir = './' + '/'.join([\"0\" for x in range(21)]) + '/'\nmake_sure_path_exists(deep_dir)\nfor x in range(10000):\n    with open(deep_dir + str(x) +'.py', 'w') as myfile:\n        myfile.write(\"some content\")\n\n# Case 1\n# Create a directory thats quite deep and put 100 files in each folder\ndeep_dir = './'\nfor x in range(21):\n    deep_dir += '1/'\n    make_sure_path_exists(deep_dir)\n    for x in range(100):\n        with open(deep_dir + str(x) +'.py', 'w') as myfile:\n            myfile.write(\"some content\")\n\n# Case 2\n# Create a directory that has a single level and put 10000 files in it\ndeep_dir = './2/'\nmake_sure_path_exists(deep_dir)\nfor x in range(10000):\n    with open(deep_dir + str(x) +'.py', 'w') as myfile:\n        myfile.write(\"some content\")\n\n# Case 3\n# Create a directory that has a two levels with 10000 directories in the second with a single file in each\ndeep_dir = './3/'\nmake_sure_path_exists(deep_dir)\nfor x in range(10000):\n    tmp_dir = deep_dir + str(x) + '/'\n    make_sure_path_exists(tmp_dir)\n    with open(tmp_dir + '1.py', 'w') as myfile:\n        myfile.write(\"some content\")\n\n# Case 4\n# Create a directory that with 10 subdirectories and 1000 files in each\ndeep_dir = './4/'\nmake_sure_path_exists(deep_dir)\nfor x in range(10):\n    tmp_dir = deep_dir + str(x) + '/'\n    make_sure_path_exists(tmp_dir)\n    for x in range(1000):\n        with open(tmp_dir + str(x) +'.py', 'w') as myfile:\n            myfile.write(\"some content\")\n\n# Case 5\n# Create a directory that with 20 subdirectories and 500 files in each\ndeep_dir = './5/'\nmake_sure_path_exists(deep_dir)\nfor x in range(20):\n    tmp_dir = deep_dir + str(x) + '/'\n    make_sure_path_exists(tmp_dir)\n    for x in range(500):\n        with open(tmp_dir + str(x) +'.py', 'w') as myfile:\n            myfile.write(\"some content\")\n\n# Case 6\n# Create a directory that with 5 subdirectories and 2000 files in each\ndeep_dir = './6/'\nmake_sure_path_exists(deep_dir)\nfor x in range(5):\n    tmp_dir = deep_dir + str(x) + '/'\n    make_sure_path_exists(tmp_dir)\n    for x in range(2000):\n        with open(tmp_dir + str(x) +'.py', 'w') as myfile:\n            myfile.write(\"some content\")\n\n# Case 7\n# Create a directory that with 100 subdirectories and 100 files in each\ndeep_dir = './7/'\nmake_sure_path_exists(deep_dir)\nfor x in range(100):\n    tmp_dir = deep_dir + str(x) + '/'\n    make_sure_path_exists(tmp_dir)\n    for x in range(100):\n        with open(tmp_dir + str(x) +'.py', 'w') as myfile:\n            myfile.write(\"some content\")\n"
  },
  {
    "path": "examples/performance_tests/create_performance_test.py",
    "content": "# Create folders with files in them to check out the performance of code counters\n\nimport os\nimport errno\n\ncode = '''package com.boyter.SpellingCorrector;\n\nimport java.util.*;\nimport java.util.stream.Stream;\n\npublic class SpellingCorrector implements ISpellingCorrector {\n  private Map<String, Integer> dictionary = null;\n\n  public SpellingCorrector(int lruCount) {\n      this.dictionary = Collections.synchronizedMap(new LruCache<>(lruCount));\n  }\n\n  @Override\n  public void putWord(String word) {\n      word = word.toLowerCase();\n      if (dictionary.containsKey(word)) {\n          dictionary.put(word, (dictionary.get(word) + 1));\n      }\n      else {\n          dictionary.put(word, 1);\n      }\n  }\n\n  @Override\n  public String correct(String word) {\n      if (word == null || word.trim().isEmpty()) {\n          return word;\n      }\n\n      word = word.toLowerCase();\n\n      if (dictionary.containsKey(word)) {\n          return word;\n      }\n\n      Map<String, Integer> possibleMatches = new HashMap<>();\n\n      List<String> closeEdits = wordEdits(word);\n      for (String closeEdit: closeEdits) {\n          if (dictionary.containsKey(closeEdit)) {\n              possibleMatches.put(closeEdit, this.dictionary.get(closeEdit));\n          }\n      }\n\n      if (!possibleMatches.isEmpty()) {\n          Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n          String bestMatch = \"\";\n          for(Object o: matches) {\n              if (o.toString().length() == word.length()) {\n                  bestMatch = o.toString();\n              }\n          }\n\n          if (!bestMatch.trim().isEmpty()) {\n              return bestMatch;\n          }\n\n          return matches[matches.length - 1].toString();\n      }\n\n      List<String> furtherEdits = new ArrayList<>();\n      for(String closeEdit: closeEdits) {\n          furtherEdits.addAll(this.wordEdits(closeEdit));\n      }\n\n      for (String futherEdit: furtherEdits) {\n          if (dictionary.containsKey(futherEdit)) {\n              possibleMatches.put(futherEdit, this.dictionary.get(futherEdit));\n          }\n      }\n\n      if (!possibleMatches.isEmpty()) {\n          Object[] matches = this.sortByValue(possibleMatches).keySet().toArray();\n\n          String bestMatch = \"\";\n          for(Object o: matches) {\n              if (o.toString().length() == word.length()) {\n                  bestMatch = o.toString();\n              }\n          }\n\n          if (!bestMatch.trim().isEmpty()) {\n              return bestMatch;\n          }\n\n          return matches[matches.length - 1].toString();\n      }\n\n      return word;\n  }\n\n  @Override\n  public boolean containsWord(String word) {\n      if (dictionary.containsKey(word)) {\n          return true;\n      }\n\n      return false;\n  }\n\n  private List<String> wordEdits(String word) {\n      List<String> closeWords = new ArrayList<String>();\n\n      for (int i = 1; i < word.length() + 1; i++) {\n          for (char character = 'a'; character <= 'z'; character++) {\n              StringBuilder sb = new StringBuilder(word);\n              sb.insert(i, character);\n              closeWords.add(sb.toString());\n          }\n      }\n\n      for (int i = 1; i < word.length(); i++) {\n          for (char character = 'a'; character <= 'z'; character++) {\n              StringBuilder sb = new StringBuilder(word);\n              sb.setCharAt(i, character);\n              closeWords.add(sb.toString());\n\n              sb = new StringBuilder(word);\n              sb.deleteCharAt(i);\n              closeWords.add(sb.toString());\n          }\n      }\n\n      return closeWords;\n  }\n\n  public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) {\n      Map<K, V> result = new LinkedHashMap<>();\n      Stream<Map.Entry<K, V>> st = map.entrySet().stream();\n\n      st.sorted( Map.Entry.comparingByValue() ).forEachOrdered( e -> result.put(e.getKey(), e.getValue()) );\n\n      return result;\n  }\n\n  public class LruCache<A, B> extends LinkedHashMap<A, B> {\n      private final int maxEntries;\n\n      public LruCache(final int maxEntries) {\n          super(maxEntries + 1, 1.0f, true);\n          this.maxEntries = maxEntries;\n      }\n\n      @Override\n      protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {\n          return super.size() > maxEntries;\n      }\n  }\n}'''\n\ndef make_sure_path_exists(path):\n    try:\n        os.makedirs(path)\n    except OSError as exception:\n        if exception.errno != errno.EEXIST:\n            raise\n\n# Case 0\n# Create a directory thats quite deep and put a 10000 files at the end\ndeep_dir = './' + '/'.join([\"0\" for x in range(21)]) + '/'\nmake_sure_path_exists(deep_dir)\nfor x in range(10000):\n    with open(deep_dir + str(x) +'.java', 'w') as myfile:\n        myfile.write(code)\n\n# Case 1\n# Create a directory thats quite deep and put 100 files in each folder\ndeep_dir = './'\nfor x in range(21):\n    deep_dir += '1/'\n    make_sure_path_exists(deep_dir)\n    for x in range(100):\n        with open(deep_dir + str(x) +'.java', 'w') as myfile:\n            myfile.write(code)\n\n# Case 2\n# Create a directory that has a single level and put 10000 files in it\ndeep_dir = './2/'\nmake_sure_path_exists(deep_dir)\nfor x in range(10000):\n    with open(deep_dir + str(x) +'.java', 'w') as myfile:\n        myfile.write(code)\n\n# Case 3\n# Create a directory that has a two levels with 10000 directories in the second with a single file in each\ndeep_dir = './3/'\nmake_sure_path_exists(deep_dir)\nfor x in range(10000):\n    tmp_dir = deep_dir + str(x) + '/'\n    make_sure_path_exists(tmp_dir)\n    with open(tmp_dir + '1.java', 'w') as myfile:\n        myfile.write(code)\n\n# Case 4\n# Create a directory that with 10 subdirectories and 1000 files in each\ndeep_dir = './4/'\nmake_sure_path_exists(deep_dir)\nfor x in range(10):\n    tmp_dir = deep_dir + str(x) + '/'\n    make_sure_path_exists(tmp_dir)\n    for x in range(1000):\n        with open(tmp_dir + str(x) +'.java', 'w') as myfile:\n            myfile.write(code)\n\n# Case 5\n# Create a directory that with 20 subdirectories and 500 files in each\ndeep_dir = './5/'\nmake_sure_path_exists(deep_dir)\nfor x in range(20):\n    tmp_dir = deep_dir + str(x) + '/'\n    make_sure_path_exists(tmp_dir)\n    for x in range(500):\n        with open(tmp_dir + str(x) +'.java', 'w') as myfile:\n            myfile.write(code)\n\n# Case 6\n# Create a directory that with 5 subdirectories and 2000 files in each\ndeep_dir = './6/'\nmake_sure_path_exists(deep_dir)\nfor x in range(5):\n    tmp_dir = deep_dir + str(x) + '/'\n    make_sure_path_exists(tmp_dir)\n    for x in range(2000):\n        with open(tmp_dir + str(x) +'.java', 'w') as myfile:\n            myfile.write(code)\n\n# Case 7\n# Create a directory that with 100 subdirectories and 100 files in each\ndeep_dir = './7/'\nmake_sure_path_exists(deep_dir)\nfor x in range(100):\n    tmp_dir = deep_dir + str(x) + '/'\n    make_sure_path_exists(tmp_dir)\n    for x in range(100):\n        with open(tmp_dir + str(x) +'.java', 'w') as myfile:\n            myfile.write(code)\n"
  },
  {
    "path": "examples/remap/java.java",
    "content": "this is java but has this marker -*- C++ -*- so should be counted as C Header when remap is on"
  },
  {
    "path": "examples/remap/unknown",
    "content": "this is unknown but has this marker -*- C++ -*- so should be counted as C Header when remap is on"
  },
  {
    "path": "examples/shared_extension/coq/Qabs.v",
    "content": "(************************************************************************)\n(*         *   The Coq Proof Assistant / The Coq Development Team       *)\n(*  v      *   INRIA, CNRS and contributors - Copyright 1999-2018       *)\n(* <O___,, *       (see CREDITS file for the list of authors)           *)\n(*   \\VV/  **************************************************************)\n(*    //   *    This file is distributed under the terms of the         *)\n(*         *     GNU Lesser General Public License Version 2.1          *)\n(*         *     (see LICENSE file for the text of the license)         *)\n(************************************************************************)\n\nRequire Export QArith.\nRequire Export Qreduction.\n\nHint Resolve Qlt_le_weak : qarith.\n\nDefinition Qabs (x:Q) := let (n,d):=x in (Z.abs n#d).\n\nLemma Qabs_case : forall (x:Q) (P : Q -> Type), (0 <= x -> P x) -> (x <= 0 -> P (- x)) -> P (Qabs x).\nProof.\nintros x P H1 H2.\ndestruct x as [[|xn|xn] xd];\n[apply H1|apply H1|apply H2];\nabstract (compute; discriminate).\nDefined.\n\nAdd Morphism Qabs with signature Qeq ==> Qeq as Qabs_wd.\nintros [xn xd] [yn yd] H.\nsimpl.\nunfold Qeq in *.\nsimpl in *.\nchange (Zpos yd)%Z with (Z.abs (Zpos yd)).\nchange (Zpos xd)%Z with (Z.abs (Zpos xd)).\nrepeat rewrite <- Z.abs_mul.\ncongruence.\nQed.\n\nLemma Qabs_pos : forall x, 0 <= x -> Qabs x == x.\nProof.\nintros x H.\napply Qabs_case.\nreflexivity.\nintros H0.\nsetoid_replace x with 0.\nreflexivity.\napply Qle_antisym; assumption.\nQed.\n\nLemma Qabs_neg : forall x, x <= 0 -> Qabs x == - x.\nProof.\nintros x H.\napply Qabs_case.\nintros H0.\nsetoid_replace x with 0.\nreflexivity.\napply Qle_antisym; assumption.\nreflexivity.\nQed.\n\nLemma Qabs_nonneg : forall x, 0 <= (Qabs x).\nintros x.\napply Qabs_case.\nauto.\napply (Qopp_le_compat x 0).\nQed.\n\nLemma Zabs_Qabs : forall n d, (Z.abs n#d)==Qabs (n#d).\nProof.\nintros [|n|n]; reflexivity.\nQed.\n\nLemma Qabs_opp : forall x, Qabs (-x) == Qabs x.\nProof.\nintros x.\ndo 2 apply Qabs_case; try (intros; ring);\n(intros H0 H1;\nsetoid_replace x with 0;[reflexivity|];\napply Qle_antisym);try assumption;\nrewrite Qle_minus_iff in *;\nring_simplify;\nring_simplify in H1;\nassumption.\nQed.\n\nLemma Qabs_triangle : forall x y, Qabs (x+y) <= Qabs x + Qabs y.\nProof.\nintros [xn xd] [yn yd].\nunfold Qplus.\nunfold Qle.\nsimpl.\napply Z.mul_le_mono_nonneg_r;auto with *.\nchange (Zpos yd)%Z with (Z.abs (Zpos yd)).\nchange (Zpos xd)%Z with (Z.abs (Zpos xd)).\nrepeat rewrite <- Z.abs_mul.\napply Z.abs_triangle.\nQed.\n\nLemma Qabs_Qmult : forall a b, Qabs (a*b) == (Qabs a)*(Qabs b).\nProof.\nintros [an ad] [bn bd].\nsimpl.\nrewrite Z.abs_mul.\nreflexivity.\nQed.\n\nLemma Qabs_Qinv : forall q, Qabs (/ q) == / (Qabs q).\nProof.\n  intros [n d]; simpl.\n  unfold Qinv.\n  case_eq n; intros; simpl in *; apply Qeq_refl.\nQed.\n\nLemma Qabs_Qminus x y: Qabs (x - y) = Qabs (y - x).\nProof.\n unfold Qminus, Qopp. simpl.\n rewrite Pos.mul_comm, <- Z.abs_opp.\n do 2 f_equal. ring.\nQed.\n\nLemma Qle_Qabs : forall a, a <= Qabs a.\nProof.\nintros a.\napply Qabs_case; auto with *.\nintros H.\napply Qle_trans with 0; try assumption.\nchange 0 with (-0).\napply Qopp_le_compat.\nassumption.\nQed.\n\nLemma Qabs_triangle_reverse : forall x y, Qabs x - Qabs y <= Qabs (x - y).\nProof.\nintros x y.\nrewrite Qle_minus_iff.\nsetoid_replace (Qabs (x - y) + - (Qabs x - Qabs y)) with ((Qabs (x - y) + Qabs y) + - Qabs x) by ring.\nrewrite <- Qle_minus_iff.\nsetoid_replace (Qabs x) with (Qabs (x-y+y)).\napply Qabs_triangle.\napply Qabs_wd.\nring.\nQed.\n\nLemma Qabs_Qle_condition x y: Qabs x <= y <-> -y <= x <= y.\nProof.\n split.\n  split.\n   rewrite <- (Qopp_opp x).\n   apply Qopp_le_compat.\n   apply Qle_trans with (Qabs (-x)).\n   apply Qle_Qabs.\n   now rewrite Qabs_opp.\n  apply Qle_trans with (Qabs x); auto using Qle_Qabs.\n intros (H,H').\n apply Qabs_case; trivial.\n intros. rewrite <- (Qopp_opp y). now apply Qopp_le_compat.\nQed.\n\nLemma Qabs_diff_Qle_condition x y r: Qabs (x - y) <= r <-> x - r <= y <= x + r.\nProof.\n intros. unfold Qminus.\n rewrite Qabs_Qle_condition.\n rewrite <- (Qplus_le_l (-r) (x+-y) (y+r)).\n rewrite <- (Qplus_le_l (x+-y) r (y-r)).\n setoid_replace (-r + (y + r)) with y by ring.\n setoid_replace (r + (y - r)) with y by ring.\n setoid_replace (x + - y + (y + r)) with (x + r) by ring.\n setoid_replace (x + - y + (y - r)) with (x - r) by ring.\n intuition.\nQed.\n"
  },
  {
    "path": "examples/shared_extension/verilog/button_debounce.v",
    "content": "// Copyright 2018 Schuyler Eldridge\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`timescale 1ns / 1ps\nmodule button_debounce\n  #(\n    parameter\n    CLK_FREQUENCY  = 10_000_000,\n    DEBOUNCE_HZ    = 2\n    // These parameters are specified such that you can choose any power\n    // of 2 frequency for a debouncer between 1 Hz and\n    // CLK_FREQUENCY. Note, that this will throw errors if you choose a\n    // non power of 2 frequency (i.e. count_value evaluates to some\n    // number / 3 which isn't interpreted as a logical right shift). I'm\n    // assuming this will not work for DEBOUNCE_HZ values less than 1,\n    // however, I'm uncertain of the value of a debouncer for fractional\n    // hertz button presses.\n    )\n  (\n   input      clk,     // clock\n   input      reset_n, // asynchronous reset\n   input      button,  // bouncy button\n   output reg debounce // debounced 1-cycle signal\n   );\n\n  localparam\n    COUNT_VALUE  = CLK_FREQUENCY / DEBOUNCE_HZ,\n    WAIT         = 0,\n    FIRE         = 1,\n    COUNT        = 2;\n\n  reg [1:0]   state, next_state;\n  reg [25:0]  count;\n\n  always @ (posedge clk or negedge reset_n)\n    state <= (!reset_n) ? WAIT : next_state;\n\n  always @ (posedge clk or negedge reset_n) begin\n    if (!reset_n) begin\n      debounce <= 0;\n      count    <= 0;\n    end\n    else begin\n      debounce <= 0;\n      count    <= 0;\n      case (state)\n        WAIT: begin\n        end\n        FIRE: begin\n          debounce <= 1;\n        end\n        COUNT: begin\n          count <= count + 1;\n        end\n      endcase\n    end\n  end\n\n  always @ * begin\n    case (state)\n      WAIT:    next_state = (button)                  ? FIRE : state;\n      FIRE:    next_state = COUNT;\n      COUNT:   next_state = (count > COUNT_VALUE - 1) ? WAIT : state;\n      default: next_state = WAIT;\n    endcase\n  end\n\nendmodule\n"
  },
  {
    "path": "examples/shared_extension/vlang/users.v",
    "content": "// Please share your thoughts, suggestions, questions, etc here:\n// https://github.com/vlang-io/V/issues/3\n\n// I'm very interested in your feedback.\n\nmodule main\n\nimport json // V will automatically insert missing imports (like the goimports tool)\nimport http\n\n// Right now V requires all consts to be uppercase.\n// I'm still not certain about this.\nconst API_URL = 'https://vlang.io/users.json'\n\n// V will generate json.encode and json.decode functions for this type since\n// `json.decode([]User, ...)` is called later. This results in better\n// performance, since reflection is not used.\nstruct User {\n\tname          string // V will automatically format and align your code.\n\tage           int    // No need to use an additional tool.\n\tis_registered bool\n}\n\nfn main() {\n\t// `http.get()` returns an optional string.\n\t// V optionals combine the features of Rust's Option<T> and Result<T>.\n\t// We must unwrap all optionals with `or`, otherwise V will complain.\n\ts := http.get(API_URL) or {\n\t\t// `err` is a reserved variable (not a global) that\n\t\t// contains an error message if there is one\n\t\teprintln('Failed to fetch \"users.json\": $err')\n\t\t// `or` blocks must end with `return`, `break`, or `continue`\n\t\treturn\n\t}\n\t// Types can be passed as arguments\n\tusers := json.decode([]User, s) or {\n\t\teprintln('Failed to parse users.json')\n\t\treturn\n\t}\n\t// Encoding JSON doesn't require a type, since V knows what type\n\t// the variable `users` has\n\tprintln(json.encode(users))\n\t// Please note the difference between V and Go:\n\t// when there's only one variable, it's a value, not an index.\n\tfor user in users {\n\t\tprintln('$user.name: $user.age')\n\t}\n\t// `for` loop has an alternative form when an index is required:\n\tfor i, user in users {\n\t\tprintln('$i) $user')\n\t\tif !user.can_register() {\n\t\t\t// V allows both ' and \" to denote strings.\n\t\t\t// However, for consistency V will replace \" with '\n\t\t\t// unless the string contains an apostrophe.\n\t\t\tprintln(\"Can't register\")\n\t\t}\n\t}\n}\n\n// The method declaration is the same as in Go.\n// There is one big difference. Here `u` can be either passed by value (User)\n// or by reference (&User). The compiler will make the right decision\n// depending on the size of the User struct. You no longer have to remember\n// which one to use. It works here because `u` can't be modified (it's not\n// marked as `mut`).\nfn (u User) can_register() bool {\n\treturn u.age >= 16\n}\n\n// Here `u` can be modified and it will always be a reference.\nfn (u mut User) register() {\n\tu.is_registered = true\n}\n"
  },
  {
    "path": "examples/symlink/test.py",
    "content": "# this is a comment.\n\nimport os\n\nfor e in os.scandir('.'):\n\tif e.is_file():\n\t\tprint(e)\n"
  },
  {
    "path": "examples/threenewline.py",
    "content": "\n\n\n"
  },
  {
    "path": "examples/twolines.py",
    "content": "import this\nprint this"
  },
  {
    "path": "examples/twonewline.py",
    "content": "\n\n"
  },
  {
    "path": "go.mod",
    "content": "module github.com/boyter/scc/v3\n\ngo 1.25.2\n\nignore ./examples\n\nrequire (\n\tgithub.com/agnivade/levenshtein v1.2.2-0.20250519083737-420867539855\n\tgithub.com/boyter/gocodewalker v1.5.2-0.20260227212453-19676720409f\n\tgithub.com/boyter/simplecache v0.0.0-20250113230110-8a4c9201822a\n\tgithub.com/json-iterator/go v1.1.12\n\tgithub.com/mattn/go-runewidth v0.0.19\n\tgithub.com/rs/zerolog v1.30.0\n\tgithub.com/spf13/cobra v1.10.1\n\tgithub.com/spf13/pflag v1.0.10\n\tgo.yaml.in/yaml/v2 v2.4.3\n\tgolang.org/x/crypto v0.45.0\n\tgolang.org/x/text v0.31.0\n)\n\nrequire (\n\tgithub.com/bahlo/generic-list-go v0.2.0 // indirect\n\tgithub.com/buger/jsonparser v1.1.1 // indirect\n\tgithub.com/clipperhouse/uax29/v2 v2.2.0 // indirect\n\tgithub.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 // indirect\n\tgithub.com/google/uuid v1.6.0 // indirect\n\tgithub.com/inconshreveable/mousetrap v1.1.0 // indirect\n\tgithub.com/invopop/jsonschema v0.13.0 // indirect\n\tgithub.com/mailru/easyjson v0.7.7 // indirect\n\tgithub.com/mark3labs/mcp-go v0.45.0 // indirect\n\tgithub.com/mattn/go-colorable v0.1.13 // indirect\n\tgithub.com/mattn/go-isatty v0.0.19 // indirect\n\tgithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect\n\tgithub.com/modern-go/reflect2 v1.0.2 // indirect\n\tgithub.com/spf13/cast v1.7.1 // indirect\n\tgithub.com/wk8/go-ordered-map/v2 v2.1.8 // indirect\n\tgithub.com/yosida95/uritemplate/v3 v3.0.2 // indirect\n\tgolang.org/x/sync v0.18.0 // indirect\n\tgolang.org/x/sys v0.38.0 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n)\n"
  },
  {
    "path": "go.sum",
    "content": "github.com/agnivade/levenshtein v1.2.2-0.20250519083737-420867539855 h1:eecTPiTbYU25fX1PZ2euFs9ol/TwQsJbRZwOF6pddw8=\ngithub.com/agnivade/levenshtein v1.2.2-0.20250519083737-420867539855/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU=\ngithub.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=\ngithub.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=\ngithub.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk=\ngithub.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg=\ngithub.com/boyter/gocodewalker v1.5.2-0.20260227212453-19676720409f h1:B+n/SMEvi0E2ulKmXMBZoOcGhTXmhKHxhIRPs1yrxkQ=\ngithub.com/boyter/gocodewalker v1.5.2-0.20260227212453-19676720409f/go.mod h1:9k+yM6+fIx61F0xI9ChXEGE5DYoLhggw8AxSOtW+kKo=\ngithub.com/boyter/simplecache v0.0.0-20250113230110-8a4c9201822a h1:eL28tNqB4nBuMVA+WijpviMStOY7NAFWDowPB6I6Ruo=\ngithub.com/boyter/simplecache v0.0.0-20250113230110-8a4c9201822a/go.mod h1:8yw7v2b4T5LJbZEBhPOqUsqe8h04anlyPhmWnoUtRIs=\ngithub.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs=\ngithub.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=\ngithub.com/clipperhouse/uax29/v2 v2.2.0 h1:ChwIKnQN3kcZteTXMgb1wztSgaU+ZemkgWdohwgs8tY=\ngithub.com/clipperhouse/uax29/v2 v2.2.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=\ngithub.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=\ngithub.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=\ngithub.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ=\ngithub.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo=\ngithub.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA=\ngithub.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=\ngithub.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=\ngithub.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=\ngithub.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=\ngithub.com/invopop/jsonschema v0.13.0 h1:KvpoAJWEjR3uD9Kbm2HWJmqsEaHt8lBUpd0qHcIi21E=\ngithub.com/invopop/jsonschema v0.13.0/go.mod h1:ffZ5Km5SWWRAIN6wbDXItl95euhFz2uON45H2qjYt+0=\ngithub.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=\ngithub.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=\ngithub.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=\ngithub.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=\ngithub.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=\ngithub.com/mark3labs/mcp-go v0.45.0 h1:s0S8qR/9fWaQ3pHxz7pm1uQ0DrswoSnRIxKIjbiQtkc=\ngithub.com/mark3labs/mcp-go v0.45.0/go.mod h1:YnJfOL382MIWDx1kMY+2zsRHU/q78dBg9aFb8W6Thdw=\ngithub.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=\ngithub.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=\ngithub.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=\ngithub.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=\ngithub.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=\ngithub.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=\ngithub.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=\ngithub.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=\ngithub.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=\ngithub.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=\ngithub.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=\ngithub.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=\ngithub.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c=\ngithub.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w=\ngithub.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=\ngithub.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y=\ngithub.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=\ngithub.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=\ngithub.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=\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.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=\ngithub.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=\ngithub.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc=\ngithub.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw=\ngithub.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4=\ngithub.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4=\ngo.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=\ngo.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=\ngolang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=\ngolang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=\ngolang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=\ngolang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=\ngolang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=\ngolang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=\ngolang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=\ngolang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\n"
  },
  {
    "path": "languages.json",
    "content": "{\n  \"ABAP\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"abap\"],\n    \"line_comment\": [\"*\", \"\\\\\\\"\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"ABNF\": {\n    \"complexitychecks\": [\"=/ \", \"/ \", \"% \", \"( \"],\n    \"extensions\": [\"abnf\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Apex\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"else{\",\n      \"try \",\n      \"try{\",\n      \"catch \",\n      \"catch(\",\n      \"finally \",\n      \"finally{\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"apex\", \"trigger\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"APL\": {\n    \"complexitychecks\": [\n      \":For \",\n      \":If \",\n      \":Case \",\n      \":CaseList \",\n      \":While \",\n      \":Repeat \",\n      \":Else \",\n      \"∨\",\n      \"∧\",\n      \"≠\",\n      \"~\",\n      \"¨\",\n      \"=\",\n      \":\"\n    ],\n    \"extensions\": [\"apl\", \"aplf\", \"apln\", \"aplc\", \"dyalog\"],\n    \"line_comment\": [\"⍝\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"ASP\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"asa\", \"asp\"],\n    \"line_comment\": [\"'\", \"REM\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"ASP.NET\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\n      \"asax\",\n      \"ascx\",\n      \"asmx\",\n      \"aspx\",\n      \"master\",\n      \"sitemap\",\n      \"webinfo\"\n    ],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"], [\"<%--\", \"-->\"]],\n    \"quotes\": []\n  },\n  \"ATS\": {\n    \"complexitychecks\": [\n      \"if \",\n      \"if(\",\n      \" then \",\n      \" else \",\n      \"case+ \",\n      \"ifcase\",\n      \"let \",\n      \"and \"\n    ],\n    \"extensions\": [\"dats\", \"sats\", \"ats\", \"hats\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [\n      [\"/*\", \"*/\"],\n      [\"(*\", \"*)\"],\n      [\"////\", \"THISSHOULDNEVERAPPEARWEHOPE\"]\n    ],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"AWK\": {\n    \"complexitychecks\": [\n      \"else \",\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"while \",\n      \"while(\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"awk\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ],\n    \"shebangs\": [\"awk\", \"gawk\", \"mawk\", \"nawk\"]\n  },\n  \"ActionScript\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"as\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Ada\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"ada\", \"adb\", \"ads\", \"pad\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Agda\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"agda\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [[\"{-\", \"-}\"]],\n    \"quotes\": []\n  },\n  \"Alchemist\": {\n    \"complexitychecks\": [\"+\", \"->\", \"!\"],\n    \"extensions\": [\"crn\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Alex\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"x\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Algol 68\": {\n    \"complexitychecks\": [\n      \"IF \",\n      \"ELIF \",\n      \"ELSE \",\n      \"FOR \",\n      \"WHILE \",\n      \"CASE \",\n      \"OUSE \",\n      \"AND \",\n      \"OR \",\n      \"EQ \",\n      \"NE \",\n      \"IS \",\n      \"ISNT \",\n      \"IS NOT \",\n      \"~= \"\n    ],\n    \"extensions\": [\"a68\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"#\", \"#\"], [\"CO\", \"CO\"], [\"COMMENT\", \"COMMENT\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\",\n        \"ignoreEscape\": true\n      }\n    ]\n  },\n  \"Alloy\": {\n    \"complexitychecks\": [\n      \"implies \",\n      \"else \",\n      \"for \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"<= \",\n      \">= \"\n    ],\n    \"extensions\": [\"als\"],\n    \"line_comment\": [\"//\", \"--\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": []\n  },\n  \"Amber\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"exited(\",\n      \"failed \",\n      \"failed(\",\n      \"succeeded \",\n      \"if \",\n      \"then \",\n      \"while \",\n      \"loop \",\n      \"else:\",\n      \"else \",\n      \"or \",\n      \"and \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"ab\"],\n    \"filenames\": [],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ],\n    \"shebangs\": [\"amber\"]\n  },\n  \"Android Interface Definition Language\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"aidl\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/**\", \"*/\"], [\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"AppleScript\": {\n    \"complexitychecks\": [\n      \"considering \",\n      \"ignoring \",\n      \"repeat \",\n      \"while \",\n      \"if \",\n      \"else \",\n      \"else if \",\n      \"try \",\n      \"on error \",\n      \"and \",\n      \"or \"\n    ],\n    \"extensions\": [\"applescript\"],\n    \"line_comment\": [\"#\", \"--\"],\n    \"multi_line\": [[\"(*\", \"*)\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ],\n    \"shebangs\": []\n  },\n  \"ArkTs\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"!== \",\n      \"== \",\n      \"=== \",\n      \"case \",\n      \"case(\",\n      \"?.\",\n      \"?? \",\n      \"??= \"\n    ],\n    \"extensions\": [\"ets\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"`\",\n        \"start\": \"`\"\n      }\n    ]\n  },\n  \"Arturo\": {\n    \"complexitychecks\": [\n      \"loop \",\n      \"map \",\n      \"select \",\n      \"if \",\n      \"if? \",\n      \"while \",\n      \"function \",\n      \"or? \",\n      \"and? \",\n      \"not? \",\n      \"<> \",\n      \"= \"\n    ],\n    \"extensions\": [\"art\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"AsciiDoc\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"adoc\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Assembly\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"s\", \"asm\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Astro\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \".map\"\n    ],\n    \"extensions\": [\"astro\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"<!--\", \"-->\"], [\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"AutoHotKey\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"ahk\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": []\n  },\n  \"Autoconf\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"in\"],\n    \"line_comment\": [\"#\", \"dnl\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Avro\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"avdl\", \"avpr\", \"avsc\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"BASH\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\n      \"bash\",\n      \"bash_login\",\n      \"bash_logout\",\n      \"bash_profile\",\n      \"bashrc\"\n    ],\n    \"filenames\": [\".bash_login\", \".bash_logout\", \".bash_profile\", \".bashrc\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ],\n    \"shebangs\": [\"bash\"]\n  },\n  \"Basic\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"elseif \",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"bas\"],\n    \"line_comment\": [\"'\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      }\n    ]\n  },\n  \"Batch\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"bat\", \"btm\", \"cmd\"],\n    \"line_comment\": [\"REM\", \"::\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Bazel\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"bzl\", \"build.bazel\", \"build\", \"workspace\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Bean\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"bean\", \"beancount\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Bicep\": {\n    \"complexitychecks\": [\n      \"@minLength(\",\n      \"@maxLength(\",\n      \"@secure(\",\n      \"[for \",\n      \"if(\",\n      \"if (\",\n      \" == \",\n      \" != \",\n      \" ? \",\n      \"using \",\n      \"range(\",\n      \"type \",\n      \"func \"\n    ],\n    \"extensions\": [\"bicep\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Bitbake\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"bb\", \"bbappend\", \"bbclass\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Bitbucket Pipeline\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"bitbucket-pipelines.yml\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Blade template\": {\n    \"complexitychecks\": [\n      \"@for \",\n      \"@for(\",\n      \"@foreach \",\n      \"@foreach(\",\n      \"@forelse \",\n      \"@forelse(\",\n      \"@each \",\n      \"@each (\",\n      \"@while \",\n      \"@while(\",\n      \"@if \",\n      \"@if(\",\n      \"@unless \",\n      \"@unless(\",\n      \"@isset \",\n      \"@isset(\",\n      \"@empty \",\n      \"@empty(\",\n      \"@else \",\n      \"@elseif \",\n      \"@elseif(\",\n      \"@while \",\n      \"@while(\",\n      \"@switch \",\n      \"@switch (\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"blade.php\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"{{--\", \"--}}\"], [\"<!--\", \"-->\"]],\n    \"quotes\": []\n  },\n  \"Blueprint\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"blp\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Boo\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"if \",\n      \"elif \",\n      \"unless \",\n      \" and \",\n      \"for \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"boo\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"\\\"\\\"\\\"\"\n      }\n    ]\n  },\n  \"Bosque\": {\n    \"complexitychecks\": [\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"match \",\n      \"case \",\n      \"| \",\n      \"|| \",\n      \"& \",\n      \"&& \",\n      \"!= \",\n      \"!== \",\n      \"== \",\n      \"=== \"\n    ],\n    \"extensions\": [\"bsq\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Brainfuck\": {\n    \"complexitychecks\": [\"[\", \"]\", \"<\", \">\", \"+\", \"-\", \".\", \",\"],\n    \"extensions\": [\"bf\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Bru\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"bru\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"BuildStream\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"bst\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"C\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"c\", \"ec\", \"pgc\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"C Header\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"case \",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"h\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"C3\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"foreach \",\n      \"foreach(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"case \",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"defer \",\n      \"macro \"\n    ],\n    \"extensions\": [\"c3\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"],[\"<*\", \"*>\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"`\",\n        \"ignoreEscape\": true,\n        \"start\": \"`\"\n      }\n    ]\n  },\n  \"C Shell\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"csh\"],\n    \"filenames\": [\".cshrc\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [],\n    \"shebangs\": [\"csh\", \"tcsh\"]\n  },\n  \"C#\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"foreach \",\n      \"foreach(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cs\", \"csx\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"ignoreEscape\": true,\n        \"start\": \"@\\\"\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ],\n    \"shebangs\": [\"dotnet\"]\n  },\n  \"C++\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cc\", \"cpp\", \"cxx\", \"c++\", \"pcc\", \"ino\", \"ccm\", \"cppm\", \"cxxm\", \"c++m\", \"mxx\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"C++ Header\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"hh\", \"hpp\", \"hxx\", \"inl\", \"ipp\", \"ixx\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"CMake\": {\n    \"complexitychecks\": [\n      \"foreach \",\n      \"foreach(\",\n      \"if \",\n      \"if(\",\n      \"elseif \",\n      \"elseif(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"else(\",\n      \"OR \",\n      \"AND \",\n      \"EQUAL \",\n      \"STREQUAL \",\n      \"VERSION_EQUAL \",\n      \"PATH_EQUAL \"\n    ],\n    \"extensions\": [\"cmake\", \"cmakelists.txt\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"#[[\", \"]]\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"COBOL\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cob\", \"cbl\", \"ccp\", \"cobol\", \"cpy\"],\n    \"line_comment\": [\"*\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"CSS\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"css\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"CSV\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"csv\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Cabal\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cabal\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [[\"{-\", \"-}\"]],\n    \"quotes\": []\n  },\n  \"Cairo\": {\n    \"complexitychecks\": [\n      \"loop \",\n      \"if \",\n      \"if(\",\n      \"match \",\n      \"match(\",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cairo\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Cangjie\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cj\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"\\\"\\\"\\\"\"\n      },\n      {\n        \"end\": \"'''\",\n        \"start\": \"'''\"\n      }\n    ]\n  },\n  \"Cap'n Proto\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"capnp\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Cassius\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cassius\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Ceylon\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"ceylon\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Chapel\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"if \",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"do \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"chpl\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Circom\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"else(\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"circom\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": []\n  },\n  \"Clipper\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"do while \",\n      \"while \",\n      \"else \",\n      \"elseif \",\n      \"else(\",\n      \"switch \",\n      \"case \",\n      \"otherwise \",\n      \"begin sequence \",\n      \"end sequence \",\n      \"begin sequence(\",\n      \"try \",\n      \"catch \",\n      \"finally \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"prg\", \"ch\"],\n    \"line_comment\": [\"//\", \"&&\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Clojure\": {\n    \"complexitychecks\": [\n      \"(for \",\n      \"(when \",\n      \"(loop \",\n      \"(doseq \",\n      \"(cond \",\n      \"(if\",\n      \"(if-not \",\n      \"(and \",\n      \"(or \",\n      \"(not \",\n      \"(= \",\n      \"(not= \",\n      \"(recur \"\n    ],\n    \"extensions\": [\"clj\", \"cljc\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"ClojureScript\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cljs\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Closure Template\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \">= \",\n      \"<= \",\n      \"?: \",\n      \"? : \"\n    ],\n    \"extensions\": [\"soy\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/**\", \"*/\"], [\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"CloudFormation (JSON)\": {\n    \"complexitychecks\": [\n      \"!GetAtt\",\n      \"!Sub\",\n      \"!Select\",\n      \"!Equals\",\n      \"!If\",\n      \"DependsOn:\",\n      \"!Select\",\n      \"!Equals\",\n      \"!If\",\n      \"Fn::If\",\n      \"Fn::And\",\n      \"Fn::Equals\",\n      \"Fn::Not\",\n      \"Fn::Or\",\n      \"Fn::Base64\",\n      \"Fn::Cidr\",\n      \"Fn::FindInMap\",\n      \"Fn::GetAtt\",\n      \"Fn::GetAZs\",\n      \"Fn::ImportValue\",\n      \"Fn::Join\",\n      \"Fn::Select\",\n      \"Fn::Split\",\n      \"Fn::Sub\",\n      \"Fn::Transform\"\n    ],\n    \"extensions\": [\"json\"],\n    \"keywords\": [\n      \"\\\"AWSTemplateFormatVersion\\\"\",\n      \"AWS::\",\n      \"!GetAtt\",\n      \"!Sub\",\n      \"\\\"DependsOn\\\"\",\n      \"!Select\",\n      \"!Equals\",\n      \"!If\",\n      \"Fn::If\",\n      \"Fn::And\",\n      \"Fn::Equals\",\n      \"Fn::Not\",\n      \"Fn::Or\",\n      \"Fn::Base64\",\n      \"Fn::Cidr\",\n      \"Fn::FindInMap\",\n      \"Fn::GetAtt\",\n      \"Fn::GetAZs\",\n      \"Fn::ImportValue\",\n      \"Fn::Join\",\n      \"Fn::Select\",\n      \"Fn::Split\",\n      \"Fn::Sub\",\n      \"Fn::Transform\"\n    ],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"CloudFormation (YAML)\": {\n    \"complexitychecks\": [\n      \"!GetAtt\",\n      \"!Sub\",\n      \"!Select\",\n      \"!Equals\",\n      \"!If\",\n      \"DependsOn:\",\n      \"!Select\",\n      \"!Equals\",\n      \"!If\",\n      \"Fn::If\",\n      \"Fn::And\",\n      \"Fn::Equals\",\n      \"Fn::Not\",\n      \"Fn::Or\",\n      \"Fn::Base64\",\n      \"Fn::Cidr\",\n      \"Fn::FindInMap\",\n      \"Fn::GetAtt\",\n      \"Fn::GetAZs\",\n      \"Fn::ImportValue\",\n      \"Fn::Join\",\n      \"Fn::Select\",\n      \"Fn::Split\",\n      \"Fn::Sub\",\n      \"Fn::Transform\"\n    ],\n    \"extensions\": [\"yaml\", \"yml\"],\n    \"keywords\": [\n      \"Resources:\",\n      \"AWSTemplateFormatVersion:\",\n      \"Description:\",\n      \"AWS::\",\n      \"Properties:\",\n      \"Name:\",\n      \"Type:\",\n      \"!GetAtt\",\n      \"!Sub\",\n      \"Statement:\",\n      \"Ref:\",\n      \"DependsOn:\",\n      \"!Select\",\n      \"!Equals\",\n      \"!If\",\n      \"Fn::If\",\n      \"Fn::And\",\n      \"Fn::Equals\",\n      \"Fn::Not\",\n      \"Fn::Or\",\n      \"Fn::Base64\",\n      \"Fn::Cidr\",\n      \"Fn::FindInMap\",\n      \"Fn::GetAtt\",\n      \"Fn::GetAZs\",\n      \"Fn::ImportValue\",\n      \"Fn::Join\",\n      \"Fn::Select\",\n      \"Fn::Split\",\n      \"Fn::Sub\",\n      \"Fn::Transform\"\n    ],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"CodeQL\": {\n    \"complexitychecks\": [\n      \"and \",\n      \"or \",\n      \"implies \",\n      \"if \",\n      \"else \",\n      \"not \",\n      \"instanceof \",\n      \"in \",\n      \"exists(\",\n      \"forall( \",\n      \"avg(\",\n      \"concat(\",\n      \"count(\",\n      \"max(\",\n      \"min(\",\n      \"rank(\",\n      \"strictconcat(\",\n      \"strictcount(\",\n      \"strictsum(\",\n      \"sum(\"\n    ],\n    \"extensions\": [\"ql\", \"qll\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"CoffeeScript\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"coffee\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"###\", \"###\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Cogent\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cogent\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"ColdFusion\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cfm\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!---\", \"--->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"ColdFusion CFScript\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cfc\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Coq\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"v\"],\n    \"keywords\": [\n      \"Require\",\n      \"Hypothesis\",\n      \"Inductive\",\n      \"Remark\",\n      \"Lemma\",\n      \"Proof\",\n      \"Definition\",\n      \"Theorem\",\n      \"Class\",\n      \"Instance\",\n      \"Module\",\n      \"Context\",\n      \"Section\",\n      \"Notation\",\n      \"End\",\n      \"Fixpoint\",\n      \"From Coq\"\n    ],\n    \"line_comment\": [],\n    \"multi_line\": [[\"(*\", \"*)\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Creole\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"creole\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Crystal\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cr\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Cuda\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cu\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Cython\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"and \",\n      \"or \",\n      \"not \",\n      \"in \"\n    ],\n    \"extensions\": [\"pyx\", \"pxi\", \"pxd\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\\\\\\\"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'''\",\n        \"start\": \"'''\"\n      }\n    ]\n  },\n  \"D\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"d\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"], [\"/+\", \"+/\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ],\n    \"shebangs\": [\"rdmd\"]\n  },\n  \"D2\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"d2\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"DAML\": {\n    \"complexitychecks\": [\n      \"if \",\n      \"then \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"/= \",\n      \"== \",\n      \"case \",\n      \"do {\",\n      \"forall \"\n    ],\n    \"extensions\": [\"daml\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [[\"{-\", \"-}\"]],\n    \"quotes\": []\n  },\n  \"DM\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"||\",\n      \"&&\",\n      \"!=\",\n      \"<>\",\n      \"==\",\n      \"in \"\n    ],\n    \"extensions\": [\"dm\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"DOT\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"dot\", \"gv\"],\n    \"line_comment\": [\"//\", \"#\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": []\n  },\n  \"Dart\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"dart\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Device Tree\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"dts\", \"dtsi\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Dhall\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"dhall\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [[\"{-\", \"-}\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Docker ignore\": {\n    \"complexitychecks\": [],\n    \"extensions\": [],\n    \"filenames\": [\".dockerignore\"],\n    \"line_comment\": [\"#\", \"//\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Dockerfile\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"dockerfile\"],\n    \"filenames\": [\"dockerfile\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Document Type Definition\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"dtd\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Elixir\": {\n    \"complexitychecks\": [\n      \"case \",\n      \"cond \",\n      \"if \",\n      \"for \",\n      \"with \",\n      \"try \",\n      \"catch \",\n      \"rescue \",\n      \"else \",\n      \"and \",\n      \"or \",\n      \"not \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"|> \"\n    ],\n    \"extensions\": [\"ex\", \"exs\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"\\\"\\\"\\\"\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'''\",\n        \"start\": \"'''\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Elixir Template\": {\n    \"complexitychecks\": [\n      \"case \",\n      \"cond \",\n      \"if \",\n      \"for \",\n      \"with \",\n      \"try \",\n      \"catch \",\n      \"rescue \",\n      \"else \",\n      \"and \",\n      \"or \",\n      \"not \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"|> \",\n      \"<% \"\n    ],\n    \"extensions\": [\"eex\"],\n    \"line_comment\": [\n      \"#\"\n    ],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"\\\"\\\"\\\"\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'''\",\n        \"start\": \"'''\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Phoenix LiveView\": {\n    \"complexitychecks\": [\n      \"case \",\n      \"cond \",\n      \"if \",\n      \"for \",\n      \"with \",\n      \"try \",\n      \"catch \",\n      \"rescue \",\n      \"else \",\n      \"and \",\n      \"or \",\n      \"not \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"|> \",\n      \"<% \",\n      \"<. \"\n    ],\n    \"extensions\": [\"heex\", \"leex\"],\n    \"line_comment\": [\n      \"#\",\n      \"<!--\"\n    ],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\\\\\\\"\\\\\\\"\"\n      },\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'''\",\n        \"start\": \"'''\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Elm\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"case \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"elm\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [[\"{-\", \"-}\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Emacs Dev Env\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"ede\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Emacs Lisp\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"el\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"EmiT\": {\n    \"complexitychecks\": [\n      \"if \",\n      \"if(\",\n      \"warp \",\n      \"time \",\n      \"kills \",\n      \"collapse \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"emit\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Erlang\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"erl\", \"hrl\"],\n    \"line_comment\": [\"%\"],\n    \"multi_line\": [],\n    \"quotes\": [],\n    \"shebangs\": [\"escript\"]\n  },\n  \"Expect\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"exp\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Extensible Stylesheet Language Transformations\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"xslt\", \"xsl\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"F#\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"match \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"fs\", \"fsi\", \"fsx\", \"fsscript\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"(*\", \"*)\"]],\n    \"quotes\": []\n  },\n  \"F*\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"fst\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"(*\", \"*)\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"FIDL\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"fidl\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"FORTRAN Legacy\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"f\", \"for\", \"ftn\", \"f77\", \"pfo\"],\n    \"line_comment\": [\"c\", \"C\", \"!\", \"*\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"FSL\": {\n    \"complexitychecks\": [\"->\", \"<-\"],\n    \"extensions\": [\"fsl\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"FXML\": {\n    \"extensions\": [\"fxml\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Factor\": {\n    \"complexitychecks\": [\n      \"if\",\n      \"when\",\n      \"unless\",\n      \"if*\",\n      \"when*\",\n      \"unless*\",\n      \"?if\",\n      \"?\",\n      \"cond\",\n      \"case\",\n      \"cond>quot\",\n      \"case>quot\",\n      \"alist>quot\",\n      \"while\",\n      \"until\",\n      \"loop\",\n      \"0&&\",\n      \"1&&\",\n      \"2&&\",\n      \"3&&\",\n      \"n&&\",\n      \"&&\",\n      \"0||\",\n      \"1||\",\n      \"2||\",\n      \"3||\",\n      \"n||\",\n      \"||\",\n      \"and\",\n      \"or\",\n      \"xor\",\n      \"eq\",\n      \"=\",\n      \"smart-if\",\n      \"smart-if*\",\n      \"smart-when\",\n      \"smart-when*\",\n      \"smart-unless\",\n      \"smart-unless*\"\n    ],\n    \"extensions\": [\"factor\"],\n    \"line_comment\": [\"!\"],\n    \"multi_line\": [\n      [\"![[\", \"]]\"],\n      [\"![=[\", \"]=]\"],\n      [\"![==[\", \"]==]\"],\n      [\"![===[\", \"]===]\"],\n      [\"![====[\", \"]====]\"],\n      [\"![=====[\", \"]=====]\"],\n      [\"![======[\", \"]======]\"],\n      [\"/*\", \"*/\"],\n      [\"((\", \"))\"]\n    ],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \";\",\n        \"start\": \"STRING:\"\n      },\n      {\n        \"end\": \"]======]\",\n        \"start\": \"[======[\"\n      },\n      {\n        \"end\": \"]====]\",\n        \"start\": \"[=====[\"\n      },\n      {\n        \"end\": \"]====]\",\n        \"start\": \"[====[\"\n      },\n      {\n        \"end\": \"]===]\",\n        \"start\": \"[===[\"\n      },\n      {\n        \"end\": \"]==]\",\n        \"start\": \"[==[\"\n      },\n      {\n        \"end\": \"]=]\",\n        \"start\": \"[=[\"\n      },\n      {\n        \"end\": \"]]\",\n        \"start\": \"[[\"\n      }\n    ]\n  },\n  \"Fennel\": {\n    \"complexitychecks\": [\n      \"(for\",\n      \"(each\",\n      \"(if\",\n      \"(when\",\n      \"(while\",\n      \"(switch\",\n      \"(do\",\n      \"(..\",\n      \"(=\",\n      \"(and\",\n      \"(or\"\n    ],\n    \"extensions\": [\"fnl\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \",\"\n      }\n    ]\n  },\n  \"Fish\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"fish\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ],\n    \"shebangs\": [\"fish\"]\n  },\n  \"Flow9\": {\n    \"complexitychecks\": [\n      \"if \",\n      \"if(\",\n      \"else \",\n      \"else{\",\n      \"fori \",\n      \"fori(\",\n      \"switch \",\n      \"switch(\",\n      \"fold \",\n      \"fold(\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"|> \"\n    ],\n    \"extensions\": [\"flow\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Forth\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\n      \"4th\",\n      \"forth\",\n      \"fr\",\n      \"frt\",\n      \"fth\",\n      \"f83\",\n      \"fb\",\n      \"fpm\",\n      \"e4\",\n      \"rx\",\n      \"ft\"\n    ],\n    \"line_comment\": [\"\\\\\\\\\"],\n    \"multi_line\": [[\"( \", \")\"]],\n    \"quotes\": []\n  },\n  \"Fortran Modern\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"f03\", \"f08\", \"f90\", \"f95\"],\n    \"line_comment\": [\"!\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      }\n    ]\n  },\n  \"Fragment Shader File\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"fsh\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Freemarker Template\": {\n    \"complexitychecks\": [\n      \"<#list \",\n      \"<#assign \",\n      \"<#if \",\n      \"<#elseif \",\n      \"<#else>\",\n      \"<#else> \",\n      \"<#switch  \",\n      \"<#case \",\n      \"<#default>\",\n      \"<#default> \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"ftl\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<#--\", \"-->\"]],\n    \"quotes\": []\n  },\n  \"Futhark\": {\n    \"complexitychecks\": [\n      \"if \",\n      \"else \",\n      \"then \",\n      \"for \",\n      \"loop \",\n      \"while \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \">= \",\n      \"<= \"\n    ],\n    \"extensions\": [\"fut\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"GDScript\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"gd\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"\\\"\\\"\\\"\"\n      }\n    ]\n  },\n  \"GLSL\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"vert\", \"tesc\", \"tese\", \"geom\", \"frag\", \"comp\", \"glsl\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"GN\": {\n    \"complexitychecks\": [\n      \"if(\",\n      \"if (\",\n      \"else if(\",\n      \"else if (\",\n      \"else(\",\n      \"else (\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"gn\", \"gni\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Game Maker Language\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"repeat \",\n      \"repeat(\",\n      \"|| \",\n      \"or \",\n      \"&& \",\n      \"and \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"gml\"],\n    \"line_comment\": [\"//\", \"///\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Game Maker Project\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"yyp\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Gemfile\": {\n    \"complexitychecks\": [],\n    \"extensions\": [],\n    \"filenames\": [\"gemfile\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Gherkin Specification\": {\n    \"complexitychecks\": [\"given\", \"when\", \"then\", \"and\"],\n    \"extensions\": [\"feature\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Gleam\": {\n    \"complexitychecks\": [\"fn \", \"case \", \"-> \", \"if \"],\n    \"extensions\": [\"gleam\"],\n    \"line_comment\": [\"//\", \"///\", \"////\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Go\": {\n    \"complexitychecks\": [\n      \"go \",\n      \"for \",\n      \"for(\",\n      \"for{\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"switch{\",\n      \"select \",\n      \"select{\",\n      \"else \",\n      \"else{\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"go\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"`\",\n        \"ignoreEscape\": true,\n        \"start\": \"`\"\n      }\n    ]\n  },\n  \"Go+\": {\n    \"complexitychecks\": [\n      \"go \",\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"select \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"?:\"\n    ],\n    \"extensions\": [\"gop\"],\n    \"line_comment\": [\"//\", \"#\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"`\",\n        \"ignoreEscape\": true,\n        \"start\": \"`\"\n      }\n    ],\n    \"shebangs\": [\"gop\"]\n  },\n  \"Go Template\": {\n    \"complexitychecks\": [\n      \"{{if \",\n      \"{{ if \",\n      \"{{else\",\n      \"{{ else\",\n      \"{{range \",\n      \"{{ range \",\n      \"{{with\",\n      \"{{ with\"\n    ],\n    \"extensions\": [\"tmpl\", \"gohtml\", \"gotxt\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"{{/*\", \"*/}}\"]],\n    \"quotes\": []\n  },\n  \"Cypher\": {\n    \"complexitychecks\": [\n      \"MATCH\",\n      \"OPTIONAL MATCH\",\n      \"WHERE\",\n      \"UNION\",\n      \"CALL\",\n      \"UNWIND\",\n      \"STARTS WITH\",\n      \"ENDS WITH\",\n      \"CONTAINS\",\n      \"shortestPath\",\n      \"allShortestPaths\",\n      \"-[*..]->\"\n    ],\n    \"extensions\": [\"cypher\", \"cql\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Gremlin\": {\n    \"complexitychecks\": [\n      \".where(\",\n      \".union(\",\n      \".repeat(\",\n      \".emit(\",\n      \".and(\",\n      \".or(\",\n      \".not(\",\n      \".as(\",\n      \".by(\"\n    ],\n    \"extensions\": [\"gremlin\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Godot Scene\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"tscn\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Gradle\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"gradle\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"GraphQL\": {\n    \"complexitychecks\": [\n      \"type \",\n      \"input \",\n      \"query \",\n      \"mutation \",\n      \"subscription \",\n      \"directive \",\n      \"scalar \",\n      \"enum \",\n      \"interface \",\n      \"union \",\n      \"fragment \"\n    ],\n    \"extensions\": [\"graphql\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"\\\"\\\"\\\"\", \"\\\"\\\"\\\"\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"\\\"\\\"\\\"\"\n      }\n    ]\n  },\n  \"Groovy\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"groovy\", \"grt\", \"gtpl\", \"gvy\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Gwion\": {\n    \"complexitychecks\": [\n      \"fun \",\n      \"while(\",\n      \"while (\",\n      \"repeat(\",\n      \"repeat (\",\n      \"if (\",\n      \"if(\"\n    ],\n    \"extensions\": [\"gw\"],\n    \"line_comment\": [\"#!\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"HCL\": {\n    \"complexitychecks\": [\n      \"for_each \",\n      \"for \",\n      \"count \",\n      \"coalesce(\",\n      \"== \",\n      \"!= \",\n      \"> \",\n      \"< \",\n      \"&& \",\n      \"|| \"\n    ],\n    \"extensions\": [\"hcl\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"HAML\": {\n    \"extensions\": [\"haml\"],\n    \"line_comment\": [\"-#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"HEEx\": {\n    \"complexitychecks\": [\n      \"case \",\n      \"cond \",\n      \"if \",\n      \"for \",\n      \"with \",\n      \"try \",\n      \"catch \",\n      \"rescue \",\n      \"else \",\n      \"and \",\n      \"or \",\n      \"not \",\n      \"!= \",\n      \"== \",\n      \"|| \",\n      \"&& \",\n      \"|> \"\n    ],\n    \"extensions\": [\"heex\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<%!--\", \"--%>\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"HEX\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"hex\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"HTML\": {\n    \"extensions\": [\"html\", \"htm\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Hamlet\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"hamlet\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Handlebars\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"hbs\", \"handlebars\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"], [\"{{!\", \"}}\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Happy\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"y\", \"ly\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Hare\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"if \",\n      \"else \",\n      \"match \",\n      \"switch \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"ha\"],\n    \"line_comment\": [\"//\"],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"`\",\n        \"start\": \"`\"\n      }\n    ]\n  },\n  \"Haskell\": {\n    \"complexitychecks\": [\n      \"if \",\n      \"then \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"/= \",\n      \"== \",\n      \"case \",\n      \"otherwise \",\n      \"wildcard \",\n      \"do {\"\n    ],\n    \"extensions\": [\"hs\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [[\"{-\", \"-}\"]],\n    \"quotes\": []\n  },\n  \"Haxe\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"hx\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"IDL\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"idl\", \"webidl\", \"widl\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"INI\": {\n    \"extensions\": [\"ini\"],\n    \"line_comment\": [\"#\", \";\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Idris\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"idr\", \"lidr\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [[\"{-\", \"-}\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\\\\\\\"\\\\\\\"\"\n      }\n    ]\n  },\n  \"Intel HEX\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"ihex\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Isabelle\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"thy\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [\n      [\"{*\", \"*}\"],\n      [\"(*\", \"*)\"],\n      [\"‹\", \"›\"],\n      [\"\\\\\\\\<open>\", \"\\\\\\\\<close>\"]\n    ],\n    \"quotes\": [\n      {\n        \"end\": \"''\",\n        \"start\": \"''\"\n      }\n    ]\n  },\n  \"JAI\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"jai\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"JCL\": {\n  \"complexitychecks\": [\n    \" IF\",                    \n    \" THEN\",                  \n    \" ELSE\",                  \n    \" PROC=\",                 \n    \" PGM=\",                  \n    \" DD \",                   \n    \" EXEC \",                 \n    \" JOB \",                  \n    \" COND=\",                 \n    \" INCLUDE\",               \n    \" PEND\"                     \n  ],\n  \"extensions\": [\"jcl\", \"jcls\"],\n  \"line_comment\": [\"//*\"],\n  \"quotes\": [\n    {\n      \"start\": \"'\",\n      \"end\": \"'\"\n    }\n  ]\n },\n  \"W.I.S.E. Jobfile\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"fgmj\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"JSON\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"json\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"JSON5\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"json5\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"JSONC\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"jsonc\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"JSONL\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"jsonl\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"JSX\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"jsx\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Jade\": {\n    \"complexitychecks\": [\"if \", \"else if \", \"unless \"],\n    \"extensions\": [\"jade\"],\n    \"line_comment\": [\"//-\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Janet\": {\n    \"complexitychecks\": [\n      \"(if \",\n      \"(for \",\n      \"(for \",\n      \"(cond \",\n      \"(switch \",\n      \"(when \",\n      \"(while \",\n      \"(loop \",\n      \"(case \"\n    ],\n    \"extensions\": [\"janet\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"nestedmultiline\": false,\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"``\",\n        \"start\": \"``\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"@\\\"\"\n      }\n    ]\n  },\n  \"Java\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"else{\",\n      \"try \",\n      \"try{\",\n      \"catch \",\n      \"catch(\",\n      \"finally \",\n      \"finally{\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"java\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"JavaScript\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"?.\",\n      \"?? \",\n      \"??= \"\n    ],\n    \"extensions\": [\"js\", \"cjs\", \"mjs\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"`\",\n        \"start\": \"`\"\n      }\n    ],\n    \"shebangs\": [\"node\"]\n  },\n  \"JavaServer Pages\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"jsp\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Jenkins Buildfile\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"jenkinsfile\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Jinja\": {\n    \"complexitychecks\": [\n      \"{% for \",\n      \"{%- for \",\n      \"{% if \",\n      \"{%- if \",\n      \"{% else \",\n      \"{%- else \",\n      \"{% elif \",\n      \"{% macro \",\n      \"{%- macro \",\n      \"{% call \",\n      \"{%- call \",\n      \"{% filter \",\n      \"{%- filter \",\n      \"{% set \",\n      \"{% include \",\n      \"{% from \",\n      \"{% extends \",\n      \"{% with \"\n    ],\n    \"extensions\": [\"jinja\", \"j2\", \"jinja2\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"{#\", \"#}\"]],\n    \"quotes\": []\n  },\n  \"Jsonnet\": {\n    \"complexitychecks\": [\"for\", \"if\", \"else\", \"||\", \"&&\", \"!=\", \"==\"],\n    \"extensions\": [\"jsonnet\", \"libsonnet\"],\n    \"line_comment\": [\"#\", \"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"|||\",\n        \"start\": \"|||\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"@\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"@'\"\n      }\n    ],\n    \"shebangs\": [\"jsonnet\"]\n  },\n  \"Julia\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"while \",\n      \"else \",\n      \"elseif \",\n      \"elseif(\",\n      \"try \",\n      \"catch \",\n      \"finally \",\n      \"|| \",\n      \"&& \"\n    ],\n    \"extensions\": [\"jl\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"#=\", \"=#\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\\\\\\\"\\\\\\\"\"\n      }\n    ]\n  },\n  \"Julius\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"julius\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Jupyter\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"ipynb\", \"jpynb\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Just\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"justfile\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      }\n    ]\n  },\n  \"K\": {\n    \"complexitychecks\": [\"'\", \"/\", \"\\\\\", \"':\", \"/:\", \"\\\\:\", \"|\", \"&\", \"!\", \"=\"],\n    \"extensions\": [\"k\"],\n    \"line_comment\": [\"/\"],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Korn Shell\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"ksh\"],\n    \"filenames\": [\".kshrc\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ],\n    \"shebangs\": [\"ksh\"]\n  },\n  \"Kotlin\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"when \",\n      \"when(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"else{\",\n      \"try \",\n      \"try{\",\n      \"catch \",\n      \"catch(\",\n      \"finally \",\n      \"finally{\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"kt\", \"kts\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Koto\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"while \",\n      \"until \",\n      \"continue \",\n      \"break \",\n      \"loop \",\n      \"if \",\n      \"switch \",\n      \"match \",\n      \"then\",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"and \",\n      \"or \",\n      \"not \"\n    ],\n    \"extensions\": [\"koto\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"#-\", \"-#\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"LALRPOP\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"match \"\n    ],\n    \"extensions\": [\"lalrpop\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"#\\\\\\\"\",\n        \"start\": \"\\\\\\\"#\"\n      },\n      {\n        \"end\": \"r##\\\\\\\"\",\n        \"start\": \"\\\\\\\"##\"\n      },\n      {\n        \"end\": \"r#\\\\\\\"\",\n        \"start\": \"\\\\\\\"#\"\n      }\n    ]\n  },\n  \"LD Script\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"lds\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"LESS\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"less\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"LEX\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"l\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": []\n  },\n  \"LLVM IR\": {\n    \"complexitychecks\": [\n      \"llvm.loop\",\n      \"br \",\n      \"switch \",\n      \"indirectbr \",\n      \"invoke \",\n      \"callbr \",\n      \"resume \",\n      \"catchswitch \",\n      \"catchret \",\n      \"cleanupret \",\n      \"shl \",\n      \"lshr \",\n      \"ashr \",\n      \"and \",\n      \"or \",\n      \"xor \"\n    ],\n    \"extensions\": [\"ll\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ],\n    \"shebangs\": []\n  },\n  \"LOLCODE\": {\n    \"complexitychecks\": [\n      \"AWSUM THX \",\n      \"O NOES \",\n      \"PLZ OPEN FILE \",\n      \"IM IN YR \",\n      \"O RLY?\",\n      \"O RLY? \",\n      \"WTF?\",\n      \"WTF? \"\n    ],\n    \"extensions\": [\"lol\", \"lols\"],\n    \"line_comment\": [\"BTW\"],\n    \"multi_line\": [[\"OBTW\", \"TLDR\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"LaTeX\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"tex\"],\n    \"line_comment\": [\"%\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Lean\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"lean\", \"hlean\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [[\"/-\", \"-/\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": []\n  },\n  \"License\": {\n    \"complexitychecks\": [],\n    \"extensions\": [],\n    \"filenames\": [\n      \"license\",\n      \"licence\",\n      \"copying\",\n      \"copying3\",\n      \"unlicense\",\n      \"unlicence\",\n      \"license-apache\",\n      \"licence-apache\",\n      \"license-mit\",\n      \"licence-mit\",\n      \"copyright\"\n    ],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Lisp\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"lisp\", \"lsp\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [[\"#|\", \"|#\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [],\n    \"shebangs\": [\"sbcl\"]\n  },\n  \"LiveScript\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"case \",\n      \"while \",\n      \"when \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"!== \",\n      \"xor \",\n      \"and \",\n      \"or \",\n      \"|> \",\n      \"<< \",\n      \"<<< \",\n      \"<<<< \",\n      \">> \",\n      \"== \"\n    ],\n    \"extensions\": [\"ls\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Lua\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"else(\",\n      \"elseif \",\n      \"elseif(\",\n      \"until \",\n      \"until(\",\n      \"or \",\n      \"and \",\n      \"~= \",\n      \"== \"\n    ],\n    \"extensions\": [\"lua\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [\n      [\"--[[\", \"]]\"],\n      [\"--[=[\", \"]=]\"],\n      [\"--[==[\", \"]==]\"],\n      [\"--[===[\", \"]===]\"],\n      [\"--[====[\", \"]====]\"],\n      [\"--[=====[\", \"]=====]\"]\n    ],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"[[\",\n        \"start\": \"]]\",\n        \"ignoreEscape\": true\n      }\n    ],\n    \"shebangs\": [\"lua\"]\n  },\n  \"Luau\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"else(\",\n      \"elseif \",\n      \"elseif(\",\n      \"until \",\n      \"until(\",\n      \"or \",\n      \"and \",\n      \"~= \",\n      \"== \"\n    ],\n    \"extensions\": [\"luau\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [\n      [\"--[[\", \"]]\"],\n      [\"--[=[\", \"]=]\"],\n      [\"--[==[\", \"]==]\"],\n      [\"--[===[\", \"]===]\"],\n      [\"--[====[\", \"]====]\"],\n      [\"--[=====[\", \"]=====]\"]\n    ],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"`\",\n        \"start\": \"`\"\n      },\n      {\n        \"end\": \"[[\",\n        \"start\": \"]]\",\n        \"ignoreEscape\": true\n      }\n    ],\n    \"shebangs\": [\"luau\"]\n  },\n  \"Lucius\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"lucius\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Luna\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"luna\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"MATLAB\": {\n    \"complexitychecks\": [\n      \"if \",\n      \"elseif \",\n      \"case \",\n      \"otherwise \",\n      \"try\",\n      \"for \",\n      \"while \"\n    ],\n    \"extensions\": [\"m\"],\n    \"keywords\": [\n      \"eye(\",\n      \"zeros(\",\n      \"ones(\",\n      \"transpose(\",\n      \"meshgrid(\",\n      \"mod(\",\n      \"classdef\",\n      \"function\",\n      \"disp(\",\n      \"sin(\",\n      \"tan(\",\n      \"cos(\",\n      \"plot\",\n      \"sqrt(\",\n      \"deblank(\",\n      \"findstr(\",\n      \"strrep(\",\n      \"strcmp(\",\n      \"display(\",\n      \"strcat(\",\n      \"iscellstr(\",\n      \"strfind(\",\n      \"%\",\n      \"fprintf(\"\n    ],\n    \"line_comment\": [\"%\"],\n    \"multi_line\": [[\"%{\", \"}%\"]],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"MDX\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"mdx\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"MLIR\": {\n    \"complexitychecks\": [\n      \"affine.for \",\n      \"affine.if \",\n      \"else \",\n      \"else{\",\n      \"cf.switch \",\n      \"cf.br \",\n      \"cf.cond_br\",\n      \"scf.for \",\n      \"scf.forall \",\n      \"scf.forall{\",\n      \"scf.forall.in_parallel \",\n      \"scf.forall.in_parallel{\",\n      \"scf.if \",\n      \"scf.index_switch \",\n      \"scf.while \",\n      \"arith.cmpi eq,\",\n      \"arith.cmpi ne,\",\n      \"index.cmp eq,\",\n      \"index.cmp ne,\"\n    ],\n    \"extensions\": [\"mlir\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ],\n    \"shebangs\": []\n  },\n  \"MQL Header\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"mqh\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"MQL4\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"mq4\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"MQL5\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"mq5\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"MSBuild\": {\n    \"complexitychecks\": [\"Condition\"],\n    \"extensions\": [\n      \"csproj\",\n      \"vbproj\",\n      \"fsproj\",\n      \"vcproj\",\n      \"vcxproj\",\n      \"vcxproj.filters\",\n      \"ilproj\",\n      \"myapp\",\n      \"props\",\n      \"rdlc\",\n      \"resx\",\n      \"settings\",\n      \"sln\",\n      \"targets\"\n    ],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"MUMPS\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"mps\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Macromedia eXtensible Markup Language\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"mxml\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Madlang\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"mad\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"{#\", \"#}\"]],\n    \"quotes\": []\n  },\n  \"Makefile\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"makefile\", \"mak\", \"mk\", \"bp\"],\n    \"filenames\": [\"makefile\", \"gnumakefile\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Mako\": {\n    \"complexitychecks\": [\n      \"% for \",\n      \"% if \",\n      \"% else \",\n      \"% elif \",\n      \"<% include \",\n      \"<%def \",\n      \"<%page \",\n      \"<%def \",\n      \"<%block \",\n      \"<%namespace \",\n      \"<%inherit \"\n    ],\n    \"extensions\": [\"mako\", \"mao\"],\n    \"line_comment\": [\"##\"],\n    \"multi_line\": [[\"<%doc>\", \"</%doc>\"]],\n    \"quotes\": []\n  },\n  \"Markdown\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"md\", \"markdown\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Max\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"maxpat\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Metal\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"metal\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n\n  \"Meson\": {\n    \"complexitychecks\": [\n      \"foreach \",\n      \"if \",\n      \"elif \",\n      \"unless \",\n      \"and \",\n      \"or \",\n      \"else \"\n    ],\n    \"extensions\": [\"meson.build\", \"meson_options.txt\"],\n    \"line_comment\": [\"#\"],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"'''\",\n        \"start\": \"'''\"\n      }\n    ]\n  },\n  \"Modula3\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"m3\", \"mg\", \"ig\", \"i3\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"(*\", \"*)\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Module-Definition\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"def\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Mog\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"if \",\n      \"if(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"match \",\n      \"or \",\n      \"and \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"catch \",\n      \"catch(\",\n      \"try \"\n    ],\n    \"extensions\": [\"mog\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Mojo\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"while \",\n      \"while(\",\n      \"if \",\n      \"if(\",\n      \"elif \",\n      \"elif(\",\n      \"else \",\n      \"else:\",\n      \"try \",\n      \"try:\",\n      \"except \",\n      \"except:\",\n      \"finally \",\n      \"finally:\",\n      \"with \",\n      \"with (\",\n      \"and \",\n      \"and(\",\n      \"or \",\n      \"or(\",\n      \"== \",\n      \"!= \"\n    ],\n    \"extensions\": [\"mojo\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"ignoreEscape\": true,\n        \"end\": \"\\\"\",\n        \"start\": \"r\\\"\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"t\\\"\"\n      },\n      {\n        \"ignoreEscape\": true,\n        \"end\": \"\\\"\",\n        \"start\": \"rt\\\"\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"\\\"\\\"\\\"\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"'''\",\n        \"start\": \"'''\"\n      },\n      {\n        \"docString\": true,\n        \"ignoreEscape\": true,\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"r\\\"\\\"\\\"\"\n      },\n      {\n        \"docString\": true,\n        \"ignoreEscape\": true,\n        \"end\": \"'''\",\n        \"start\": \"r'''\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"t\\\"\\\"\\\"\"\n      }\n    ]\n  },\n  \"Monkey C\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"mc\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Moonbit\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"if \",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"loop \",\n      \"guard \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"match \"\n    ],\n    \"extensions\": [\"mbt\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Mustache\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"mustache\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"{{!\", \"}}\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Nature\": {\n    \"complexitychecks\": [\n      \"go \",\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"catch \",\n      \"catch(\",\n      \"else \",\n      \"else{\",\n      \"match \",\n      \"match(\",\n      \"match{\",\n      \"select \",\n      \"select{\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"n\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"`\",\n        \"ignoreEscape\": true,\n        \"start\": \"`\"\n      }\n    ]\n  },\n  \"Nial\": {\n    \"complexitychecks\": [\n      \"case \",\n      \"for \",\n      \"if \",\n      \"repeat \",\n      \"while \",\n      \"or \",\n      \"and \",\n      \"= \",\n      \"equal \",\n      \"~= \",\n      \"unequal \"\n    ],\n    \"extensions\": [\"ndf\"],\n    \"line_comment\": [\"%\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Nim\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"nim\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\\\\\\\"\\\\\\\"\"\n      }\n    ]\n  },\n  \"Nix\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"nix\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Nushell\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"do { \",\n      \"each {\",\n      \"if \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"nu\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ],\n    \"shebangs\": [\"nu\"]\n  },\n  \"OCaml\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"ml\", \"mli\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"(*\", \"*)\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Objective C\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"m\"],\n    \"keywords\": [\n      \"#include\",\n      \"printf\",\n      \"stdio.h\",\n      \".h\",\n      \"@import\",\n      \"@interface\",\n      \"@property\",\n      \"@implementation\",\n      \"NSArray\",\n      \"#pragma\",\n      \"static\",\n      \"const\",\n      \"atomic\",\n      \"@end\",\n      \"//\"\n    ],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Objective C++\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"mm\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Odin\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"when \",\n      \"switch \",\n      \"defer \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"odin\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Opalang\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"opa\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"OpenQASM\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"else(\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"qasm\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"OpenTofu\": {\n    \"complexitychecks\": [\n      \"count\",\n      \"for\",\n      \"for_each\",\n      \"if\",\n      \": \",\n      \"? \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"> \",\n      \">= \",\n      \"< \",\n      \"<= \",\n      \"== \"\n    ],\n    \"extensions\": [\"tofu\"],\n    \"line_comment\": [\"#\", \"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": []\n  },\n  \"Org\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"org\"],\n    \"line_comment\": [\"# \"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Oz\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"oz\"],\n    \"line_comment\": [\"%\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"PHP\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"php\"],\n    \"line_comment\": [\"#\", \"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ],\n    \"shebangs\": [\"php\", \"php5\"]\n  },\n  \"PKGBUILD\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"pkgbuild\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"PL/SQL\": {\n    \"complexitychecks\": [\n      \"and \",\n      \"and(\",\n      \"else \",\n      \"else(\",\n      \"elseif \",\n      \"elseif(\",\n      \"if \",\n      \"if(\",\n      \"loop \",\n      \"not \",\n      \"not(\",\n      \"or \",\n      \"or(\",\n      \"<> \",\n      \"<>(\",\n      \"= \",\n      \"=(\"\n    ],\n    \"extensions\": [\"fnc\", \"pkb\", \"pks\", \"prc\", \"trg\", \"vw\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"PRQL\": {\n    \"complexitychecks\": [\"case \", \"&& \", \"|| \", \"!= \", \"== \", \"~= \"],\n    \"extensions\": [\"prql\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"\\\"\\\"\\\"\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"'''\",\n        \"start\": \"'''\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"r\\\"\\\"\\\"\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"'''\",\n        \"start\": \"r'''\"\n      }\n    ]\n  },\n  \"PSL Assertion\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"psl\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Pascal\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"AND \",\n      \"OR \",\n      \"IF \",\n      \"ELSE \"\n    ],\n    \"extensions\": [\"pas\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"{\", \"}\"], [\"(*\", \"*)\"]],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Patch\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"patch\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Perl\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"foreach \",\n      \"foreach(\",\n      \"if \",\n      \"if(\",\n      \"elsif \",\n      \"elsif(\",\n      \"while \",\n      \"while(\",\n      \"until \",\n      \"until(\",\n      \"unless \",\n      \"unless(\",\n      \"given \",\n      \"given(\",\n      \"when \",\n      \"when(\",\n      \"catch \",\n      \"catch(\",\n      \"eq \",\n      \"ne \",\n      \"else \",\n      \"and \",\n      \"or \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"pl\", \"plx\", \"pm\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"=pod\", \"=cut\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ],\n    \"shebangs\": [\"perl\", \"perl5\"]\n  },\n  \"Picat\": {\n    \"complexitychecks\": [\n      \"do \",\n      \"foreach \",\n      \"foreach(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"pi\"],\n    \"line_comment\": [\"%\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Pkl\": {\n    \"complexitychecks\": [\n      \"function \",\n      \"?? \",\n      \"?.\",\n      \"ifNonNull(\",\n      \"if \",\n      \" else \",\n      \".map\",\n      \"for \",\n      \"when \",\n      \"...\"\n    ],\n    \"extensions\": [\"pkl\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"#\\\"\",\n        \"start\": \"\\\"#\"\n      },\n      {\n        \"end\": \"##\\\"\",\n        \"start\": \"\\\"##\"\n      },\n      {\n        \"end\": \"\\\"\\\"\\\"\",\n        \"ignoreEscape\": true,\n        \"start\": \"\\\"\\\"\\\"\"\n      }\n    ]\n  },\n  \"Plain Text\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"text\", \"txt\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Polly\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"polly\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"POML\": {\n    \"extensions\": [\"poml\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Pony\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"if \",\n      \"match \",\n      \"repeat\",\n      \"while \",\n      \"else \",\n      \"elseif \",\n      \"| \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"pony\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\\\\\\\"\\\\\\\"\"\n      }\n    ]\n  },\n  \"PostScript\": {\n    \"complexitychecks\": [\n      \"if\",\n      \"ifelse\",\n      \"for\",\n      \"repeat\",\n      \"loop\",\n      \"forall\",\n      \"pathforall\",\n      \"eq\",\n      \"ne\",\n      \"not\",\n      \"and\",\n      \"or\"\n    ],\n    \"extensions\": [\"ps\"],\n    \"line_comment\": [\"%\"],\n    \"quotes\": [\n      {\n        \"end\": \")\",\n        \"start\": \"(\"\n      },\n      {\n        \"end\": \">\",\n        \"start\": \"<\"\n      },\n      {\n        \"end\": \"~>\",\n        \"start\": \"<~\"\n      }\n    ]\n  },\n  \"Powershell\": {\n    \"complexitychecks\": [\n      \"while \",\n      \"while(\",\n      \"until \",\n      \"until(\",\n      \"for \",\n      \"for(\",\n      \"foreach \",\n      \"foreach(\",\n      \"if \",\n      \"elseif \",\n      \"else \",\n      \"switch\",\n      \"switch(\",\n      \"-gt\",\n      \"-lt\",\n      \"-eq\",\n      \"-ne\",\n      \"-ge\",\n      \"-le\",\n      \"-in\",\n      \"-notin\",\n      \"-contains\",\n      \"-notcontains\"\n    ],\n    \"extensions\": [\"ps1\", \"psm1\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"<#\", \"#>\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Processing\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"pde\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Prolog\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"p\", \"pro\"],\n    \"line_comment\": [\"%\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Properties File\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"properties\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Protocol Buffers\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"proto\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": []\n  },\n  \"Puppet\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"pp\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"=begin\", \"=end\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"PureScript\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"purs\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [[\"{-\", \"-}\"]],\n    \"quotes\": []\n  },\n  \"Python\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"while \",\n      \"while(\",\n      \"if \",\n      \"if(\",\n      \"elif \",\n      \"elif(\",\n      \"else \",\n      \"else:\",\n      \"match \",\n      \"match(\",\n      \"try \",\n      \"try:\",\n      \"except \",\n      \"except:\",\n      \"finally \",\n      \"finally:\",\n      \"with \",\n      \"with (\",\n      \"and \",\n      \"and(\",\n      \"or \",\n      \"or(\"\n    ],\n    \"extensions\": [\"py\", \"pyw\", \"pyi\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"ignoreEscape\": true,\n        \"end\": \"'\",\n        \"start\": \"r'\"\n      },\n      {\n        \"ignoreEscape\": true,\n        \"end\": \"\\\"\",\n        \"start\": \"r\\\"\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"\\\"\\\"\\\"\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"'''\",\n        \"start\": \"'''\"\n      },\n      {\n        \"docString\": true,\n        \"ignoreEscape\": true,\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"r\\\"\\\"\\\"\"\n      },\n      {\n        \"docString\": true,\n        \"ignoreEscape\": true,\n        \"end\": \"'''\",\n        \"start\": \"r'''\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"f\\\"\\\"\\\"\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"'''\",\n        \"start\": \"f'''\"\n      }\n    ],\n    \"shebangs\": [\"python\", \"python2\", \"python3\"]\n  },\n  \"Q#\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"repeat \",\n      \"repeat{\",\n      \"until (\",\n      \"until(\",\n      \"if \",\n      \"if(\",\n      \"elif \",\n      \"elif{\",\n      \"else \",\n      \"else{\",\n      \"||| \",\n      \"&&& \",\n      \"<<<\",\n      \">>>\",\n      \"^^^\",\n      \"~~~\",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"qs\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"QCL\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"qcl\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"QML\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"qml\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"R\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"r\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [],\n    \"shebangs\": [\"Rscript\"]\n  },\n  \"Racket\": {\n    \"complexitychecks\": [\n      \"(if\",\n      \"(cond\",\n      \"[else\",\n      \"(and\",\n      \"(or\",\n      \"(for\",\n      \"#:when\",\n      \"#:unless\",\n      \"#:break\",\n      \"#:final\",\n      \"(do\",\n      \"(when\",\n      \"(unless\",\n      \"(shared\",\n      \"(case\"\n    ],\n    \"extensions\": [\"rkt\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [[\"|#\", \"#|\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ],\n    \"shebangs\": [\"racket\"]\n  },\n  \"Rakefile\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [],\n    \"filenames\": [\"rake\", \"rakefile\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"=begin\", \"=end\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Raku\": {\n    \"complexitychecks\": [\n      \"== \",\n      \"≡ \",\n      \"!= \",\n      \"≠ \",\n      \"!== \",\n      \"≢ \",\n      \"< \",\n      \"⊂ \",\n      \"!< \",\n      \"⊄ \",\n      \"<= \",\n      \"≤ \",\n      \"⊆ \",\n      \"!<= \",\n      \"⊈ \",\n      \"> \",\n      \"⊃ \",\n      \"!> \",\n      \"⊅ \",\n      \">= \",\n      \"≥ \",\n      \"⊇ \",\n      \"!>= \",\n      \"⊉ \",\n      \"=~= \",\n      \"≅ \",\n      \"=== \",\n      \"eq \",\n      \"!eq \",\n      \"eqv \",\n      \"ne \",\n      \"gt \",\n      \"ge \",\n      \"lt \",\n      \"le \",\n      \"=:=\",\n      \"CATCH \",\n      \"CONTROL \",\n      \"DOC \",\n      \"NEXT \",\n      \"and \",\n      \"default \",\n      \"do {\",\n      \"else \",\n      \"elsif \",\n      \"emit \",\n      \"for \",\n      \"gather \",\n      \"given \",\n      \"if \",\n      \"last \",\n      \"loop (\",\n      \"next \",\n      \"once \",\n      \"or \",\n      \"orwith \",\n      \"react {\",\n      \"redo \",\n      \"repeat \",\n      \"start {\",\n      \"supply \",\n      \"unless \",\n      \"until \",\n      \"when \",\n      \"whenever \",\n      \"while \",\n      \"with \",\n      \"without \"\n    ],\n    \"extensions\": [\"raku\", \"rakumod\", \"rakutest\", \"rakudoc\", \"t\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [\n      [\"=begin\", \"=end\"],\n      [\"#`(\", \")\"],\n      [\"#`[\", \"]\"],\n      [\"#`{\", \"}\"],\n      [\"#`｢\", \"｣\"]\n    ],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"“\",\n        \"start\": \"„\"\n      },\n      {\n        \"end\": \"»\",\n        \"start\": \"«\"\n      },\n      {\n        \"end\": \">>\",\n        \"start\": \"<<\"\n      },\n      {\n        \"end\": \"”\",\n        \"start\": \"“\"\n      },\n      {\n        \"end\": \"‘\",\n        \"start\": \"’\"\n      },\n      {\n        \"end\": \"｣\",\n        \"start\": \"｢\"\n      }\n    ],\n    \"shebangs\": [\"raku\"]\n  },\n  \"Razor\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cshtml\", \"razor\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"], [\"@*\", \"*@\"]],\n    \"quotes\": []\n  },\n  \"Rebol\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"forever \",\n      \"foreach \",\n      \"forall \",\n      \"forskip \",\n      \"loop \",\n      \"repeat \",\n      \"if \",\n      \"if(\",\n      \"either \",\n      \"either(\",\n      \"switch \",\n      \"switch(\",\n      \"switch/default \",\n      \"switch/default(\",\n      \"case \",\n      \"case(\",\n      \"case/all \",\n      \"case/all(\",\n      \"while \",\n      \"while(\",\n      \"until \",\n      \"until(\",\n      \"or \",\n      \"and \",\n      \"<> \",\n      \"= \"\n    ],\n    \"extensions\": [\"reb\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [[\"{\", \"}\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"ReScript\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"=== \"\n    ],\n    \"extensions\": [\"res\", \"resi\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"ReStructuredText\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"rst\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"ReasonML\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"re\", \"rei\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Redscript\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"@if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"func \",\n      \"-> \"\n    ],\n    \"extensions\": [\"reds\"],\n    \"line_comment\": [\"//\", \"///\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Report Definition Language\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"rdl\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Rich Text Format\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"rtf\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Robot Framework\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"robot\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Ruby\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"rb\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"=begin\", \"=end\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ],\n    \"shebangs\": [\"ruby\"]\n  },\n  \"Ruby HTML\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"rhtml\", \"erb\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Rust\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"while \",\n      \"while(\",\n      \"loop \",\n      \"loop{\",\n      \"else \",\n      \"else{\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"match \",\n      \"match(\"\n    ],\n    \"extensions\": [\"rs\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"SAS\": {\n    \"complexitychecks\": [\n      \"do\",\n      \"%do\",\n      \"if\",\n      \"%if\",\n      \"else\",\n      \"%else\",\n      \"case\",\n      \"or\",\n      \"and\",\n      \"^=\",\n      \"¬=\",\n      \"~=\",\n      \"ne\",\n      \"eq\"\n    ],\n    \"extensions\": [\"sas\"],\n    \"line_comment\": [\"*\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"SKILL\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"il\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"SNOBOL\": {\n    \"complexitychecks\": [\":(\", \":s(\", \":f(\", \"eq \", \"ne \"],\n    \"extensions\": [\"sno\"],\n    \"line_comment\": [\"*\"],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"SPDX\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"spdx\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"SPL\": {\n    \"complexitychecks\": [\n      \"construct\",\n      \"foreach\",\n      \"map\",\n      \"while\",\n      \"if\",\n      \"include\",\n      \"catch\",\n      \"and\",\n      \"or\",\n      \"not\",\n      \"call\",\n      \"<|\",\n      \"<{\",\n      \"dup\",\n      \"swap\"\n    ],\n    \"extensions\": [\"spl\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"\\\"\", \"\\\";\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \" \",\n        \"start\": \"^\"\n      },\n      {\n        \"end\": \">\",\n        \"start\": \"^\"\n      },\n      {\n        \"end\": \":\",\n        \"start\": \"^\"\n      }\n    ],\n    \"shebangs\": [\"spl\"]\n  },\n  \"SQL\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"sql\", \"dml\", \"ddl\", \"dql\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"SRecode Template\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"srt\"],\n    \"line_comment\": [\";;\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"SVG\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"svg\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Sass\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"sass\", \"scss\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Scala\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \">= \",\n      \"> \",\n      \"<= \",\n      \"< \"\n    ],\n    \"extensions\": [\"sc\", \"scala\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Scallop\": {\n    \"complexitychecks\": [\n      \"rel \",\n      \"count(\",\n      \"sum(\",\n      \"prod(\",\n      \"min(\",\n      \"max(\",\n      \"exists(\",\n      \"forall(\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \">= \",\n      \"> \",\n      \"<= \",\n      \"< \"\n    ],\n    \"extensions\": [\"scl\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Scheme\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"scm\", \"ss\"],\n    \"line_comment\": [\";\"],\n    \"multi_line\": [[\"#|\", \"|#\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [],\n    \"shebangs\": []\n  },\n  \"Scons\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"csig\", \"sconstruct\", \"sconscript\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\\\\\\\"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'''\",\n        \"start\": \"'''\"\n      }\n    ]\n  },\n  \"Seed7\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"if \",\n      \"elsif \",\n      \"else\",\n      \"else \",\n      \"case \",\n      \"while \",\n      \"until \",\n      \"catch \",\n      \"or \",\n      \"and \",\n      \"<> \",\n      \"= \"\n    ],\n    \"extensions\": [\"sd7\", \"s7i\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"(*\", \"*)\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Shell\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"sh\"],\n    \"filenames\": [\".tcshrc\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ],\n    \"shebangs\": [\"sh\"]\n  },\n  \"Sieve\": {\n    \"complexitychecks\": [\n      \"if\",\n      \"if \",\n      \"elsif\",\n      \"elsif \",\n      \"allof\",\n      \"allof \",\n      \"anyof\",\n      \"anyof \",\n      \"allof(\",\n      \"anyof(\"\n    ],\n    \"extensions\": [\"sieve\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Slang\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"slang\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Slint\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"if \",\n      \"if(\",\n      \"states \",\n      \"states[\",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"slint\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Smalltalk\": {\n    \"complexitychecks\": [\n      \"bitAnd \",\n      \"bitOr \",\n      \"bitXor \",\n      \"bitInvert \",\n      \"bitShift \",\n      \"bitAt \",\n      \"highbit \",\n      \"allMask \",\n      \"anyMask \",\n      \"noMask \",\n      \"ifTrue \",\n      \"ifFalse \",\n      \"switch \",\n      \"whileTrue \",\n      \"whileFalse \",\n      \"to: \"\n    ],\n    \"extensions\": [\"cs.st\", \"pck.st\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"\\\"\", \"\\\"\"]],\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Smarty Template\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"include \"\n    ],\n    \"extensions\": [\"tpl\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"{*\", \"*}\"]],\n    \"quotes\": []\n  },\n  \"Snakemake\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"while \",\n      \"while(\",\n      \"if \",\n      \"if(\",\n      \"elif \",\n      \"elif(\",\n      \"else \",\n      \"else:\",\n      \"match \",\n      \"match(\",\n      \"try \",\n      \"try:\",\n      \"except \",\n      \"except(\",\n      \"finally \",\n      \"finally:\",\n      \"with \",\n      \"with (\",\n      \"and \",\n      \"and(\",\n      \"or \",\n      \"or(\"\n    ],\n    \"extensions\": [\"smk\", \"rules\"],\n    \"filenames\": [\"snakefile\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"\\\"\\\"\\\"\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"'''\",\n        \"start\": \"'''\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"r\\\"\\\"\\\"\"\n      },\n      {\n        \"docString\": true,\n        \"end\": \"'''\",\n        \"start\": \"r'''\"\n      }\n    ]\n  },\n  \"Softbridge Basic\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"elseif \",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"sbl\"],\n    \"line_comment\": [\"'\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      }\n    ]\n  },\n  \"Solidity\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \",\n      \"assembly \",\n      \"assembly{\",\n      \"unchecked \",\n      \"unchecked{\"\n    ],\n    \"extensions\": [\"sol\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Specman e\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"e\"],\n    \"line_comment\": [\"--\", \"//\"],\n    \"multi_line\": [[\"'>\", \"<'\"]],\n    \"quotes\": []\n  },\n  \"Spice Netlist\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"ckt\"],\n    \"line_comment\": [\"*\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Stan\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"stan\"],\n    \"line_comment\": [\"#\", \"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Standard ML (SML)\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"sml\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"(*\", \"*)\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Stata\": {\n    \"complexitychecks\": [\n      \"foreach\",\n      \"forvalues\",\n      \"if\",\n      \"else\",\n      \"while\",\n      \"switch\",\n      \"|\",\n      \"&\",\n      \"!=\",\n      \"==\"\n    ],\n    \"extensions\": [\"do\", \"ado\"],\n    \"line_comment\": [\"//\", \"*\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"\\\"'\",\n        \"start\": \"`\\\"\"\n      }\n    ]\n  },\n  \"Stylus\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"if \",\n      \"unless \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"styl\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Svelte\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"svelte\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"<!--\", \"-->\"], [\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Swift\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"catch \",\n      \"guard \",\n      \"?\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"swift\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Swig\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"i\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"SystemVerilog\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"| \",\n      \"& \",\n      \"!= \",\n      \"!== \",\n      \"== \",\n      \"foreach \",\n      \"foreach(\",\n      \"case \",\n      \"case(\",\n      \"casex \",\n      \"casex(\",\n      \"casez \",\n      \"casez(\",\n      \"casexz \",\n      \"casexz(\",\n      \"fork \",\n      \" ? \",\n      \"inside\",\n      \"with\",\n      \"event \"\n    ],\n    \"extensions\": [\"sv\", \"svh\"],\n    \"keywords\": [\"endmodule\", \"posedge\", \"edge\", \"always\", \"wire\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Systemd\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\n      \"automount\",\n      \"device\",\n      \"link\",\n      \"mount\",\n      \"path\",\n      \"scope\",\n      \"service\",\n      \"slice\",\n      \"socket\",\n      \"swap\",\n      \"target\",\n      \"timer\"\n    ],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"TCL\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"tcl\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ],\n    \"shebangs\": [\"tcl\"]\n  },\n  \"TL\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"tl\"],\n    \"line_comment\": [\"//\", \"///\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": []\n  },\n  \"TOML\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"toml\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\\\\\\\"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'''\",\n        \"start\": \"'''\"\n      }\n    ]\n  },\n  \"TTCN-3\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"from \",\n      \"if \",\n      \"if(\",\n      \"select \",\n      \"case \",\n      \"while \",\n      \"do \",\n      \"goto \",\n      \"stop \",\n      \"break \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"ttcn\", \"ttcn3\", \"ttcnpp\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Tact\": {\n    \"complexitychecks\": [\n      \"if \",\n      \"if(\",\n      \"else \",\n      \"try \",\n      \"catch \",\n      \"catch(\",\n      \"repeat \",\n      \"repeat(\",\n      \"while \",\n      \"while(\",\n      \"do \",\n      \"until \",\n      \"until(\",\n      \"foreach \",\n      \"foreach(\",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"tact\"],\n    \"line_comment\": [\"//\", \"///\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"TaskPaper\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"taskpaper\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"TeX\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"tex\", \"sty\"],\n    \"line_comment\": [\"%\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Teal\": {\n    \"complexitychecks\": [\n      \"loop:\",\n      \"retsub\",\n      \"callsub \",\n      \"&&\",\n      \"==\",\n      \"||\",\n      \"<=\",\n      \">=\"\n    ],\n    \"extensions\": [\"teal\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Templ\": {\n    \"complexitychecks\": [\n      \"if \",\n      \" else \",\n      \"switch \",\n      \"case \",\n      \"default:\",\n      \"for \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"templ\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"`\",\n        \"ignoreEscape\": true,\n        \"start\": \"`\"\n      }\n    ]\n  },\n  \"TemplateToolkit\": {\n    \"complexitychecks\": [\n      \"[% BLOCK\",\n      \"[% FILTER\",\n      \"[% FOR\",\n      \"[% FOREACH\",\n      \"[% IF\",\n      \"[% INCLUDE\",\n      \"[% MACRO\",\n      \"[% PROCESS\",\n      \"[% SWITCH\",\n      \"[% UNLESS\",\n      \"[% WRAPPER\"\n    ],\n    \"extensions\": [\"tt\", \"tt2\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"[%#\", \"%]\"]],\n    \"quotes\": []\n  },\n  \"Tera\": {\n    \"complexitychecks\": [\n      \"{% include \",\n      \"{% macro \",\n      \"{% block \",\n      \"{% extends \",\n      \"{% for \",\n      \"{% set \",\n      \"{% if \",\n      \"{% elif \",\n      \"{% else \"\n    ],\n    \"extensions\": [\"tera\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"], [\"{#\", \"#}\"]],\n    \"quotes\": []\n  },\n  \"Terraform\": {\n    \"complexitychecks\": [\n      \"count\",\n      \"for\",\n      \"for_each\",\n      \"if\",\n      \": \",\n      \"? \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"> \",\n      \">= \",\n      \"< \",\n      \"<= \",\n      \"== \"\n    ],\n    \"extensions\": [\"tf\", \"tfvars\", \"tf.json\"],\n    \"line_comment\": [\"#\", \"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": []\n  },\n  \"Textile\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"textile\"],\n    \"line_comment\": [\"###. \"],\n    \"multi_line\": [[\"###.. \", \"p. \"]],\n    \"quotes\": []\n  },\n  \"Thrift\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"thrift\"],\n    \"line_comment\": [\"//\", \"#\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"TOON\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"toon\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Treetop\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"treetop\", \"tt\"],\n    \"line_comment\": [\"#\"],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Twig Template\": {\n    \"complexitychecks\": [\"{% for \", \"{% if \", \"{% else \", \"{% elseif \"],\n    \"extensions\": [\"twig\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"TypeScript\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"!== \",\n      \"== \",\n      \"=== \",\n      \"case \",\n      \"case(\",\n      \"?.\",\n      \"?? \",\n      \"??= \"\n    ],\n    \"extensions\": [\"ts\", \"tsx\", \"cts\", \"mts\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"`\",\n        \"start\": \"`\"\n      }\n    ]\n  },\n  \"TypeScript Typings\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"!== \",\n      \"== \",\n      \"=== \",\n      \"case \",\n      \"case(\",\n      \"?.\",\n      \"?? \",\n      \"??= \"\n    ],\n    \"extensions\": [\"d.ts\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"`\",\n        \"start\": \"`\"\n      }\n    ]\n  },\n  \"TypeSpec\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"tsp\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"\\\"\\\"\\\"\",\n        \"ignoreEscape\": true,\n        \"start\": \"\\\"\\\"\\\"\"\n      }\n    ]\n  },\n  \"Typst\": {\n    \"extensions\": [\"typ\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      }\n    ]\n  },\n  \"Unreal Script\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"uc\", \"uci\", \"upkg\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Up\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"if \",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"try \",\n      \"func \",\n      \"up \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"up\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"`\",\n        \"start\": \"`\"\n      }\n    ]\n  },\n  \"Ur/Web\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"ur\", \"urs\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"(*\", \"*)\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Ur/Web Project\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"urp\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"V\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"v\"],\n    \"keywords\": [\n      \"break\",\n      \"const \",\n      \"continue\",\n      \"defer\",\n      \"else \",\n      \"enum\",\n      \"fn \",\n      \"goto\",\n      \"import \",\n      \"in \",\n      \"interface\",\n      \"match\",\n      \"mut\",\n      \"println\",\n      \"pub\",\n      \"return\",\n      \"struct \",\n      \"type \"\n    ],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"`\",\n        \"start\": \"`\"\n      }\n    ]\n  },\n  \"VHDL\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"vhd\", \"vhdl\"],\n    \"keywords\": [\n      \"abs\",\n      \"access\",\n      \"after\",\n      \"alias\",\n      \"all\",\n      \"and\",\n      \"architecture\",\n      \"array\",\n      \"assert\",\n      \"attribute\",\n      \"begin\",\n      \"block\",\n      \"body\",\n      \"buffer\",\n      \"bus\",\n      \"case\",\n      \"component\",\n      \"configuration\",\n      \"constant\",\n      \"disconnect\",\n      \"downto\",\n      \"else\",\n      \"elsif\",\n      \"end\",\n      \"entity\",\n      \"exit\",\n      \"file\",\n      \"for\",\n      \"function\",\n      \"generate\",\n      \"generic\",\n      \"group\",\n      \"guarded\",\n      \"if\",\n      \"impure\",\n      \"in\",\n      \"inertial\",\n      \"inout\",\n      \"is\",\n      \"label\",\n      \"library\",\n      \"linkage\",\n      \"literal\",\n      \"loop\",\n      \"map\",\n      \"mod\",\n      \"nand\",\n      \"new\",\n      \"next\",\n      \"nor\",\n      \"not\",\n      \"null\",\n      \"of\",\n      \"on\",\n      \"open\",\n      \"or\",\n      \"others\",\n      \"out\",\n      \"package\",\n      \"port\",\n      \"postponed\",\n      \"procedure\",\n      \"process\",\n      \"pure\",\n      \"range\",\n      \"record\",\n      \"register\",\n      \"reject\",\n      \"rem\",\n      \"report\",\n      \"return\",\n      \"rol\",\n      \"ror\",\n      \"select\",\n      \"severity\",\n      \"shared\",\n      \"signal\",\n      \"sla\",\n      \"sll\",\n      \"sra\",\n      \"srl\",\n      \"subtype\",\n      \"then\",\n      \"to\",\n      \"transport\",\n      \"type\",\n      \"unaffected\",\n      \"units\",\n      \"until\",\n      \"use\",\n      \"variable\",\n      \"wait\",\n      \"when\",\n      \"while\",\n      \"with\",\n      \"xnor\",\n      \"xor\"\n    ],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Vala\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"foreach \",\n      \"foreach(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"switch(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"vala\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"@\\\"\"\n      },\n      {\n        \"ignoreEscape\": true,\n        \"end\": \"\\\"\\\"\\\"\",\n        \"start\": \"\\\"\\\"\\\"\"\n      }\n    ]\n  },\n  \"Varnish Configuration\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"vcl\"],\n    \"line_comment\": [\"#\", \"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": []\n  },\n  \"Verilog\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"vg\", \"vh\", \"v\"],\n    \"keywords\": [\n      \"module\",\n      \"endmodule\",\n      \"timescale\",\n      \"input\",\n      \"output\",\n      \"reg\",\n      \"wire\",\n      \"posedge\",\n      \"negedge\",\n      \"always\",\n      \"begin\",\n      \"switch\",\n      \"case\",\n      \"end\",\n      \"endcase\",\n      \"else\",\n      \"localparam\",\n      \"initial\",\n      \"signed\",\n      \"assign\",\n      \"generate\",\n      \"genvar\"\n    ],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Verilog Args File\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"irunargs\", \"xrunargs\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Vertex Shader File\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"vsh\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Vim Script\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"vim\", \"vimrc\", \"gvimrc\"],\n    \"filenames\": [\"_vimrc\", \".vimrc\", \"_gvimrc\", \".gvimrc\", \"vimrc\", \"gvimrc\"],\n    \"line_comment\": [\"\\\"\", \"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Visual Basic\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"elseif \",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"vb\"],\n    \"line_comment\": [\"'\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      }\n    ]\n  },\n  \"Visual Basic for Applications\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"elseif \",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"cls\"],\n    \"line_comment\": [\"'\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      }\n    ]\n  },\n  \"Vue\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"vue\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"<!--\", \"-->\"], [\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ]\n  },\n  \"Web Services Description Language\": {\n    \"extensions\": [\"wsdl\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"WebGPU Shading Language\": {\n    \"complexitychecks\": [\n      \"for (\",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"wgsl\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]]\n  },\n  \"Windows Resource-Definition Script\": {\n    \"extensions\": [\"rc\"],\n    \"keywords\": [\n      \"#include\",\n      \"#define\",\n      \"RC_INVOKED\",\n      \"VERSIONINFO\",\n      \"FILEVERSION\",\n      \"PRODUCTVERSION\",\n      \"FILEOS\",\n      \"FILETYPE\",\n      \"BLOCK\",\n      \"VALUE\",\n      \"StringFileInfo\",\n      \"VarFileInfo\"\n    ],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Wolfram\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"nb\", \"wl\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"(*\", \"*)\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"Wren\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"wren\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"XAML\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"xaml\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"XHTML\": {\n    \"extensions\": [\"xhtml\", \"xhtm\", \"xht\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"XML\": {\n    \"extensions\": [\"xml\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"XML Schema\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"xsd\"],\n    \"line_comment\": [],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Xcode Config\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"xcconfig\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"XMake\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"while \",\n      \"while(\",\n      \"else \",\n      \"else(\",\n      \"elseif \",\n      \"elseif(\",\n      \"until \",\n      \"until(\",\n      \"or \",\n      \"and \",\n      \"~= \",\n      \"== \"\n    ],\n    \"extensions\": [],\n    \"filenames\": [\"xmake.lua\", \"xpack.lua\"],\n    \"line_comment\": [\"--\"],\n    \"multi_line\": [\n      [\"--[[\", \"]]\"],\n      [\"--[=[\", \"]=]\"],\n      [\"--[==[\", \"]==]\"],\n      [\"--[===[\", \"]===]\"],\n      [\"--[====[\", \"]====]\"],\n      [\"--[=====[\", \"]=====]\"]\n    ],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"[[\",\n        \"start\": \"]]\",\n        \"ignoreEscape\": true\n      }\n    ]\n  },\n  \"Xtend\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"xtend\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"YAML\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"yaml\", \"yml\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"RAML\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"raml\", \"rml\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"Yarn\": {\n    \"complexitychecks\": [\n      \"<<if \",\n      \"<<elseif \",\n      \"<<else \",\n      \" eq \",\n      \" == \",\n      \" neq \",\n      \" ! \",\n      \" gt \",\n      \" > \",\n      \" lt \",\n      \" < \",\n      \" lte \",\n      \" <= \",\n      \" gte \",\n      \" >= \",\n      \" xor \",\n      \" ^ \",\n      \" and \",\n      \" && \",\n      \" || \",\n      \" or \"\n    ],\n    \"extensions\": [\"yarn\"],\n    \"line_comment\": [],\n    \"quotes\": []\n  },\n  \"Zig\": {\n    \"complexitychecks\": [\n      \"catch \",\n      \"while \",\n      \"for \",\n      \"if \",\n      \"else \",\n      \"errdefer \",\n      \"try \",\n      \"switch \",\n      \"orelse \",\n      \"||\",\n      \"&&\",\n      \"!=\",\n      \"==\"\n    ],\n    \"extensions\": [\"zig\"],\n    \"line_comment\": [\"//\"],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"\\n\",\n        \"start\": \"\\\\\\\\\"\n      }\n    ]\n  },\n  \"ZoKrates\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"if \",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"zok\"],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]]\n  },\n  \"Zsh\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"|| \",\n      \"&& \",\n      \"!= \",\n      \"== \"\n    ],\n    \"extensions\": [\"zsh\", \"zshenv\", \"zlogin\", \"zlogout\", \"zprofile\", \"zshrc\"],\n    \"filenames\": [\".zshenv\", \".zlogin\", \".zlogout\", \".zprofile\", \".zshrc\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\\\\\"\",\n        \"start\": \"\\\\\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      }\n    ],\n    \"shebangs\": [\"zsh\"]\n  },\n  \"bait\": {\n    \"complexitychecks\": [\"for \", \"if \", \"else \", \" or \", \" and \", \"!= \", \"== \"],\n    \"extensions\": [\"bt\"],\n    \"keywords\": [\n      \"and\",\n      \"break\",\n      \"const \",\n      \"continue\",\n      \"else \",\n      \"fun \",\n      \"import \",\n      \"not \",\n      \"or \",\n      \"package \",\n      \"return\",\n      \"struct \"\n    ],\n    \"line_comment\": [\"//\"],\n    \"multi_line\": [[\"/*\", \"*/\"]],\n    \"nestedmultiline\": true,\n    \"quotes\": [\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"`\",\n        \"start\": \"`\"\n      }\n    ]\n  },\n  \"gitignore\": {\n    \"complexitychecks\": [],\n    \"extensions\": [],\n    \"filenames\": [\".gitignore\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"hoon\": {\n    \"complexitychecks\": [\n      \"%+  turn\",\n      \"(turn \",\n      \"%+  roll\",\n      \"(roll \",\n      \"%+  reel\",\n      \"(reel \",\n      \"|.  \",\n      \"|.(\",\n      \"|-  \",\n      \"|-(\",\n      \"|?  \",\n      \"|?(\",\n      \"?|  \",\n      \"?|(\",\n      \"|(\",\n      \"?-  \",\n      \"?-(\",\n      \"?:  \",\n      \"?:(\",\n      \"?.  \",\n      \"?.(\",\n      \"?^  \",\n      \"?^(\",\n      \"?<  \",\n      \"?<(\",\n      \"?>  \",\n      \"?>(\",\n      \"?+  \",\n      \"?+(\",\n      \"?&  \",\n      \"?&(\",\n      \"&(\",\n      \"?@  \",\n      \"?@(\",\n      \"?~  \",\n      \"?~(\",\n      \"?=  \",\n      \"?=(\",\n      \".=  \",\n      \"=(\",\n      \"!=(\"\n    ],\n    \"extensions\": [\"hoon\"],\n    \"line_comment\": [\"::\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      },\n      {\n        \"end\": \"'\",\n        \"start\": \"'\"\n      },\n      {\n        \"end\": \"```\",\n        \"start\": \"```\"\n      }\n    ]\n  },\n  \"ignore\": {\n    \"complexitychecks\": [],\n    \"extensions\": [],\n    \"filenames\": [\".ignore\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"jq\": {\n    \"complexitychecks\": [\n      \".\",\n      \"if \",\n      \"elif \",\n      \"else \",\n      \"!= \",\n      \"== \",\n      \">= \",\n      \"<= \",\n      \"< \",\n      \"> \",\n      \"and \",\n      \"or \",\n      \"not \",\n      \"// \",\n      \"try \",\n      \"break \"\n    ],\n    \"extensions\": [\"jq\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"m4\": {\n    \"complexitychecks\": [],\n    \"extensions\": [\"m4\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": []\n  },\n  \"nuspec\": {\n    \"extensions\": [\"nuspec\"],\n    \"line_comment\": [],\n    \"multi_line\": [[\"<!--\", \"-->\"]],\n    \"quotes\": [\n      {\n        \"end\": \"\\\"\",\n        \"start\": \"\\\"\"\n      }\n    ]\n  },\n  \"sed\": {\n    \"complexitychecks\": [\n      \"for \",\n      \"for(\",\n      \"if \",\n      \"if(\",\n      \"switch \",\n      \"while \",\n      \"else \",\n      \"and \",\n      \"or \",\n      \"not \",\n      \"in \"\n    ],\n    \"extensions\": [\"sed\"],\n    \"line_comment\": [\"#\"],\n    \"multi_line\": [],\n    \"quotes\": [],\n    \"shebangs\": [\"sed\"]\n  },\n  \"wenyan\": {\n    \"complexitychecks\": [\n      \"若\",\n      \"若非\",\n      \"等於\",\n      \"不等於\",\n      \"不大於\",\n      \"不小於\",\n      \"大於\",\n      \"小於\",\n      \"凡\",\n      \"為是\",\n      \"恆為是\",\n      \"中之\",\n      \"遍\"\n    ],\n    \"extensions\": [\"wy\"],\n    \"line_comment\": [\"批曰\", \"注曰\", \"疏曰\"],\n    \"multi_line\": [],\n    \"quotes\": [\n      {\n        \"end\": \"「「\",\n        \"start\": \"」」\"\n      }\n    ]\n  }\n}\n"
  },
  {
    "path": "main.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage main\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"runtime\"\n\t\"strings\"\n\n\t\"github.com/boyter/scc/v3/processor\"\n\t\"github.com/spf13/cobra\"\n\t\"github.com/spf13/pflag\"\n)\n\nfunc printShellCompletion(cmd *cobra.Command, command string) error {\n\tswitch command {\n\tcase \"bash\":\n\t\treturn cmd.GenBashCompletionV2(os.Stdout, true)\n\tcase \"zsh\":\n\t\treturn cmd.GenZshCompletion(os.Stdout)\n\tcase \"fish\":\n\t\treturn cmd.GenFishCompletion(os.Stdout, true)\n\tcase \"powershell\":\n\t\treturn cmd.GenPowerShellCompletion(os.Stdout)\n\tdefault:\n\t\treturn errors.New(\"Unknown shell: \" + command)\n\t}\n}\n\nfunc printFlagSuggestion(flagSet *pflag.FlagSet, unknownFlag string) {\n\tflags := processor.GetMostSimilarFlags(flagSet, unknownFlag)\n\tif len(flags) == 0 {\n\t\treturn\n\t}\n\n\tif len(flags) > 1 {\n\t\t_, _ = fmt.Fprintf(os.Stderr, \"The most similar flags of --%s are:\\n\", unknownFlag)\n\t} else {\n\t\t_, _ = fmt.Fprintf(os.Stderr, \"The most similar flag of --%s is:\\n\", unknownFlag)\n\t}\n\n\tfor _, flag := range flags {\n\t\t_, _ = fmt.Fprintf(os.Stderr, \"\\t--%s\\n\", flag)\n\t}\n}\n\n//go:generate go run scripts/include.go\nfunc main() {\n\t// f, _ := os.Create(\"scc.pprof\")\n\t// pprof.StartCPUProfile(f)\n\t// defer pprof.StopCPUProfile()\n\n\t// Handle --mcp flag before cobra to avoid interfering with stdio\n\tfor _, arg := range os.Args[1:] {\n\t\tif arg == \"--mcp\" {\n\t\t\tstartMCPServer()\n\t\t\treturn\n\t\t}\n\t}\n\n\tif len(os.Args) == 2 && strings.HasPrefix(os.Args[1], \"@\") {\n\t\t// handle \"scc @flags.txt\" syntax\n\t\tfilepath := strings.TrimPrefix(os.Args[1], \"@\")\n\t\tb, err := os.ReadFile(filepath)\n\t\tif err != nil {\n\t\t\tfmt.Printf(\"Error reading flags from a file: %s\\n\", err)\n\t\t\tos.Exit(1)\n\t\t}\n\n\t\targs := strings.Split(string(b), \"\\n\")\n\t\tnewArgs := make([]string, 0, len(args))\n\t\tfor _, x := range args {\n\t\t\tnewArgs = append(newArgs, strings.TrimSpace(x))\n\t\t}\n\t\tos.Args = append([]string{os.Args[0]}, newArgs...)\n\t}\n\n\trootCmd := &cobra.Command{\n\t\tUse:     \"scc [flags] [files or directories]\",\n\t\tShort:   \"scc [files or directories]\",\n\t\tLong:    fmt.Sprintf(\"Sloc, Cloc and Code. Count lines of code in a directory with complexity estimation.\\nVersion %s\\nBen Boyter <ben@boyter.org> + Contributors\", processor.Version),\n\t\tVersion: processor.Version,\n\t\tRun: func(cmd *cobra.Command, args []string) {\n\t\t\tprocessor.DirFilePaths = args\n\t\t\tprocessor.ConfigureGc()\n\t\t\tprocessor.ConfigureLazy(true)\n\n\t\t\t// Detect if LOCOMO price/tps flags were explicitly set\n\t\t\tprocessor.LocomoInputPriceSet = cmd.PersistentFlags().Changed(\"locomo-input-price\")\n\t\t\tprocessor.LocomoOutputPriceSet = cmd.PersistentFlags().Changed(\"locomo-output-price\")\n\t\t\tprocessor.LocomoTPSSet = cmd.PersistentFlags().Changed(\"locomo-tps\")\n\t\t\tprocessor.LocomoCyclesSet = cmd.PersistentFlags().Changed(\"locomo-cycles\")\n\n\t\t\tprocessor.Process()\n\t\t},\n\t}\n\n\tflags := rootCmd.PersistentFlags()\n\n\tflags.BoolVarP(\n\t\t&processor.MaxMean,\n\t\t\"character\",\n\t\t\"m\",\n\t\tfalse,\n\t\t\"calculate max and mean characters per line\",\n\t)\n\tflags.BoolVarP(\n\t\t&processor.Percent,\n\t\t\"percent\",\n\t\t\"p\",\n\t\tfalse,\n\t\t\"include percentage values in output\",\n\t)\n\tflags.BoolVarP(\n\t\t&processor.UlocMode,\n\t\t\"uloc\",\n\t\t\"u\",\n\t\tfalse,\n\t\t\"calculate the number of unique lines of code (ULOC) for the project\",\n\t)\n\tflags.BoolVarP(\n\t\t&processor.Dryness,\n\t\t\"dryness\",\n\t\t\"a\",\n\t\tfalse,\n\t\t\"calculate the DRYness of the project (implies --uloc)\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.DisableCheckBinary,\n\t\t\"binary\",\n\t\tfalse,\n\t\t\"disable binary file detection\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.Files,\n\t\t\"by-file\",\n\t\tfalse,\n\t\t\"display output for every file\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.Ci,\n\t\t\"ci\",\n\t\tfalse,\n\t\t\"enable CI output settings where stdout is ASCII\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.Ignore,\n\t\t\"no-ignore\",\n\t\tfalse,\n\t\t\"disables .ignore file logic\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.SccIgnore,\n\t\t\"no-scc-ignore\",\n\t\tfalse,\n\t\t\"disables .sccignore file logic\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.GitIgnore,\n\t\t\"no-gitignore\",\n\t\tfalse,\n\t\t\"disables .gitignore file logic\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.GitModuleIgnore,\n\t\t\"no-gitmodule\",\n\t\tfalse,\n\t\t\"disables .gitmodules file logic\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.CountIgnore,\n\t\t\"count-ignore\",\n\t\tfalse,\n\t\t\"set to allow .gitignore and .ignore files to be counted\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.Debug,\n\t\t\"debug\",\n\t\tfalse,\n\t\t\"enable debug output\",\n\t)\n\tflags.StringSliceVar(\n\t\t&processor.PathDenyList,\n\t\t\"exclude-dir\",\n\t\t[]string{\".git\", \".hg\", \".svn\"},\n\t\t\"directories to exclude\",\n\t)\n\tflags.IntVar(\n\t\t&processor.GcFileCount,\n\t\t\"file-gc-count\",\n\t\t10000,\n\t\t\"number of files to parse before turning the GC on\",\n\t)\n\tflags.IntVar(\n\t\t&processor.FileListQueueSize,\n\t\t\"file-list-queue-size\",\n\t\truntime.NumCPU(),\n\t\t\"the size of the queue of files found and ready to be read into memory\",\n\t)\n\tflags.IntVar(\n\t\t&processor.FileProcessJobWorkers,\n\t\t\"file-process-job-workers\",\n\t\truntime.NumCPU(),\n\t\t\"number of goroutine workers that process files collecting stats\",\n\t)\n\tflags.IntVar(\n\t\t&processor.FileSummaryJobQueueSize,\n\t\t\"file-summary-job-queue-size\",\n\t\truntime.NumCPU(),\n\t\t\"the size of the queue used to hold processed file statistics before formatting\",\n\t)\n\tflags.IntVar(\n\t\t&processor.DirectoryWalkerJobWorkers,\n\t\t\"directory-walker-job-workers\",\n\t\t8,\n\t\t\"controls the maximum number of workers which will walk the directory tree\",\n\t)\n\tflags.StringVarP(\n\t\t&processor.Format,\n\t\t\"format\",\n\t\t\"f\",\n\t\t\"tabular\",\n\t\t\"set output format [tabular, wide, json, json2, csv, csv-stream, cloc-yaml, html, html-table, sql, sql-insert, openmetrics]\",\n\t)\n\tflags.StringSliceVarP(\n\t\t&processor.AllowListExtensions,\n\t\t\"include-ext\",\n\t\t\"i\",\n\t\t[]string{},\n\t\t\"limit to file extensions [comma separated list: e.g. go,java,js]\",\n\t)\n\tflags.StringSliceVarP(\n\t\t&processor.ExcludeListExtensions,\n\t\t\"exclude-ext\",\n\t\t\"x\",\n\t\t[]string{},\n\t\t\"ignore file extensions (overrides include-ext) [comma separated list: e.g. go,java,js]\",\n\t)\n\tflags.StringSliceVarP(\n\t\t&processor.ExcludeFilename,\n\t\t\"exclude-file\",\n\t\t\"n\",\n\t\t[]string{\"package-lock.json\", \"Cargo.lock\", \"yarn.lock\", \"pubspec.lock\", \"Podfile.lock\", \"pnpm-lock.yaml\"},\n\t\t\"ignore files with matching names\",\n\t)\n\tflags.BoolVarP(\n\t\t&processor.Languages,\n\t\t\"languages\",\n\t\t\"l\",\n\t\tfalse,\n\t\t\"print supported languages and extensions\",\n\t)\n\tflags.Int64Var(\n\t\t&processor.AverageWage,\n\t\t\"avg-wage\",\n\t\t56286,\n\t\t\"average wage value used for basic COCOMO calculation\",\n\t)\n\tflags.Float64Var(\n\t\t&processor.Overhead,\n\t\t\"overhead\",\n\t\t2.4,\n\t\t\"set the overhead multiplier for corporate overhead (facilities, equipment, accounting, etc.)\",\n\t)\n\tflags.Float64Var(\n\t\t&processor.EAF,\n\t\t\"eaf\",\n\t\t1.0,\n\t\t\"the effort adjustment factor derived from the cost drivers (1.0 if rated nominal)\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.SLOCCountFormat,\n\t\t\"sloccount-format\",\n\t\tfalse,\n\t\t\"print a more SLOCCount like COCOMO calculation\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.Cocomo,\n\t\t\"no-cocomo\",\n\t\tfalse,\n\t\t\"remove COCOMO calculation output\",\n\t)\n\tflags.StringVar(\n\t\t&processor.CocomoProjectType,\n\t\t\"cocomo-project-type\",\n\t\t\"organic\",\n\t\t\"change COCOMO model type [organic, semi-detached, embedded, \\\"custom,1,1,1,1\\\"]\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.Size,\n\t\t\"no-size\",\n\t\tfalse,\n\t\t\"remove size calculation output\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.HBorder,\n\t\t\"no-hborder\",\n\t\tfalse,\n\t\t\"remove horizontal borders between sections\",\n\t)\n\tflags.StringVar(\n\t\t&processor.SizeUnit,\n\t\t\"size-unit\",\n\t\t\"si\",\n\t\t\"set size unit [si, binary, mixed, xkcd-kb, xkcd-kelly, xkcd-imaginary, xkcd-intel, xkcd-drive, xkcd-bakers]\",\n\t)\n\tflags.BoolVarP(\n\t\t&processor.Complexity,\n\t\t\"no-complexity\",\n\t\t\"c\",\n\t\tfalse,\n\t\t\"skip calculation of code complexity\",\n\t)\n\tflags.BoolVarP(\n\t\t&processor.Duplicates,\n\t\t\"no-duplicates\",\n\t\t\"d\",\n\t\tfalse,\n\t\t\"remove duplicate files from stats and output\",\n\t)\n\tflags.BoolVarP(\n\t\t&processor.MinifiedGenerated,\n\t\t\"min-gen\",\n\t\t\"z\",\n\t\tfalse,\n\t\t\"identify minified or generated files\",\n\t)\n\tflags.BoolVarP(\n\t\t&processor.Minified,\n\t\t\"min\",\n\t\t\"\",\n\t\tfalse,\n\t\t\"identify minified files\",\n\t)\n\tflags.BoolVarP(\n\t\t&processor.Generated,\n\t\t\"gen\",\n\t\t\"\",\n\t\tfalse,\n\t\t\"identify generated files\",\n\t)\n\tflags.StringSliceVarP(\n\t\t&processor.GeneratedMarkers,\n\t\t\"generated-markers\",\n\t\t\"\",\n\t\t[]string{\"do not edit\", \"<auto-generated />\"},\n\t\t\"string markers in head of generated files\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.IgnoreMinifiedGenerate,\n\t\t\"no-min-gen\",\n\t\tfalse,\n\t\t\"ignore minified or generated files in output (implies --min-gen)\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.IgnoreMinified,\n\t\t\"no-min\",\n\t\tfalse,\n\t\t\"ignore minified files in output (implies --min)\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.IgnoreGenerated,\n\t\t\"no-gen\",\n\t\tfalse,\n\t\t\"ignore generated files in output (implies --gen)\",\n\t)\n\tflags.IntVar(\n\t\t&processor.MinifiedGeneratedLineByteLength,\n\t\t\"min-gen-line-length\",\n\t\t255,\n\t\t\"number of bytes per average line for file to be considered minified or generated\",\n\t)\n\tflags.StringArrayVarP(\n\t\t&processor.Exclude,\n\t\t\"not-match\",\n\t\t`M`,\n\t\t[]string{},\n\t\t\"ignore files and directories matching regular expression\",\n\t)\n\tflags.StringVarP(\n\t\t&processor.FileOutput,\n\t\t\"output\",\n\t\t\"o\",\n\t\t\"\",\n\t\t\"output filename (default stdout)\",\n\t)\n\tflags.StringVarP(\n\t\t&processor.SortBy,\n\t\t\"sort\",\n\t\t\"s\",\n\t\t\"files\",\n\t\t\"column to sort by [files, name, lines, blanks, code, comments, complexity]\",\n\t)\n\tflags.BoolVarP(\n\t\t&processor.Trace,\n\t\t\"trace\",\n\t\t\"t\",\n\t\tfalse,\n\t\t\"enable trace output (not recommended when processing multiple files)\",\n\t)\n\tflags.BoolVarP(\n\t\t&processor.Verbose,\n\t\t\"verbose\",\n\t\t\"v\",\n\t\tfalse,\n\t\t\"verbose output\",\n\t)\n\tflags.BoolVarP(\n\t\t&processor.More,\n\t\t\"wide\",\n\t\t\"w\",\n\t\tfalse,\n\t\t\"wider output with additional statistics (implies --complexity)\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.NoLarge,\n\t\t\"no-large\",\n\t\tfalse,\n\t\t\"ignore files over certain byte and line size set by large-line-count and large-byte-count\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.IncludeSymLinks,\n\t\t\"include-symlinks\",\n\t\tfalse,\n\t\t\"if set will count symlink files\",\n\t)\n\tflags.Int64Var(\n\t\t&processor.LargeLineCount,\n\t\t\"large-line-count\",\n\t\t40000,\n\t\t\"number of lines a file can contain before being removed from output\",\n\t)\n\tflags.Int64Var(\n\t\t&processor.LargeByteCount,\n\t\t\"large-byte-count\",\n\t\t1000000,\n\t\t\"number of bytes a file can contain before being removed from output\",\n\t)\n\tflags.StringVar(\n\t\t&processor.CountAs,\n\t\t\"count-as\",\n\t\t\"\",\n\t\t\"count extension as language [e.g. jsp:htm,chead:\\\"C Header\\\" maps extension jsp to html and chead to C Header]\",\n\t)\n\tflags.StringVar(\n\t\t&processor.FormatMulti,\n\t\t\"format-multi\",\n\t\t\"\",\n\t\t\"have multiple format output overriding --format [e.g. tabular:stdout,csv:file.csv,json:file.json]\",\n\t)\n\tflags.StringVar(\n\t\t&processor.SQLProject,\n\t\t\"sql-project\",\n\t\t\"\",\n\t\t\"use supplied name as the project identifier for the current run. Only valid with the --format sql or sql-insert option\",\n\t)\n\tflags.StringVar(\n\t\t&processor.RemapUnknown,\n\t\t\"remap-unknown\",\n\t\t\"\",\n\t\t\"inspect files of unknown type and remap by checking for a string and remapping the language [e.g. \\\"-*- C++ -*-\\\":\\\"C Header\\\"]\",\n\t)\n\tflags.StringVar(\n\t\t&processor.RemapAll,\n\t\t\"remap-all\",\n\t\t\"\",\n\t\t\"inspect every file and remap by checking for a string and remapping the language [e.g. \\\"-*- C++ -*-\\\":\\\"C Header\\\"]\",\n\t)\n\tflags.StringVar(\n\t\t&processor.CurrencySymbol,\n\t\t\"currency-symbol\",\n\t\t\"$\",\n\t\t\"set currency symbol\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.Locomo,\n\t\t\"locomo\",\n\t\tfalse,\n\t\t\"enable LOCOMO (LLM Output COst MOdel) cost estimation\",\n\t)\n\tflags.BoolVar(\n\t\t&processor.CostComparison,\n\t\t\"cost-comparison\",\n\t\tfalse,\n\t\t\"show both COCOMO and LOCOMO estimates side by side\",\n\t)\n\tflags.StringVar(\n\t\t&processor.LocomoPresetName,\n\t\t\"locomo-preset\",\n\t\t\"medium\",\n\t\t\"LOCOMO model preset [large, medium, small, local]\",\n\t)\n\tflags.Float64Var(\n\t\t&processor.LocomoReviewMinutesPerLine,\n\t\t\"locomo-review\",\n\t\t0.01,\n\t\t\"human review minutes per line of code for LOCOMO estimate\",\n\t)\n\tflags.StringVar(\n\t\t&processor.LocomoConfig,\n\t\t\"locomo-config\",\n\t\t\"\",\n\t\t\"LOCOMO power-user config \\\"tokensPerLine,inputPerLine,complexityWeight,iterations,iterationWeight\\\"\",\n\t)\n\tflags.Float64Var(\n\t\t&processor.LocomoInputPrice,\n\t\t\"locomo-input-price\",\n\t\t0,\n\t\t\"LOCOMO cost per 1M input tokens in dollars (overrides preset)\",\n\t)\n\tflags.Float64Var(\n\t\t&processor.LocomoOutputPrice,\n\t\t\"locomo-output-price\",\n\t\t0,\n\t\t\"LOCOMO cost per 1M output tokens in dollars (overrides preset)\",\n\t)\n\tflags.Float64Var(\n\t\t&processor.LocomoTPS,\n\t\t\"locomo-tps\",\n\t\t0,\n\t\t\"LOCOMO output tokens per second (overrides preset)\",\n\t)\n\tflags.Float64Var(\n\t\t&processor.LocomoCyclesOverride,\n\t\t\"locomo-cycles\",\n\t\t0,\n\t\t\"override estimated LLM iteration cycles (default: calculated from complexity)\",\n\t)\n\n\t// --mcp is intercepted before cobra runs, but we register it here so it appears in --help\n\tvar mcpDummy bool\n\tflags.BoolVar(\n\t\t&mcpDummy,\n\t\t\"mcp\",\n\t\tfalse,\n\t\t\"start as an MCP (Model Context Protocol) server over stdio\",\n\t)\n\n\t// If invoked in the format of \"scc completion --shell [name of shell]\", generate command line completions instead.\n\t// With the --shell option, unintentionally triggering shell completions should be highly unlikely.\n\targs := os.Args\n\tif len(args) == 4 && args[1] == \"completion\" && args[2] == \"--shell\" {\n\t\terr := printShellCompletion(rootCmd, args[3])\n\t\tif err != nil {\n\t\t\t_, _ = fmt.Fprintf(os.Stderr, \"Error printing shell completion: %s\\n\", err)\n\t\t}\n\t\treturn\n\t}\n\n\tif err := rootCmd.Execute(); err != nil {\n\t\t// If a flag does not exist and is not a shorthand, it may be a spelling error. Search for and print possible options.\n\t\tif notExistError, ok := err.(*pflag.NotExistError); ok && len(notExistError.GetSpecifiedName()) > 1 {\n\t\t\tprintFlagSuggestion(flags, notExistError.GetSpecifiedName())\n\t\t}\n\t\tos.Exit(1)\n\t}\n}\n"
  },
  {
    "path": "main_test.go",
    "content": "package main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"slices\"\n\t\"strings\"\n\t\"testing\"\n)\n\nconst sccTestFlag string = \"-test.main\"\n\nvar sccBinPath = os.Args[0]\n\nfunc TestMain(m *testing.M) {\n\tidx := slices.Index(os.Args, sccTestFlag)\n\tif idx != -1 {\n\t\tos.Args = slices.Delete(os.Args, idx, idx+1)\n\t\tmain()\n\t\treturn\n\t}\n\n\tos.Exit(m.Run())\n}\n\nfunc runSCC(args ...string) (string, error) {\n\targs = slices.Insert(args, 0, sccTestFlag)\n\tcmd := exec.Command(sccBinPath, args...)\n\tres, err := cmd.CombinedOutput()\n\treturn string(res), err\n}\n\nfunc TestNoGitIgnore(t *testing.T) {\n\ttmpDir := t.TempDir()\n\tignoreFileName := filepath.Join(tmpDir, \".gitignore\")\n\terr := os.WriteFile(ignoreFileName, []byte(\"ignored.xml\\n\"), 0644)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\txmlFileName := filepath.Join(tmpDir, \"ignored.xml\")\n\terr = os.WriteFile(xmlFileName, []byte(`<?xml version=\"1.0\" encoding=\"UTF-8\"?>`), 0644)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\toutput, err := runSCC(tmpDir)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif strings.Contains(output, \"XML\") {\n\t\tt.Fatalf(\"test --no-gitignore failed, output:\\n%s\", output)\n\t}\n\n\toutput, err = runSCC(\"--no-gitignore\", tmpDir)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif !strings.Contains(output, \"XML\") {\n\t\tt.Fatalf(\"test --no-gitignore failed, output:\\n%s\", output)\n\t}\n}\n\nfunc TestIssue82(t *testing.T) {\n\tt.Parallel()\n\t// Regression issue https://github.com/boyter/scc/issues/82\n\toutput1, err := runSCC(\".\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tpwd, err := os.Getwd()\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\toutput2, err := runSCC(pwd)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tif output1 != output2 {\n\t\tt.Fatalf(\"`./scc .` not equal to `./scc ${PWD}`\")\n\t}\n}\n\nfunc TestIncludeExt(t *testing.T) {\n\tt.Parallel()\n\t// Regression issue https://github.com/boyter/scc/issues/108\n\toutput, err := runSCC(\"--include-ext\", \"go\", \"examples/language\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif !strings.Contains(output, \"Go\") || strings.Contains(output, \"Java\") {\n\t\tt.Fatalf(\"include-ext check failed, output:\\n%s\", output)\n\t}\n}\n\nfunc TestIssue115(t *testing.T) {\n\tt.Parallel()\n\t// Regression issue https://github.com/boyter/scc/issues/115\n\toutput, err := runSCC(\"examples/issue115/.test/file\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif strings.Contains(output, \"Perl\") {\n\t\tt.Fatalf(\"Should not print Perl, output:\\n%s\", output)\n\t}\n}\n\nfunc TestIssue120(t *testing.T) {\n\tt.Parallel()\n\t// Regression issue https://github.com/boyter/scc/issues/120\n\toutput, err := runSCC(\"-i\", \"java\", \"./examples/issue120\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif strings.Contains(output, \"Perl\") {\n\t\tt.Fatal(\"extension param should ignore Shebang\")\n\t}\n}\n\nfunc TestIssue152(t *testing.T) {\n\tt.Parallel()\n\t// Regression issue https://github.com/boyter/scc/issues/152\n\toutput, err := runSCC(\"-i\", \"css\", \"./examples/issue152/\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif !strings.Contains(output, \"CSS\") {\n\t\tt.Fatalf(\"`-i css` extension check failed, output:\\n%s\", output)\n\t}\n}\n\nfunc TestIssue250(t *testing.T) {\n\t// Regression issue https://github.com/boyter/scc/issues/250\n\toutput1, err := runSCC(\"--exclude-dir\", \"examples/\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\toutput2, err := runSCC(\"--exclude-dir\", \"examples\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tif output1 != output2 {\n\t\tt.Fatalf(\"examples exclude-dir check failed, output1:\\n%s, output2:\\n%s\", output1, output2)\n\t}\n}\n\nfunc TestIssue259(t *testing.T) {\n\t// Regression issue https://github.com/boyter/scc/issues/259\n\toutput, err := runSCC(\"-f\", \"csv\", \"--exclude-ext\", \"go\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tif strings.Contains(output, \"Go,\") {\n\t\tt.Fatalf(\"exclude-ext check failed, output:\\n%s\", output)\n\t}\n}\n\nfunc TestIssue260(t *testing.T) {\n\tt.Parallel()\n\t// Regression issue https://github.com/boyter/scc/issues/260\n\t_, err := runSCC(\"-d\", \"examples/issue260/\")\n\tif err != nil {\n\t\tt.Fatalf(\"duplicate empty crash: %v\", err)\n\t}\n}\n\nfunc TestIssue345(t *testing.T) {\n\tt.Parallel()\n\t// Regression issue https://github.com/boyter/scc/issues/345\n\tconst expectedOutput = \"C++,4,3,1,0,0,76,1,0\"\n\toutput, err := runSCC(\"-f\", \"csv\", \"--no-scc-ignore\", \"examples/issue345/\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tlines := strings.Split(output, \"\\n\")\n\tif len(lines) < 2 {\n\t\tt.Fatalf(\"wrong output: %s\", output)\n\t}\n\tif lines[1] != expectedOutput {\n\t\tt.Fatalf(\"got: %s, want: %s\", lines[1], expectedOutput)\n\t}\n}\n\nfunc TestIssue379(t *testing.T) {\n\tt.Parallel()\n\t// Regression issue https://github.com/boyter/scc/issues/379\n\tconst expectedOutput = \"Python,7,4,2,1,1,83,1,0\"\n\toutput, err := runSCC(\"-f\", \"csv\", \"--no-scc-ignore\", \"examples/issue379/\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tlines := strings.Split(output, \"\\n\")\n\tif len(lines) < 2 {\n\t\tt.Fatalf(\"wrong output: %s\", output)\n\t}\n\tif lines[1] != expectedOutput {\n\t\tt.Fatalf(\"got: %s, want: %s\", lines[1], expectedOutput)\n\t}\n}\n\nfunc TestIssue457(t *testing.T) {\n\tt.Parallel()\n\t// Regression issue https://github.com/boyter/scc/issues/457\n\toutput, err := runSCC(\"-M\", \".*\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif !strings.Contains(output, \"0.000 megabytes\") {\n\t\tt.Fatalf(\"Issue 457 test failed, output:\\n%s\", output)\n\t}\n}\n\nfunc TestIssue564(t *testing.T) {\n\tt.Parallel()\n\t// Regression issue https://github.com/boyter/scc/issues/564\n\tconst expectedPythonOutput = \"Python,3,3,0,0,0,84,3,0\"\n\tconst expectedGoOutput = \"Go,6,4,0,2,0,58,2,0\"\n\toutput, err := runSCC(\"-f\", \"csv\", \"--no-scc-ignore\", \"examples/issue564/\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tlines := strings.Split(output, \"\\n\")\n\tif len(lines) < 3 {\n\t\tt.Fatalf(\"wrong output: %s\", output)\n\t}\n\tif lines[1] != expectedPythonOutput {\n\t\tt.Fatalf(\"got: %s, want: %s\", lines[1], expectedPythonOutput)\n\t}\n\tif lines[2] != expectedGoOutput {\n\t\tt.Fatalf(\"got: %s, want: %s\", lines[2], expectedGoOutput)\n\t}\n}\n\nfunc TestIssue610(t *testing.T) {\n\tt.Parallel()\n\t// Regression issue https://github.com/boyter/scc/issues/610\n\tconst expectedOutput = \"TypeScript,11,7,2,2,1,214,1,0\"\n\toutput, err := runSCC(\"-f\", \"csv\", \"--no-scc-ignore\", \"examples/issue610/\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tlines := strings.Split(output, \"\\n\")\n\tif len(lines) < 2 {\n\t\tt.Fatalf(\"wrong output: %s\", output)\n\t}\n\tif lines[1] != expectedOutput {\n\t\tt.Fatalf(\"got: %s, want: %s\", lines[1], expectedOutput)\n\t}\n}\n\nfunc TestIssue339(t *testing.T) {\n\tt.Parallel()\n\t// Regression issue https://github.com/boyter/scc/issues/339\n\toutput, err := runSCC(\"-f\", \"csv\", \"--no-scc-ignore\", \"examples/issue339/\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif !strings.Contains(output, \"MATLAB\") {\n\t\tt.Errorf(\"can not find MATLAB, output: %s\", output)\n\t}\n\tif !strings.Contains(output, \"Objective C\") {\n\t\tt.Errorf(\"can not find Objective C, output:\\n%s\", output)\n\t}\n}\n\nfunc TestInvalidOption(t *testing.T) {\n\tt.Parallel()\n\toutput, err := runSCC(\"--not-a-real-option\")\n\tif err == nil {\n\t\tt.Fatal(\"scc should exit with error code\")\n\t}\n\tif !strings.Contains(output, \"Error: unknown flag: --not-a-real-option\") {\n\t\tt.Fatalf(\"scc should report invalid options, output:\\n%s\", output)\n\t}\n}\n\nfunc TestFileFlagSyntax(t *testing.T) {\n\ttmpDir := t.TempDir()\n\tflagsFileName := filepath.Join(tmpDir, \"flags.txt\")\n\t// include \\n, \\r\\n and no line terminators\n\ttestCases := []string{\n\t\t\"go.mod\\ngo.sum\\nLICENSE\\n\",\n\t\t\"go.mod\\r\\ngo.sum\\r\\nLICENSE\\r\\n\",\n\t\t\"go.mod\\ngo.sum\\nLICENSE\",\n\t\t\"go.mod\\r\\ngo.sum\\r\\nLICENSE\",\n\t\t\"go.mod\\ngo.sum\\r\\nLICENSE\",\n\t}\n\n\tfor _, tc := range testCases {\n\t\terr := os.WriteFile(flagsFileName, []byte(tc), 0644)\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\t\t_, err = runSCC(\"@\" + flagsFileName)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"flag syntax faild: %q, %v\", tc, err)\n\t\t}\n\t}\n}\n\nfunc TestLineLength(t *testing.T) {\n\tt.Parallel()\n\toutput, err := runSCC(\"-m\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif strings.Count(output, \"MaxLine / MeanLine\") < 2 {\n\t\tt.Fatalf(\"line length test failed, output:\\n%s\", output)\n\t}\n}\n\nfunc TestMultipleFormatStdout(t *testing.T) {\n\toutput, err := runSCC(\"--format-multi\", \"tabular:stdout,html:stdout,csv:stdout,sql:stdout\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\ttabularPattern := regexp.MustCompile(`Processed .+? bytes, .+? megabytes \\(SI\\)`)\n\tif !tabularPattern.MatchString(output) {\n\t\tt.Errorf(\"multi-format tabular failed, output:\\n%s\", output)\n\t}\n\n\tif !strings.Contains(output, `<html lang=\"en\"><head><meta charset=\"utf-8\" /><title>scc html output</title>`) {\n\t\tt.Errorf(\"multi-format html failed, output:\\n%s\", output)\n\t}\n\n\tif !strings.Contains(output, \"Language,Lines,Code,Comments,Blanks,Complexity,Bytes,Files,ULOC\") {\n\t\tt.Errorf(\"multi-format csv failed, output:\\n%s\", output)\n\t}\n\n\tsqlPattern := regexp.MustCompile(`insert into t values\\(.+?\\);`)\n\tif !sqlPattern.MatchString(output) {\n\t\tt.Errorf(\"multi-format sql failed, output:\\n%s\", output)\n\t}\n}\n\nfunc TestMultipleFormatWriteFile(t *testing.T) {\n\ttmpDir := t.TempDir()\n\toutputTabular := filepath.Join(tmpDir, \"output.tab\")\n\toutputWide := filepath.Join(tmpDir, \"output.wide\")\n\toutputJSON1 := filepath.Join(tmpDir, \"output.json\")\n\toutputJSON2 := filepath.Join(tmpDir, \"output2.json\")\n\toutputCSV := filepath.Join(tmpDir, \"output.csv\")\n\toutputYAML := filepath.Join(tmpDir, \"output.yaml\")\n\toutputHTML := filepath.Join(tmpDir, \"output.html\")\n\toutputHTMLTable := filepath.Join(tmpDir, \"output_table.html\")\n\toutputSQL := filepath.Join(tmpDir, \"output.sql\")\n\n\tmultiFormatArgs := fmt.Sprintf(\n\t\t\"tabular:%s,wide:%s,json:%s,json2:%s,csv:%s,cloc-yaml:%s,html:%s,html-table:%s,sql:%s\",\n\t\toutputTabular,\n\t\toutputWide,\n\t\toutputJSON1,\n\t\toutputJSON2,\n\t\toutputCSV,\n\t\toutputYAML,\n\t\toutputHTML,\n\t\toutputHTMLTable,\n\t\toutputSQL,\n\t)\n\n\t_, err := runSCC(\"--format-multi\", multiFormatArgs)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tif info, err := os.Stat(outputTabular); err != nil || info.Size() <= 0 {\n\t\tt.Fatal(\"tabular write file test failed\")\n\t}\n\tif info, err := os.Stat(outputWide); err != nil || info.Size() <= 0 {\n\t\tt.Fatal(\"wide write file test failed\")\n\t}\n\tif info, err := os.Stat(outputJSON1); err != nil || info.Size() <= 0 {\n\t\tt.Fatal(\"json write file test failed\")\n\t}\n\tif info, err := os.Stat(outputJSON2); err != nil || info.Size() <= 0 {\n\t\tt.Fatal(\"json2 write file test failed\")\n\t}\n\tif info, err := os.Stat(outputCSV); err != nil || info.Size() <= 0 {\n\t\tt.Fatal(\"csv write file test failed\")\n\t}\n\tif info, err := os.Stat(outputYAML); err != nil || info.Size() <= 0 {\n\t\tt.Fatal(\"cloc-yaml write file test failed\")\n\t}\n\tif info, err := os.Stat(outputHTML); err != nil || info.Size() <= 0 {\n\t\tt.Fatal(\"html write file test failed\")\n\t}\n\tif info, err := os.Stat(outputHTMLTable); err != nil || info.Size() <= 0 {\n\t\tt.Fatal(\"html-table write file test failed\")\n\t}\n\tif info, err := os.Stat(outputSQL); err != nil || info.Size() <= 0 {\n\t\tt.Fatal(\"sql write file test failed\")\n\t}\n}\n\nfunc TestRecursivelyIgnore(t *testing.T) {\n\ttmpDir := t.TempDir()\n\terr := os.WriteFile(filepath.Join(tmpDir, \".gitignore\"), []byte(\"ignore-git.txt\\n\"), 0644)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\terr = os.WriteFile(filepath.Join(tmpDir, \".ignore\"), []byte(\"vendor/\\nignore.txt\\n\"), 0644)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\terr = os.Mkdir(filepath.Join(tmpDir, \"ignore\"), 0755)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\terr = os.WriteFile(filepath.Join(tmpDir, \"ignore\", \"README.md\"), []byte(\"Files in here are to ensure that .ignore and .gitignore work recursively\\n\"), 0644)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\terr = os.WriteFile(filepath.Join(tmpDir, \"ignore\", \"ignore.txt\"), []byte(\"testing\\n\"), 0644)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\terr = os.WriteFile(filepath.Join(tmpDir, \"ignore\", \"ignore-git.txt\"), []byte(\"git\\ntesting\\n\"), 0644)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\toutput, err := runSCC(\"--by-file\", \"--no-scc-ignore\", tmpDir)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif strings.Contains(output, \"ignore.txt\") || strings.Contains(output, \"ignore-git.txt\") {\n\t\tt.Errorf(\"ignore recursive filter failed, output:\\n%s\", output)\n\t}\n\n\toutput, err = runSCC(\"--by-file\", \"--no-scc-ignore\", \"--no-ignore\", tmpDir)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif !strings.Contains(output, \"ignore.txt\") || strings.Contains(output, \"ignore-git.txt\") {\n\t\tt.Errorf(\"ignore recursive filter failed, output:\\n%s\", output)\n\t}\n\n\toutput, err = runSCC(\"--by-file\", \"--no-scc-ignore\", \"--no-gitignore\", tmpDir)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif strings.Contains(output, \"ignore.txt\") || !strings.Contains(output, \"ignore-git.txt\") {\n\t\tt.Errorf(\"ignore recursive filter failed, output:\\n%s\", output)\n\t}\n\n\toutput, err = runSCC(\"--by-file\", \"--no-scc-ignore\", \"--no-ignore\", \"--no-gitignore\", tmpDir)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif !strings.Contains(output, \"ignore.txt\") || !strings.Contains(output, \"ignore-git.txt\") {\n\t\tt.Errorf(\"ignore recursive filter failed, output:\\n%s\", output)\n\t}\n}\n\nfunc TestMultipleGitIgnore(t *testing.T) {\n\ttmpDir := t.TempDir()\n\terr := os.WriteFile(filepath.Join(tmpDir, \".gitignore\"), []byte(\"ignore.txt\\n\"), 0644)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\terr = os.Mkdir(filepath.Join(tmpDir, \"ignore\"), 0755)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\terr = os.WriteFile(filepath.Join(tmpDir, \"ignore\", \".gitignore\"), []byte(\"ignore.java\\n\"), 0644)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\terr = os.WriteFile(filepath.Join(tmpDir, \"ignore\", \"ignore.java\"), []byte(\"//test\\n\"), 0644)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\toutput, err := runSCC(tmpDir)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif strings.Contains(output, \"Java\") {\n\t\tt.Fatalf(\"multiple gitignore failed, output:\\n%s\", output)\n\t}\n}\n\nfunc TestFlagSuggestion(t *testing.T) {\n\tt.Parallel()\n\ttestCases := []struct {\n\t\targs           []string\n\t\texpectedOutput string\n\t}{\n\t\t{\n\t\t\targs:           []string{\"--farmat\"},\n\t\t\texpectedOutput: \"The most similar flag of --farmat is:\\n\\t--format\\n\",\n\t\t},\n\t\t{\n\t\t\targs:           []string{\"--no-gignore\"},\n\t\t\texpectedOutput: \"The most similar flags of --no-gignore are:\\n\\t--no-ignore\\n\\t--no-gitignore\\n\",\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\toutput, err := runSCC(tc.args...)\n\t\tif err == nil {\n\t\t\tt.Fatal(\"scc should exit with error code\")\n\t\t}\n\t\tif !strings.Contains(output, tc.expectedOutput) {\n\t\t\tt.Errorf(\"wrong suggestion for %v, want: %s, got: %s\", tc.args, tc.expectedOutput, output)\n\t\t}\n\t}\n}\n\nfunc TestDeterministicOutput(t *testing.T) {\n\toutput, err := runSCC(\".\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tfor range 20 {\n\t\toutput2, err := runSCC(\".\")\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\t\tif output != output2 {\n\t\t\tt.Fatalf(\"want:\\n%s, got:\\n%s\", output, output2)\n\t\t}\n\t}\n}\n\nfunc TestLanguageNameTruncate(t *testing.T) {\n\toutput, err := runSCC(\"examples/language\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif strings.Count(output, \"Bitbucket Pipe…\") != 1 {\n\t\tt.Errorf(\"`Bitbucket Pipeline` truncate test failed\")\n\t}\n\tif strings.Count(output, \"CloudFormation…\") != 2 {\n\t\tt.Errorf(\"`CloudFormation (JSON)` and `CloudFormation (YAML)` truncate test failed\")\n\t}\n}\n\nfunc TestSpecificLanguages(t *testing.T) {\n\tlanguages := [...]string{\n\t\t\"ABNF\",\n\t\t\"Alchemist\",\n\t\t\"Algol 68\",\n\t\t\"Alloy\",\n\t\t\"Amber\",\n\t\t\"Apex\",\n\t\t\"ArkTs\",\n\t\t\"Arturo\",\n\t\t\"Astro\",\n\t\t\"AWK\",\n\t\t\"BASH\",\n\t\t\"Bean\",\n\t\t\"Bicep\",\n\t\t\"Bitbucket Pipeline\",\n\t\t\"Blueprint\",\n\t\t\"Boo\",\n\t\t\"Bosque\",\n\t\t\"Bru\",\n\t\t\"C3\",\n\t\t\"C Shell\",\n\t\t\"C#\",\n\t\t\"Cairo\",\n\t\t\"Cangjie\",\n\t\t\"Chapel\",\n\t\t\"Circom\",\n\t\t\"Clipper\",\n\t\t\"Clojure\",\n\t\t\"CMake\",\n\t\t\"Cuda\",\n\t\t\"Cypher\",\n\t\t\"D2\",\n\t\t\"DAML\",\n\t\t\"DM\",\n\t\t\"Docker ignore\",\n\t\t\"Dockerfile\",\n\t\t\"DOT\",\n\t\t\"Elixir Template\",\n\t\t\"Elm\",\n\t\t\"EmiT\",\n\t\t\"F#\",\n\t\t\"Factor\",\n\t\t\"Flow9\",\n\t\t\"FSL\",\n\t\t\"Futhark\",\n\t\t\"FXML\",\n\t\t\"Gemfile\",\n\t\t\"Gleam\",\n\t\t\"Go\",\n\t\t\"Go+\",\n\t\t\"Godot Scene\",\n\t\t\"GraphQL\",\n\t\t\"Gremlin\",\n\t\t\"Gwion\",\n\t\t\"HAML\",\n\t\t\"Hare\",\n\t\t\"Haskell\",\n\t\t\"HCL\",\n\t\t\"ignore\",\n\t\t\"INI\",\n\t\t\"Java\",\n\t\t\"JavaScript\",\n\t\t\"JCL\",\n\t\t\"JSON5\",\n\t\t\"JSONC\",\n\t\t\"jq\",\n\t\t\"Korn Shell\",\n\t\t\"Koto\",\n\t\t\"LALRPOP\",\n\t\t\"License\",\n\t\t\"LiveScript\",\n\t\t\"LLVM IR\",\n\t\t\"Lua\",\n\t\t\"Luau\",\n\t\t\"Luna\",\n\t\t\"MLIR\",\n\t\t\"Makefile\",\n\t\t\"Metal\",\n\t\t\"Mojo\",\n\t\t\"Monkey C\",\n\t\t\"Moonbit\",\n\t\t\"Nature\",\n\t\t\"Nushell\",\n\t\t\"OpenQASM\",\n\t\t\"OpenTofu\",\n\t\t\"Perl\",\n\t\t\"Pkl\",\n\t\t\"Plain Text\",\n\t\t\"POML\",\n\t\t\"PostScript\",\n\t\t\"Proto\",\n\t\t\"Python\",\n\t\t\"Q#\",\n\t\t\"R\",\n\t\t\"Racket\",\n\t\t\"Rakefile\",\n\t\t\"RAML\",\n\t\t\"Rebol\",\n\t\t\"Redscript\",\n\t\t\"Rich Text Format\",\n\t\t\"Scallop\",\n\t\t\"Seed7\",\n\t\t\"Shell\",\n\t\t\"Sieve\",\n\t\t\"Slang\",\n\t\t\"Slint\",\n\t\t\"Smalltalk\",\n\t\t\"Snakemake\",\n\t\t\"Stan\",\n\t\t\"Systemd\",\n\t\t\"Tact\",\n\t\t\"Teal\",\n\t\t\"Tera\",\n\t\t\"Templ\",\n\t\t\"Terraform\",\n\t\t\"TOML\",\n\t\t\"TOON\",\n\t\t\"TTCN-3\",\n\t\t\"TypeScript\",\n\t\t\"TypeSpec\",\n\t\t\"Typst\",\n\t\t\"Up\",\n\t\t\"Vala\",\n\t\t\"Vim Script\",\n\t\t\"Web Services Description Language\",\n\t\t\"wenyan\",\n\t\t\"Wren\",\n\t\t\"XHTML\",\n\t\t\"XMake\",\n\t\t\"XML Schema\",\n\t\t\"YAML\",\n\t\t\"Yarn\",\n\t\t\"Zig\",\n\t\t\"ZoKrates\",\n\t\t\"Zsh\",\n\t}\n\n\toutput, err := runSCC(\"-f\", \"csv\", \"examples/language\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tfor _, language := range languages {\n\t\tif !strings.Contains(output, language+\",\") {\n\t\t\tt.Errorf(\"language not found in output: %v\", language)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "mcp.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage main\n\nimport (\n\t\"cmp\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/boyter/scc/v3/processor\"\n\t\"github.com/mark3labs/mcp-go/mcp\"\n\t\"github.com/mark3labs/mcp-go/server\"\n)\n\n// mcpMu serializes MCP tool calls so concurrent requests\n// don't race on processor package globals.\nvar mcpMu sync.Mutex\n\nfunc startMCPServer() {\n\tmcpServer := server.NewMCPServer(\n\t\t\"scc\",\n\t\tprocessor.Version,\n\t\tserver.WithToolCapabilities(false),\n\t)\n\n\tanalyzeTool := mcp.NewTool(\"analyze\",\n\t\tmcp.WithDescription(`Count lines of code, comments, blanks and estimate complexity for a project directory or file. Supports 200+ languages.\n\nReturns per-language summary with:\n- files: number of source files\n- lines: total lines\n- code: lines of actual code\n- comment: lines of comments\n- blank: blank lines\n- complexity: estimated cyclomatic complexity\n- bytes: total size in bytes\n\nAlso returns COCOMO cost/schedule estimates and optionally LOCOMO (LLM cost) estimates.\n\nUse by_file with sort=complexity to find the most complex files in a project.`),\n\t\tmcp.WithString(\"path\",\n\t\t\tmcp.Description(\"Directory or file path to analyze. Defaults to current directory.\"),\n\t\t),\n\t\tmcp.WithString(\"sort\",\n\t\t\tmcp.Description(\"Column to sort results by: files, name, lines, blank, code, comment, complexity, bytes. Default: files.\"),\n\t\t),\n\t\tmcp.WithBoolean(\"by_file\",\n\t\t\tmcp.Description(\"If true, return per-file results instead of per-language summary. Useful with sort to find e.g. the most complex or largest files. Use with limit to control response size.\"),\n\t\t),\n\t\tmcp.WithNumber(\"limit\",\n\t\t\tmcp.Description(\"Maximum number of files to return per language when by_file is true. Defaults to 10. Set to -1 for unlimited.\"),\n\t\t),\n\t\tmcp.WithString(\"include_ext\",\n\t\t\tmcp.Description(\"Comma-separated list of file extensions to include (e.g. 'go,java,js').\"),\n\t\t),\n\t\tmcp.WithString(\"exclude_ext\",\n\t\t\tmcp.Description(\"Comma-separated list of file extensions to exclude (e.g. 'json,xml').\"),\n\t\t),\n\t\tmcp.WithBoolean(\"no_duplicates\",\n\t\t\tmcp.Description(\"Remove duplicate files from stats.\"),\n\t\t),\n\t\tmcp.WithBoolean(\"no_min_gen\",\n\t\t\tmcp.Description(\"Exclude minified or generated files.\"),\n\t\t),\n\t\tmcp.WithBoolean(\"locomo\",\n\t\t\tmcp.Description(\"Include LOCOMO (LLM Output COst MOdel) cost estimation in results.\"),\n\t\t),\n\t\tmcp.WithString(\"locomo_preset\",\n\t\t\tmcp.Description(\"LOCOMO model preset: large (GPT-4/Opus class), medium (Sonnet class), small (Haiku class), local (local LLM). Default: medium.\"),\n\t\t),\n\t)\n\n\tmcpServer.AddTool(analyzeTool, mcpAnalyzeHandler)\n\n\terrLogger := log.New(os.Stderr, \"scc-mcp: \", log.LstdFlags)\n\tif err := server.ServeStdio(mcpServer, server.WithErrorLogger(errLogger)); err != nil {\n\t\t_, _ = fmt.Fprintf(os.Stderr, \"scc-mcp: server error: %v\\n\", err)\n\t\tos.Exit(1)\n\t}\n}\n\ntype mcpAnalyzeResponse struct {\n\tPath       string                     `json:\"path\"`\n\tLanguages  []mcpLanguageResult        `json:\"languages\"`\n\tTotals     mcpTotals                  `json:\"totals\"`\n\tCOCOMO     *mcpCOCOMO                 `json:\"cocomo,omitempty\"`\n\tLOCOMO     *mcpLOCOMO                 `json:\"locomo,omitempty\"`\n\tFileCount  int64                      `json:\"totalFiles\"`\n\tTotalLines int64                      `json:\"totalLines\"`\n\tTotalCode  int64                      `json:\"totalCode\"`\n}\n\ntype mcpLanguageResult struct {\n\tName       string          `json:\"name\"`\n\tFiles      int64           `json:\"files\"`\n\tLines      int64           `json:\"lines\"`\n\tCode       int64           `json:\"code\"`\n\tComment    int64           `json:\"comment\"`\n\tBlank      int64           `json:\"blank\"`\n\tComplexity int64           `json:\"complexity\"`\n\tBytes      int64           `json:\"bytes\"`\n\tFileList   []mcpFileResult `json:\"fileList,omitempty\"`\n}\n\ntype mcpFileResult struct {\n\tLocation   string `json:\"location\"`\n\tFilename   string `json:\"filename\"`\n\tLanguage   string `json:\"language\"`\n\tLines      int64  `json:\"lines\"`\n\tCode       int64  `json:\"code\"`\n\tComment    int64  `json:\"comment\"`\n\tBlank      int64  `json:\"blank\"`\n\tComplexity int64  `json:\"complexity\"`\n\tBytes      int64  `json:\"bytes\"`\n}\n\ntype mcpTotals struct {\n\tFiles      int64 `json:\"files\"`\n\tLines      int64 `json:\"lines\"`\n\tCode       int64 `json:\"code\"`\n\tComment    int64 `json:\"comment\"`\n\tBlank      int64 `json:\"blank\"`\n\tComplexity int64 `json:\"complexity\"`\n\tBytes      int64 `json:\"bytes\"`\n}\n\ntype mcpCOCOMO struct {\n\tEstimatedCost           float64 `json:\"estimatedCost\"`\n\tEstimatedScheduleMonths float64 `json:\"estimatedScheduleMonths\"`\n\tEstimatedPeople         float64 `json:\"estimatedPeople\"`\n}\n\ntype mcpLOCOMO struct {\n\tCost                  float64 `json:\"cost\"`\n\tInputTokens           float64 `json:\"inputTokens\"`\n\tOutputTokens          float64 `json:\"outputTokens\"`\n\tGenerationSeconds     float64 `json:\"generationSeconds\"`\n\tReviewHours           float64 `json:\"reviewHours\"`\n\tPreset                string  `json:\"preset\"`\n\tAverageComplexityMult float64 `json:\"averageComplexityMultiplier\"`\n\tCycles                float64 `json:\"cycles\"`\n}\n\nfunc mcpAnalyzeHandler(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {\n\targs := request.GetArguments()\n\n\t// Extract parameters\n\tpath := \".\"\n\tif p, ok := args[\"path\"].(string); ok && p != \"\" {\n\t\tpath = p\n\t}\n\n\t// Resolve to absolute path\n\tabsPath, err := filepath.Abs(path)\n\tif err != nil {\n\t\treturn mcp.NewToolResultError(fmt.Sprintf(\"invalid path: %v\", err)), nil\n\t}\n\n\t// Verify path can be accessed\n\tif _, err := os.Stat(absPath); err != nil {\n\t\treturn mcp.NewToolResultError(fmt.Sprintf(\"path cannot be accessed: %s: %v\", absPath, err)), nil\n\t}\n\n\t// Serialize access to processor globals so concurrent MCP\n\t// requests don't race on shared state.\n\tmcpMu.Lock()\n\tdefer mcpMu.Unlock()\n\n\t// Configure processor globals for this request.\n\t// Some defaults are normally set by cobra flags which the MCP path\n\t// bypasses, so we set them explicitly here.\n\tprocessor.DirFilePaths = []string{absPath}\n\tprocessor.Format = \"json\"\n\tprocessor.Cocomo = false\n\tprocessor.Size = false\n\tprocessor.Files = false\n\tprocessor.PathDenyList = []string{\".git\", \".hg\", \".svn\"}\n\tprocessor.ExcludeFilename = []string{\"package-lock.json\", \"Cargo.lock\", \"yarn.lock\", \"pubspec.lock\", \"Podfile.lock\", \"pnpm-lock.yaml\"}\n\n\tif sortBy, ok := args[\"sort\"].(string); ok && sortBy != \"\" {\n\t\tprocessor.SortBy = sortBy\n\t} else {\n\t\tprocessor.SortBy = \"files\"\n\t}\n\n\tif byFile, ok := args[\"by_file\"].(bool); ok && byFile {\n\t\tprocessor.Files = true\n\t}\n\n\tfileLimit := 10 // default limit when by_file is true\n\tif l, ok := args[\"limit\"].(float64); ok {\n\t\tif l < 0 {\n\t\t\tfileLimit = 0 // -1 (or any negative) means unlimited\n\t\t} else {\n\t\t\tfileLimit = int(l)\n\t\t}\n\t}\n\n\tif includeExt, ok := args[\"include_ext\"].(string); ok && includeExt != \"\" {\n\t\tprocessor.AllowListExtensions = splitAndTrimExtensions(includeExt)\n\t} else {\n\t\tprocessor.AllowListExtensions = []string{}\n\t}\n\n\tif excludeExt, ok := args[\"exclude_ext\"].(string); ok && excludeExt != \"\" {\n\t\tprocessor.ExcludeListExtensions = splitAndTrimExtensions(excludeExt)\n\t} else {\n\t\tprocessor.ExcludeListExtensions = []string{}\n\t}\n\n\tif noDups, ok := args[\"no_duplicates\"].(bool); ok && noDups {\n\t\tprocessor.Duplicates = true\n\t} else {\n\t\tprocessor.Duplicates = false\n\t}\n\n\tif noMinGen, ok := args[\"no_min_gen\"].(bool); ok && noMinGen {\n\t\tprocessor.IgnoreMinifiedGenerate = true\n\t\t// GeneratedMarkers is normally set by cobra flag defaults which\n\t\t// the MCP path bypasses, so set them here.\n\t\tif len(processor.GeneratedMarkers) == 0 {\n\t\t\tprocessor.GeneratedMarkers = []string{\"do not edit\", \"<auto-generated />\"}\n\t\t}\n\t} else {\n\t\tprocessor.IgnoreMinifiedGenerate = false\n\t}\n\n\tif locomo, ok := args[\"locomo\"].(bool); ok && locomo {\n\t\tprocessor.Locomo = true\n\t} else {\n\t\tprocessor.Locomo = false\n\t}\n\n\tif locomoPreset, ok := args[\"locomo_preset\"].(string); ok && locomoPreset != \"\" {\n\t\tprocessor.LocomoPresetName = locomoPreset\n\t} else {\n\t\tprocessor.LocomoPresetName = \"medium\"\n\t}\n\n\tprocessor.ConfigureLazy(true)\n\n\t// Run the analysis\n\tlanguage, err := processor.ProcessResult()\n\tif err != nil {\n\t\treturn mcp.NewToolResultError(fmt.Sprintf(\"analysis failed: %v\", err)), nil\n\t}\n\n\t// Build response\n\tvar totals mcpTotals\n\tlangs := make([]mcpLanguageResult, 0, len(language))\n\n\tfor _, l := range language {\n\t\tlr := mcpLanguageResult{\n\t\t\tName:       l.Name,\n\t\t\tFiles:      l.Count,\n\t\t\tLines:      l.Lines,\n\t\t\tCode:       l.Code,\n\t\t\tComment:    l.Comment,\n\t\t\tBlank:      l.Blank,\n\t\t\tComplexity: l.Complexity,\n\t\t\tBytes:      l.Bytes,\n\t\t}\n\n\t\tif processor.Files && len(l.Files) > 0 {\n\t\t\tfiles := l.Files\n\t\t\t// Sort files within each language by the same criteria\n\t\t\t// used for languages so per-file output is ordered and\n\t\t\t// limit returns the top N rather than an arbitrary slice.\n\t\t\tsortFileJobs(files)\n\t\t\tif fileLimit > 0 && len(files) > fileLimit {\n\t\t\t\tfiles = files[:fileLimit]\n\t\t\t}\n\t\t\tlr.FileList = make([]mcpFileResult, 0, len(files))\n\t\t\tfor _, f := range files {\n\t\t\t\tlr.FileList = append(lr.FileList, mcpFileResult{\n\t\t\t\t\tLocation:   f.Location,\n\t\t\t\t\tFilename:   f.Filename,\n\t\t\t\t\tLanguage:   f.Language,\n\t\t\t\t\tLines:      f.Lines,\n\t\t\t\t\tCode:       f.Code,\n\t\t\t\t\tComment:    f.Comment,\n\t\t\t\t\tBlank:      f.Blank,\n\t\t\t\t\tComplexity: f.Complexity,\n\t\t\t\t\tBytes:      f.Bytes,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tlangs = append(langs, lr)\n\n\t\ttotals.Files += l.Count\n\t\ttotals.Lines += l.Lines\n\t\ttotals.Code += l.Code\n\t\ttotals.Comment += l.Comment\n\t\ttotals.Blank += l.Blank\n\t\ttotals.Complexity += l.Complexity\n\t\ttotals.Bytes += l.Bytes\n\t}\n\n\tresp := mcpAnalyzeResponse{\n\t\tPath:       absPath,\n\t\tLanguages:  langs,\n\t\tTotals:     totals,\n\t\tFileCount:  totals.Files,\n\t\tTotalLines: totals.Lines,\n\t\tTotalCode:  totals.Code,\n\t}\n\n\t// COCOMO estimate\n\testimatedEffort := processor.EstimateEffort(totals.Code, processor.EAF)\n\testimatedCost := processor.EstimateCost(estimatedEffort, processor.AverageWage, processor.Overhead)\n\testimatedScheduleMonths := processor.EstimateScheduleMonths(estimatedEffort)\n\testimatedPeople := 0.0\n\tif estimatedScheduleMonths > 0 {\n\t\testimatedPeople = estimatedEffort / estimatedScheduleMonths\n\t}\n\tresp.COCOMO = &mcpCOCOMO{\n\t\tEstimatedCost:           estimatedCost,\n\t\tEstimatedScheduleMonths: estimatedScheduleMonths,\n\t\tEstimatedPeople:         estimatedPeople,\n\t}\n\n\t// LOCOMO estimate if requested\n\tif processor.Locomo {\n\t\tresult := processor.LocomoEstimate(totals.Code, totals.Complexity)\n\t\tresp.LOCOMO = &mcpLOCOMO{\n\t\t\tCost:                  result.Cost,\n\t\t\tInputTokens:           result.InputTokens,\n\t\t\tOutputTokens:          result.OutputTokens,\n\t\t\tGenerationSeconds:     result.GenerationSeconds,\n\t\t\tReviewHours:           result.ReviewHours,\n\t\t\tPreset:                result.Preset,\n\t\t\tAverageComplexityMult: result.AverageComplexityMult,\n\t\t\tCycles:                result.IterationFactor,\n\t\t}\n\t}\n\n\t// Serialize to JSON\n\tjsonBytes, err := jsonMarshal(resp)\n\tif err != nil {\n\t\treturn mcp.NewToolResultError(fmt.Sprintf(\"failed to serialize results: %v\", err)), nil\n\t}\n\n\treturn mcp.NewToolResultText(string(jsonBytes)), nil\n}\n\nfunc jsonMarshal(v interface{}) ([]byte, error) {\n\treturn json.MarshalIndent(v, \"\", \"  \")\n}\n\n// sortFileJobs sorts a slice of FileJob pointers using the current\n// processor.SortBy value so that the most relevant files come first.\nfunc sortFileJobs(files []*processor.FileJob) {\n\tswitch processor.SortBy {\n\tcase \"name\", \"names\", \"language\", \"languages\", \"lang\", \"langs\":\n\t\tslices.SortFunc(files, func(a, b *processor.FileJob) int {\n\t\t\treturn strings.Compare(a.Filename, b.Filename)\n\t\t})\n\tcase \"line\", \"lines\":\n\t\tslices.SortFunc(files, func(a, b *processor.FileJob) int {\n\t\t\treturn cmp.Compare(b.Lines, a.Lines)\n\t\t})\n\tcase \"blank\", \"blanks\":\n\t\tslices.SortFunc(files, func(a, b *processor.FileJob) int {\n\t\t\treturn cmp.Compare(b.Blank, a.Blank)\n\t\t})\n\tcase \"code\", \"codes\":\n\t\tslices.SortFunc(files, func(a, b *processor.FileJob) int {\n\t\t\treturn cmp.Compare(b.Code, a.Code)\n\t\t})\n\tcase \"comment\", \"comments\":\n\t\tslices.SortFunc(files, func(a, b *processor.FileJob) int {\n\t\t\treturn cmp.Compare(b.Comment, a.Comment)\n\t\t})\n\tcase \"complexity\", \"complexitys\":\n\t\tslices.SortFunc(files, func(a, b *processor.FileJob) int {\n\t\t\treturn cmp.Compare(b.Complexity, a.Complexity)\n\t\t})\n\tcase \"byte\", \"bytes\":\n\t\tslices.SortFunc(files, func(a, b *processor.FileJob) int {\n\t\t\treturn cmp.Compare(b.Bytes, a.Bytes)\n\t\t})\n\tdefault:\n\t\tslices.SortFunc(files, func(a, b *processor.FileJob) int {\n\t\t\treturn cmp.Compare(b.Lines, a.Lines)\n\t\t})\n\t}\n}\n\n// splitAndTrimExtensions splits a comma-separated string into\n// trimmed, non-empty extension entries.\nfunc splitAndTrimExtensions(s string) []string {\n\tparts := strings.Split(s, \",\")\n\tresult := make([]string, 0, len(parts))\n\tfor _, p := range parts {\n\t\tp = strings.TrimSpace(p)\n\t\tif p != \"\" {\n\t\t\tresult = append(result, p)\n\t\t}\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "packages/aur/PKGBUILD",
    "content": "# Maintainer: Ben Boyter <ben@boyter.org>\npkgname=scc\npkgver=2.10.1\npkgrel=1\npkgdesc=\"Sloc, Cloc and Code: scc is a very fast accurate code counter with complexity calculations and COCOMO estimates written in pure Go\"\narch=('x86_64' 'i386')\nurl=\"https://github.com/boyter/scc\"\nlicense=('MIT')\nsource=(https://github.com/boyter/scc/releases/download/v$pkgver/scc-$pkgver-$arch-unknown-linux.zip)\nsha256sums=('663da4a750fd4f0f3d9328dd58f6850c46f458f94258c04b78b630e47d667ff8')\n\npackage() {\n          mkdir -p $pkgdir/usr/bin\n          cp $srcdir/scc $pkgdir/usr/bin\n}\n"
  },
  {
    "path": "packages/chocolatey/ReadMe.md",
    "content": "﻿# Instructions\n## Build\n```bash\ncpack\n```\n\n## Install\n```bash\nchocolatey install scc -fdv -s \"'.;https://chocolatey.org/api/v2/'\" --version x.y.z\n```\n"
  },
  {
    "path": "packages/chocolatey/scc.nuspec",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2015/06/nuspec.xsd\">\n  <metadata>\n    <id>scc</id>\n    <version>1.10.0</version>\n    <title>scc</title>\n    <authors>Ben Boyter</authors>\n    <owners>Ben Boyter</owners>\n    <projectUrl>https://github.com/boyter/scc/</projectUrl>\n    <projectSourceUrl>https://github.com/boyter/scc/</projectSourceUrl>\n    <bugTrackerUrl>https://github.com/boyter/scc/issues/</bugTrackerUrl>\n    <packageSourceUrl>https://github.com/boyter/scc/tree/master/packages/chocolatey/<packageSourceUrl>\n    <licenseUrl>https://github.com/boyter/scc/blob/v1.10.0/LICENSE</licenseUrl>\n    <tags>scc code counter sloc cloc</tags>\n    <summary>A tool similar to cloc, sloccount and tokei.</summary>\n    <description>A tool similar to cloc, sloccount and tokei. For counting physical the lines of code, blank lines, comment lines, and physical lines of source code in many programming languages with complexity estimates.</description>\n    <requireLicenseAcceptance>false</requireLicenseAcceptance>\n  </metadata>\n  <files>\n    <file src=\"tools\\**\" target=\"tools\" />\n  </files>\n</package>\n"
  },
  {
    "path": "packages/chocolatey/tools/LICENSE.txt",
    "content": "﻿From: https://github.com/boyter/scc/blob/master/LICENSE\n\nMIT License\n\nCopyright (c) 2018 Ben Boyter\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "packages/chocolatey/tools/VERIFICATION.txt",
    "content": "﻿VERIFICATION\nVerification is intended to assist the Chocolatey moderators and community\nin verifying that this package's contents are trustworthy.\n\nI am the author of this package and the application.\n<Include details of how to verify checksum contents>\n<If software vendor, explain that here - checksum verification instructions are optional>"
  },
  {
    "path": "packages/chocolatey/tools/chocolateyinstall.ps1",
    "content": "﻿# IMPORTANT: Before releasing this package, copy/paste the next 2 lines into PowerShell to remove all comments from this file:\n#   $f='c:\\path\\to\\thisFile.ps1'\n#   gc $f | ? {$_ -notmatch \"^\\s*#\"} | % {$_ -replace '(^.*?)\\s*?[^``]#.*','$1'} | Out-File $f+\".~\" -en utf8; mv -fo $f+\".~\" $f\n\n# 1. See the _TODO.md that is generated top level and read through that\n# 2. Follow the documentation below to learn how to create a package for the package type you are creating.\n# 3. In Chocolatey scripts, ALWAYS use absolute paths - $toolsDir gets you to the package's tools directory.\n$ErrorActionPreference = 'Stop'; # stop on all errors\n#Items that could be replaced based on what you call chocopkgup.exe with\n#{{PackageName}} - Package Name (should be same as nuspec file and folder) |/p\n#{{PackageVersion}} - The updated version | /v\n#{{DownloadUrl}} - The url for the native file | /u\n#{{PackageFilePath}} - Downloaded file if including it in package | /pp\n#{{PackageGuid}} - This will be used later | /pg\n#{{DownloadUrlx64}} - The 64-bit url for the native file | /u64\n#{{Checksum}} - The checksum for the url | /c\n#{{Checksumx64}} - The checksum for the 64-bit url | /c64\n#{{ChecksumType}} - The checksum type for the url | /ct\n#{{ChecksumTypex64}} - The checksum type for the 64-bit url | /ct64\n\n$toolsDir   = \"$(Split-Path -parent $MyInvocation.MyCommand.Definition)\"\n# Internal packages (organizations) or software that has redistribution rights (community repo)\n# - Use `Install-ChocolateyInstallPackage` instead of `Install-ChocolateyPackage`\n#   and put the binaries directly into the tools folder (we call it embedding)\n#$fileLocation = Join-Path $toolsDir 'NAME_OF_EMBEDDED_INSTALLER_FILE'\n# If embedding binaries increase total nupkg size to over 1GB, use share location or download from urls\n#$fileLocation = '\\\\SHARE_LOCATION\\to\\INSTALLER_FILE'\n# Community Repo: Use official urls for non-redist binaries or redist where total package size is over 200MB\n# Internal/Organization: Download from internal location (internet sources are unreliable)\n$url        = '{{DownloadUrl}}' # download url, HTTPS preferred\n$url64      = '{{DownloadUrlx64}}' # 64bit URL here (HTTPS preferred) or remove - if installer contains both (very rare), use $url\n\n$packageArgs = @{\n  packageName   = $env:ChocolateyPackageName\n  unzipLocation = $toolsDir\n  fileType      = 'exe' #only one of these: exe, msi, msu\n  url           = $url\n  url64bit      = $url64\n  #file         = $fileLocation\n\n  softwareName  = 'scc*' #part or all of the Display Name as you see it in Programs and Features. It should be enough to be unique\n\n  # Checksums are now required as of 0.10.0.\n  # To determine checksums, you can get that from the original site if provided. \n  # You can also use checksum.exe (choco install checksum) and use it \n  # e.g. checksum -t sha256 -f path\\to\\file\n  checksum      = '{{Checksum}}'\n  checksumType  = '{{ChecksumType}}' #default is md5, can also be sha1, sha256 or sha512\n  checksum64    = '{{Checksumx64}}'\n  checksumType64= '{{ChecksumTypex64}}' #default is checksumType\n\n  # MSI\n  silentArgs    = \"/qn /norestart /l*v `\"$($env:TEMP)\\$($packageName).$($env:chocolateyPackageVersion).MsiInstall.log`\"\" # ALLUSERS=1 DISABLEDESKTOPSHORTCUT=1 ADDDESKTOPICON=0 ADDSTARTMENU=0\n  validExitCodes= @(0, 3010, 1641)\n  # OTHERS\n  # Uncomment matching EXE type (sorted by most to least common)\n  #silentArgs   = '/S'           # NSIS\n  #silentArgs   = '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-' # Inno Setup\n  #silentArgs   = '/s'           # InstallShield\n  #silentArgs   = '/s /v\"/qn\"'   # InstallShield with MSI\n  #silentArgs   = '/s'           # Wise InstallMaster\n  #silentArgs   = '-s'           # Squirrel\n  #silentArgs   = '-q'           # Install4j\n  #silentArgs   = '-s'           # Ghost\n  # Note that some installers, in addition to the silentArgs above, may also need assistance of AHK to achieve silence.\n  #silentArgs   = ''             # none; make silent with input macro script like AutoHotKey (AHK)\n                                 #       https://chocolatey.org/packages/autohotkey.portable\n  #validExitCodes= @(0) #please insert other valid exit codes here\n}\n\nInstall-ChocolateyPackage @packageArgs # https://chocolatey.org/docs/helpers-install-chocolatey-package\n#Install-ChocolateyZipPackage @packageArgs # https://chocolatey.org/docs/helpers-install-chocolatey-zip-package\n## If you are making your own internal packages (organizations), you can embed the installer or \n## put on internal file share and use the following instead (you'll need to add $file to the above)\n#Install-ChocolateyInstallPackage @packageArgs # https://chocolatey.org/docs/helpers-install-chocolatey-install-package\n\n## Main helper functions - these have error handling tucked into them already\n## see https://chocolatey.org/docs/helpers-reference\n\n## Install an application, will assert administrative rights\n## - https://chocolatey.org/docs/helpers-install-chocolatey-package\n## - https://chocolatey.org/docs/helpers-install-chocolatey-install-package\n## add additional optional arguments as necessary\n##Install-ChocolateyPackage $packageName $fileType $silentArgs $url [$url64 -validExitCodes $validExitCodes -checksum $checksum -checksumType $checksumType -checksum64 $checksum64 -checksumType64 $checksumType64]\n\n## Download and unpack a zip file - https://chocolatey.org/docs/helpers-install-chocolatey-zip-package\n##Install-ChocolateyZipPackage $packageName $url $toolsDir [$url64 -checksum $checksum -checksumType $checksumType -checksum64 $checksum64 -checksumType64 $checksumType64]\n\n## Install Visual Studio Package - https://chocolatey.org/docs/helpers-install-chocolatey-vsix-package\n#Install-ChocolateyVsixPackage $packageName $url [$vsVersion] [-checksum $checksum -checksumType $checksumType]\n#Install-ChocolateyVsixPackage @packageArgs\n\n## see the full list at https://chocolatey.org/docs/helpers-reference\n\n## downloader that the main helpers use to download items\n## if removing $url64, please remove from here\n## - https://chocolatey.org/docs/helpers-get-chocolatey-web-file\n#Get-ChocolateyWebFile $packageName 'DOWNLOAD_TO_FILE_FULL_PATH' $url $url64\n\n## Installer, will assert administrative rights - used by Install-ChocolateyPackage\n## use this for embedding installers in the package when not going to community feed or when you have distribution rights\n## - https://chocolatey.org/docs/helpers-install-chocolatey-install-package\n#Install-ChocolateyInstallPackage $packageName $fileType $silentArgs '_FULLFILEPATH_' -validExitCodes $validExitCodes\n\n## Unzips a file to the specified location - auto overwrites existing content\n## - https://chocolatey.org/docs/helpers-get-chocolatey-unzip\n#Get-ChocolateyUnzip \"FULL_LOCATION_TO_ZIP.zip\" $toolsDir\n\n## Runs processes asserting UAC, will assert administrative rights - used by Install-ChocolateyInstallPackage\n## - https://chocolatey.org/docs/helpers-start-chocolatey-process-as-admin\n#Start-ChocolateyProcessAsAdmin 'STATEMENTS_TO_RUN' 'Optional_Application_If_Not_PowerShell' -validExitCodes $validExitCodes\n\n## To avoid quoting issues, you can also assemble your -Statements in another variable and pass it in\n#$appPath = \"$env:ProgramFiles\\appname\"\n##Will resolve to C:\\Program Files\\appname\n#$statementsToRun = \"/C `\"$appPath\\bin\\installservice.bat`\"\"\n#Start-ChocolateyProcessAsAdmin $statementsToRun cmd -validExitCodes $validExitCodes\n    \n## add specific folders to the path - any executables found in the chocolatey package \n## folder will already be on the path. This is used in addition to that or for cases \n## when a native installer doesn't add things to the path.\n## - https://chocolatey.org/docs/helpers-install-chocolatey-path\n#Install-ChocolateyPath 'LOCATION_TO_ADD_TO_PATH' 'User_OR_Machine' # Machine will assert administrative rights\n\n## Add specific files as shortcuts to the desktop\n## - https://chocolatey.org/docs/helpers-install-chocolatey-shortcut\n#$target = Join-Path $toolsDir \"$($packageName).exe\"\n# Install-ChocolateyShortcut -shortcutFilePath \"<path>\" -targetPath \"<path>\" [-workDirectory \"C:\\\" -arguments \"C:\\test.txt\" -iconLocation \"C:\\test.ico\" -description \"This is the description\"]\n\n## Outputs the bitness of the OS (either \"32\" or \"64\")\n## - https://chocolatey.org/docs/helpers-get-o-s-architecture-width\n#$osBitness = Get-ProcessorBits\n\n## Set persistent Environment variables\n## - https://chocolatey.org/docs/helpers-install-chocolatey-environment-variable\n#Install-ChocolateyEnvironmentVariable -variableName \"SOMEVAR\" -variableValue \"value\" [-variableType = 'Machine' #Defaults to 'User']\n\n## Set up a file association\n## - https://chocolatey.org/docs/helpers-install-chocolatey-file-association\n#Install-ChocolateyFileAssociation \n\n## Adding a shim when not automatically found - Cocolatey automatically shims exe files found in package directory.\n## - https://chocolatey.org/docs/helpers-install-bin-file\n## - https://chocolatey.org/docs/create-packages#how-do-i-exclude-executables-from-getting-shims\n#Install-BinFile\n\n##PORTABLE EXAMPLE\n#$toolsDir = \"$(Split-Path -parent $MyInvocation.MyCommand.Definition)\"\n# despite the name \"Install-ChocolateyZipPackage\" this also works with 7z archives\n#Install-ChocolateyZipPackage $packageName $url $toolsDir $url64\n## END PORTABLE EXAMPLE\n\n## [DEPRECATING] PORTABLE EXAMPLE\n#$binRoot = Get-BinRoot\n#$installDir = Join-Path $binRoot \"$packageName\"\n#Write-Host \"Adding `'$installDir`' to the path and the current shell path\"\n#Install-ChocolateyPath \"$installDir\"\n#$env:Path = \"$($env:Path);$installDir\"\n\n# if removing $url64, please remove from here\n# despite the name \"Install-ChocolateyZipPackage\" this also works with 7z archives\n#Install-ChocolateyZipPackage \"$packageName\" \"$url\" \"$installDir\" \"$url64\"\n## END PORTABLE EXAMPLE\n"
  },
  {
    "path": "packages/chocolatey/tools/chocolateyuninstall.ps1",
    "content": "﻿# IMPORTANT: Before releasing this package, copy/paste the next 2 lines into PowerShell to remove all comments from this file:\n#   $f='c:\\path\\to\\thisFile.ps1'\n#   gc $f | ? {$_ -notmatch \"^\\s*#\"} | % {$_ -replace '(^.*?)\\s*?[^``]#.*','$1'} | Out-File $f+\".~\" -en utf8; mv -fo $f+\".~\" $f\n\n## NOTE: In 80-90% of the cases (95% with licensed versions due to Package Synchronizer and other enhancements),\n## AutoUninstaller should be able to detect and handle registry uninstalls without a chocolateyUninstall.ps1.\n## See https://chocolatey.org/docs/commands-uninstall\n## and https://chocolatey.org/docs/helpers-uninstall-chocolatey-package\n\n## If this is an MSI, ensure 'softwareName' is appropriate, then clean up comments and you are done.\n## If this is an exe, change fileType, silentArgs, and validExitCodes\n\n$ErrorActionPreference = 'Stop'; # stop on all errors\n$packageArgs = @{\n  packageName   = $env:ChocolateyPackageName\n  softwareName  = 'scc*'  #part or all of the Display Name as you see it in Programs and Features. It should be enough to be unique\n  fileType      = 'EXE_MSI_OR_MSU' #only one of these: MSI or EXE (ignore MSU for now)\n  # MSI\n  silentArgs    = \"/qn /norestart\"\n  validExitCodes= @(0, 3010, 1605, 1614, 1641) # https://msdn.microsoft.com/en-us/library/aa376931(v=vs.85).aspx\n  # OTHERS\n  # Uncomment matching EXE type (sorted by most to least common)\n  #silentArgs   = '/S'           # NSIS\n  #silentArgs   = '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-' # Inno Setup\n  #silentArgs   = '/s'           # InstallShield\n  #silentArgs   = '/s /v\"/qn\"'   # InstallShield with MSI\n  #silentArgs   = '/s'           # Wise InstallMaster\n  #silentArgs   = '-s'           # Squirrel\n  #silentArgs   = '-q'           # Install4j\n  #silentArgs   = '-s -u'        # Ghost\n  # Note that some installers, in addition to the silentArgs above, may also need assistance of AHK to achieve silence.\n  #silentArgs   = ''             # none; make silent with input macro script like AutoHotKey (AHK)\n                                 #       https://chocolatey.org/packages/autohotkey.portable\n  #validExitCodes= @(0) #please insert other valid exit codes here\n}\n\n$uninstalled = $false\n# Get-UninstallRegistryKey is new to 0.9.10, if supporting 0.9.9.x and below,\n# take a dependency on \"chocolatey-core.extension\" in your nuspec file.\n# This is only a fuzzy search if $softwareName includes '*'. Otherwise it is \n# exact. In the case of versions in key names, we recommend removing the version\n# and using '*'.\n[array]$key = Get-UninstallRegistryKey -SoftwareName $packageArgs['softwareName']\n\nif ($key.Count -eq 1) {\n  $key | % { \n    $packageArgs['file'] = \"$($_.UninstallString)\"\n    if ($packageArgs['fileType'] -eq 'MSI') {\n      # The Product Code GUID is all that should be passed for MSI, and very \n      # FIRST, because it comes directly after /x, which is already set in the \n      # Uninstall-ChocolateyPackage msiargs (facepalm).\n      $packageArgs['silentArgs'] = \"$($_.PSChildName) $($packageArgs['silentArgs'])\"\n      \n      # Don't pass anything for file, it is ignored for msi (facepalm number 2) \n      # Alternatively if you need to pass a path to an msi, determine that and \n      # use it instead of the above in silentArgs, still very first\n      $packageArgs['file'] = ''\n    }\n\n    Uninstall-ChocolateyPackage @packageArgs\n  }\n} elseif ($key.Count -eq 0) {\n  Write-Warning \"$packageName has already been uninstalled by other means.\"\n} elseif ($key.Count -gt 1) {\n  Write-Warning \"$($key.Count) matches found!\"\n  Write-Warning \"To prevent accidental data loss, no programs will be uninstalled.\"\n  Write-Warning \"Please alert package maintainer the following keys were matched:\"\n  $key | % {Write-Warning \"- $($_.DisplayName)\"}\n}\n\n## OTHER POWERSHELL FUNCTIONS\n## https://chocolatey.org/docs/helpers-reference\n#Uninstall-ChocolateyZipPackage $packageName # Only necessary if you did not unpack to package directory - see https://chocolatey.org/docs/helpers-uninstall-chocolatey-zip-package\n#Uninstall-ChocolateyEnvironmentVariable # 0.9.10+ - https://chocolatey.org/docs/helpers-uninstall-chocolatey-environment-variable \n#Uninstall-BinFile # Only needed if you used Install-BinFile - see https://chocolatey.org/docs/helpers-uninstall-bin-file\n## Remove any shortcuts you added in the install script.\n\n"
  },
  {
    "path": "processor/bloom.go",
    "content": "package processor\n\nimport \"math/rand/v2\"\n\nvar BloomTable [256]uint64\n\nfunc init() {\n\tfor i := range BloomTable {\n\t\tBloomTable[i] = BloomHash(byte(i))\n\t}\n}\n\nfunc BloomHash(b byte) uint64 {\n\t// Since our input is based on ASCII characters (and majority lower case\n\t// characters) the values are not well distributed through the 0-255 byte\n\t// range. math/rand gives us a way to generate a value with more well\n\t// distributed randomness.\n\tk := rand.New(rand.NewPCG(uint64(b), uint64(b))).Uint64()\n\n\t// Mask to slice out a 0-63 value\n\tvar mask64 uint64 = 0b00111111\n\n\t// For a bloom filter we only want a few bits set, but distributed\n\t// through the 64 bit space.\n\t// The logic here is to slice a value between 0 and 63 from k, and set a\n\t// single bit in the output hash based on that.\n\t// Setting three bits this way seems to give the best results. Fewer bits\n\t// make the hash not unique enough, more leads to overcrowding the bloom\n\t// filter.\n\tvar hash uint64\n\tfor i := uint64(0); i < 3; i++ {\n\t\tn := k >> (i * 8) & mask64\n\t\thash |= 1 << n\n\t}\n\n\treturn hash\n}\n"
  },
  {
    "path": "processor/cocomo.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"math\"\n)\n\n// Basic COCOMO Params from Boehm\n//\n// Organic – A software project is said to be an organic type if the team size required is adequately small, the\n// problem is well understood and has been solved in the past and also the team members have a nominal experience\n// regarding the problem.\n// Semi-detached – A software project is said to be a Semi-detached type if the vital characteristics such as team-size,\n// experience, knowledge of the various programming environment lie in between that of organic and Embedded.\n// The projects classified as Semi-Detached are comparatively less familiar and difficult to develop compared to\n// the organic ones and require more experience and better guidance and creativity. Eg: Compilers or\n// different Embedded Systems can be considered of Semi-Detached type.\n// Embedded – A software project with requiring the highest level of complexity, creativity, and experience\n// requirement fall under this category. Such software requires a larger team size than the other two models\n// and also the developers need to be sufficiently experienced and creative to develop such complex models.\nvar projectType = map[string][]float64{\n\t\"organic\":       {2.4, 1.05, 2.5, 0.38},\n\t\"semi-detached\": {3.0, 1.12, 2.5, 0.35},\n\t\"embedded\":      {3.6, 1.20, 2.5, 0.32},\n}\n\n// EstimateCost calculates the cost in dollars applied using generic COCOMO weighted values based\n// on the average yearly wage\nfunc EstimateCost(effortApplied float64, averageWage int64, overhead float64) float64 {\n\treturn effortApplied * float64(averageWage/12) * overhead\n}\n\n// EstimateEffort calculate the effort applied using generic COCOMO weighted values\nfunc EstimateEffort(sloc int64, eaf float64) float64 {\n\tvar effortApplied = projectType[CocomoProjectType][0] * math.Pow(float64(sloc)/1000, projectType[CocomoProjectType][1]) * eaf\n\treturn effortApplied\n}\n\n// EstimateScheduleMonths estimates the effort in months based on the result from EstimateEffort\nfunc EstimateScheduleMonths(effortApplied float64) float64 {\n\treturn projectType[CocomoProjectType][2] * math.Pow(effortApplied, projectType[CocomoProjectType][3])\n}\n"
  },
  {
    "path": "processor/cocomo_test.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"testing\"\n)\n\nfunc TestEstimateCost(t *testing.T) {\n\teff := EstimateEffort(26, 1)\n\tgot := EstimateCost(eff, 56000, 2.4)\n\n\t// Should be around 582\n\tif got < 580 || got > 585 {\n\t\tt.Errorf(\"Got %f\", got)\n\t}\n}\n\nfunc TestEstimateCostManyLines(t *testing.T) {\n\teff := EstimateEffort(77873, 1)\n\tgot := EstimateCost(eff, 56000, 2.4)\n\n\t// Should be around 2602096\n\tif got < 2602000 || got > 2602100 {\n\t\tt.Errorf(\"Got %f\", got)\n\t}\n}\n\nfunc TestEstimateScheduleMonths(t *testing.T) {\n\teff := EstimateEffort(537, 1)\n\tgot := EstimateScheduleMonths(eff)\n\n\t// Should be around 2.7\n\tif got < 2.6 || got > 2.8 {\n\t\tt.Errorf(\"Got %f\", got)\n\t}\n}\n"
  },
  {
    "path": "processor/constants.go",
    "content": "// Code generated by scripts/include.go using 'go generate'. DO NOT EDIT.\npackage processor\n\n// Raw languageDatabase loaded\nvar languageDatabase = map[string]Language{\n\t\"ABAP\": {\n\t\tLineComment: []string{\n\t\t\t\"*\",\n\t\t\t\"\\\\\\\"\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"abap\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ABNF\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"=/ \",\n\t\t\t\"/ \",\n\t\t\t\"% \",\n\t\t\t\"( \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"abnf\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"APL\": {\n\t\tLineComment: []string{\n\t\t\t\"⍝\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\":For \",\n\t\t\t\":If \",\n\t\t\t\":Case \",\n\t\t\t\":CaseList \",\n\t\t\t\":While \",\n\t\t\t\":Repeat \",\n\t\t\t\":Else \",\n\t\t\t\"∨\",\n\t\t\t\"∧\",\n\t\t\t\"≠\",\n\t\t\t\"~\",\n\t\t\t\"¨\",\n\t\t\t\"=\",\n\t\t\t\":\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"apl\",\n\t\t\t\"aplf\",\n\t\t\t\"apln\",\n\t\t\t\"aplc\",\n\t\t\t\"dyalog\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ASP\": {\n\t\tLineComment: []string{\n\t\t\t\"'\",\n\t\t\t\"REM\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"asa\",\n\t\t\t\"asp\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ASP.NET\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"asax\",\n\t\t\t\"ascx\",\n\t\t\t\"asmx\",\n\t\t\t\"aspx\",\n\t\t\t\"master\",\n\t\t\t\"sitemap\",\n\t\t\t\"webinfo\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"<%--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ATS\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\" then \",\n\t\t\t\" else \",\n\t\t\t\"case+ \",\n\t\t\t\"ifcase\",\n\t\t\t\"let \",\n\t\t\t\"and \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"dats\",\n\t\t\t\"sats\",\n\t\t\t\"ats\",\n\t\t\t\"hats\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"////\",\n\t\t\t\t\"THISSHOULDNEVERAPPEARWEHOPE\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"AWK\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"else \",\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"awk\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"awk\",\n\t\t\t\"gawk\",\n\t\t\t\"mawk\",\n\t\t\t\"nawk\",\n\t\t},\n\t},\n\t\"ActionScript\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"as\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Ada\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ada\",\n\t\t\t\"adb\",\n\t\t\t\"ads\",\n\t\t\t\"pad\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Agda\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"agda\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{-\",\n\t\t\t\t\"-}\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Alchemist\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"+\",\n\t\t\t\"->\",\n\t\t\t\"!\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"crn\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Alex\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"x\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Algol 68\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"IF \",\n\t\t\t\"ELIF \",\n\t\t\t\"ELSE \",\n\t\t\t\"FOR \",\n\t\t\t\"WHILE \",\n\t\t\t\"CASE \",\n\t\t\t\"OUSE \",\n\t\t\t\"AND \",\n\t\t\t\"OR \",\n\t\t\t\"EQ \",\n\t\t\t\"NE \",\n\t\t\t\"IS \",\n\t\t\t\"ISNT \",\n\t\t\t\"IS NOT \",\n\t\t\t\"~= \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"a68\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"#\",\n\t\t\t\t\"#\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"CO\",\n\t\t\t\t\"CO\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"COMMENT\",\n\t\t\t\t\"COMMENT\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Alloy\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"implies \",\n\t\t\t\"else \",\n\t\t\t\"for \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"<= \",\n\t\t\t\">= \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"als\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Amber\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"exited(\",\n\t\t\t\"failed \",\n\t\t\t\"failed(\",\n\t\t\t\"succeeded \",\n\t\t\t\"if \",\n\t\t\t\"then \",\n\t\t\t\"while \",\n\t\t\t\"loop \",\n\t\t\t\"else:\",\n\t\t\t\"else \",\n\t\t\t\"or \",\n\t\t\t\"and \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ab\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"amber\",\n\t\t},\n\t},\n\t\"Android Interface Definition Language\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"aidl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/**\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Apex\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"else{\",\n\t\t\t\"try \",\n\t\t\t\"try{\",\n\t\t\t\"catch \",\n\t\t\t\"catch(\",\n\t\t\t\"finally \",\n\t\t\t\"finally{\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"apex\",\n\t\t\t\"trigger\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"AppleScript\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"considering \",\n\t\t\t\"ignoring \",\n\t\t\t\"repeat \",\n\t\t\t\"while \",\n\t\t\t\"if \",\n\t\t\t\"else \",\n\t\t\t\"else if \",\n\t\t\t\"try \",\n\t\t\t\"on error \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"applescript\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ArkTs\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"!== \",\n\t\t\t\"== \",\n\t\t\t\"=== \",\n\t\t\t\"case \",\n\t\t\t\"case(\",\n\t\t\t\"?.\",\n\t\t\t\"?? \",\n\t\t\t\"??= \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ets\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Arturo\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"loop \",\n\t\t\t\"map \",\n\t\t\t\"select \",\n\t\t\t\"if \",\n\t\t\t\"if? \",\n\t\t\t\"while \",\n\t\t\t\"function \",\n\t\t\t\"or? \",\n\t\t\t\"and? \",\n\t\t\t\"not? \",\n\t\t\t\"<> \",\n\t\t\t\"= \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"art\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"AsciiDoc\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"adoc\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Assembly\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"s\",\n\t\t\t\"asm\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Astro\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\".map\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"astro\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"AutoHotKey\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ahk\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Autoconf\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t\t\"dnl\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"in\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Avro\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"avdl\",\n\t\t\t\"avpr\",\n\t\t\t\"avsc\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"BASH\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"bash\",\n\t\t\t\"bash_login\",\n\t\t\t\"bash_logout\",\n\t\t\t\"bash_profile\",\n\t\t\t\"bashrc\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames: []string{\n\t\t\t\".bash_login\",\n\t\t\t\".bash_logout\",\n\t\t\t\".bash_profile\",\n\t\t\t\".bashrc\",\n\t\t},\n\t\tSheBangs: []string{\n\t\t\t\"bash\",\n\t\t},\n\t},\n\t\"Basic\": {\n\t\tLineComment: []string{\n\t\t\t\"'\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"elseif \",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"bas\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Batch\": {\n\t\tLineComment: []string{\n\t\t\t\"REM\",\n\t\t\t\"::\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"bat\",\n\t\t\t\"btm\",\n\t\t\t\"cmd\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Bazel\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"bzl\",\n\t\t\t\"build.bazel\",\n\t\t\t\"build\",\n\t\t\t\"workspace\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Bean\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"bean\",\n\t\t\t\"beancount\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Bicep\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"@minLength(\",\n\t\t\t\"@maxLength(\",\n\t\t\t\"@secure(\",\n\t\t\t\"[for \",\n\t\t\t\"if(\",\n\t\t\t\"if (\",\n\t\t\t\" == \",\n\t\t\t\" != \",\n\t\t\t\" ? \",\n\t\t\t\"using \",\n\t\t\t\"range(\",\n\t\t\t\"type \",\n\t\t\t\"func \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"bicep\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Bitbake\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"bb\",\n\t\t\t\"bbappend\",\n\t\t\t\"bbclass\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Bitbucket Pipeline\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"bitbucket-pipelines.yml\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Blade template\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"@for \",\n\t\t\t\"@for(\",\n\t\t\t\"@foreach \",\n\t\t\t\"@foreach(\",\n\t\t\t\"@forelse \",\n\t\t\t\"@forelse(\",\n\t\t\t\"@each \",\n\t\t\t\"@each (\",\n\t\t\t\"@while \",\n\t\t\t\"@while(\",\n\t\t\t\"@if \",\n\t\t\t\"@if(\",\n\t\t\t\"@unless \",\n\t\t\t\"@unless(\",\n\t\t\t\"@isset \",\n\t\t\t\"@isset(\",\n\t\t\t\"@empty \",\n\t\t\t\"@empty(\",\n\t\t\t\"@else \",\n\t\t\t\"@elseif \",\n\t\t\t\"@elseif(\",\n\t\t\t\"@while \",\n\t\t\t\"@while(\",\n\t\t\t\"@switch \",\n\t\t\t\"@switch (\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"blade.php\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{{--\",\n\t\t\t\t\"--}}\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Blueprint\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"blp\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Boo\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"elif \",\n\t\t\t\"unless \",\n\t\t\t\" and \",\n\t\t\t\"for \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"boo\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Bosque\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"match \",\n\t\t\t\"case \",\n\t\t\t\"| \",\n\t\t\t\"|| \",\n\t\t\t\"& \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"!== \",\n\t\t\t\"== \",\n\t\t\t\"=== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"bsq\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Brainfuck\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"[\",\n\t\t\t\"]\",\n\t\t\t\"<\",\n\t\t\t\">\",\n\t\t\t\"+\",\n\t\t\t\"-\",\n\t\t\t\".\",\n\t\t\t\",\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"bf\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Bru\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"bru\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"BuildStream\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"bst\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"C\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"c\",\n\t\t\t\"ec\",\n\t\t\t\"pgc\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"C Header\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"case \",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"h\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"C Shell\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"csh\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames: []string{\n\t\t\t\".cshrc\",\n\t\t},\n\t\tSheBangs: []string{\n\t\t\t\"csh\",\n\t\t\t\"tcsh\",\n\t\t},\n\t},\n\t\"C#\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"foreach \",\n\t\t\t\"foreach(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cs\",\n\t\t\t\"csx\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"@\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"dotnet\",\n\t\t},\n\t},\n\t\"C++\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cc\",\n\t\t\t\"cpp\",\n\t\t\t\"cxx\",\n\t\t\t\"c++\",\n\t\t\t\"pcc\",\n\t\t\t\"ino\",\n\t\t\t\"ccm\",\n\t\t\t\"cppm\",\n\t\t\t\"cxxm\",\n\t\t\t\"c++m\",\n\t\t\t\"mxx\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"C++ Header\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"hh\",\n\t\t\t\"hpp\",\n\t\t\t\"hxx\",\n\t\t\t\"inl\",\n\t\t\t\"ipp\",\n\t\t\t\"ixx\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"C3\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"foreach \",\n\t\t\t\"foreach(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"case \",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"defer \",\n\t\t\t\"macro \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"c3\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"<*\",\n\t\t\t\t\"*>\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"CMake\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"foreach \",\n\t\t\t\"foreach(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"elseif \",\n\t\t\t\"elseif(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"else(\",\n\t\t\t\"OR \",\n\t\t\t\"AND \",\n\t\t\t\"EQUAL \",\n\t\t\t\"STREQUAL \",\n\t\t\t\"VERSION_EQUAL \",\n\t\t\t\"PATH_EQUAL \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cmake\",\n\t\t\t\"cmakelists.txt\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"#[[\",\n\t\t\t\t\"]]\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"COBOL\": {\n\t\tLineComment: []string{\n\t\t\t\"*\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cob\",\n\t\t\t\"cbl\",\n\t\t\t\"ccp\",\n\t\t\t\"cobol\",\n\t\t\t\"cpy\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"CSS\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"css\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"CSV\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"csv\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Cabal\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cabal\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{-\",\n\t\t\t\t\"-}\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Cairo\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"loop \",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"match \",\n\t\t\t\"match(\",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cairo\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Cangjie\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cj\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Cap'n Proto\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"capnp\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Cassius\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cassius\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Ceylon\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ceylon\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Chapel\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"do \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"chpl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Circom\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"else(\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"circom\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Clipper\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t\t\"&&\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"do while \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"elseif \",\n\t\t\t\"else(\",\n\t\t\t\"switch \",\n\t\t\t\"case \",\n\t\t\t\"otherwise \",\n\t\t\t\"begin sequence \",\n\t\t\t\"end sequence \",\n\t\t\t\"begin sequence(\",\n\t\t\t\"try \",\n\t\t\t\"catch \",\n\t\t\t\"finally \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"prg\",\n\t\t\t\"ch\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Clojure\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"(for \",\n\t\t\t\"(when \",\n\t\t\t\"(loop \",\n\t\t\t\"(doseq \",\n\t\t\t\"(cond \",\n\t\t\t\"(if\",\n\t\t\t\"(if-not \",\n\t\t\t\"(and \",\n\t\t\t\"(or \",\n\t\t\t\"(not \",\n\t\t\t\"(= \",\n\t\t\t\"(not= \",\n\t\t\t\"(recur \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"clj\",\n\t\t\t\"cljc\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ClojureScript\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cljs\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Closure Template\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\">= \",\n\t\t\t\"<= \",\n\t\t\t\"?: \",\n\t\t\t\"? : \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"soy\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/**\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"CloudFormation (JSON)\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"!GetAtt\",\n\t\t\t\"!Sub\",\n\t\t\t\"!Select\",\n\t\t\t\"!Equals\",\n\t\t\t\"!If\",\n\t\t\t\"DependsOn:\",\n\t\t\t\"!Select\",\n\t\t\t\"!Equals\",\n\t\t\t\"!If\",\n\t\t\t\"Fn::If\",\n\t\t\t\"Fn::And\",\n\t\t\t\"Fn::Equals\",\n\t\t\t\"Fn::Not\",\n\t\t\t\"Fn::Or\",\n\t\t\t\"Fn::Base64\",\n\t\t\t\"Fn::Cidr\",\n\t\t\t\"Fn::FindInMap\",\n\t\t\t\"Fn::GetAtt\",\n\t\t\t\"Fn::GetAZs\",\n\t\t\t\"Fn::ImportValue\",\n\t\t\t\"Fn::Join\",\n\t\t\t\"Fn::Select\",\n\t\t\t\"Fn::Split\",\n\t\t\t\"Fn::Sub\",\n\t\t\t\"Fn::Transform\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"json\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords: []string{\n\t\t\t\"\\\"AWSTemplateFormatVersion\\\"\",\n\t\t\t\"AWS::\",\n\t\t\t\"!GetAtt\",\n\t\t\t\"!Sub\",\n\t\t\t\"\\\"DependsOn\\\"\",\n\t\t\t\"!Select\",\n\t\t\t\"!Equals\",\n\t\t\t\"!If\",\n\t\t\t\"Fn::If\",\n\t\t\t\"Fn::And\",\n\t\t\t\"Fn::Equals\",\n\t\t\t\"Fn::Not\",\n\t\t\t\"Fn::Or\",\n\t\t\t\"Fn::Base64\",\n\t\t\t\"Fn::Cidr\",\n\t\t\t\"Fn::FindInMap\",\n\t\t\t\"Fn::GetAtt\",\n\t\t\t\"Fn::GetAZs\",\n\t\t\t\"Fn::ImportValue\",\n\t\t\t\"Fn::Join\",\n\t\t\t\"Fn::Select\",\n\t\t\t\"Fn::Split\",\n\t\t\t\"Fn::Sub\",\n\t\t\t\"Fn::Transform\",\n\t\t},\n\t\tFileNames: []string{},\n\t\tSheBangs:  []string{},\n\t},\n\t\"CloudFormation (YAML)\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"!GetAtt\",\n\t\t\t\"!Sub\",\n\t\t\t\"!Select\",\n\t\t\t\"!Equals\",\n\t\t\t\"!If\",\n\t\t\t\"DependsOn:\",\n\t\t\t\"!Select\",\n\t\t\t\"!Equals\",\n\t\t\t\"!If\",\n\t\t\t\"Fn::If\",\n\t\t\t\"Fn::And\",\n\t\t\t\"Fn::Equals\",\n\t\t\t\"Fn::Not\",\n\t\t\t\"Fn::Or\",\n\t\t\t\"Fn::Base64\",\n\t\t\t\"Fn::Cidr\",\n\t\t\t\"Fn::FindInMap\",\n\t\t\t\"Fn::GetAtt\",\n\t\t\t\"Fn::GetAZs\",\n\t\t\t\"Fn::ImportValue\",\n\t\t\t\"Fn::Join\",\n\t\t\t\"Fn::Select\",\n\t\t\t\"Fn::Split\",\n\t\t\t\"Fn::Sub\",\n\t\t\t\"Fn::Transform\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"yaml\",\n\t\t\t\"yml\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords: []string{\n\t\t\t\"Resources:\",\n\t\t\t\"AWSTemplateFormatVersion:\",\n\t\t\t\"Description:\",\n\t\t\t\"AWS::\",\n\t\t\t\"Properties:\",\n\t\t\t\"Name:\",\n\t\t\t\"Type:\",\n\t\t\t\"!GetAtt\",\n\t\t\t\"!Sub\",\n\t\t\t\"Statement:\",\n\t\t\t\"Ref:\",\n\t\t\t\"DependsOn:\",\n\t\t\t\"!Select\",\n\t\t\t\"!Equals\",\n\t\t\t\"!If\",\n\t\t\t\"Fn::If\",\n\t\t\t\"Fn::And\",\n\t\t\t\"Fn::Equals\",\n\t\t\t\"Fn::Not\",\n\t\t\t\"Fn::Or\",\n\t\t\t\"Fn::Base64\",\n\t\t\t\"Fn::Cidr\",\n\t\t\t\"Fn::FindInMap\",\n\t\t\t\"Fn::GetAtt\",\n\t\t\t\"Fn::GetAZs\",\n\t\t\t\"Fn::ImportValue\",\n\t\t\t\"Fn::Join\",\n\t\t\t\"Fn::Select\",\n\t\t\t\"Fn::Split\",\n\t\t\t\"Fn::Sub\",\n\t\t\t\"Fn::Transform\",\n\t\t},\n\t\tFileNames: []string{},\n\t\tSheBangs:  []string{},\n\t},\n\t\"CodeQL\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"implies \",\n\t\t\t\"if \",\n\t\t\t\"else \",\n\t\t\t\"not \",\n\t\t\t\"instanceof \",\n\t\t\t\"in \",\n\t\t\t\"exists(\",\n\t\t\t\"forall( \",\n\t\t\t\"avg(\",\n\t\t\t\"concat(\",\n\t\t\t\"count(\",\n\t\t\t\"max(\",\n\t\t\t\"min(\",\n\t\t\t\"rank(\",\n\t\t\t\"strictconcat(\",\n\t\t\t\"strictcount(\",\n\t\t\t\"strictsum(\",\n\t\t\t\"sum(\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ql\",\n\t\t\t\"qll\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"CoffeeScript\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"coffee\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"###\",\n\t\t\t\t\"###\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Cogent\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cogent\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ColdFusion\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cfm\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!---\",\n\t\t\t\t\"--->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ColdFusion CFScript\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cfc\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Coq\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"v\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords: []string{\n\t\t\t\"Require\",\n\t\t\t\"Hypothesis\",\n\t\t\t\"Inductive\",\n\t\t\t\"Remark\",\n\t\t\t\"Lemma\",\n\t\t\t\"Proof\",\n\t\t\t\"Definition\",\n\t\t\t\"Theorem\",\n\t\t\t\"Class\",\n\t\t\t\"Instance\",\n\t\t\t\"Module\",\n\t\t\t\"Context\",\n\t\t\t\"Section\",\n\t\t\t\"Notation\",\n\t\t\t\"End\",\n\t\t\t\"Fixpoint\",\n\t\t\t\"From Coq\",\n\t\t},\n\t\tFileNames: []string{},\n\t\tSheBangs:  []string{},\n\t},\n\t\"Creole\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"creole\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Crystal\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cr\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Cuda\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cu\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Cypher\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"MATCH\",\n\t\t\t\"OPTIONAL MATCH\",\n\t\t\t\"WHERE\",\n\t\t\t\"UNION\",\n\t\t\t\"CALL\",\n\t\t\t\"UNWIND\",\n\t\t\t\"STARTS WITH\",\n\t\t\t\"ENDS WITH\",\n\t\t\t\"CONTAINS\",\n\t\t\t\"shortestPath\",\n\t\t\t\"allShortestPaths\",\n\t\t\t\"-[*..]->\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cypher\",\n\t\t\t\"cql\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Cython\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"not \",\n\t\t\t\"in \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"pyx\",\n\t\t\t\"pxi\",\n\t\t\t\"pxd\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"D\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"d\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"/+\",\n\t\t\t\t\"+/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"rdmd\",\n\t\t},\n\t},\n\t\"D2\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"d2\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"DAML\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if \",\n\t\t\t\"then \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"/= \",\n\t\t\t\"== \",\n\t\t\t\"case \",\n\t\t\t\"do {\",\n\t\t\t\"forall \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"daml\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{-\",\n\t\t\t\t\"-}\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"DM\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"||\",\n\t\t\t\"&&\",\n\t\t\t\"!=\",\n\t\t\t\"<>\",\n\t\t\t\"==\",\n\t\t\t\"in \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"dm\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"DOT\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"dot\",\n\t\t\t\"gv\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Dart\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"dart\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Device Tree\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"dts\",\n\t\t\t\"dtsi\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Dhall\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"dhall\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{-\",\n\t\t\t\t\"-}\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Docker ignore\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions:       []string{},\n\t\tExtensionFile:    false,\n\t\tMultiLine:        [][]string{},\n\t\tQuotes:           []Quote{},\n\t\tNestedMultiLine:  false,\n\t\tKeywords:         []string{},\n\t\tFileNames: []string{\n\t\t\t\".dockerignore\",\n\t\t},\n\t\tSheBangs: []string{},\n\t},\n\t\"Dockerfile\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"dockerfile\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames: []string{\n\t\t\t\"dockerfile\",\n\t\t},\n\t\tSheBangs: []string{},\n\t},\n\t\"Document Type Definition\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"dtd\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Elixir\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"case \",\n\t\t\t\"cond \",\n\t\t\t\"if \",\n\t\t\t\"for \",\n\t\t\t\"with \",\n\t\t\t\"try \",\n\t\t\t\"catch \",\n\t\t\t\"rescue \",\n\t\t\t\"else \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"not \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"|> \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ex\",\n\t\t\t\"exs\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Elixir Template\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"case \",\n\t\t\t\"cond \",\n\t\t\t\"if \",\n\t\t\t\"for \",\n\t\t\t\"with \",\n\t\t\t\"try \",\n\t\t\t\"catch \",\n\t\t\t\"rescue \",\n\t\t\t\"else \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"not \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"|> \",\n\t\t\t\"<% \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"eex\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Elm\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"case \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"elm\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{-\",\n\t\t\t\t\"-}\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Emacs Dev Env\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ede\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Emacs Lisp\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"el\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"EmiT\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"warp \",\n\t\t\t\"time \",\n\t\t\t\"kills \",\n\t\t\t\"collapse \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"emit\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Erlang\": {\n\t\tLineComment: []string{\n\t\t\t\"%\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"erl\",\n\t\t\t\"hrl\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"escript\",\n\t\t},\n\t},\n\t\"Expect\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"exp\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Extensible Stylesheet Language Transformations\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"xslt\",\n\t\t\t\"xsl\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"F#\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"match \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"fs\",\n\t\t\t\"fsi\",\n\t\t\t\"fsx\",\n\t\t\t\"fsscript\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"F*\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"fst\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"FIDL\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"fidl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"FORTRAN Legacy\": {\n\t\tLineComment: []string{\n\t\t\t\"c\",\n\t\t\t\"C\",\n\t\t\t\"!\",\n\t\t\t\"*\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"f\",\n\t\t\t\"for\",\n\t\t\t\"ftn\",\n\t\t\t\"f77\",\n\t\t\t\"pfo\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"FSL\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"->\",\n\t\t\t\"<-\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"fsl\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"FXML\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"fxml\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Factor\": {\n\t\tLineComment: []string{\n\t\t\t\"!\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if\",\n\t\t\t\"when\",\n\t\t\t\"unless\",\n\t\t\t\"if*\",\n\t\t\t\"when*\",\n\t\t\t\"unless*\",\n\t\t\t\"?if\",\n\t\t\t\"?\",\n\t\t\t\"cond\",\n\t\t\t\"case\",\n\t\t\t\"cond>quot\",\n\t\t\t\"case>quot\",\n\t\t\t\"alist>quot\",\n\t\t\t\"while\",\n\t\t\t\"until\",\n\t\t\t\"loop\",\n\t\t\t\"0&&\",\n\t\t\t\"1&&\",\n\t\t\t\"2&&\",\n\t\t\t\"3&&\",\n\t\t\t\"n&&\",\n\t\t\t\"&&\",\n\t\t\t\"0||\",\n\t\t\t\"1||\",\n\t\t\t\"2||\",\n\t\t\t\"3||\",\n\t\t\t\"n||\",\n\t\t\t\"||\",\n\t\t\t\"and\",\n\t\t\t\"or\",\n\t\t\t\"xor\",\n\t\t\t\"eq\",\n\t\t\t\"=\",\n\t\t\t\"smart-if\",\n\t\t\t\"smart-if*\",\n\t\t\t\"smart-when\",\n\t\t\t\"smart-when*\",\n\t\t\t\"smart-unless\",\n\t\t\t\"smart-unless*\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"factor\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"![[\",\n\t\t\t\t\"]]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"![=[\",\n\t\t\t\t\"]=]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"![==[\",\n\t\t\t\t\"]==]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"![===[\",\n\t\t\t\t\"]===]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"![====[\",\n\t\t\t\t\"]====]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"![=====[\",\n\t\t\t\t\"]=====]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"![======[\",\n\t\t\t\t\"]======]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"((\",\n\t\t\t\t\"))\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"STRING:\",\n\t\t\t\tEnd:          \";\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"[======[\",\n\t\t\t\tEnd:          \"]======]\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"[=====[\",\n\t\t\t\tEnd:          \"]====]\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"[====[\",\n\t\t\t\tEnd:          \"]====]\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"[===[\",\n\t\t\t\tEnd:          \"]===]\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"[==[\",\n\t\t\t\tEnd:          \"]==]\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"[=[\",\n\t\t\t\tEnd:          \"]=]\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"[[\",\n\t\t\t\tEnd:          \"]]\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Fennel\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"(for\",\n\t\t\t\"(each\",\n\t\t\t\"(if\",\n\t\t\t\"(when\",\n\t\t\t\"(while\",\n\t\t\t\"(switch\",\n\t\t\t\"(do\",\n\t\t\t\"(..\",\n\t\t\t\"(=\",\n\t\t\t\"(and\",\n\t\t\t\"(or\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"fnl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \",\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Fish\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"fish\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"fish\",\n\t\t},\n\t},\n\t\"Flow9\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"else \",\n\t\t\t\"else{\",\n\t\t\t\"fori \",\n\t\t\t\"fori(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"fold \",\n\t\t\t\"fold(\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"|> \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"flow\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Forth\": {\n\t\tLineComment: []string{\n\t\t\t\"\\\\\\\\\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"4th\",\n\t\t\t\"forth\",\n\t\t\t\"fr\",\n\t\t\t\"frt\",\n\t\t\t\"fth\",\n\t\t\t\"f83\",\n\t\t\t\"fb\",\n\t\t\t\"fpm\",\n\t\t\t\"e4\",\n\t\t\t\"rx\",\n\t\t\t\"ft\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"( \",\n\t\t\t\t\")\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Fortran Modern\": {\n\t\tLineComment: []string{\n\t\t\t\"!\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"f03\",\n\t\t\t\"f08\",\n\t\t\t\"f90\",\n\t\t\t\"f95\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Fragment Shader File\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"fsh\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Freemarker Template\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"<#list \",\n\t\t\t\"<#assign \",\n\t\t\t\"<#if \",\n\t\t\t\"<#elseif \",\n\t\t\t\"<#else>\",\n\t\t\t\"<#else> \",\n\t\t\t\"<#switch  \",\n\t\t\t\"<#case \",\n\t\t\t\"<#default>\",\n\t\t\t\"<#default> \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ftl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<#--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Futhark\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if \",\n\t\t\t\"else \",\n\t\t\t\"then \",\n\t\t\t\"for \",\n\t\t\t\"loop \",\n\t\t\t\"while \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\">= \",\n\t\t\t\"<= \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"fut\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"GDScript\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"gd\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"GLSL\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"vert\",\n\t\t\t\"tesc\",\n\t\t\t\"tese\",\n\t\t\t\"geom\",\n\t\t\t\"frag\",\n\t\t\t\"comp\",\n\t\t\t\"glsl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"GN\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if(\",\n\t\t\t\"if (\",\n\t\t\t\"else if(\",\n\t\t\t\"else if (\",\n\t\t\t\"else(\",\n\t\t\t\"else (\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"gn\",\n\t\t\t\"gni\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Game Maker Language\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t\t\"///\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"repeat \",\n\t\t\t\"repeat(\",\n\t\t\t\"|| \",\n\t\t\t\"or \",\n\t\t\t\"&& \",\n\t\t\t\"and \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"gml\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Game Maker Project\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"yyp\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Gemfile\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions:       []string{},\n\t\tExtensionFile:    false,\n\t\tMultiLine:        [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames: []string{\n\t\t\t\"gemfile\",\n\t\t},\n\t\tSheBangs: []string{},\n\t},\n\t\"Gherkin Specification\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"given\",\n\t\t\t\"when\",\n\t\t\t\"then\",\n\t\t\t\"and\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"feature\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Gleam\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t\t\"///\",\n\t\t\t\"////\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"fn \",\n\t\t\t\"case \",\n\t\t\t\"-> \",\n\t\t\t\"if \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"gleam\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Go\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"go \",\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"for{\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"switch{\",\n\t\t\t\"select \",\n\t\t\t\"select{\",\n\t\t\t\"else \",\n\t\t\t\"else{\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"go\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Go Template\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"{{if \",\n\t\t\t\"{{ if \",\n\t\t\t\"{{else\",\n\t\t\t\"{{ else\",\n\t\t\t\"{{range \",\n\t\t\t\"{{ range \",\n\t\t\t\"{{with\",\n\t\t\t\"{{ with\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"tmpl\",\n\t\t\t\"gohtml\",\n\t\t\t\"gotxt\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{{/*\",\n\t\t\t\t\"*/}}\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Go+\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"go \",\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"select \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"?:\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"gop\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"gop\",\n\t\t},\n\t},\n\t\"Godot Scene\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"tscn\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Gradle\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"gradle\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"GraphQL\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"type \",\n\t\t\t\"input \",\n\t\t\t\"query \",\n\t\t\t\"mutation \",\n\t\t\t\"subscription \",\n\t\t\t\"directive \",\n\t\t\t\"scalar \",\n\t\t\t\"enum \",\n\t\t\t\"interface \",\n\t\t\t\"union \",\n\t\t\t\"fragment \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"graphql\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"\\\"\\\"\\\"\",\n\t\t\t\t\"\\\"\\\"\\\"\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Gremlin\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\".where(\",\n\t\t\t\".union(\",\n\t\t\t\".repeat(\",\n\t\t\t\".emit(\",\n\t\t\t\".and(\",\n\t\t\t\".or(\",\n\t\t\t\".not(\",\n\t\t\t\".as(\",\n\t\t\t\".by(\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"gremlin\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Groovy\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"groovy\",\n\t\t\t\"grt\",\n\t\t\t\"gtpl\",\n\t\t\t\"gvy\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Gwion\": {\n\t\tLineComment: []string{\n\t\t\t\"#!\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"fun \",\n\t\t\t\"while(\",\n\t\t\t\"while (\",\n\t\t\t\"repeat(\",\n\t\t\t\"repeat (\",\n\t\t\t\"if (\",\n\t\t\t\"if(\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"gw\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"HAML\": {\n\t\tLineComment: []string{\n\t\t\t\"-#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"haml\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"HCL\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for_each \",\n\t\t\t\"for \",\n\t\t\t\"count \",\n\t\t\t\"coalesce(\",\n\t\t\t\"== \",\n\t\t\t\"!= \",\n\t\t\t\"> \",\n\t\t\t\"< \",\n\t\t\t\"&& \",\n\t\t\t\"|| \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"hcl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"HEEx\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"case \",\n\t\t\t\"cond \",\n\t\t\t\"if \",\n\t\t\t\"for \",\n\t\t\t\"with \",\n\t\t\t\"try \",\n\t\t\t\"catch \",\n\t\t\t\"rescue \",\n\t\t\t\"else \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"not \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"|> \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"heex\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<%!--\",\n\t\t\t\t\"--%>\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"HEX\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"hex\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"HTML\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"html\",\n\t\t\t\"htm\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Hamlet\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"hamlet\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Handlebars\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"hbs\",\n\t\t\t\"handlebars\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"{{!\",\n\t\t\t\t\"}}\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Happy\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"y\",\n\t\t\t\"ly\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Hare\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"else \",\n\t\t\t\"match \",\n\t\t\t\"switch \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ha\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Haskell\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if \",\n\t\t\t\"then \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"/= \",\n\t\t\t\"== \",\n\t\t\t\"case \",\n\t\t\t\"otherwise \",\n\t\t\t\"wildcard \",\n\t\t\t\"do {\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"hs\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{-\",\n\t\t\t\t\"-}\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Haxe\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"hx\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"IDL\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"idl\",\n\t\t\t\"webidl\",\n\t\t\t\"widl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"INI\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"ini\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Idris\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"idr\",\n\t\t\t\"lidr\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{-\",\n\t\t\t\t\"-}\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Intel HEX\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"ihex\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Isabelle\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"thy\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{*\",\n\t\t\t\t\"*}\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"‹\",\n\t\t\t\t\"›\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"\\\\\\\\<open>\",\n\t\t\t\t\"\\\\\\\\<close>\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"''\",\n\t\t\t\tEnd:          \"''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"JAI\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"jai\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"JCL\": {\n\t\tLineComment: []string{\n\t\t\t\"//*\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\" IF\",\n\t\t\t\" THEN\",\n\t\t\t\" ELSE\",\n\t\t\t\" PROC=\",\n\t\t\t\" PGM=\",\n\t\t\t\" DD \",\n\t\t\t\" EXEC \",\n\t\t\t\" JOB \",\n\t\t\t\" COND=\",\n\t\t\t\" INCLUDE\",\n\t\t\t\" PEND\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"jcl\",\n\t\t\t\"jcls\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"JSON\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"json\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"JSON5\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"json5\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"JSONC\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"jsonc\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"JSONL\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"jsonl\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"JSX\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"jsx\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Jade\": {\n\t\tLineComment: []string{\n\t\t\t\"//-\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if \",\n\t\t\t\"else if \",\n\t\t\t\"unless \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"jade\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Janet\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"(if \",\n\t\t\t\"(for \",\n\t\t\t\"(for \",\n\t\t\t\"(cond \",\n\t\t\t\"(switch \",\n\t\t\t\"(when \",\n\t\t\t\"(while \",\n\t\t\t\"(loop \",\n\t\t\t\"(case \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"janet\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"``\",\n\t\t\t\tEnd:          \"``\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"@\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Java\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"else{\",\n\t\t\t\"try \",\n\t\t\t\"try{\",\n\t\t\t\"catch \",\n\t\t\t\"catch(\",\n\t\t\t\"finally \",\n\t\t\t\"finally{\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"java\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"JavaScript\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"?.\",\n\t\t\t\"?? \",\n\t\t\t\"??= \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"js\",\n\t\t\t\"cjs\",\n\t\t\t\"mjs\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"node\",\n\t\t},\n\t},\n\t\"JavaServer Pages\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"jsp\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Jenkins Buildfile\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"jenkinsfile\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Jinja\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"{% for \",\n\t\t\t\"{%- for \",\n\t\t\t\"{% if \",\n\t\t\t\"{%- if \",\n\t\t\t\"{% else \",\n\t\t\t\"{%- else \",\n\t\t\t\"{% elif \",\n\t\t\t\"{% macro \",\n\t\t\t\"{%- macro \",\n\t\t\t\"{% call \",\n\t\t\t\"{%- call \",\n\t\t\t\"{% filter \",\n\t\t\t\"{%- filter \",\n\t\t\t\"{% set \",\n\t\t\t\"{% include \",\n\t\t\t\"{% from \",\n\t\t\t\"{% extends \",\n\t\t\t\"{% with \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"jinja\",\n\t\t\t\"j2\",\n\t\t\t\"jinja2\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{#\",\n\t\t\t\t\"#}\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Jsonnet\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for\",\n\t\t\t\"if\",\n\t\t\t\"else\",\n\t\t\t\"||\",\n\t\t\t\"&&\",\n\t\t\t\"!=\",\n\t\t\t\"==\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"jsonnet\",\n\t\t\t\"libsonnet\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"|||\",\n\t\t\t\tEnd:          \"|||\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"@\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"@'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"jsonnet\",\n\t\t},\n\t},\n\t\"Julia\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"elseif \",\n\t\t\t\"elseif(\",\n\t\t\t\"try \",\n\t\t\t\"catch \",\n\t\t\t\"finally \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"jl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"#=\",\n\t\t\t\t\"=#\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Julius\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"julius\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Jupyter\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"ipynb\",\n\t\t\t\"jpynb\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Just\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"justfile\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"K\": {\n\t\tLineComment: []string{\n\t\t\t\"/\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"'\",\n\t\t\t\"/\",\n\t\t\t\"\\\\\",\n\t\t\t\"':\",\n\t\t\t\"/:\",\n\t\t\t\"\\\\:\",\n\t\t\t\"|\",\n\t\t\t\"&\",\n\t\t\t\"!\",\n\t\t\t\"=\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"k\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Korn Shell\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ksh\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames: []string{\n\t\t\t\".kshrc\",\n\t\t},\n\t\tSheBangs: []string{\n\t\t\t\"ksh\",\n\t\t},\n\t},\n\t\"Kotlin\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"when \",\n\t\t\t\"when(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"else{\",\n\t\t\t\"try \",\n\t\t\t\"try{\",\n\t\t\t\"catch \",\n\t\t\t\"catch(\",\n\t\t\t\"finally \",\n\t\t\t\"finally{\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"kt\",\n\t\t\t\"kts\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Koto\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"while \",\n\t\t\t\"until \",\n\t\t\t\"continue \",\n\t\t\t\"break \",\n\t\t\t\"loop \",\n\t\t\t\"if \",\n\t\t\t\"switch \",\n\t\t\t\"match \",\n\t\t\t\"then\",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"not \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"koto\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"#-\",\n\t\t\t\t\"-#\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"LALRPOP\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"match \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"lalrpop\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"#\",\n\t\t\t\tEnd:          \"#\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"##\",\n\t\t\t\tEnd:          \"r##\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"#\",\n\t\t\t\tEnd:          \"r#\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"LD Script\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"lds\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"LESS\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"less\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"LEX\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"l\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"LLVM IR\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"llvm.loop\",\n\t\t\t\"br \",\n\t\t\t\"switch \",\n\t\t\t\"indirectbr \",\n\t\t\t\"invoke \",\n\t\t\t\"callbr \",\n\t\t\t\"resume \",\n\t\t\t\"catchswitch \",\n\t\t\t\"catchret \",\n\t\t\t\"cleanupret \",\n\t\t\t\"shl \",\n\t\t\t\"lshr \",\n\t\t\t\"ashr \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"xor \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ll\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"LOLCODE\": {\n\t\tLineComment: []string{\n\t\t\t\"BTW\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"AWSUM THX \",\n\t\t\t\"O NOES \",\n\t\t\t\"PLZ OPEN FILE \",\n\t\t\t\"IM IN YR \",\n\t\t\t\"O RLY?\",\n\t\t\t\"O RLY? \",\n\t\t\t\"WTF?\",\n\t\t\t\"WTF? \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"lol\",\n\t\t\t\"lols\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"OBTW\",\n\t\t\t\t\"TLDR\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"LaTeX\": {\n\t\tLineComment: []string{\n\t\t\t\"%\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"tex\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Lean\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"lean\",\n\t\t\t\"hlean\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/-\",\n\t\t\t\t\"-/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"License\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions:       []string{},\n\t\tExtensionFile:    false,\n\t\tMultiLine:        [][]string{},\n\t\tQuotes:           []Quote{},\n\t\tNestedMultiLine:  false,\n\t\tKeywords:         []string{},\n\t\tFileNames: []string{\n\t\t\t\"license\",\n\t\t\t\"licence\",\n\t\t\t\"copying\",\n\t\t\t\"copying3\",\n\t\t\t\"unlicense\",\n\t\t\t\"unlicence\",\n\t\t\t\"license-apache\",\n\t\t\t\"licence-apache\",\n\t\t\t\"license-mit\",\n\t\t\t\"licence-mit\",\n\t\t\t\"copyright\",\n\t\t},\n\t\tSheBangs: []string{},\n\t},\n\t\"Lisp\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"lisp\",\n\t\t\t\"lsp\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"#|\",\n\t\t\t\t\"|#\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"sbcl\",\n\t\t},\n\t},\n\t\"LiveScript\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"case \",\n\t\t\t\"while \",\n\t\t\t\"when \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"!== \",\n\t\t\t\"xor \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"|> \",\n\t\t\t\"<< \",\n\t\t\t\"<<< \",\n\t\t\t\"<<<< \",\n\t\t\t\">> \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ls\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Lua\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"else(\",\n\t\t\t\"elseif \",\n\t\t\t\"elseif(\",\n\t\t\t\"until \",\n\t\t\t\"until(\",\n\t\t\t\"or \",\n\t\t\t\"and \",\n\t\t\t\"~= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"lua\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"--[[\",\n\t\t\t\t\"]]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[=[\",\n\t\t\t\t\"]=]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[==[\",\n\t\t\t\t\"]==]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[===[\",\n\t\t\t\t\"]===]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[====[\",\n\t\t\t\t\"]====]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[=====[\",\n\t\t\t\t\"]=====]\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"]]\",\n\t\t\t\tEnd:          \"[[\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"lua\",\n\t\t},\n\t},\n\t\"Luau\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"else(\",\n\t\t\t\"elseif \",\n\t\t\t\"elseif(\",\n\t\t\t\"until \",\n\t\t\t\"until(\",\n\t\t\t\"or \",\n\t\t\t\"and \",\n\t\t\t\"~= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"luau\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"--[[\",\n\t\t\t\t\"]]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[=[\",\n\t\t\t\t\"]=]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[==[\",\n\t\t\t\t\"]==]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[===[\",\n\t\t\t\t\"]===]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[====[\",\n\t\t\t\t\"]====]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[=====[\",\n\t\t\t\t\"]=====]\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"]]\",\n\t\t\t\tEnd:          \"[[\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"luau\",\n\t\t},\n\t},\n\t\"Lucius\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"lucius\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Luna\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"luna\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"MATLAB\": {\n\t\tLineComment: []string{\n\t\t\t\"%\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if \",\n\t\t\t\"elseif \",\n\t\t\t\"case \",\n\t\t\t\"otherwise \",\n\t\t\t\"try\",\n\t\t\t\"for \",\n\t\t\t\"while \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"m\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"%{\",\n\t\t\t\t\"}%\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords: []string{\n\t\t\t\"eye(\",\n\t\t\t\"zeros(\",\n\t\t\t\"ones(\",\n\t\t\t\"transpose(\",\n\t\t\t\"meshgrid(\",\n\t\t\t\"mod(\",\n\t\t\t\"classdef\",\n\t\t\t\"function\",\n\t\t\t\"disp(\",\n\t\t\t\"sin(\",\n\t\t\t\"tan(\",\n\t\t\t\"cos(\",\n\t\t\t\"plot\",\n\t\t\t\"sqrt(\",\n\t\t\t\"deblank(\",\n\t\t\t\"findstr(\",\n\t\t\t\"strrep(\",\n\t\t\t\"strcmp(\",\n\t\t\t\"display(\",\n\t\t\t\"strcat(\",\n\t\t\t\"iscellstr(\",\n\t\t\t\"strfind(\",\n\t\t\t\"%\",\n\t\t\t\"fprintf(\",\n\t\t},\n\t\tFileNames: []string{},\n\t\tSheBangs:  []string{},\n\t},\n\t\"MDX\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"mdx\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"MLIR\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"affine.for \",\n\t\t\t\"affine.if \",\n\t\t\t\"else \",\n\t\t\t\"else{\",\n\t\t\t\"cf.switch \",\n\t\t\t\"cf.br \",\n\t\t\t\"cf.cond_br\",\n\t\t\t\"scf.for \",\n\t\t\t\"scf.forall \",\n\t\t\t\"scf.forall{\",\n\t\t\t\"scf.forall.in_parallel \",\n\t\t\t\"scf.forall.in_parallel{\",\n\t\t\t\"scf.if \",\n\t\t\t\"scf.index_switch \",\n\t\t\t\"scf.while \",\n\t\t\t\"arith.cmpi eq,\",\n\t\t\t\"arith.cmpi ne,\",\n\t\t\t\"index.cmp eq,\",\n\t\t\t\"index.cmp ne,\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mlir\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"MQL Header\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mqh\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"MQL4\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mq4\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"MQL5\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mq5\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"MSBuild\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"Condition\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"csproj\",\n\t\t\t\"vbproj\",\n\t\t\t\"fsproj\",\n\t\t\t\"vcproj\",\n\t\t\t\"vcxproj\",\n\t\t\t\"vcxproj.filters\",\n\t\t\t\"ilproj\",\n\t\t\t\"myapp\",\n\t\t\t\"props\",\n\t\t\t\"rdlc\",\n\t\t\t\"resx\",\n\t\t\t\"settings\",\n\t\t\t\"sln\",\n\t\t\t\"targets\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"MUMPS\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mps\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Macromedia eXtensible Markup Language\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"mxml\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Madlang\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mad\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{#\",\n\t\t\t\t\"#}\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Makefile\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"makefile\",\n\t\t\t\"mak\",\n\t\t\t\"mk\",\n\t\t\t\"bp\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames: []string{\n\t\t\t\"makefile\",\n\t\t\t\"gnumakefile\",\n\t\t},\n\t\tSheBangs: []string{},\n\t},\n\t\"Mako\": {\n\t\tLineComment: []string{\n\t\t\t\"##\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"% for \",\n\t\t\t\"% if \",\n\t\t\t\"% else \",\n\t\t\t\"% elif \",\n\t\t\t\"<% include \",\n\t\t\t\"<%def \",\n\t\t\t\"<%page \",\n\t\t\t\"<%def \",\n\t\t\t\"<%block \",\n\t\t\t\"<%namespace \",\n\t\t\t\"<%inherit \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mako\",\n\t\t\t\"mao\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<%doc>\",\n\t\t\t\t\"</%doc>\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Markdown\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"md\",\n\t\t\t\"markdown\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Max\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"maxpat\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Meson\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"foreach \",\n\t\t\t\"if \",\n\t\t\t\"elif \",\n\t\t\t\"unless \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"else \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"meson.build\",\n\t\t\t\"meson_options.txt\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Metal\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"metal\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Modula3\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"m3\",\n\t\t\t\"mg\",\n\t\t\t\"ig\",\n\t\t\t\"i3\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Module-Definition\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"def\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Mog\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"match \",\n\t\t\t\"or \",\n\t\t\t\"and \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"catch \",\n\t\t\t\"catch(\",\n\t\t\t\"try \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mog\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Mojo\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"elif \",\n\t\t\t\"elif(\",\n\t\t\t\"else \",\n\t\t\t\"else:\",\n\t\t\t\"try \",\n\t\t\t\"try:\",\n\t\t\t\"except \",\n\t\t\t\"except:\",\n\t\t\t\"finally \",\n\t\t\t\"finally:\",\n\t\t\t\"with \",\n\t\t\t\"with (\",\n\t\t\t\"and \",\n\t\t\t\"and(\",\n\t\t\t\"or \",\n\t\t\t\"or(\",\n\t\t\t\"== \",\n\t\t\t\"!= \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mojo\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"r\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"t\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"rt\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"r\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"r'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"t\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Monkey C\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mc\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Moonbit\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"loop \",\n\t\t\t\"guard \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"match \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mbt\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Mustache\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mustache\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{{!\",\n\t\t\t\t\"}}\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Nature\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"go \",\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"catch \",\n\t\t\t\"catch(\",\n\t\t\t\"else \",\n\t\t\t\"else{\",\n\t\t\t\"match \",\n\t\t\t\"match(\",\n\t\t\t\"match{\",\n\t\t\t\"select \",\n\t\t\t\"select{\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"n\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Nial\": {\n\t\tLineComment: []string{\n\t\t\t\"%\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"case \",\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"repeat \",\n\t\t\t\"while \",\n\t\t\t\"or \",\n\t\t\t\"and \",\n\t\t\t\"= \",\n\t\t\t\"equal \",\n\t\t\t\"~= \",\n\t\t\t\"unequal \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ndf\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Nim\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"nim\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Nix\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"nix\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Nushell\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"do { \",\n\t\t\t\"each {\",\n\t\t\t\"if \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"nu\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"nu\",\n\t\t},\n\t},\n\t\"OCaml\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ml\",\n\t\t\t\"mli\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Objective C\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"m\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords: []string{\n\t\t\t\"#include\",\n\t\t\t\"printf\",\n\t\t\t\"stdio.h\",\n\t\t\t\".h\",\n\t\t\t\"@import\",\n\t\t\t\"@interface\",\n\t\t\t\"@property\",\n\t\t\t\"@implementation\",\n\t\t\t\"NSArray\",\n\t\t\t\"#pragma\",\n\t\t\t\"static\",\n\t\t\t\"const\",\n\t\t\t\"atomic\",\n\t\t\t\"@end\",\n\t\t\t\"//\",\n\t\t},\n\t\tFileNames: []string{},\n\t\tSheBangs:  []string{},\n\t},\n\t\"Objective C++\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"mm\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Odin\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"when \",\n\t\t\t\"switch \",\n\t\t\t\"defer \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"odin\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Opalang\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"opa\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"OpenQASM\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"else(\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"qasm\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"OpenTofu\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"count\",\n\t\t\t\"for\",\n\t\t\t\"for_each\",\n\t\t\t\"if\",\n\t\t\t\": \",\n\t\t\t\"? \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"> \",\n\t\t\t\">= \",\n\t\t\t\"< \",\n\t\t\t\"<= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"tofu\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Org\": {\n\t\tLineComment: []string{\n\t\t\t\"# \",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"org\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Oz\": {\n\t\tLineComment: []string{\n\t\t\t\"%\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"oz\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"PHP\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"php\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"php\",\n\t\t\t\"php5\",\n\t\t},\n\t},\n\t\"PKGBUILD\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"pkgbuild\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"PL/SQL\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"and \",\n\t\t\t\"and(\",\n\t\t\t\"else \",\n\t\t\t\"else(\",\n\t\t\t\"elseif \",\n\t\t\t\"elseif(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"loop \",\n\t\t\t\"not \",\n\t\t\t\"not(\",\n\t\t\t\"or \",\n\t\t\t\"or(\",\n\t\t\t\"<> \",\n\t\t\t\"<>(\",\n\t\t\t\"= \",\n\t\t\t\"=(\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"fnc\",\n\t\t\t\"pkb\",\n\t\t\t\"pks\",\n\t\t\t\"prc\",\n\t\t\t\"trg\",\n\t\t\t\"vw\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"POML\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"poml\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"PRQL\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"case \",\n\t\t\t\"&& \",\n\t\t\t\"|| \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"~= \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"prql\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"r\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"r'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"PSL Assertion\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"psl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Pascal\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"AND \",\n\t\t\t\"OR \",\n\t\t\t\"IF \",\n\t\t\t\"ELSE \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"pas\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{\",\n\t\t\t\t\"}\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Patch\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"patch\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Perl\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"foreach \",\n\t\t\t\"foreach(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"elsif \",\n\t\t\t\"elsif(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"until \",\n\t\t\t\"until(\",\n\t\t\t\"unless \",\n\t\t\t\"unless(\",\n\t\t\t\"given \",\n\t\t\t\"given(\",\n\t\t\t\"when \",\n\t\t\t\"when(\",\n\t\t\t\"catch \",\n\t\t\t\"catch(\",\n\t\t\t\"eq \",\n\t\t\t\"ne \",\n\t\t\t\"else \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"pl\",\n\t\t\t\"plx\",\n\t\t\t\"pm\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"=pod\",\n\t\t\t\t\"=cut\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"perl\",\n\t\t\t\"perl5\",\n\t\t},\n\t},\n\t\"Phoenix LiveView\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t\t\"<!--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"case \",\n\t\t\t\"cond \",\n\t\t\t\"if \",\n\t\t\t\"for \",\n\t\t\t\"with \",\n\t\t\t\"try \",\n\t\t\t\"catch \",\n\t\t\t\"rescue \",\n\t\t\t\"else \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"not \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"|> \",\n\t\t\t\"<% \",\n\t\t\t\"<. \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"heex\",\n\t\t\t\"leex\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Picat\": {\n\t\tLineComment: []string{\n\t\t\t\"%\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"do \",\n\t\t\t\"foreach \",\n\t\t\t\"foreach(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"pi\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Pkl\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"function \",\n\t\t\t\"?? \",\n\t\t\t\"?.\",\n\t\t\t\"ifNonNull(\",\n\t\t\t\"if \",\n\t\t\t\" else \",\n\t\t\t\".map\",\n\t\t\t\"for \",\n\t\t\t\"when \",\n\t\t\t\"...\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"pkl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"#\",\n\t\t\t\tEnd:          \"#\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"##\",\n\t\t\t\tEnd:          \"##\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Plain Text\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"text\",\n\t\t\t\"txt\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Polly\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"polly\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Pony\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"match \",\n\t\t\t\"repeat\",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"elseif \",\n\t\t\t\"| \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"pony\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"PostScript\": {\n\t\tLineComment: []string{\n\t\t\t\"%\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if\",\n\t\t\t\"ifelse\",\n\t\t\t\"for\",\n\t\t\t\"repeat\",\n\t\t\t\"loop\",\n\t\t\t\"forall\",\n\t\t\t\"pathforall\",\n\t\t\t\"eq\",\n\t\t\t\"ne\",\n\t\t\t\"not\",\n\t\t\t\"and\",\n\t\t\t\"or\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ps\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"(\",\n\t\t\t\tEnd:          \")\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"<\",\n\t\t\t\tEnd:          \">\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"<~\",\n\t\t\t\tEnd:          \"~>\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Powershell\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"until \",\n\t\t\t\"until(\",\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"foreach \",\n\t\t\t\"foreach(\",\n\t\t\t\"if \",\n\t\t\t\"elseif \",\n\t\t\t\"else \",\n\t\t\t\"switch\",\n\t\t\t\"switch(\",\n\t\t\t\"-gt\",\n\t\t\t\"-lt\",\n\t\t\t\"-eq\",\n\t\t\t\"-ne\",\n\t\t\t\"-ge\",\n\t\t\t\"-le\",\n\t\t\t\"-in\",\n\t\t\t\"-notin\",\n\t\t\t\"-contains\",\n\t\t\t\"-notcontains\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ps1\",\n\t\t\t\"psm1\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<#\",\n\t\t\t\t\"#>\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Processing\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"pde\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Prolog\": {\n\t\tLineComment: []string{\n\t\t\t\"%\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"p\",\n\t\t\t\"pro\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Properties File\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"properties\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Protocol Buffers\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"proto\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Puppet\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"pp\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"=begin\",\n\t\t\t\t\"=end\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"PureScript\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"purs\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{-\",\n\t\t\t\t\"-}\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Python\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"elif \",\n\t\t\t\"elif(\",\n\t\t\t\"else \",\n\t\t\t\"else:\",\n\t\t\t\"match \",\n\t\t\t\"match(\",\n\t\t\t\"try \",\n\t\t\t\"try:\",\n\t\t\t\"except \",\n\t\t\t\"except:\",\n\t\t\t\"finally \",\n\t\t\t\"finally:\",\n\t\t\t\"with \",\n\t\t\t\"with (\",\n\t\t\t\"and \",\n\t\t\t\"and(\",\n\t\t\t\"or \",\n\t\t\t\"or(\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"py\",\n\t\t\t\"pyw\",\n\t\t\t\"pyi\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"r'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"r\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"r\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"r'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"f\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"f'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"python\",\n\t\t\t\"python2\",\n\t\t\t\"python3\",\n\t\t},\n\t},\n\t\"Q#\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"repeat \",\n\t\t\t\"repeat{\",\n\t\t\t\"until (\",\n\t\t\t\"until(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"elif \",\n\t\t\t\"elif{\",\n\t\t\t\"else \",\n\t\t\t\"else{\",\n\t\t\t\"||| \",\n\t\t\t\"&&& \",\n\t\t\t\"<<<\",\n\t\t\t\">>>\",\n\t\t\t\"^^^\",\n\t\t\t\"~~~\",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"qs\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"QCL\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"qcl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"QML\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"qml\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"R\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"r\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"Rscript\",\n\t\t},\n\t},\n\t\"RAML\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"raml\",\n\t\t\t\"rml\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Racket\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"(if\",\n\t\t\t\"(cond\",\n\t\t\t\"[else\",\n\t\t\t\"(and\",\n\t\t\t\"(or\",\n\t\t\t\"(for\",\n\t\t\t\"#:when\",\n\t\t\t\"#:unless\",\n\t\t\t\"#:break\",\n\t\t\t\"#:final\",\n\t\t\t\"(do\",\n\t\t\t\"(when\",\n\t\t\t\"(unless\",\n\t\t\t\"(shared\",\n\t\t\t\"(case\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"rkt\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"|#\",\n\t\t\t\t\"#|\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"racket\",\n\t\t},\n\t},\n\t\"Rakefile\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions:    []string{},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"=begin\",\n\t\t\t\t\"=end\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames: []string{\n\t\t\t\"rake\",\n\t\t\t\"rakefile\",\n\t\t},\n\t\tSheBangs: []string{},\n\t},\n\t\"Raku\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"== \",\n\t\t\t\"≡ \",\n\t\t\t\"!= \",\n\t\t\t\"≠ \",\n\t\t\t\"!== \",\n\t\t\t\"≢ \",\n\t\t\t\"< \",\n\t\t\t\"⊂ \",\n\t\t\t\"!< \",\n\t\t\t\"⊄ \",\n\t\t\t\"<= \",\n\t\t\t\"≤ \",\n\t\t\t\"⊆ \",\n\t\t\t\"!<= \",\n\t\t\t\"⊈ \",\n\t\t\t\"> \",\n\t\t\t\"⊃ \",\n\t\t\t\"!> \",\n\t\t\t\"⊅ \",\n\t\t\t\">= \",\n\t\t\t\"≥ \",\n\t\t\t\"⊇ \",\n\t\t\t\"!>= \",\n\t\t\t\"⊉ \",\n\t\t\t\"=~= \",\n\t\t\t\"≅ \",\n\t\t\t\"=== \",\n\t\t\t\"eq \",\n\t\t\t\"!eq \",\n\t\t\t\"eqv \",\n\t\t\t\"ne \",\n\t\t\t\"gt \",\n\t\t\t\"ge \",\n\t\t\t\"lt \",\n\t\t\t\"le \",\n\t\t\t\"=:=\",\n\t\t\t\"CATCH \",\n\t\t\t\"CONTROL \",\n\t\t\t\"DOC \",\n\t\t\t\"NEXT \",\n\t\t\t\"and \",\n\t\t\t\"default \",\n\t\t\t\"do {\",\n\t\t\t\"else \",\n\t\t\t\"elsif \",\n\t\t\t\"emit \",\n\t\t\t\"for \",\n\t\t\t\"gather \",\n\t\t\t\"given \",\n\t\t\t\"if \",\n\t\t\t\"last \",\n\t\t\t\"loop (\",\n\t\t\t\"next \",\n\t\t\t\"once \",\n\t\t\t\"or \",\n\t\t\t\"orwith \",\n\t\t\t\"react {\",\n\t\t\t\"redo \",\n\t\t\t\"repeat \",\n\t\t\t\"start {\",\n\t\t\t\"supply \",\n\t\t\t\"unless \",\n\t\t\t\"until \",\n\t\t\t\"when \",\n\t\t\t\"whenever \",\n\t\t\t\"while \",\n\t\t\t\"with \",\n\t\t\t\"without \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"raku\",\n\t\t\t\"rakumod\",\n\t\t\t\"rakutest\",\n\t\t\t\"rakudoc\",\n\t\t\t\"t\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"=begin\",\n\t\t\t\t\"=end\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"#`(\",\n\t\t\t\t\")\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"#`[\",\n\t\t\t\t\"]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"#`{\",\n\t\t\t\t\"}\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"#`｢\",\n\t\t\t\t\"｣\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"„\",\n\t\t\t\tEnd:          \"“\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"«\",\n\t\t\t\tEnd:          \"»\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"<<\",\n\t\t\t\tEnd:          \">>\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"“\",\n\t\t\t\tEnd:          \"”\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"’\",\n\t\t\t\tEnd:          \"‘\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"｢\",\n\t\t\t\tEnd:          \"｣\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"raku\",\n\t\t},\n\t},\n\t\"Razor\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cshtml\",\n\t\t\t\"razor\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"@*\",\n\t\t\t\t\"*@\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ReScript\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"=== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"res\",\n\t\t\t\"resi\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ReStructuredText\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"rst\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ReasonML\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"re\",\n\t\t\t\"rei\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Rebol\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"forever \",\n\t\t\t\"foreach \",\n\t\t\t\"forall \",\n\t\t\t\"forskip \",\n\t\t\t\"loop \",\n\t\t\t\"repeat \",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"either \",\n\t\t\t\"either(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"switch/default \",\n\t\t\t\"switch/default(\",\n\t\t\t\"case \",\n\t\t\t\"case(\",\n\t\t\t\"case/all \",\n\t\t\t\"case/all(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"until \",\n\t\t\t\"until(\",\n\t\t\t\"or \",\n\t\t\t\"and \",\n\t\t\t\"<> \",\n\t\t\t\"= \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"reb\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{\",\n\t\t\t\t\"}\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Redscript\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t\t\"///\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"@if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"func \",\n\t\t\t\"-> \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"reds\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Report Definition Language\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"rdl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Rich Text Format\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"rtf\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Robot Framework\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"robot\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Ruby\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"rb\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"=begin\",\n\t\t\t\t\"=end\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"ruby\",\n\t\t},\n\t},\n\t\"Ruby HTML\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"rhtml\",\n\t\t\t\"erb\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Rust\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"loop \",\n\t\t\t\"loop{\",\n\t\t\t\"else \",\n\t\t\t\"else{\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"match \",\n\t\t\t\"match(\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"rs\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"SAS\": {\n\t\tLineComment: []string{\n\t\t\t\"*\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"do\",\n\t\t\t\"%do\",\n\t\t\t\"if\",\n\t\t\t\"%if\",\n\t\t\t\"else\",\n\t\t\t\"%else\",\n\t\t\t\"case\",\n\t\t\t\"or\",\n\t\t\t\"and\",\n\t\t\t\"^=\",\n\t\t\t\"¬=\",\n\t\t\t\"~=\",\n\t\t\t\"ne\",\n\t\t\t\"eq\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sas\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"SKILL\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"il\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"SNOBOL\": {\n\t\tLineComment: []string{\n\t\t\t\"*\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\":(\",\n\t\t\t\":s(\",\n\t\t\t\":f(\",\n\t\t\t\"eq \",\n\t\t\t\"ne \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sno\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"SPDX\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"spdx\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"SPL\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"construct\",\n\t\t\t\"foreach\",\n\t\t\t\"map\",\n\t\t\t\"while\",\n\t\t\t\"if\",\n\t\t\t\"include\",\n\t\t\t\"catch\",\n\t\t\t\"and\",\n\t\t\t\"or\",\n\t\t\t\"not\",\n\t\t\t\"call\",\n\t\t\t\"<|\",\n\t\t\t\"<{\",\n\t\t\t\"dup\",\n\t\t\t\"swap\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"spl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"\\\"\",\n\t\t\t\t\"\\\";\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"^\",\n\t\t\t\tEnd:          \" \",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"^\",\n\t\t\t\tEnd:          \">\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"^\",\n\t\t\t\tEnd:          \":\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"spl\",\n\t\t},\n\t},\n\t\"SQL\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sql\",\n\t\t\t\"dml\",\n\t\t\t\"ddl\",\n\t\t\t\"dql\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"SRecode Template\": {\n\t\tLineComment: []string{\n\t\t\t\";;\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"srt\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"SVG\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"svg\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Sass\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sass\",\n\t\t\t\"scss\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Scala\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\">= \",\n\t\t\t\"> \",\n\t\t\t\"<= \",\n\t\t\t\"< \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sc\",\n\t\t\t\"scala\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Scallop\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"rel \",\n\t\t\t\"count(\",\n\t\t\t\"sum(\",\n\t\t\t\"prod(\",\n\t\t\t\"min(\",\n\t\t\t\"max(\",\n\t\t\t\"exists(\",\n\t\t\t\"forall(\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\">= \",\n\t\t\t\"> \",\n\t\t\t\"<= \",\n\t\t\t\"< \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"scl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Scheme\": {\n\t\tLineComment: []string{\n\t\t\t\";\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"scm\",\n\t\t\t\"ss\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"#|\",\n\t\t\t\t\"|#\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Scons\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"csig\",\n\t\t\t\"sconstruct\",\n\t\t\t\"sconscript\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Seed7\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"elsif \",\n\t\t\t\"else\",\n\t\t\t\"else \",\n\t\t\t\"case \",\n\t\t\t\"while \",\n\t\t\t\"until \",\n\t\t\t\"catch \",\n\t\t\t\"or \",\n\t\t\t\"and \",\n\t\t\t\"<> \",\n\t\t\t\"= \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sd7\",\n\t\t\t\"s7i\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Shell\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sh\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames: []string{\n\t\t\t\".tcshrc\",\n\t\t},\n\t\tSheBangs: []string{\n\t\t\t\"sh\",\n\t\t},\n\t},\n\t\"Sieve\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if\",\n\t\t\t\"if \",\n\t\t\t\"elsif\",\n\t\t\t\"elsif \",\n\t\t\t\"allof\",\n\t\t\t\"allof \",\n\t\t\t\"anyof\",\n\t\t\t\"anyof \",\n\t\t\t\"allof(\",\n\t\t\t\"anyof(\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sieve\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Slang\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"slang\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Slint\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"states \",\n\t\t\t\"states[\",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"slint\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Smalltalk\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"bitAnd \",\n\t\t\t\"bitOr \",\n\t\t\t\"bitXor \",\n\t\t\t\"bitInvert \",\n\t\t\t\"bitShift \",\n\t\t\t\"bitAt \",\n\t\t\t\"highbit \",\n\t\t\t\"allMask \",\n\t\t\t\"anyMask \",\n\t\t\t\"noMask \",\n\t\t\t\"ifTrue \",\n\t\t\t\"ifFalse \",\n\t\t\t\"switch \",\n\t\t\t\"whileTrue \",\n\t\t\t\"whileFalse \",\n\t\t\t\"to: \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cs.st\",\n\t\t\t\"pck.st\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"\\\"\",\n\t\t\t\t\"\\\"\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Smarty Template\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"include \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"tpl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"{*\",\n\t\t\t\t\"*}\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Snakemake\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"elif \",\n\t\t\t\"elif(\",\n\t\t\t\"else \",\n\t\t\t\"else:\",\n\t\t\t\"match \",\n\t\t\t\"match(\",\n\t\t\t\"try \",\n\t\t\t\"try:\",\n\t\t\t\"except \",\n\t\t\t\"except(\",\n\t\t\t\"finally \",\n\t\t\t\"finally:\",\n\t\t\t\"with \",\n\t\t\t\"with (\",\n\t\t\t\"and \",\n\t\t\t\"and(\",\n\t\t\t\"or \",\n\t\t\t\"or(\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"smk\",\n\t\t\t\"rules\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"r\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"r'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    true,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames: []string{\n\t\t\t\"snakefile\",\n\t\t},\n\t\tSheBangs: []string{},\n\t},\n\t\"Softbridge Basic\": {\n\t\tLineComment: []string{\n\t\t\t\"'\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"elseif \",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sbl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Solidity\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\"assembly \",\n\t\t\t\"assembly{\",\n\t\t\t\"unchecked \",\n\t\t\t\"unchecked{\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sol\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Specman e\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"e\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"'>\",\n\t\t\t\t\"<'\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Spice Netlist\": {\n\t\tLineComment: []string{\n\t\t\t\"*\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ckt\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Stan\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"stan\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Standard ML (SML)\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sml\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Stata\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t\t\"*\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"foreach\",\n\t\t\t\"forvalues\",\n\t\t\t\"if\",\n\t\t\t\"else\",\n\t\t\t\"while\",\n\t\t\t\"switch\",\n\t\t\t\"|\",\n\t\t\t\"&\",\n\t\t\t\"!=\",\n\t\t\t\"==\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"do\",\n\t\t\t\"ado\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\\\"\",\n\t\t\t\tEnd:          \"\\\"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Stylus\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"unless \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"styl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Svelte\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"svelte\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Swift\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"catch \",\n\t\t\t\"guard \",\n\t\t\t\"?\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"swift\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Swig\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"i\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"SystemVerilog\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"| \",\n\t\t\t\"& \",\n\t\t\t\"!= \",\n\t\t\t\"!== \",\n\t\t\t\"== \",\n\t\t\t\"foreach \",\n\t\t\t\"foreach(\",\n\t\t\t\"case \",\n\t\t\t\"case(\",\n\t\t\t\"casex \",\n\t\t\t\"casex(\",\n\t\t\t\"casez \",\n\t\t\t\"casez(\",\n\t\t\t\"casexz \",\n\t\t\t\"casexz(\",\n\t\t\t\"fork \",\n\t\t\t\" ? \",\n\t\t\t\"inside\",\n\t\t\t\"with\",\n\t\t\t\"event \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sv\",\n\t\t\t\"svh\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords: []string{\n\t\t\t\"endmodule\",\n\t\t\t\"posedge\",\n\t\t\t\"edge\",\n\t\t\t\"always\",\n\t\t\t\"wire\",\n\t\t},\n\t\tFileNames: []string{},\n\t\tSheBangs:  []string{},\n\t},\n\t\"Systemd\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"automount\",\n\t\t\t\"device\",\n\t\t\t\"link\",\n\t\t\t\"mount\",\n\t\t\t\"path\",\n\t\t\t\"scope\",\n\t\t\t\"service\",\n\t\t\t\"slice\",\n\t\t\t\"socket\",\n\t\t\t\"swap\",\n\t\t\t\"target\",\n\t\t\t\"timer\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"TCL\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"tcl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"tcl\",\n\t\t},\n\t},\n\t\"TL\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t\t\"///\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"tl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"TOML\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"toml\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\\\\\\\"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'''\",\n\t\t\t\tEnd:          \"'''\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"TOON\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"toon\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"TTCN-3\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"from \",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"select \",\n\t\t\t\"case \",\n\t\t\t\"while \",\n\t\t\t\"do \",\n\t\t\t\"goto \",\n\t\t\t\"stop \",\n\t\t\t\"break \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ttcn\",\n\t\t\t\"ttcn3\",\n\t\t\t\"ttcnpp\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Tact\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t\t\"///\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"else \",\n\t\t\t\"try \",\n\t\t\t\"catch \",\n\t\t\t\"catch(\",\n\t\t\t\"repeat \",\n\t\t\t\"repeat(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"do \",\n\t\t\t\"until \",\n\t\t\t\"until(\",\n\t\t\t\"foreach \",\n\t\t\t\"foreach(\",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"tact\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"TaskPaper\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"taskpaper\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"TeX\": {\n\t\tLineComment: []string{\n\t\t\t\"%\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"tex\",\n\t\t\t\"sty\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Teal\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"loop:\",\n\t\t\t\"retsub\",\n\t\t\t\"callsub \",\n\t\t\t\"&&\",\n\t\t\t\"==\",\n\t\t\t\"||\",\n\t\t\t\"<=\",\n\t\t\t\">=\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"teal\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Templ\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"if \",\n\t\t\t\" else \",\n\t\t\t\"switch \",\n\t\t\t\"case \",\n\t\t\t\"default:\",\n\t\t\t\"for \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"templ\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"TemplateToolkit\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"[% BLOCK\",\n\t\t\t\"[% FILTER\",\n\t\t\t\"[% FOR\",\n\t\t\t\"[% FOREACH\",\n\t\t\t\"[% IF\",\n\t\t\t\"[% INCLUDE\",\n\t\t\t\"[% MACRO\",\n\t\t\t\"[% PROCESS\",\n\t\t\t\"[% SWITCH\",\n\t\t\t\"[% UNLESS\",\n\t\t\t\"[% WRAPPER\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"tt\",\n\t\t\t\"tt2\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"[%#\",\n\t\t\t\t\"%]\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Tera\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"{% include \",\n\t\t\t\"{% macro \",\n\t\t\t\"{% block \",\n\t\t\t\"{% extends \",\n\t\t\t\"{% for \",\n\t\t\t\"{% set \",\n\t\t\t\"{% if \",\n\t\t\t\"{% elif \",\n\t\t\t\"{% else \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"tera\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"{#\",\n\t\t\t\t\"#}\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Terraform\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"count\",\n\t\t\t\"for\",\n\t\t\t\"for_each\",\n\t\t\t\"if\",\n\t\t\t\": \",\n\t\t\t\"? \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"> \",\n\t\t\t\">= \",\n\t\t\t\"< \",\n\t\t\t\"<= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"tf\",\n\t\t\t\"tfvars\",\n\t\t\t\"tf.json\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Textile\": {\n\t\tLineComment: []string{\n\t\t\t\"###. \",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"textile\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"###.. \",\n\t\t\t\t\"p. \",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Thrift\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"thrift\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Treetop\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"treetop\",\n\t\t\t\"tt\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Twig Template\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"{% for \",\n\t\t\t\"{% if \",\n\t\t\t\"{% else \",\n\t\t\t\"{% elseif \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"twig\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"TypeScript\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"!== \",\n\t\t\t\"== \",\n\t\t\t\"=== \",\n\t\t\t\"case \",\n\t\t\t\"case(\",\n\t\t\t\"?.\",\n\t\t\t\"?? \",\n\t\t\t\"??= \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ts\",\n\t\t\t\"tsx\",\n\t\t\t\"cts\",\n\t\t\t\"mts\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"TypeScript Typings\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"!== \",\n\t\t\t\"== \",\n\t\t\t\"=== \",\n\t\t\t\"case \",\n\t\t\t\"case(\",\n\t\t\t\"?.\",\n\t\t\t\"?? \",\n\t\t\t\"??= \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"d.ts\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"TypeSpec\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"tsp\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Typst\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"typ\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Unreal Script\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"uc\",\n\t\t\t\"uci\",\n\t\t\t\"upkg\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Up\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"try \",\n\t\t\t\"func \",\n\t\t\t\"up \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"up\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Ur/Web\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"ur\",\n\t\t\t\"urs\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Ur/Web Project\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"urp\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"V\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"v\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords: []string{\n\t\t\t\"break\",\n\t\t\t\"const \",\n\t\t\t\"continue\",\n\t\t\t\"defer\",\n\t\t\t\"else \",\n\t\t\t\"enum\",\n\t\t\t\"fn \",\n\t\t\t\"goto\",\n\t\t\t\"import \",\n\t\t\t\"in \",\n\t\t\t\"interface\",\n\t\t\t\"match\",\n\t\t\t\"mut\",\n\t\t\t\"println\",\n\t\t\t\"pub\",\n\t\t\t\"return\",\n\t\t\t\"struct \",\n\t\t\t\"type \",\n\t\t},\n\t\tFileNames: []string{},\n\t\tSheBangs:  []string{},\n\t},\n\t\"VHDL\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"vhd\",\n\t\t\t\"vhdl\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords: []string{\n\t\t\t\"abs\",\n\t\t\t\"access\",\n\t\t\t\"after\",\n\t\t\t\"alias\",\n\t\t\t\"all\",\n\t\t\t\"and\",\n\t\t\t\"architecture\",\n\t\t\t\"array\",\n\t\t\t\"assert\",\n\t\t\t\"attribute\",\n\t\t\t\"begin\",\n\t\t\t\"block\",\n\t\t\t\"body\",\n\t\t\t\"buffer\",\n\t\t\t\"bus\",\n\t\t\t\"case\",\n\t\t\t\"component\",\n\t\t\t\"configuration\",\n\t\t\t\"constant\",\n\t\t\t\"disconnect\",\n\t\t\t\"downto\",\n\t\t\t\"else\",\n\t\t\t\"elsif\",\n\t\t\t\"end\",\n\t\t\t\"entity\",\n\t\t\t\"exit\",\n\t\t\t\"file\",\n\t\t\t\"for\",\n\t\t\t\"function\",\n\t\t\t\"generate\",\n\t\t\t\"generic\",\n\t\t\t\"group\",\n\t\t\t\"guarded\",\n\t\t\t\"if\",\n\t\t\t\"impure\",\n\t\t\t\"in\",\n\t\t\t\"inertial\",\n\t\t\t\"inout\",\n\t\t\t\"is\",\n\t\t\t\"label\",\n\t\t\t\"library\",\n\t\t\t\"linkage\",\n\t\t\t\"literal\",\n\t\t\t\"loop\",\n\t\t\t\"map\",\n\t\t\t\"mod\",\n\t\t\t\"nand\",\n\t\t\t\"new\",\n\t\t\t\"next\",\n\t\t\t\"nor\",\n\t\t\t\"not\",\n\t\t\t\"null\",\n\t\t\t\"of\",\n\t\t\t\"on\",\n\t\t\t\"open\",\n\t\t\t\"or\",\n\t\t\t\"others\",\n\t\t\t\"out\",\n\t\t\t\"package\",\n\t\t\t\"port\",\n\t\t\t\"postponed\",\n\t\t\t\"procedure\",\n\t\t\t\"process\",\n\t\t\t\"pure\",\n\t\t\t\"range\",\n\t\t\t\"record\",\n\t\t\t\"register\",\n\t\t\t\"reject\",\n\t\t\t\"rem\",\n\t\t\t\"report\",\n\t\t\t\"return\",\n\t\t\t\"rol\",\n\t\t\t\"ror\",\n\t\t\t\"select\",\n\t\t\t\"severity\",\n\t\t\t\"shared\",\n\t\t\t\"signal\",\n\t\t\t\"sla\",\n\t\t\t\"sll\",\n\t\t\t\"sra\",\n\t\t\t\"srl\",\n\t\t\t\"subtype\",\n\t\t\t\"then\",\n\t\t\t\"to\",\n\t\t\t\"transport\",\n\t\t\t\"type\",\n\t\t\t\"unaffected\",\n\t\t\t\"units\",\n\t\t\t\"until\",\n\t\t\t\"use\",\n\t\t\t\"variable\",\n\t\t\t\"wait\",\n\t\t\t\"when\",\n\t\t\t\"while\",\n\t\t\t\"with\",\n\t\t\t\"xnor\",\n\t\t\t\"xor\",\n\t\t},\n\t\tFileNames: []string{},\n\t\tSheBangs:  []string{},\n\t},\n\t\"Vala\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"foreach \",\n\t\t\t\"foreach(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"switch(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"vala\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"@\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\\\"\\\"\",\n\t\t\t\tEnd:          \"\\\"\\\"\\\"\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Varnish Configuration\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"vcl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Verilog\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"vg\",\n\t\t\t\"vh\",\n\t\t\t\"v\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords: []string{\n\t\t\t\"module\",\n\t\t\t\"endmodule\",\n\t\t\t\"timescale\",\n\t\t\t\"input\",\n\t\t\t\"output\",\n\t\t\t\"reg\",\n\t\t\t\"wire\",\n\t\t\t\"posedge\",\n\t\t\t\"negedge\",\n\t\t\t\"always\",\n\t\t\t\"begin\",\n\t\t\t\"switch\",\n\t\t\t\"case\",\n\t\t\t\"end\",\n\t\t\t\"endcase\",\n\t\t\t\"else\",\n\t\t\t\"localparam\",\n\t\t\t\"initial\",\n\t\t\t\"signed\",\n\t\t\t\"assign\",\n\t\t\t\"generate\",\n\t\t\t\"genvar\",\n\t\t},\n\t\tFileNames: []string{},\n\t\tSheBangs:  []string{},\n\t},\n\t\"Verilog Args File\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"irunargs\",\n\t\t\t\"xrunargs\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Vertex Shader File\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"vsh\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Vim Script\": {\n\t\tLineComment: []string{\n\t\t\t\"\\\"\",\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"vim\",\n\t\t\t\"vimrc\",\n\t\t\t\"gvimrc\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames: []string{\n\t\t\t\"_vimrc\",\n\t\t\t\".vimrc\",\n\t\t\t\"_gvimrc\",\n\t\t\t\".gvimrc\",\n\t\t\t\"vimrc\",\n\t\t\t\"gvimrc\",\n\t\t},\n\t\tSheBangs: []string{},\n\t},\n\t\"Visual Basic\": {\n\t\tLineComment: []string{\n\t\t\t\"'\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"elseif \",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"vb\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Visual Basic for Applications\": {\n\t\tLineComment: []string{\n\t\t\t\"'\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"elseif \",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"cls\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Vue\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"vue\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"W.I.S.E. Jobfile\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"fgmj\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Web Services Description Language\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"wsdl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"WebGPU Shading Language\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for (\",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"wgsl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Windows Resource-Definition Script\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"rc\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords: []string{\n\t\t\t\"#include\",\n\t\t\t\"#define\",\n\t\t\t\"RC_INVOKED\",\n\t\t\t\"VERSIONINFO\",\n\t\t\t\"FILEVERSION\",\n\t\t\t\"PRODUCTVERSION\",\n\t\t\t\"FILEOS\",\n\t\t\t\"FILETYPE\",\n\t\t\t\"BLOCK\",\n\t\t\t\"VALUE\",\n\t\t\t\"StringFileInfo\",\n\t\t\t\"VarFileInfo\",\n\t\t},\n\t\tFileNames: []string{},\n\t\tSheBangs:  []string{},\n\t},\n\t\"Wolfram\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"nb\",\n\t\t\t\"wl\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"(*\",\n\t\t\t\t\"*)\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Wren\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"wren\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"XAML\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"xaml\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"XHTML\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"xhtml\",\n\t\t\t\"xhtm\",\n\t\t\t\"xht\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"XML\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"xml\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"XML Schema\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"xsd\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"XMake\": {\n\t\tLineComment: []string{\n\t\t\t\"--\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"while \",\n\t\t\t\"while(\",\n\t\t\t\"else \",\n\t\t\t\"else(\",\n\t\t\t\"elseif \",\n\t\t\t\"elseif(\",\n\t\t\t\"until \",\n\t\t\t\"until(\",\n\t\t\t\"or \",\n\t\t\t\"and \",\n\t\t\t\"~= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions:    []string{},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"--[[\",\n\t\t\t\t\"]]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[=[\",\n\t\t\t\t\"]=]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[==[\",\n\t\t\t\t\"]==]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[===[\",\n\t\t\t\t\"]===]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[====[\",\n\t\t\t\t\"]====]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"--[=====[\",\n\t\t\t\t\"]=====]\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"]]\",\n\t\t\t\tEnd:          \"[[\",\n\t\t\t\tIgnoreEscape: true,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames: []string{\n\t\t\t\"xmake.lua\",\n\t\t\t\"xpack.lua\",\n\t\t},\n\t\tSheBangs: []string{},\n\t},\n\t\"Xcode Config\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"xcconfig\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Xtend\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"xtend\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"YAML\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"yaml\",\n\t\t\t\"yml\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Yarn\": {\n\t\tLineComment: []string{},\n\t\tComplexityChecks: []string{\n\t\t\t\"<<if \",\n\t\t\t\"<<elseif \",\n\t\t\t\"<<else \",\n\t\t\t\" eq \",\n\t\t\t\" == \",\n\t\t\t\" neq \",\n\t\t\t\" ! \",\n\t\t\t\" gt \",\n\t\t\t\" > \",\n\t\t\t\" lt \",\n\t\t\t\" < \",\n\t\t\t\" lte \",\n\t\t\t\" <= \",\n\t\t\t\" gte \",\n\t\t\t\" >= \",\n\t\t\t\" xor \",\n\t\t\t\" ^ \",\n\t\t\t\" and \",\n\t\t\t\" && \",\n\t\t\t\" || \",\n\t\t\t\" or \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"yarn\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Zig\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"catch \",\n\t\t\t\"while \",\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"else \",\n\t\t\t\"errdefer \",\n\t\t\t\"try \",\n\t\t\t\"switch \",\n\t\t\t\"orelse \",\n\t\t\t\"||\",\n\t\t\t\"&&\",\n\t\t\t\"!=\",\n\t\t\t\"==\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"zig\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\\\",\n\t\t\t\tEnd:          \"\\n\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ZoKrates\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"zok\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"Zsh\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"|| \",\n\t\t\t\"&& \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"zsh\",\n\t\t\t\"zshenv\",\n\t\t\t\"zlogin\",\n\t\t\t\"zlogout\",\n\t\t\t\"zprofile\",\n\t\t\t\"zshrc\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\\\\\"\",\n\t\t\t\tEnd:          \"\\\\\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames: []string{\n\t\t\t\".zshenv\",\n\t\t\t\".zlogin\",\n\t\t\t\".zlogout\",\n\t\t\t\".zprofile\",\n\t\t\t\".zshrc\",\n\t\t},\n\t\tSheBangs: []string{\n\t\t\t\"zsh\",\n\t\t},\n\t},\n\t\"bait\": {\n\t\tLineComment: []string{\n\t\t\t\"//\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"if \",\n\t\t\t\"else \",\n\t\t\t\" or \",\n\t\t\t\" and \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"bt\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"/*\",\n\t\t\t\t\"*/\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"`\",\n\t\t\t\tEnd:          \"`\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: true,\n\t\tKeywords: []string{\n\t\t\t\"and\",\n\t\t\t\"break\",\n\t\t\t\"const \",\n\t\t\t\"continue\",\n\t\t\t\"else \",\n\t\t\t\"fun \",\n\t\t\t\"import \",\n\t\t\t\"not \",\n\t\t\t\"or \",\n\t\t\t\"package \",\n\t\t\t\"return\",\n\t\t\t\"struct \",\n\t\t},\n\t\tFileNames: []string{},\n\t\tSheBangs:  []string{},\n\t},\n\t\"gitignore\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions:       []string{},\n\t\tExtensionFile:    false,\n\t\tMultiLine:        [][]string{},\n\t\tQuotes:           []Quote{},\n\t\tNestedMultiLine:  false,\n\t\tKeywords:         []string{},\n\t\tFileNames: []string{\n\t\t\t\".gitignore\",\n\t\t},\n\t\tSheBangs: []string{},\n\t},\n\t\"hoon\": {\n\t\tLineComment: []string{\n\t\t\t\"::\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"%+  turn\",\n\t\t\t\"(turn \",\n\t\t\t\"%+  roll\",\n\t\t\t\"(roll \",\n\t\t\t\"%+  reel\",\n\t\t\t\"(reel \",\n\t\t\t\"|.  \",\n\t\t\t\"|.(\",\n\t\t\t\"|-  \",\n\t\t\t\"|-(\",\n\t\t\t\"|?  \",\n\t\t\t\"|?(\",\n\t\t\t\"?|  \",\n\t\t\t\"?|(\",\n\t\t\t\"|(\",\n\t\t\t\"?-  \",\n\t\t\t\"?-(\",\n\t\t\t\"?:  \",\n\t\t\t\"?:(\",\n\t\t\t\"?.  \",\n\t\t\t\"?.(\",\n\t\t\t\"?^  \",\n\t\t\t\"?^(\",\n\t\t\t\"?<  \",\n\t\t\t\"?<(\",\n\t\t\t\"?>  \",\n\t\t\t\"?>(\",\n\t\t\t\"?+  \",\n\t\t\t\"?+(\",\n\t\t\t\"?&  \",\n\t\t\t\"?&(\",\n\t\t\t\"&(\",\n\t\t\t\"?@  \",\n\t\t\t\"?@(\",\n\t\t\t\"?~  \",\n\t\t\t\"?~(\",\n\t\t\t\"?=  \",\n\t\t\t\"?=(\",\n\t\t\t\".=  \",\n\t\t\t\"=(\",\n\t\t\t\"!=(\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"hoon\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"'\",\n\t\t\t\tEnd:          \"'\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tStart:        \"```\",\n\t\t\t\tEnd:          \"```\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"ignore\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions:       []string{},\n\t\tExtensionFile:    false,\n\t\tMultiLine:        [][]string{},\n\t\tQuotes:           []Quote{},\n\t\tNestedMultiLine:  false,\n\t\tKeywords:         []string{},\n\t\tFileNames: []string{\n\t\t\t\".ignore\",\n\t\t},\n\t\tSheBangs: []string{},\n\t},\n\t\"jq\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\".\",\n\t\t\t\"if \",\n\t\t\t\"elif \",\n\t\t\t\"else \",\n\t\t\t\"!= \",\n\t\t\t\"== \",\n\t\t\t\">= \",\n\t\t\t\"<= \",\n\t\t\t\"< \",\n\t\t\t\"> \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"not \",\n\t\t\t\"// \",\n\t\t\t\"try \",\n\t\t\t\"break \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"jq\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"m4\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"m4\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"nuspec\": {\n\t\tLineComment:      []string{},\n\t\tComplexityChecks: []string{},\n\t\tExtensions: []string{\n\t\t\t\"nuspec\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine: [][]string{\n\t\t\t{\n\t\t\t\t\"<!--\",\n\t\t\t\t\"-->\",\n\t\t\t},\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"\\\"\",\n\t\t\t\tEnd:          \"\\\"\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n\t\"sed\": {\n\t\tLineComment: []string{\n\t\t\t\"#\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"for \",\n\t\t\t\"for(\",\n\t\t\t\"if \",\n\t\t\t\"if(\",\n\t\t\t\"switch \",\n\t\t\t\"while \",\n\t\t\t\"else \",\n\t\t\t\"and \",\n\t\t\t\"or \",\n\t\t\t\"not \",\n\t\t\t\"in \",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"sed\",\n\t\t},\n\t\tExtensionFile:   false,\n\t\tMultiLine:       [][]string{},\n\t\tQuotes:          []Quote{},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs: []string{\n\t\t\t\"sed\",\n\t\t},\n\t},\n\t\"wenyan\": {\n\t\tLineComment: []string{\n\t\t\t\"批曰\",\n\t\t\t\"注曰\",\n\t\t\t\"疏曰\",\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t\"若\",\n\t\t\t\"若非\",\n\t\t\t\"等於\",\n\t\t\t\"不等於\",\n\t\t\t\"不大於\",\n\t\t\t\"不小於\",\n\t\t\t\"大於\",\n\t\t\t\"小於\",\n\t\t\t\"凡\",\n\t\t\t\"為是\",\n\t\t\t\"恆為是\",\n\t\t\t\"中之\",\n\t\t\t\"遍\",\n\t\t},\n\t\tExtensions: []string{\n\t\t\t\"wy\",\n\t\t},\n\t\tExtensionFile: false,\n\t\tMultiLine:     [][]string{},\n\t\tQuotes: []Quote{\n\t\t\t{\n\t\t\t\tStart:        \"」」\",\n\t\t\t\tEnd:          \"「「\",\n\t\t\t\tIgnoreEscape: false,\n\t\t\t\tDocString:    false,\n\t\t\t},\n\t\t},\n\t\tNestedMultiLine: false,\n\t\tKeywords:        []string{},\n\t\tFileNames:       []string{},\n\t\tSheBangs:        []string{},\n\t},\n}\n"
  },
  {
    "path": "processor/detector.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"cmp\"\n\t\"errors\"\n\t\"slices\"\n\t\"strings\"\n)\n\nvar (\n\terrMissingShebang              = errors.New(\"missing shebang\")\n\terrUnknownShebang              = errors.New(\"unknown shebang\")\n\terrUnableToDetermineShebangCmd = errors.New(\"unable to determine shebang command\")\n)\n\n// DetectLanguage detects a language based on the filename returns the language extension and error\nfunc DetectLanguage(name string) ([]string, string) {\n\textension := \"\"\n\n\tif len(AllowListExtensions) == 0 {\n\t\t// Check the full name for special languages such as xmake.lua, meson.build, ...\n\t\tlang, ok := FilenameToLanguage[strings.ToLower(name)]\n\t\tif ok {\n\t\t\treturn []string{lang}, name\n\t\t}\n\n\t\tt := strings.Count(name, \".\")\n\t\t// If there is no . in the filename or it starts with one then check if #!\n\t\tif t == 0 || (name[0] == '.' && t == 1) {\n\t\t\tprintWarnF(\"possible #! file: %s\", name)\n\n\t\t\t// No extension indicates possible #! so mark as such for processing\n\t\t\treturn []string{SheBang}, name\n\t\t}\n\t}\n\n\t// Lookup in case the full name matches\n\tlanguage, ok := ExtensionToLanguage[strings.ToLower(name)]\n\n\t// If no match check if we have a matching extension\n\tif !ok {\n\t\textension = getExtension(name)\n\t\tlanguage, ok = ExtensionToLanguage[extension]\n\t}\n\n\t// Convert from d.ts to ts and check that in case of multiple extensions\n\tif !ok {\n\t\textension = getExtension(extension)\n\t\tlanguage = ExtensionToLanguage[extension]\n\t}\n\n\treturn language, extension\n}\n\n// DetectSheBang given some content attempt to determine if it has a #! that maps to a known language and return the language\nfunc DetectSheBang(content string) (string, error) {\n\tif !strings.HasPrefix(content, \"#!\") {\n\t\treturn \"\", errMissingShebang\n\t}\n\n\tindex := strings.Index(content, \"\\n\")\n\n\tif index != -1 {\n\t\tcontent = content[:index]\n\t}\n\n\tcmd, err := scanForSheBang([]byte(content))\n\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tfor k, v := range ShebangLookup {\n\t\tif slices.Contains(v, cmd) {\n\t\t\t// detects both full path and env usage\n\t\t\treturn k, nil\n\t\t}\n\t}\n\n\treturn \"\", errUnknownShebang\n}\n\nfunc scanForSheBang(content []byte) (string, error) {\n\tstate := 0\n\tlastSlash := 0\n\n\tcandidate1 := \"\"\n\tcandidate2 := \"\"\n\nloop:\n\tfor i := range content {\n\t\tswitch state {\n\t\tcase 0: // Deals with whitespace after #! and before first /\n\t\t\tif content[i] == '/' {\n\t\t\t\tlastSlash = i\n\t\t\t\tstate = 1\n\t\t\t}\n\t\tcase 1: // Once we found the first / keep going till we hit whitespace\n\t\t\tif content[i] == '/' {\n\t\t\t\tlastSlash = i\n\t\t\t}\n\n\t\t\t// when at the end pull out the candidate\n\t\t\tif i == len(content)-1 {\n\t\t\t\tcandidate1 = string(content[lastSlash+1 : i+1])\n\t\t\t}\n\n\t\t\t// between last slash and here is the first candidate which is either env or Perl/PHP/Python etc..\n\t\t\tif isWhitespace(content[i]) {\n\t\t\t\t// mark from lastSlash to here as first argument\n\t\t\t\tcandidate1 = string(content[lastSlash+1 : i])\n\t\t\t\tstate = 2\n\t\t\t}\n\t\tcase 2: // We have the first candidate, see if there is another\n\t\t\t// go till end of whitespace, mark that spot as new start\n\t\t\tif !isWhitespace(content[i]) {\n\t\t\t\tlastSlash = i\n\t\t\t\tstate = 3\n\t\t\t}\n\t\tcase 3:\n\t\t\tif i == len(content)-1 {\n\t\t\t\tcandidate2 = string(content[lastSlash : i+1])\n\t\t\t}\n\n\t\t\tif isWhitespace(content[i]) {\n\t\t\t\tcandidate2 = string(content[lastSlash:i])\n\t\t\t\tstate = 4\n\t\t\t}\n\t\tcase 4:\n\t\t\tbreak loop\n\t\t}\n\t}\n\n\tswitch {\n\tcase candidate1 == \"env\":\n\t\treturn candidate2, nil\n\tcase candidate1 != \"\":\n\t\treturn candidate1, nil\n\t}\n\n\treturn \"\", errUnableToDetermineShebangCmd\n}\n\ntype languageGuess struct {\n\tName  string\n\tCount int\n}\n\n// DetermineLanguage given a filename, fallback language, possible languages and content make a guess to the type.\n// If multiple possible it will guess based on keywords similar to how https://github.com/vmchale/polyglot does\nfunc DetermineLanguage(filename string, fallbackLanguage string, possibleLanguages []string, content []byte) string {\n\t// If being called through an API it's possible nothing is set here and as\n\t// such should just return as the Language value should have already been set\n\tif len(possibleLanguages) == 0 {\n\t\treturn fallbackLanguage\n\t}\n\n\t// There should only be two possibilities now, either we have a single fallbackLanguage\n\t// in which case we set it and return\n\t// or we have multiple in which case we try to determine it heuristically\n\tif len(possibleLanguages) == 1 {\n\t\treturn possibleLanguages[0]\n\t}\n\n\tstartTime := makeTimestampNano()\n\n\tvar toCheck string\n\tif len(content) > 20_000 {\n\t\ttoCheck = string(content)[:20_000]\n\t} else {\n\t\ttoCheck = string(content)\n\t}\n\n\tprimary := \"\"\n\n\ttoSort := make([]languageGuess, 0, len(possibleLanguages))\n\tfor _, lan := range possibleLanguages {\n\t\tLanguageFeaturesMutex.Lock()\n\t\tlangFeatures := LanguageFeatures[lan]\n\t\tLanguageFeaturesMutex.Unlock()\n\n\t\tcount := 0\n\t\tfor _, key := range langFeatures.Keywords {\n\t\t\tif strings.Contains(toCheck, key) {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\n\t\t// if no features are found that means that this one is considered the primary\n\t\t// and as such the default fallback if we don't find a suitable number of matching\n\t\t// keywords\n\t\t// consider YAML files for example, where cloudformation files can also be YAML\n\t\t// YAML can have any form so it's not possible to say \"this is a yaml file\"\n\t\t// so we can only say \"this is likely to be a cloudformation file\", and as such\n\t\t// we need to handle a fallback case, which in this case is nothing\n\t\tif len(langFeatures.Keywords) == 0 {\n\t\t\tprimary = lan\n\t\t}\n\n\t\ttoSort = append(toSort, languageGuess{Name: lan, Count: count})\n\t}\n\n\tslices.SortFunc(toSort, func(a, b languageGuess) int {\n\t\tif order := cmp.Compare(b.Count, a.Count); order != 0 {\n\t\t\treturn order\n\t\t}\n\t\treturn strings.Compare(a.Name, b.Name)\n\t})\n\n\t// fmt.Println(toSort)\n\t// fmt.Println(possibleLanguages)\n\t// fmt.Println(primary, toSort[0].Name, toSort[0].Count)\n\n\tif primary != \"\" && len(toSort) != 0 {\n\t\t// OK at this point we have a primary, which means we want 3 or more matches to count as something else\n\t\tif toSort[0].Count < 3 {\n\t\t\t// we didn't find enough results, so lets return the primary in this case\n\t\t\treturn primary\n\t\t}\n\t}\n\n\tprintWarnF(\"guessing language %s for file %s\", toSort[0].Name, filename)\n\tprintTraceF(\"nanoseconds to guess language: %s: %d\", filename, makeTimestampNano()-startTime)\n\n\tif len(toSort) != 0 {\n\t\treturn toSort[0].Name\n\t}\n\n\treturn fallbackLanguage\n}\n"
  },
  {
    "path": "processor/detector_test.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"testing\"\n)\n\nfunc TestDetectLanguage(t *testing.T) {\n\tProcessConstants()\n\tAllowListExtensions = []string{\"css\"}\n\t_, ext := DetectLanguage(\"example.black.css\")\n\n\tif ext != \"css\" {\n\t\tt.Error(\"Expected css got\", ext)\n\t}\n\tAllowListExtensions = []string{}\n}\n\nfunc TestDetectSheBangEmpty(t *testing.T) {\n\tProcessConstants()\n\n\tx, y := DetectSheBang(\"\")\n\n\tif x != \"\" || y == nil {\n\t\tt.Error(\"Expected no match got\", x)\n\t}\n}\n\nfunc TestDetectSheBangPerl(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/usr/bin/perl\",\n\t\t\"#!  /usr/bin/perl\",\n\t\t\"#!/usr/bin/perl -w\",\n\t\t\"#!/usr/bin/env perl\",\n\t\t\"#!  /usr/bin/env   perl\",\n\t\t\"#!/usr/bin/env perl -w\",\n\t\t\"#!  /usr/bin/env   perl   -w\",\n\t\t\"#!/opt/local/bin/perl\",\n\t\t\"#!/usr/bin/perl5\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"Perl\" || y != nil {\n\t\t\tt.Error(\"Expected Perl match got\", x, \"for\", c)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangPhp(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/usr/bin/php5\",\n\t\t\"#!/usr/bin/php\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"PHP\" || y != nil {\n\t\t\tt.Error(\"Expected PHP match got\", x)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangPython(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/usr/bin/python\",\n\t\t\"#!/usr/bin/python2\",\n\t\t\"#!/usr/bin/python3\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"Python\" || y != nil {\n\t\t\tt.Error(\"Expected Python match got\", x)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangAWK(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/usr/bin/awk\",\n\t\t\"#!/usr/bin/gawk\",\n\t\t\"#!/usr/bin/mawk\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"AWK\" || y != nil {\n\t\t\tt.Error(\"Expected AWK match got\", x)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangCsh(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/bin/csh\",\n\t\t\"#!/bin/tcsh\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"C Shell\" || y != nil {\n\t\t\tt.Error(\"Expected C Shell match got\", x)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangD(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/usr/bin/env rdmd\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"D\" || y != nil {\n\t\t\tt.Error(\"Expected D match got\", x)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangNode(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/usr/bin/env node\",\n\t\t\"#!/usr/bin/node\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"JavaScript\" || y != nil {\n\t\t\tt.Error(\"Expected JavaScript match got\", x)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangLisp(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/usr/bin/env sbcl\",\n\t\t\"#!/usr/bin/sbcl\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"Lisp\" || y != nil {\n\t\t\tt.Error(\"Expected Lisp match got\", x)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangRacket(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/usr/bin/env racket\",\n\t\t\"#!/usr/bin/racket\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"Racket\" || y != nil {\n\t\t\tt.Error(\"Expected Racket match got\", x)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangFish(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/usr/bin/env fish\",\n\t\t\"#!/usr/bin/fish\",\n\t\t\"#!/bin/fish\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"Fish\" || y != nil {\n\t\t\tt.Error(\"Expected Fish match got\", x)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangShell(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/usr/bin/env sh\",\n\t\t\"#!/bin/sh\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"Shell\" || y != nil {\n\t\t\tt.Error(\"Expected Shell match got\", x)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangRuby(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/usr/bin/env ruby\",\n\t\t\"#!/usr/bin/ruby\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"Ruby\" || y != nil {\n\t\t\tt.Error(\"Expected Ruby match got\", x)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangLua(t *testing.T) {\n\tProcessConstants()\n\n\tcases := []string{\n\t\t\"#!/usr/bin/env lua\",\n\t\t\"#!/usr/bin/lua\",\n\t}\n\n\tfor _, c := range cases {\n\t\tx, y := DetectSheBang(c)\n\n\t\tif x != \"Lua\" || y != nil {\n\t\t\tt.Error(\"Expected Lua match got\", x)\n\t\t}\n\t}\n}\n\nfunc TestDetectSheBangMultiple(t *testing.T) {\n\tProcessConstants()\n\n\tx, y := DetectSheBang(`#!/python/perl/ruby`)\n\n\tif x != \"Ruby\" || y != nil {\n\t\tt.Error(\"Expected Ruby match got\", x)\n\t}\n}\n\nfunc TestDetectSheBangMultipleNewLine(t *testing.T) {\n\tProcessConstants()\n\n\tx, y := DetectSheBang(`#!/python/perl/ruby\npython perl fish`)\n\n\tif x != \"Ruby\" || y != nil {\n\t\tt.Error(\"Expected Ruby match got\", x)\n\t}\n}\n\nfunc TestScanSheBang(t *testing.T) {\n\tcases := []string{\n\t\t\"#!/usr/bin/perl\",\n\t\t\"#!  /usr/bin/perl\",\n\t\t\"#!/usr/bin/perl -w\",\n\t\t\"#!/usr/bin/env perl\",\n\t\t\"#!  /usr/bin/env   perl\",\n\t\t\"#!/usr/bin/env perl -w\",\n\t\t\"#!  /usr/bin/env   perl   -w\",\n\t\t\"#!/opt/local/bin/perl\",\n\t}\n\n\tfor _, c := range cases {\n\t\tr, _ := scanForSheBang([]byte(c))\n\n\t\tif r != \"perl\" {\n\t\t\tt.Errorf(\"Expected 'perl' got '%s' for %s\", r, c)\n\t\t}\n\t}\n}\n\n// Randomly try things to see what happens\nfunc TestScanSheBangFuzz(t *testing.T) {\n\tfor i := 0; i < 1000; i++ {\n\t\tx, _ := scanForSheBang([]byte(randStringBytes(100)))\n\n\t\tif x == \"NEVERHAPPEN\" {\n\t\t\tt.Errorf(\"Errr wot?\")\n\t\t}\n\t}\n}\n\nfunc TestCheckFullNameSheBang(t *testing.T) {\n\tProcessConstants()\n\n\tr, n := DetectLanguage(\"name\")\n\n\tif n != \"name\" {\n\t\tt.Error(\"Expected name to return\")\n\t}\n\n\tif r[0] != \"#!\" {\n\t\tt.Error(\"Expected #! return\")\n\t}\n}\n\nfunc TestCheckFullNameLicense(t *testing.T) {\n\tProcessConstants()\n\n\tr, n := DetectLanguage(\"license\")\n\n\tif n != \"license\" {\n\t\tt.Error(\"Expected name to return\")\n\t}\n\n\tif r[0] != \"License\" {\n\t\tt.Error(\"Expected License return\")\n\t}\n}\n\nfunc TestCheckFullNameXMake(t *testing.T) {\n\tProcessConstants()\n\n\tr, n := DetectLanguage(\"xmake.lua\")\n\n\tif n != \"xmake.lua\" {\n\t\tt.Error(\"Expected xmake.lua to return\")\n\t}\n\n\tif r[0] != \"XMake\" {\n\t\tt.Error(\"Expected XMake return\")\n\t}\n\n\t// count xmake.lua as a lua file if AllowListExtensions was set\n\tAllowListExtensions = []string{\"lua\"}\n\tr, n = DetectLanguage(\"xmake.lua\")\n\n\tif n != \"lua\" {\n\t\tt.Error(\"Expected lua to return\")\n\t}\n\n\tif r[0] != \"Lua\" {\n\t\tt.Error(\"Expected Lua return\")\n\t}\n\tAllowListExtensions = []string{}\n}\n\nfunc TestGuessLanguageCoq(t *testing.T) {\n\tres := DetermineLanguage(\"\", \"\", []string{\"Coq\", \"SystemVerilog\"}, []byte(`Require Hypothesis Inductive`))\n\n\tif res != \"Coq\" {\n\t\tt.Error(\"Expected guessed language to have been Coq got\", res)\n\t}\n}\n\nfunc TestGuessLanguageSystemVerilog(t *testing.T) {\n\tres := DetermineLanguage(\"\", \"\", []string{\"Coq\", \"SystemVerilog\"}, []byte(`endmodule posedge edge always wire`))\n\n\tif res != \"SystemVerilog\" {\n\t\tt.Error(\"Expected guessed language to have been SystemVerilog got\", res)\n\t}\n}\n\nfunc TestGuessLanguageLanguageSetNoPossible(t *testing.T) {\n\tres := DetermineLanguage(\"\", \"Java\", []string{}, []byte(`endmodule posedge edge always wire`))\n\n\tif res != \"Java\" {\n\t\tt.Error(\"Expected guessed language to have been Java got\", res)\n\t}\n}\n\nfunc TestGuessLanguageSingleLanguageSet(t *testing.T) {\n\tres := DetermineLanguage(\"\", \"Java\", []string{\"Rust\"}, []byte(`endmodule posedge edge always wire`))\n\n\tif res != \"Rust\" {\n\t\tt.Error(\"Expected guessed language to have been Rust got\", res)\n\t}\n}\n\nfunc TestGuessLanguageLanguageEmptyContent(t *testing.T) {\n\tres := DetermineLanguage(\"\", \"\", []string{\"Rust\"}, []byte(``))\n\n\tif res != \"Rust\" {\n\t\tt.Error(\"Expected guessed language to have been Rust got\", res)\n\t}\n}\n\n// Benchmarks below\n\nfunc BenchmarkScanSheBangFuzz(b *testing.B) {\n\tfor i := 0; i < b.N; i++ {\n\t\t_, _ = scanForSheBang([]byte(randStringBytes(100)))\n\t}\n}\n\nfunc BenchmarkScanSheBangReal(b *testing.B) {\n\tfor i := 0; i < b.N; i++ {\n\t\t_, _ = scanForSheBang([]byte(\"#!  /usr/bin/env   perl   -w\"))\n\t}\n}\n"
  },
  {
    "path": "processor/file.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// Used as quick lookup for files with the same name to avoid some processing\n// needs to be sync.Map as it potentially could be called by many GoRoutines\nvar extensionCache sync.Map\n\n// A custom version of extracting extensions for a file\n// which also has a case-insensitive cache in order to save\n// some needless processing\nfunc getExtension(name string) string {\n\tname = strings.ToLower(name)\n\textension, ok := extensionCache.Load(name)\n\n\tif ok {\n\t\treturn extension.(string)\n\t}\n\n\text := filepath.Ext(name)\n\n\tif ext == \"\" || strings.LastIndex(name, \".\") == 0 {\n\t\textension = name\n\t} else {\n\t\t// Handling multiple dots or multiple extensions only needs to delete the last extension\n\t\t// and then call filepath.Ext.\n\t\t// If there are multiple extensions, it is the value of subExt,\n\t\t// otherwise subExt is an empty string.\n\t\tsubExt := filepath.Ext(strings.TrimSuffix(name, ext))\n\t\textension = strings.TrimPrefix(subExt+ext, \".\")\n\t}\n\n\textensionCache.Store(name, extension)\n\treturn extension.(string)\n}\n\nfunc newFileJob(path, name string, fileInfo os.FileInfo) *FileJob {\n\tif NoLarge {\n\t\tif fileInfo.Size() >= LargeByteCount {\n\t\t\tprintWarnF(\"skipping large file due to byte size: %s\", path)\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tvar symPath = \"\"\n\t// Check if the file is a symlink and if we want to count those then work out its path and rejig\n\t// everything so we can count the real file to ensure the counts are correct\n\tif fileInfo.Mode()&os.ModeSymlink == os.ModeSymlink {\n\t\tif !IncludeSymLinks {\n\t\t\tprintWarnF(\"skipping symlink file: %s\", name)\n\t\t\treturn nil\n\t\t}\n\n\t\tvar err error\n\t\tsymPath, err = filepath.EvalSymlinks(path)\n\t\tif err != nil {\n\t\t\tprintError(err.Error())\n\t\t\treturn nil\n\t\t}\n\t\tfileInfo, err = os.Lstat(symPath)\n\t\tif err != nil {\n\t\t\tprintError(err.Error())\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// Skip non-regular files. They are unlikely to be code and may hang if we\n\t// try and read them.\n\tif !fileInfo.Mode().IsRegular() {\n\t\tprintWarnF(\"skipping non-regular file: %s\", path)\n\t\treturn nil\n\t}\n\n\tlanguage, extension := DetectLanguage(name)\n\n\tif len(language) != 0 {\n\t\t// check if extensions in the allow list, which should limit to just those extensions\n\t\tif len(AllowListExtensions) != 0 {\n\t\t\tok := false\n\t\t\tfor _, x := range AllowListExtensions {\n\t\t\t\tif x == extension {\n\t\t\t\t\tok = true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif !ok {\n\t\t\t\tprintWarnF(\"skipping file as not in allow list: %s\", name)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\n\t\t// check if we should exclude this type\n\t\tif len(ExcludeListExtensions) != 0 {\n\t\t\tok := true\n\t\t\tfor _, x := range ExcludeListExtensions {\n\t\t\t\tif x == extension {\n\t\t\t\t\tok = false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif !ok {\n\t\t\t\tprintWarnF(\"skipping file as in exclude list: %s\", name)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\n\t\tif len(ExcludeFilename) != 0 {\n\t\t\tok := true\n\t\t\tfor _, x := range ExcludeFilename {\n\t\t\t\tif strings.Contains(name, x) {\n\t\t\t\t\tok = false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif !ok {\n\t\t\t\tprintWarnF(\"skipping file as in exclude file list: %s\", name)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\n\t\tfor _, l := range language {\n\t\t\tLoadLanguageFeature(l)\n\t\t}\n\n\t\tif !CountIgnore {\n\t\t\tfor _, l := range language {\n\t\t\t\tif l == \"ignore\" || l == \"gitignore\" {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn &FileJob{\n\t\t\tLocation:          path,\n\t\t\tSymlocation:       symPath,\n\t\t\tFilename:          name,\n\t\t\tExtension:         extension,\n\t\t\tPossibleLanguages: language,\n\t\t\tBytes:             fileInfo.Size(),\n\t\t}\n\t} else {\n\t\tprintWarnF(\"skipping file unknown extension: %s\", name)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "processor/file_test.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"math/rand/v2\"\n\t\"os\"\n\t\"testing\"\n)\n\nfunc TestGetExtension(t *testing.T) {\n\tgot := getExtension(\"something.c\")\n\texpected := \"c\"\n\n\tif got != expected {\n\t\tt.Errorf(\"Expected %s got %s\", expected, got)\n\t}\n}\n\nfunc TestGetExtensionNoExtension(t *testing.T) {\n\tgot := getExtension(\"something\")\n\texpected := \"something\"\n\n\tif got != expected {\n\t\tt.Errorf(\"Expected %s got %s\", expected, got)\n\t}\n}\n\nfunc TestGetExtensionMultipleDots(t *testing.T) {\n\tgot := getExtension(\".travis.yml\")\n\texpected := \"travis.yml\"\n\n\tif got != expected {\n\t\tt.Errorf(\"Expected %s got %s\", expected, got)\n\t}\n}\n\nfunc TestGetExtensionMultipleExtensions(t *testing.T) {\n\tgot := getExtension(\"something.go.yml\")\n\texpected := \"go.yml\"\n\n\tif got != expected {\n\t\tt.Errorf(\"Expected %s got %s\", expected, got)\n\t}\n}\n\nfunc TestGetExtensionStartsWith(t *testing.T) {\n\tgot := getExtension(\".gitignore\")\n\texpected := \".gitignore\"\n\n\tif got != expected {\n\t\tt.Errorf(\"Expected %s got %s\", expected, got)\n\t}\n}\n\nfunc TestGetExtensionTypeScriptDefinition(t *testing.T) {\n\tgot := getExtension(\"test.d.ts\")\n\texpected := \"d.ts\"\n\n\tif got != expected {\n\t\tt.Errorf(\"Expected %s got %s\", expected, got)\n\t}\n}\n\nfunc TestGetExtensionSecondPass(t *testing.T) {\n\tgot := getExtension(\"test.d.ts\")\n\tgot = getExtension(got)\n\texpected := \"ts\"\n\n\tif got != expected {\n\t\tt.Errorf(\"Expected %s got %s\", expected, got)\n\t}\n}\n\nfunc TestNewFileJobFullname(t *testing.T) {\n\tProcessConstants()\n\tAllowListExtensions = []string{}\n\n\tfi, _ := os.Stat(\"../examples/issue114/makefile\")\n\tjob := newFileJob(\"../examples/issue114/\", \"makefile\", fi)\n\n\tif job.PossibleLanguages[0] != \"Makefile\" {\n\t\tt.Error(\"Expected makefile got\", job.PossibleLanguages[0])\n\t}\n}\n\nfunc TestNewFileJob(t *testing.T) {\n\tProcessConstants()\n\n\tfi, _ := os.Stat(\"../examples/issue114/java\")\n\tjob := newFileJob(\"../examples/issue114/\", \"java\", fi)\n\n\tif job.PossibleLanguages[0] != \"#!\" {\n\t\tt.Error(\"Expected special value #! got\", job.PossibleLanguages[0])\n\t}\n}\n\nfunc TestNewFileJobGitIgnore(t *testing.T) {\n\tAllowListExtensions = []string{}\n\tProcessConstants()\n\tCountIgnore = true\n\n\tfi, _ := os.Stat(\"../examples/issue114/.gitignore\")\n\tjob := newFileJob(\"../examples/issue114/\", \".gitignore\", fi)\n\n\tif job.PossibleLanguages[0] != \"gitignore\" {\n\t\tt.Error(\"Expected gitignore got\", job.PossibleLanguages[0])\n\t}\n}\n\nfunc TestNewFileJobIgnore(t *testing.T) {\n\tAllowListExtensions = []string{}\n\tProcessConstants()\n\n\tfi, _ := os.Stat(\"../examples/issue114/.ignore\")\n\tjob := newFileJob(\"../examples/issue114/\", \".ignore\", fi)\n\n\tif job.PossibleLanguages[0] != \"ignore\" {\n\t\tt.Error(\"Expected ignore got\", job.PossibleLanguages[0])\n\t}\n}\n\nfunc TestNewFileJobLicense(t *testing.T) {\n\tProcessConstants()\n\n\tfi, _ := os.Stat(\"../examples/issue114/license\")\n\tjob := newFileJob(\"../examples/issue114/\", \"license\", fi)\n\n\tif job.PossibleLanguages[0] != \"License\" {\n\t\tt.Error(\"Expected License got\", job.PossibleLanguages[0])\n\t}\n}\n\nfunc TestNewFileJobYAML(t *testing.T) {\n\tProcessConstants()\n\n\tfi, _ := os.Stat(\"../examples/issue114/.travis.yml\")\n\tjob := newFileJob(\"../examples/issue114/\", \".travis.yml\", fi)\n\n\tfound := false\n\tfor _, j := range job.PossibleLanguages {\n\t\tif j == \"YAML\" {\n\t\t\tfound = true\n\t\t}\n\t}\n\n\tif !found {\n\t\tt.Error(\"Expected YAML in but didn't find\", job.PossibleLanguages)\n\t}\n}\n\nfunc TestNewFileJobYAMLCloudformation(t *testing.T) {\n\tProcessConstants()\n\n\tfi, _ := os.Stat(\"../examples/issue114/.travis.yml\")\n\tjob := newFileJob(\"../examples/issue114/\", \".travis.yml\", fi)\n\n\tfound := false\n\tfor _, j := range job.PossibleLanguages {\n\t\tif j == \"CloudFormation (YAML)\" {\n\t\t\tfound = true\n\t\t}\n\t}\n\n\tif !found {\n\t\tt.Error(\"Expected CloudFormation in but didn't find\", job.PossibleLanguages)\n\t}\n}\n\nfunc TestNewFileJobSize(t *testing.T) {\n\tProcessConstants()\n\tNoLarge = true\n\tLargeByteCount = 1\n\n\tfi, _ := os.Stat(\"file_test.go\")\n\tjob := newFileJob(\"file_test.go\", \"file_test.go\", fi)\n\n\tif job != nil {\n\t\tt.Error(\"Expected nil got\", job)\n\t}\n\n\tNoLarge = false\n\tLargeByteCount = 1000000\n}\n\nfunc BenchmarkGetExtensionDifferent(b *testing.B) {\n\tfor i := 0; i < b.N; i++ {\n\n\t\tb.StopTimer()\n\t\tname := randStringBytes(3) + \".\" + randStringBytes(2)\n\t\tb.StartTimer()\n\n\t\tgetExtension(name)\n\t}\n}\n\nfunc BenchmarkGetExtensionSame(b *testing.B) {\n\tname := randStringBytes(7) + \".\" + randStringBytes(3)\n\n\tfor i := 0; i < b.N; i++ {\n\t\tgetExtension(name)\n\t}\n}\n\nconst letterBytes = \"abcdefghijklmnopqrstuvwxyz\"\n\nfunc randStringBytes(n int) string {\n\tb := make([]byte, n)\n\tfor i := range b {\n\t\tb[i] = letterBytes[rand.IntN(len(letterBytes))]\n\t}\n\treturn string(b)\n}\n"
  },
  {
    "path": "processor/filereader.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\n// FileReader is a struct responsible for reading files into its buffer\ntype FileReader struct {\n\tBuffer *bytes.Buffer\n}\n\n// NewFileReader creates a new file reader responsible for reading a file\nfunc NewFileReader() FileReader {\n\treturn FileReader{\n\t\tBuffer: &bytes.Buffer{},\n\t}\n}\n\n// ReadFile actually reads the file into a buffer size controlled by LargeByteCount\nfunc (reader *FileReader) ReadFile(path string, size int) ([]byte, error) {\n\tfd, err := os.Open(path)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error opening %s: %v\", path, err)\n\t}\n\tdefer func(file *os.File) {\n\t\t_ = file.Close()\n\t}(fd)\n\n\t// Generally, re-using the buffer is best. But, if we end up reading a huge\n\t// file we would allocate an equally huge buffer. Rather than keep the huge\n\t// buffer around forever, it's probably worth eating the GC cost of\n\t// replacing it so that we can release the memory.\n\tif int64(reader.Buffer.Cap()) > LargeByteCount {\n\t\treader.Buffer = &bytes.Buffer{}\n\t}\n\n\t// Reset contents, but retain the underlying memory that's already been\n\t// allocated\n\treader.Buffer.Reset()\n\n\treader.Buffer.Grow(size)\n\n\t_, err = io.Copy(reader.Buffer, fd)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading %s: %v\", path, err)\n\t}\n\n\treturn reader.Buffer.Bytes(), nil\n}\n"
  },
  {
    "path": "processor/formatters.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"bytes\"\n\t\"cmp\"\n\t\"encoding/csv\"\n\t\"fmt\"\n\t\"math\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"slices\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\tjsoniter \"github.com/json-iterator/go\"\n\t\"github.com/mattn/go-runewidth\"\n\t\"go.yaml.in/yaml/v2\"\n\n\tglanguage \"golang.org/x/text/language\"\n\tgmessage \"golang.org/x/text/message\"\n)\n\nvar tabularShortBreak = \"───────────────────────────────────────────────────────────────────────────────\\n\"\nvar tabularShortBreakCi = \"-------------------------------------------------------------------------------\\n\"\n\nvar tabularShortFormatHead = \"%-15s %9s %11s %9s %9s %10s %10s\\n\"\nvar tabularShortFormatBody = \"%-15s %9d %11d %9d %9d %10d %10d\\n\"\nvar tabularShortFormatFile = \"%s %9d %9d %9d %10d %10d\\n\"\nvar tabularShortFormatFileMaxMean = \"MaxLine / MeanLine %6d %11d\\n\"\nvar shortFormatFileTruncate = 26\nvar shortNameTruncate = 15\nvar tabularShortUlocLanguageFormatBody = \"(ULOC) %30d\\n\"\nvar tabularShortPercentLanguageFormatBody = \"Percentage %13.1f%% %10.1f%% %8.1f%% %8.1f%% %9.1f%% %9.1f%%\\n\"\nvar tabularShortUlocGlobalFormatBody = \"Unique Lines of Code (ULOC) %9d\\n\"\nvar tabularShortDrynessFormatBody = \"DRYness %% %27.2f\\n\"\n\nvar tabularShortFormatHeadNoComplexity = \"%-21s %11s %11s %10s %11s %10s\\n\"\nvar tabularShortFormatBodyNoComplexity = \"%-21s %11d %11d %10d %11d %10d\\n\"\nvar tabularShortFormatFileNoComplexity = \"%s %10d %10d %11d %10d\\n\"\nvar tabularShortFormatFileMaxMeanNoComplexity = \"MaxLine / MeanLine %14d %11d\\n\"\nvar longNameTruncate = 22\nvar tabularShortUlocLanguageFormatBodyNoComplexity = \"(ULOC) %38d\\n\"\nvar tabularShortPercentLanguageFormatBodyNoComplexity = \"Percentage %21.1f%% %10.1f%% %9.1f%% %10.1f%% %9.1f%%\\n\"\n\nvar tabularWideBreak = \"─────────────────────────────────────────────────────────────────────────────────────────────────────────────\\n\"\nvar tabularWideBreakCi = \"-------------------------------------------------------------------------------------------------------------\\n\"\nvar tabularWideFormatHead = \"%-33s %9s %9s %8s %9s %8s %10s %16s\\n\"\nvar tabularWideFormatBody = \"%-33s %9d %9d %8d %9d %8d %10d %16.2f\\n\"\nvar tabularWideFormatFile = \"%s %9d %8d %9d %8d %10d %16.2f\\n\"\nvar tabularWideFormatFileMaxMean = \"MaxLine / MeanLine %24d %9d\\n\"\nvar wideFormatFileTruncate = 42\nvar tabularWideUlocLanguageFormatBody = \"(ULOC) %46d\\n\"\nvar tabularWideUlocGlobalFormatBody = \"Unique Lines of Code (ULOC) %25d\\n\"\nvar tabularWideFormatBodyPercent = \"Percentage %31.1f%% %8.1f%% %7.1f%% %8.1f%% %7.1f%% %9.1f%%\\n\"\nvar tabularWideDrynessFormatBody = \"DRYness %% %43.2f\\n\"\n\nvar openMetricsMetadata = `# TYPE scc_files gauge\n# HELP scc_files Number of sourcecode files.\n# TYPE scc_lines gauge\n# HELP scc_lines Number of lines.\n# TYPE scc_code gauge\n# HELP scc_code Number of lines of actual code.\n# TYPE scc_comments gauge\n# HELP scc_comments Number of comments.\n# TYPE scc_blanks gauge\n# HELP scc_blanks Number of blank lines.\n# TYPE scc_complexity gauge\n# HELP scc_complexity Code complexity.\n# TYPE scc_bytes gauge\n# UNIT scc_bytes bytes\n# HELP scc_bytes Size in bytes.\n`\nvar openMetricsSummaryRecordFormat = \"scc_%s{language=\\\"%s\\\"} %d\\n\"\nvar openMetricsFileRecordFormat = \"scc_%s{language=\\\"%s\\\",file=\\\"%s\\\"} %d\\n\"\n\nfunc sortSummaryFiles(summary *LanguageSummary) {\n\tswitch SortBy {\n\tcase \"name\", \"names\", \"language\", \"languages\", \"lang\", \"langs\":\n\t\tslices.SortFunc(summary.Files, func(a, b *FileJob) int {\n\t\t\treturn strings.Compare(a.Location, b.Location)\n\t\t})\n\tcase \"line\", \"lines\":\n\t\tslices.SortFunc(summary.Files, func(a, b *FileJob) int {\n\t\t\treturn cmp.Compare(b.Lines, a.Lines)\n\t\t})\n\tcase \"blank\", \"blanks\":\n\t\tslices.SortFunc(summary.Files, func(a, b *FileJob) int {\n\t\t\treturn cmp.Compare(b.Blank, a.Blank)\n\t\t})\n\tcase \"code\", \"codes\":\n\t\tslices.SortFunc(summary.Files, func(a, b *FileJob) int {\n\t\t\treturn cmp.Compare(b.Code, a.Code)\n\t\t})\n\tcase \"comment\", \"comments\":\n\t\tslices.SortFunc(summary.Files, func(a, b *FileJob) int {\n\t\t\treturn cmp.Compare(b.Comment, a.Comment)\n\t\t})\n\tcase \"complexity\", \"complexitys\", \"comp\":\n\t\tslices.SortFunc(summary.Files, func(a, b *FileJob) int {\n\t\t\treturn cmp.Compare(b.Complexity, a.Complexity)\n\t\t})\n\tdefault:\n\t\tslices.SortFunc(summary.Files, func(a, b *FileJob) int {\n\t\t\treturn cmp.Compare(b.Lines, a.Lines)\n\t\t})\n\t}\n}\n\n// LanguageSummary to generate output like cloc\ntype languageSummaryCloc struct {\n\tName    string `yaml:\"name\"`\n\tCode    int64  `yaml:\"code\"`\n\tComment int64  `yaml:\"comment\"`\n\tBlank   int64  `yaml:\"blank\"`\n\tCount   int64  `yaml:\"nFiles\"`\n}\n\ntype summaryStruct struct {\n\tCode    int64 `yaml:\"code\"`\n\tComment int64 `yaml:\"comment\"`\n\tBlank   int64 `yaml:\"blank\"`\n\tCount   int64 `yaml:\"nFiles\"`\n}\n\ntype headerStruct struct {\n\tUrl            string  `yaml:\"url\"`\n\tVersion        string  `yaml:\"version\"`\n\tElapsedSeconds float64 `yaml:\"elapsed_seconds\"`\n\tNFiles         int64   `yaml:\"n_files\"`\n\tNLines         int64   `yaml:\"n_lines\"`\n\tFilesPerSecond float64 `yaml:\"files_per_second\"`\n\tLinesPerSecond float64 `yaml:\"lines_per_second\"`\n}\n\ntype languageReportStart struct {\n\tHeader headerStruct\n}\n\ntype languageReportEnd struct {\n\tSum summaryStruct `yaml:\"SUM\"`\n}\n\nfunc getTabularShortBreak() string {\n\tif HBorder {\n\t\treturn \"\"\n\t}\n\n\tif Ci {\n\t\treturn tabularShortBreakCi\n\t}\n\n\treturn tabularShortBreak\n}\n\nfunc getTabularWideBreak() string {\n\tif HBorder {\n\t\treturn \"\"\n\t}\n\n\tif Ci {\n\t\treturn tabularWideBreakCi\n\t}\n\n\treturn tabularWideBreak\n}\n\nfunc toClocYAML(input chan *FileJob) string {\n\tstartTime := makeTimestampMilli()\n\n\tlangs := map[string]languageSummaryCloc{}\n\tvar sumFiles, sumLines, sumCode, sumComment, sumBlank, sumComplexity int64 = 0, 0, 0, 0, 0, 0\n\n\tfor res := range input {\n\t\tsumFiles++\n\t\tsumLines += res.Lines\n\t\tsumCode += res.Code\n\t\tsumComment += res.Comment\n\t\tsumBlank += res.Blank\n\t\tsumComplexity += res.Complexity\n\n\t\t_, ok := langs[res.Language]\n\n\t\tif !ok {\n\t\t\tlangs[res.Language] = languageSummaryCloc{\n\t\t\t\tName:    res.Language,\n\t\t\t\tCode:    res.Code,\n\t\t\t\tComment: res.Comment,\n\t\t\t\tBlank:   res.Blank,\n\t\t\t\tCount:   1,\n\t\t\t}\n\t\t} else {\n\t\t\ttmp := langs[res.Language]\n\n\t\t\tlangs[res.Language] = languageSummaryCloc{\n\t\t\t\tName:    res.Language,\n\t\t\t\tCode:    tmp.Code + res.Code,\n\t\t\t\tComment: tmp.Comment + res.Comment,\n\t\t\t\tBlank:   tmp.Blank + res.Blank,\n\t\t\t\tCount:   tmp.Count + 1,\n\t\t\t}\n\t\t}\n\t}\n\n\tes := float64(makeTimestampMilli()-startTimeMilli) * float64(0.001)\n\n\theader := headerStruct{\n\t\tUrl:            \"https://github.com/boyter/scc/\",\n\t\tVersion:        Version,\n\t\tNFiles:         sumFiles,\n\t\tNLines:         sumLines,\n\t\tElapsedSeconds: es,\n\t\tFilesPerSecond: float64(float64(sumFiles) / es),\n\t\tLinesPerSecond: float64(float64(sumLines) / es),\n\t}\n\tsummary := summaryStruct{\n\t\tBlank:   sumBlank,\n\t\tComment: sumComment,\n\t\tCode:    sumCode,\n\t\tCount:   sumFiles,\n\t}\n\treportStart := languageReportStart{\n\t\tHeader: header,\n\t}\n\treportEnd := languageReportEnd{\n\t\tSum: summary,\n\t}\n\n\treportYaml, _ := yaml.Marshal(reportStart)\n\tsumYaml, _ := yaml.Marshal(reportEnd)\n\tlanguageYaml, _ := yaml.Marshal(langs)\n\tyamlString := \"# https://github.com/boyter/scc/\\n\" + string(reportYaml) + string(languageYaml) + string(sumYaml)\n\n\tprintDebugF(\"milliseconds to build formatted string: %d\", makeTimestampMilli()-startTime)\n\n\treturn yamlString\n}\n\nfunc toJSON(input chan *FileJob) string {\n\tstartTime := makeTimestampMilli()\n\tlanguage := aggregateLanguageSummary(input)\n\tlanguage = sortLanguageSummary(language)\n\n\tjson := jsoniter.ConfigCompatibleWithStandardLibrary\n\tjsonString, _ := json.Marshal(language)\n\n\tprintDebugF(\"milliseconds to build formatted string: %d\", makeTimestampMilli()-startTime)\n\n\treturn string(jsonString)\n}\n\ntype Json2 struct {\n\tLanguageSummary         []LanguageSummary `json:\"languageSummary\"`\n\tEstimatedCost           float64           `json:\"estimatedCost\"`\n\tEstimatedScheduleMonths float64           `json:\"estimatedScheduleMonths\"`\n\tEstimatedPeople         float64           `json:\"estimatedPeople\"`\n\n\t// LOCOMO fields (only populated when --locomo or --cost-comparison is enabled)\n\tEstimatedLLMCost                  *float64 `json:\"estimatedLLMCost,omitempty\"`\n\tEstimatedLLMInputTokens           *float64 `json:\"estimatedLLMInputTokens,omitempty\"`\n\tEstimatedLLMOutputTokens          *float64 `json:\"estimatedLLMOutputTokens,omitempty\"`\n\tEstimatedLLMGenerationSeconds     *float64 `json:\"estimatedLLMGenerationSeconds,omitempty\"`\n\tEstimatedLLMReviewHours           *float64 `json:\"estimatedLLMReviewHours,omitempty\"`\n\tEstimatedLLMPreset                *string  `json:\"estimatedLLMPreset,omitempty\"`\n\tEstimatedLLMAverageComplexityMult *float64 `json:\"estimatedLLMAverageComplexityMultiplier,omitempty\"`\n\tEstimatedLLMCycles                *float64 `json:\"estimatedLLMCycles,omitempty\"`\n}\n\nfunc toJSON2(input chan *FileJob) string {\n\tstartTime := makeTimestampMilli()\n\tlanguage := aggregateLanguageSummary(input)\n\tlanguage = sortLanguageSummary(language)\n\n\tvar sumCode, sumComplexity int64\n\tfor _, l := range language {\n\t\tsumCode += l.Code\n\t\tsumComplexity += l.Complexity\n\t}\n\n\tcost, schedule, people := esstimateCostScheduleMonths(sumCode)\n\n\tj2 := Json2{\n\t\tLanguageSummary:         language,\n\t\tEstimatedCost:           cost,\n\t\tEstimatedScheduleMonths: schedule,\n\t\tEstimatedPeople:         people,\n\t}\n\n\tif Locomo {\n\t\tresult := LocomoEstimate(sumCode, sumComplexity)\n\t\tj2.EstimatedLLMCost = &result.Cost\n\t\tj2.EstimatedLLMInputTokens = &result.InputTokens\n\t\tj2.EstimatedLLMOutputTokens = &result.OutputTokens\n\t\tj2.EstimatedLLMGenerationSeconds = &result.GenerationSeconds\n\t\tj2.EstimatedLLMReviewHours = &result.ReviewHours\n\t\tj2.EstimatedLLMPreset = &result.Preset\n\t\tj2.EstimatedLLMAverageComplexityMult = &result.AverageComplexityMult\n\t\tj2.EstimatedLLMCycles = &result.IterationFactor\n\t}\n\n\tjson := jsoniter.ConfigCompatibleWithStandardLibrary\n\tjsonString, _ := json.Marshal(j2)\n\n\tprintDebugF(\"milliseconds to build formatted string: %d\", makeTimestampMilli()-startTime)\n\n\treturn string(jsonString)\n}\n\nfunc toCSV(input chan *FileJob) string {\n\tif Files {\n\t\treturn toCSVFiles(input)\n\t}\n\n\treturn toCSVSummary(input)\n}\n\nfunc toCSVSummary(input chan *FileJob) string {\n\tlanguage := aggregateLanguageSummary(input)\n\tlanguage = sortLanguageSummary(language)\n\n\trecord := []string{\n\t\t\"Language\",\n\t\t\"Lines\",\n\t\t\"Code\",\n\t\t\"Comments\",\n\t\t\"Blanks\",\n\t\t\"Complexity\",\n\t\t\"Bytes\",\n\t\t\"Files\",\n\t\t\"ULOC\",\n\t}\n\n\tb := &bytes.Buffer{}\n\tw := csv.NewWriter(b)\n\t_ = w.Write(record)\n\n\tfor _, result := range language {\n\t\trecord[0] = result.Name\n\t\trecord[1] = strconv.FormatInt(result.Lines, 10)\n\t\trecord[2] = strconv.FormatInt(result.Code, 10)\n\t\trecord[3] = strconv.FormatInt(result.Comment, 10)\n\t\trecord[4] = strconv.FormatInt(result.Blank, 10)\n\t\trecord[5] = strconv.FormatInt(result.Complexity, 10)\n\t\trecord[6] = strconv.FormatInt(result.Bytes, 10)\n\t\trecord[7] = strconv.FormatInt(result.Count, 10)\n\t\trecord[8] = strconv.Itoa(len(ulocLanguageCount[result.Name]))\n\t\t_ = w.Write(record)\n\t}\n\n\tw.Flush()\n\n\treturn b.String()\n}\n\nfunc getCSVFilesSortFunc(sortBy string) func(a, b []string) int {\n\t// Cater for the common case of adding plural even for those options that don't make sense\n\t// as it's quite common for those who English is not a first language to make a simple mistake\n\tswitch sortBy {\n\tcase \"name\", \"names\":\n\t\treturn func(a, b []string) int {\n\t\t\treturn strings.Compare(a[2], b[2])\n\t\t}\n\tcase \"language\", \"languages\", \"lang\", \"langs\":\n\t\treturn func(a, b []string) int {\n\t\t\treturn strings.Compare(a[0], b[0])\n\t\t}\n\tcase \"line\", \"lines\":\n\t\treturn func(a, b []string) int {\n\t\t\ti1, _ := strconv.ParseInt(a[3], 10, 64)\n\t\t\ti2, _ := strconv.ParseInt(b[3], 10, 64)\n\t\t\treturn cmp.Compare(i2, i1)\n\t\t}\n\tcase \"blank\", \"blanks\":\n\t\treturn func(a, b []string) int {\n\t\t\ti1, _ := strconv.ParseInt(a[6], 10, 64)\n\t\t\ti2, _ := strconv.ParseInt(b[6], 10, 64)\n\t\t\treturn cmp.Compare(i2, i1)\n\t\t}\n\tcase \"code\", \"codes\":\n\t\treturn func(a, b []string) int {\n\t\t\ti1, _ := strconv.ParseInt(a[4], 10, 64)\n\t\t\ti2, _ := strconv.ParseInt(b[4], 10, 64)\n\t\t\treturn cmp.Compare(i2, i1)\n\t\t}\n\tcase \"comment\", \"comments\":\n\t\treturn func(a, b []string) int {\n\t\t\ti1, _ := strconv.ParseInt(a[5], 10, 64)\n\t\t\ti2, _ := strconv.ParseInt(b[5], 10, 64)\n\t\t\treturn cmp.Compare(i2, i1)\n\t\t}\n\tcase \"complexity\", \"complexitys\":\n\t\treturn func(a, b []string) int {\n\t\t\ti1, _ := strconv.ParseInt(a[7], 10, 64)\n\t\t\ti2, _ := strconv.ParseInt(b[7], 10, 64)\n\t\t\treturn cmp.Compare(i2, i1)\n\t\t}\n\tcase \"byte\", \"bytes\":\n\t\treturn func(a, b []string) int {\n\t\t\ti1, _ := strconv.ParseInt(a[8], 10, 64)\n\t\t\ti2, _ := strconv.ParseInt(b[8], 10, 64)\n\t\t\treturn cmp.Compare(i2, i1)\n\t\t}\n\tdefault:\n\t\treturn func(a, b []string) int {\n\t\t\treturn strings.Compare(a[2], b[2])\n\t\t}\n\t}\n}\n\nfunc toCSVFiles(input chan *FileJob) string {\n\trecords := [][]string{}\n\n\tfor result := range input {\n\t\trecords = append(records, []string{\n\t\t\tresult.Language,\n\t\t\tresult.Location,\n\t\t\tresult.Filename,\n\t\t\tstrconv.FormatInt(result.Lines, 10),\n\t\t\tstrconv.FormatInt(result.Code, 10),\n\t\t\tstrconv.FormatInt(result.Comment, 10),\n\t\t\tstrconv.FormatInt(result.Blank, 10),\n\t\t\tstrconv.FormatInt(result.Complexity, 10),\n\t\t\tstrconv.FormatInt(result.Bytes, 10),\n\t\t\tstrconv.Itoa(result.Uloc),\n\t\t})\n\t}\n\n\tslices.SortFunc(records, getCSVFilesSortFunc(SortBy))\n\n\trecordsEnd := [][]string{{\n\t\t\"Language\",\n\t\t\"Provider\",\n\t\t\"Filename\",\n\t\t\"Lines\",\n\t\t\"Code\",\n\t\t\"Comments\",\n\t\t\"Blanks\",\n\t\t\"Complexity\",\n\t\t\"Bytes\",\n\t\t\"ULOC\",\n\t}}\n\n\trecordsEnd = append(recordsEnd, records...)\n\n\tb := &bytes.Buffer{}\n\tw := csv.NewWriter(b)\n\t_ = w.WriteAll(recordsEnd)\n\tw.Flush()\n\n\treturn b.String()\n}\n\nfunc toOpenMetrics(input chan *FileJob) string {\n\tif Files {\n\t\treturn toOpenMetricsFiles(input)\n\t}\n\n\treturn toOpenMetricsSummary(input)\n}\n\nfunc toOpenMetricsSummary(input chan *FileJob) string {\n\tlanguage := aggregateLanguageSummary(input)\n\tlanguage = sortLanguageSummary(language)\n\n\tsb := &strings.Builder{}\n\tsb.WriteString(openMetricsMetadata)\n\tfor _, result := range language {\n\t\t_, _ = fmt.Fprintf(sb, openMetricsSummaryRecordFormat, \"files\", result.Name, result.Count)\n\t\t_, _ = fmt.Fprintf(sb, openMetricsSummaryRecordFormat, \"lines\", result.Name, result.Lines)\n\t\t_, _ = fmt.Fprintf(sb, openMetricsSummaryRecordFormat, \"code\", result.Name, result.Code)\n\t\t_, _ = fmt.Fprintf(sb, openMetricsSummaryRecordFormat, \"comments\", result.Name, result.Comment)\n\t\t_, _ = fmt.Fprintf(sb, openMetricsSummaryRecordFormat, \"blanks\", result.Name, result.Blank)\n\t\t_, _ = fmt.Fprintf(sb, openMetricsSummaryRecordFormat, \"complexity\", result.Name, result.Complexity)\n\t\t_, _ = fmt.Fprintf(sb, openMetricsSummaryRecordFormat, \"bytes\", result.Name, result.Bytes)\n\t}\n\treturn sb.String()\n}\n\nfunc toOpenMetricsFiles(input chan *FileJob) string {\n\tsb := &strings.Builder{}\n\tsb.WriteString(openMetricsMetadata)\n\tfor file := range input {\n\t\tvar filename = strings.ReplaceAll(file.Location, \"\\\\\", \"\\\\\\\\\")\n\t\t_, _ = fmt.Fprintf(sb, openMetricsFileRecordFormat, \"lines\", file.Language, filename, file.Lines)\n\t\t_, _ = fmt.Fprintf(sb, openMetricsFileRecordFormat, \"code\", file.Language, filename, file.Code)\n\t\t_, _ = fmt.Fprintf(sb, openMetricsFileRecordFormat, \"comments\", file.Language, filename, file.Comment)\n\t\t_, _ = fmt.Fprintf(sb, openMetricsFileRecordFormat, \"blanks\", file.Language, filename, file.Blank)\n\t\t_, _ = fmt.Fprintf(sb, openMetricsFileRecordFormat, \"complexity\", file.Language, filename, file.Complexity)\n\t\t_, _ = fmt.Fprintf(sb, openMetricsFileRecordFormat, \"bytes\", file.Language, filename, file.Bytes)\n\t}\n\tsb.WriteString(\"# EOF\\n\")\n\treturn sb.String()\n}\n\n// For very large repositories CSV stream can be used which prints results out as they come in\n// with the express idea of lowering memory usage, see https://github.com/boyter/scc/issues/210 for\n// the background on why this might be needed\nfunc toCSVStream(input chan *FileJob) string {\n\tfmt.Println(\"Language,Provider,Filename,Lines,Code,Comments,Blanks,Complexity,Bytes,Uloc\")\n\n\tvar quoteRegex = regexp.MustCompile(\"\\\"\")\n\n\tfor result := range input {\n\t\t// Escape quotes in location and filename then surround with quotes.\n\t\tvar location = \"\\\"\" + quoteRegex.ReplaceAllString(result.Location, \"\\\"\\\"\") + \"\\\"\"\n\t\tvar filename = \"\\\"\" + quoteRegex.ReplaceAllString(result.Filename, \"\\\"\\\"\") + \"\\\"\"\n\n\t\tfmt.Printf(\"%s,%s,%s,%d,%d,%d,%d,%d,%d,%d\\n\",\n\t\t\tresult.Language,\n\t\t\tlocation,\n\t\t\tfilename,\n\t\t\tresult.Lines,\n\t\t\tresult.Code,\n\t\t\tresult.Comment,\n\t\t\tresult.Blank,\n\t\t\tresult.Complexity,\n\t\t\tresult.Bytes,\n\t\t\tresult.Uloc,\n\t\t)\n\t}\n\n\treturn \"\"\n}\n\nfunc toHtml(input chan *FileJob) string {\n\treturn `<html lang=\"en\"><head><meta charset=\"utf-8\" /><title>scc html output</title><style>table { border-collapse: collapse; }td, th { border: 1px solid #999; padding: 0.5rem; text-align: left;}</style></head><body>` +\n\t\ttoHtmlTable(input) +\n\t\t\"</body></html>\\n\"\n}\n\nfunc toHtmlTable(input chan *FileJob) string {\n\tlanguages := map[string]LanguageSummary{}\n\tvar sumFiles, sumLines, sumCode, sumComment, sumBlank, sumComplexity, sumBytes int64 = 0, 0, 0, 0, 0, 0, 0\n\n\tfor res := range input {\n\t\tsumFiles++\n\t\tsumLines += res.Lines\n\t\tsumCode += res.Code\n\t\tsumComment += res.Comment\n\t\tsumBlank += res.Blank\n\t\tsumComplexity += res.Complexity\n\t\tsumBytes += res.Bytes\n\n\t\t_, ok := languages[res.Language]\n\n\t\tif !ok {\n\t\t\tfiles := []*FileJob{}\n\t\t\tfiles = append(files, res)\n\n\t\t\tlanguages[res.Language] = LanguageSummary{\n\t\t\t\tName:       res.Language,\n\t\t\t\tLines:      res.Lines,\n\t\t\t\tCode:       res.Code,\n\t\t\t\tComment:    res.Comment,\n\t\t\t\tBlank:      res.Blank,\n\t\t\t\tComplexity: res.Complexity,\n\t\t\t\tCount:      1,\n\t\t\t\tFiles:      files,\n\t\t\t\tBytes:      res.Bytes,\n\t\t\t}\n\t\t} else {\n\t\t\ttmp := languages[res.Language]\n\t\t\tfiles := append(tmp.Files, res)\n\n\t\t\tlanguages[res.Language] = LanguageSummary{\n\t\t\t\tName:       res.Language,\n\t\t\t\tLines:      tmp.Lines + res.Lines,\n\t\t\t\tCode:       tmp.Code + res.Code,\n\t\t\t\tComment:    tmp.Comment + res.Comment,\n\t\t\t\tBlank:      tmp.Blank + res.Blank,\n\t\t\t\tComplexity: tmp.Complexity + res.Complexity,\n\t\t\t\tCount:      tmp.Count + 1,\n\t\t\t\tFiles:      files,\n\t\t\t\tBytes:      tmp.Bytes + res.Bytes,\n\t\t\t}\n\t\t}\n\t}\n\n\tlanguage := make([]LanguageSummary, 0, len(languages))\n\tfor _, summary := range languages {\n\t\tlanguage = append(language, summary)\n\t}\n\n\tlanguage = sortLanguageSummary(language)\n\n\tstr := &strings.Builder{}\n\n\tstr.WriteString(`<table id=\"scc-table\">\n\t<thead><tr>\n\t\t<th>Language</th>\n\t\t<th>Files</th>\n\t\t<th>Lines</th>\n\t\t<th>Blank</th>\n\t\t<th>Comment</th>\n\t\t<th>Code</th>\n\t\t<th>Complexity</th>\n\t\t<th>Bytes</th>\n\t\t<th>Uloc</th>\n\t</tr></thead>\n\t<tbody>`)\n\n\tfor _, r := range language {\n\t\t_, _ = fmt.Fprintf(str, `<tr>\n\t\t<th>%s</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t</tr>`, r.Name, len(r.Files), r.Lines, r.Blank, r.Comment, r.Code, r.Complexity, r.Bytes, len(ulocLanguageCount[r.Name]))\n\n\t\tif Files {\n\t\t\tsortSummaryFiles(&r)\n\n\t\t\tfor _, res := range r.Files {\n\t\t\t\t_, _ = fmt.Fprintf(str, `<tr>\n\t\t<td>%s</td>\n\t\t<td></td>\n\t\t<td>%d</td>\n\t\t<td>%d</td>\n\t\t<td>%d</td>\n\t\t<td>%d</td>\n\t\t<td>%d</td>\n\t\t<td>%d</td>\n\t\t<td>%d</td>\n\t</tr>`, res.Location, res.Lines, res.Blank, res.Comment, res.Code, res.Complexity, res.Bytes, res.Uloc)\n\t\t\t}\n\t\t}\n\n\t}\n\n\t_, _ = fmt.Fprintf(str, `</tbody>\n\t<tfoot><tr>\n\t\t<th>Total</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t\t<th>%d</th>\n\t</tr>`, sumFiles, sumLines, sumBlank, sumComment, sumCode, sumComplexity, sumBytes, len(ulocGlobalCount))\n\n\thasCostOutput := false\n\tif !Cocomo {\n\t\tvar sb strings.Builder\n\t\tcalculateCocomo(sumCode, &sb)\n\t\t_, _ = fmt.Fprintf(str, `\n\t<tr>\n\t\t<th colspan=\"9\">%s</th>\n\t</tr>`, strings.ReplaceAll(sb.String(), \"\\n\", \"<br>\"))\n\t\thasCostOutput = true\n\t}\n\tif Locomo {\n\t\tvar sb strings.Builder\n\t\tcalculateLocomo(sumCode, sumComplexity, &sb)\n\t\t_, _ = fmt.Fprintf(str, `\n\t<tr>\n\t\t<th colspan=\"9\">%s</th>\n\t</tr>`, strings.ReplaceAll(sb.String(), \"\\n\", \"<br>\"))\n\t\thasCostOutput = true\n\t}\n\tif hasCostOutput {\n\t\tstr.WriteString(`</tfoot>\n\t</table>`)\n\t} else {\n\t\tstr.WriteString(`</tfoot></table>`)\n\t}\n\n\treturn str.String()\n}\n\nfunc toSqlInsert(input chan *FileJob) string {\n\tstr := &strings.Builder{}\n\tprojectName := SQLProject\n\tif projectName == \"\" {\n\t\tprojectName = strings.Join(DirFilePaths, \",\")\n\t}\n\n\tvar sumCode, sumComplexity int64\n\tstr.WriteString(\"\\nbegin transaction;\")\n\tcount := 0\n\tfor res := range input {\n\t\tcount++\n\t\tsumCode += res.Code\n\t\tsumComplexity += res.Complexity\n\n\t\tdir, _ := filepath.Split(res.Location)\n\n\t\t_, _ = fmt.Fprintf(str, \"\\ninsert into t values('%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, %d, %d);\",\n\t\t\tescapeSQLString(projectName),\n\t\t\tescapeSQLString(res.Language),\n\t\t\tescapeSQLString(res.Location),\n\t\t\tescapeSQLString(dir),\n\t\t\tescapeSQLString(res.Filename), res.Bytes, res.Blank, res.Comment, res.Code, res.Complexity, res.Uloc)\n\n\t\t// every 1000 files commit and start a new transaction to avoid overloading\n\t\tif count == 1000 {\n\t\t\tstr.WriteString(\"\\ncommit;\")\n\t\t\tstr.WriteString(\"\\nbegin transaction;\")\n\t\t\tcount = 0\n\t\t}\n\t}\n\tstr.WriteString(\"\\ncommit;\")\n\n\tcost, schedule, people := esstimateCostScheduleMonths(sumCode)\n\tcurrentTime := time.Now()\n\tes := float64(makeTimestampMilli()-startTimeMilli) * 0.001\n\tstr.WriteString(\"\\nbegin transaction;\")\n\t_, _ = fmt.Fprintf(str, \"\\ninsert into metadata values('%s', '%s', %f, %f, %f, %f);\",\n\t\tcurrentTime.Format(\"2006-01-02 15:04:05\"),\n\t\tprojectName,\n\t\tes,\n\t\tcost,\n\t\tschedule,\n\t\tpeople,\n\t)\n\tstr.WriteString(\"\\ncommit;\")\n\n\tif Locomo {\n\t\tresult := LocomoEstimate(sumCode, sumComplexity)\n\t\tstr.WriteString(\"\\nbegin transaction;\")\n\t\t_, _ = fmt.Fprintf(str, \"\\ninsert into locomo_metadata values('%s', '%s', %f, %f, %f, %f, %f, '%s', %f);\",\n\t\t\tcurrentTime.Format(\"2006-01-02 15:04:05\"),\n\t\t\tprojectName,\n\t\t\tresult.Cost,\n\t\t\tresult.InputTokens,\n\t\t\tresult.OutputTokens,\n\t\t\tresult.GenerationSeconds,\n\t\t\tresult.ReviewHours,\n\t\t\tescapeSQLString(result.Preset),\n\t\t\tresult.IterationFactor,\n\t\t)\n\t\tstr.WriteString(\"\\ncommit;\")\n\t}\n\n\treturn str.String()\n}\n\n// attempt to manually escape everything that could be a problem\nfunc escapeSQLString(input string) string {\n\tvar buffer bytes.Buffer\n\tfor _, char := range input {\n\t\tswitch char {\n\t\tcase '\\x00':\n\t\t\t// Remove null characters\n\t\t\tcontinue\n\t\tcase '\\'':\n\t\t\t// Escape single quote with another single quote\n\t\t\tbuffer.WriteRune('\\'')\n\t\t\tbuffer.WriteRune('\\'')\n\t\tdefault:\n\t\t\tbuffer.WriteRune(char)\n\t\t}\n\t}\n\treturn buffer.String()\n}\n\nfunc toSql(input chan *FileJob) string {\n\tvar str strings.Builder\n\n\tstr.WriteString(`create table metadata (   -- github.com/boyter/scc v ` + Version + `\n             timestamp text,\n             Project   text,\n             elapsed_s real,\n             estimated_cost real,\n             estimated_schedule_months real,\n             estimated_people real);\ncreate table t        (\n             Project       text   ,\n             Language      text   ,\n             File          text   ,\n             File_dirname  text   ,\n             File_basename text   ,\n             nByte         integer,\n             nBlank        integer,\n             nComment      integer,\n             nCode         integer,\n             nComplexity   integer,\n             nUloc         integer    \n);`)\n\n\tstr.WriteString(toSqlInsert(input))\n\treturn str.String()\n}\n\nfunc fileSummarize(input chan *FileJob) string {\n\tif FormatMulti != \"\" {\n\t\treturn fileSummarizeMulti(input)\n\t}\n\n\tswitch {\n\tcase More || strings.EqualFold(Format, \"wide\"):\n\t\treturn fileSummarizeLong(input)\n\tcase strings.EqualFold(Format, \"json\"):\n\t\treturn toJSON(input)\n\tcase strings.EqualFold(Format, \"json2\"):\n\t\treturn toJSON2(input)\n\tcase strings.EqualFold(Format, \"cloc-yaml\") || strings.EqualFold(Format, \"cloc-yml\"):\n\t\treturn toClocYAML(input)\n\tcase strings.EqualFold(Format, \"csv\"):\n\t\treturn toCSV(input)\n\tcase strings.EqualFold(Format, \"csv-stream\"):\n\t\treturn toCSVStream(input)\n\tcase strings.EqualFold(Format, \"html\"):\n\t\treturn toHtml(input)\n\tcase strings.EqualFold(Format, \"html-table\"):\n\t\treturn toHtmlTable(input)\n\tcase strings.EqualFold(Format, \"sql\"):\n\t\treturn toSql(input)\n\tcase strings.EqualFold(Format, \"sql-insert\"):\n\t\treturn toSqlInsert(input)\n\tcase strings.EqualFold(Format, \"openmetrics\"):\n\t\treturn toOpenMetrics(input)\n\t}\n\n\treturn fileSummarizeShort(input)\n}\n\n// Deals with the case of CI/CD where you might want to run with multiple outputs\n// both to files and to stdout. Not the most efficient way to do it in terms of memory\n// but seeing as the files are just summaries by this point it shouldn't be too bad\nfunc fileSummarizeMulti(input chan *FileJob) string {\n\t// collect all the results\n\tvar results []*FileJob\n\tfor res := range input {\n\t\tresults = append(results, res)\n\t}\n\n\tvar str strings.Builder\n\n\t// for each output pump the results into\n\tfor s := range strings.SplitSeq(FormatMulti, \",\") {\n\t\tt := strings.Split(s, \":\")\n\t\tif len(t) == 2 {\n\t\t\ti := make(chan *FileJob, len(results))\n\n\t\t\tfor _, r := range results {\n\t\t\t\ti <- r\n\t\t\t}\n\t\t\tclose(i)\n\n\t\t\tvar val string\n\n\t\t\tswitch strings.ToLower(t[0]) {\n\t\t\tcase \"tabular\":\n\t\t\t\tval = fileSummarizeShort(i)\n\t\t\tcase \"wide\":\n\t\t\t\tval = fileSummarizeLong(i)\n\t\t\tcase \"json\":\n\t\t\t\tval = toJSON(i)\n\t\t\tcase \"json2\":\n\t\t\t\tval = toJSON2(i)\n\t\t\tcase \"cloc-yaml\":\n\t\t\t\tval = toClocYAML(i)\n\t\t\tcase \"cloc-yml\":\n\t\t\t\tval = toClocYAML(i)\n\t\t\tcase \"csv\":\n\t\t\t\tval = toCSV(i)\n\t\t\tcase \"csv-stream\":\n\t\t\t\t// special case where we want to ignore writing to stdout to disk as it's already done\n\t\t\t\t_ = toCSVStream(i)\n\t\t\t\tcontinue\n\t\t\tcase \"html\":\n\t\t\t\tval = toHtml(i)\n\t\t\tcase \"html-table\":\n\t\t\t\tval = toHtmlTable(i)\n\t\t\tcase \"sql\":\n\t\t\t\tval = toSql(i)\n\t\t\tcase \"sql-insert\":\n\t\t\t\tval = toSqlInsert(i)\n\t\t\tcase \"openmetrics\":\n\t\t\t\tval = toOpenMetrics(i)\n\t\t\t}\n\n\t\t\tif t[1] == \"stdout\" {\n\t\t\t\tstr.WriteString(val)\n\t\t\t\tstr.WriteString(\"\\n\")\n\t\t\t} else {\n\t\t\t\terr := os.WriteFile(t[1], []byte(val), 0600)\n\t\t\t\tif err != nil {\n\t\t\t\t\tfmt.Printf(\"%s unable to be written to for format %s: %s\", t[1], t[0], err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str.String()\n}\n\nfunc fileSummarizeLong(input chan *FileJob) string {\n\tstr := &strings.Builder{}\n\n\tstr.WriteString(getTabularWideBreak())\n\t_, _ = fmt.Fprintf(str, tabularWideFormatHead, \"Language\", \"Files\", \"Lines\", \"Blanks\", \"Comments\", \"Code\", \"Complexity\", \"Complexity/Lines\")\n\n\tif !Files {\n\t\tstr.WriteString(getTabularWideBreak())\n\t}\n\n\tlangs := map[string]LanguageSummary{}\n\tvar sumFiles, sumLines, sumCode, sumComment, sumBlank, sumComplexity, sumBytes int64 = 0, 0, 0, 0, 0, 0, 0\n\tvar sumWeightedComplexity float64\n\n\tfor res := range input {\n\t\tsumFiles++\n\t\tsumLines += res.Lines\n\t\tsumCode += res.Code\n\t\tsumComment += res.Comment\n\t\tsumBlank += res.Blank\n\t\tsumComplexity += res.Complexity\n\t\tsumBytes += res.Bytes\n\n\t\tvar weightedComplexity float64\n\t\tif res.Code != 0 {\n\t\t\tweightedComplexity = (float64(res.Complexity) / float64(res.Code)) * 100\n\t\t}\n\t\tres.WeightedComplexity = weightedComplexity\n\t\tsumWeightedComplexity += weightedComplexity\n\n\t\t_, ok := langs[res.Language]\n\n\t\tif !ok {\n\t\t\tfiles := []*FileJob{}\n\t\t\tfiles = append(files, res)\n\n\t\t\tlangs[res.Language] = LanguageSummary{\n\t\t\t\tName:               res.Language,\n\t\t\t\tLines:              res.Lines,\n\t\t\t\tCode:               res.Code,\n\t\t\t\tComment:            res.Comment,\n\t\t\t\tBlank:              res.Blank,\n\t\t\t\tComplexity:         res.Complexity,\n\t\t\t\tCount:              1,\n\t\t\t\tWeightedComplexity: weightedComplexity,\n\t\t\t\tFiles:              files,\n\t\t\t\tLineLength:         res.LineLength,\n\t\t\t}\n\t\t} else {\n\t\t\ttmp := langs[res.Language]\n\t\t\tfiles := append(tmp.Files, res)\n\t\t\tlineLength := append(tmp.LineLength, res.LineLength...)\n\n\t\t\tlangs[res.Language] = LanguageSummary{\n\t\t\t\tName:               res.Language,\n\t\t\t\tLines:              tmp.Lines + res.Lines,\n\t\t\t\tCode:               tmp.Code + res.Code,\n\t\t\t\tComment:            tmp.Comment + res.Comment,\n\t\t\t\tBlank:              tmp.Blank + res.Blank,\n\t\t\t\tComplexity:         tmp.Complexity + res.Complexity,\n\t\t\t\tCount:              tmp.Count + 1,\n\t\t\t\tWeightedComplexity: tmp.WeightedComplexity + weightedComplexity,\n\t\t\t\tFiles:              files,\n\t\t\t\tLineLength:         lineLength,\n\t\t\t}\n\t\t}\n\t}\n\n\tlanguage := make([]LanguageSummary, 0, len(langs))\n\tfor _, summary := range langs {\n\t\tlanguage = append(language, summary)\n\t}\n\n\tlanguage = sortLanguageSummary(language)\n\n\tstartTime := makeTimestampMilli()\n\tfor _, summary := range language {\n\t\tif Files {\n\t\t\tstr.WriteString(getTabularWideBreak())\n\t\t}\n\n\t\ttrimmedName := summary.Name\n\t\tif len(summary.Name) > longNameTruncate {\n\t\t\ttrimmedName = summary.Name[:longNameTruncate-1] + \"…\"\n\t\t}\n\n\t\t_, _ = fmt.Fprintf(str, tabularWideFormatBody, trimmedName, summary.Count, summary.Lines, summary.Blank, summary.Comment, summary.Code, summary.Complexity, summary.WeightedComplexity)\n\n\t\tif Percent {\n\t\t\t_, _ = fmt.Fprintf(str,\n\t\t\t\ttabularWideFormatBodyPercent,\n\t\t\t\tfloat64(len(summary.Files))/float64(sumFiles)*100,\n\t\t\t\tfloat64(summary.Lines)/float64(sumLines)*100,\n\t\t\t\tfloat64(summary.Blank)/float64(sumBlank)*100,\n\t\t\t\tfloat64(summary.Comment)/float64(sumComment)*100,\n\t\t\t\tfloat64(summary.Code)/float64(sumCode)*100,\n\t\t\t\tfloat64(summary.Complexity)/float64(sumComplexity)*100,\n\t\t\t)\n\n\t\t\tif !UlocMode {\n\t\t\t\tif !Files && summary.Name != language[len(language)-1].Name {\n\t\t\t\t\tstr.WriteString(tabularWideBreakCi)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif MaxMean {\n\t\t\t_, _ = fmt.Fprintf(str, tabularWideFormatFileMaxMean, maxIn(summary.LineLength), meanIn(summary.LineLength))\n\t\t}\n\n\t\tif UlocMode {\n\t\t\t_, _ = fmt.Fprintf(str, tabularWideUlocLanguageFormatBody, len(ulocLanguageCount[summary.Name]))\n\t\t\tif !Files && summary.Name != language[len(language)-1].Name {\n\t\t\t\tstr.WriteString(tabularWideBreakCi)\n\t\t\t}\n\t\t}\n\n\t\tif Files {\n\t\t\tsortSummaryFiles(&summary)\n\t\t\tstr.WriteString(getTabularWideBreak())\n\n\t\t\tfor _, res := range summary.Files {\n\t\t\t\ttmp := unicodeAwareTrim(res.Location, wideFormatFileTruncate)\n\t\t\t\ttmp = unicodeAwareRightPad(tmp, 43)\n\n\t\t\t\t_, _ = fmt.Fprintf(str, tabularWideFormatFile, tmp, res.Lines, res.Blank, res.Comment, res.Code, res.Complexity, res.WeightedComplexity)\n\t\t\t}\n\t\t}\n\t}\n\n\tprintDebugF(\"milliseconds to build formatted string: %d\", makeTimestampMilli()-startTime)\n\n\tstr.WriteString(getTabularWideBreak())\n\t_, _ = fmt.Fprintf(str, tabularWideFormatBody, \"Total\", sumFiles, sumLines, sumBlank, sumComment, sumCode, sumComplexity, sumWeightedComplexity)\n\tstr.WriteString(getTabularWideBreak())\n\n\tif UlocMode {\n\t\t_, _ = fmt.Fprintf(str, tabularWideUlocGlobalFormatBody, len(ulocGlobalCount))\n\t\tif Dryness {\n\t\t\tdryness := float64(len(ulocGlobalCount)) / float64(sumLines)\n\t\t\t_, _ = fmt.Fprintf(str, tabularWideDrynessFormatBody, dryness)\n\t\t}\n\t\tstr.WriteString(getTabularWideBreak())\n\t}\n\n\tif !Cocomo {\n\t\tif SLOCCountFormat {\n\t\t\tcalculateCocomoSLOCCount(sumCode, str)\n\t\t} else {\n\t\t\tcalculateCocomo(sumCode, str)\n\t\t}\n\t}\n\tif Locomo {\n\t\tcalculateLocomo(sumCode, sumComplexity, str)\n\t}\n\tif !Size {\n\t\tcalculateSize(sumBytes, str)\n\t\tstr.WriteString(getTabularWideBreak())\n\t}\n\treturn str.String()\n}\n\n// We need to trim the file display for tabular output formats which this does in a unicode aware way\n// to avoid cutting bytes... note that it needs to be expanded to deal with longer display characters at some\n// point in the future\nfunc unicodeAwareTrim(tmp string, size int) string {\n\t// iterate all the runes so we can cut off correctly and get the correct length\n\tr := []rune(tmp)\n\n\tif len(r) > size {\n\t\tfor runewidth.StringWidth(tmp) > size {\n\t\t\t// remove character one at a time till we get the length we want\n\t\t\tr = r[1:]\n\t\t\ttmp = string(r)\n\t\t}\n\n\t\ttmp = \"~\" + strings.TrimSpace(tmp)\n\t}\n\n\treturn tmp\n}\n\n// Using %-30s in string format does not appear to be unicode aware with characters such as\n// 文中 meaning the size is off... which is annoying, so we implement this ourselves to get it\n// right\nfunc unicodeAwareRightPad(tmp string, size int) string {\n\treturn runewidth.FillRight(tmp, size)\n}\n\nfunc fileSummarizeShort(input chan *FileJob) string {\n\tstr := &strings.Builder{}\n\n\tstr.WriteString(getTabularShortBreak())\n\tif !Complexity {\n\t\t_, _ = fmt.Fprintf(str, tabularShortFormatHead, \"Language\", \"Files\", \"Lines\", \"Blanks\", \"Comments\", \"Code\", \"Complexity\")\n\t} else {\n\t\t_, _ = fmt.Fprintf(str, tabularShortFormatHeadNoComplexity, \"Language\", \"Files\", \"Lines\", \"Blanks\", \"Comments\", \"Code\")\n\t}\n\n\tif !Files {\n\t\tstr.WriteString(getTabularShortBreak())\n\t}\n\n\tlang := map[string]LanguageSummary{}\n\tvar sumFiles, sumLines, sumCode, sumComment, sumBlank, sumComplexity, sumBytes int64 = 0, 0, 0, 0, 0, 0, 0\n\n\tp := gmessage.NewPrinter(glanguage.Make(os.Getenv(\"LANG\")))\n\n\tfor res := range input {\n\t\tsumFiles++\n\t\tsumLines += res.Lines\n\t\tsumCode += res.Code\n\t\tsumComment += res.Comment\n\t\tsumBlank += res.Blank\n\t\tsumComplexity += res.Complexity\n\t\tsumBytes += res.Bytes\n\n\t\t_, ok := lang[res.Language]\n\n\t\tif !ok {\n\t\t\tfiles := []*FileJob{}\n\t\t\tfiles = append(files, res)\n\n\t\t\tlang[res.Language] = LanguageSummary{\n\t\t\t\tName:       res.Language,\n\t\t\t\tLines:      res.Lines,\n\t\t\t\tCode:       res.Code,\n\t\t\t\tComment:    res.Comment,\n\t\t\t\tBlank:      res.Blank,\n\t\t\t\tComplexity: res.Complexity,\n\t\t\t\tCount:      1,\n\t\t\t\tFiles:      files,\n\t\t\t\tLineLength: res.LineLength,\n\t\t\t}\n\t\t} else {\n\t\t\ttmp := lang[res.Language]\n\t\t\tfiles := append(tmp.Files, res)\n\t\t\tlineLength := append(tmp.LineLength, res.LineLength...)\n\n\t\t\tlang[res.Language] = LanguageSummary{\n\t\t\t\tName:       res.Language,\n\t\t\t\tLines:      tmp.Lines + res.Lines,\n\t\t\t\tCode:       tmp.Code + res.Code,\n\t\t\t\tComment:    tmp.Comment + res.Comment,\n\t\t\t\tBlank:      tmp.Blank + res.Blank,\n\t\t\t\tComplexity: tmp.Complexity + res.Complexity,\n\t\t\t\tCount:      tmp.Count + 1,\n\t\t\t\tFiles:      files,\n\t\t\t\tLineLength: lineLength,\n\t\t\t}\n\t\t}\n\t}\n\n\tlanguage := make([]LanguageSummary, 0, len(lang))\n\tfor _, summary := range lang {\n\t\tlanguage = append(language, summary)\n\t}\n\n\tlanguage = sortLanguageSummary(language)\n\n\tstartTime := makeTimestampMilli()\n\tfor _, summary := range language {\n\t\taddBreak := false\n\t\tif Files {\n\t\t\tstr.WriteString(getTabularShortBreak())\n\t\t}\n\n\t\ttrimmedName := summary.Name\n\t\ttrimmedName = trimNameShort(summary, trimmedName)\n\n\t\tif !Complexity {\n\t\t\t_, _ = p.Fprintf(str, tabularShortFormatBody, trimmedName, summary.Count, summary.Lines, summary.Blank, summary.Comment, summary.Code, summary.Complexity)\n\t\t} else {\n\t\t\t_, _ = p.Fprintf(str, tabularShortFormatBodyNoComplexity, trimmedName, summary.Count, summary.Lines, summary.Blank, summary.Comment, summary.Code)\n\t\t}\n\n\t\tif Percent {\n\t\t\tif !Complexity {\n\t\t\t\t_, _ = p.Fprintf(str,\n\t\t\t\t\ttabularShortPercentLanguageFormatBody,\n\t\t\t\t\tfloat64(len(summary.Files))/float64(sumFiles)*100,\n\t\t\t\t\tfloat64(summary.Lines)/float64(sumLines)*100,\n\t\t\t\t\tfloat64(summary.Blank)/float64(sumBlank)*100,\n\t\t\t\t\tfloat64(summary.Comment)/float64(sumComment)*100,\n\t\t\t\t\tfloat64(summary.Code)/float64(sumCode)*100,\n\t\t\t\t\tfloat64(summary.Complexity)/float64(sumComplexity)*100,\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\t_, _ = p.Fprintf(str,\n\t\t\t\t\ttabularShortPercentLanguageFormatBodyNoComplexity,\n\t\t\t\t\tfloat64(len(summary.Files))/float64(sumFiles)*100,\n\t\t\t\t\tfloat64(summary.Lines)/float64(sumLines)*100,\n\t\t\t\t\tfloat64(summary.Blank)/float64(sumBlank)*100,\n\t\t\t\t\tfloat64(summary.Comment)/float64(sumComment)*100,\n\t\t\t\t\tfloat64(summary.Code)/float64(sumCode)*100,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\taddBreak = true\n\t\t}\n\n\t\tif MaxMean {\n\t\t\tif !Complexity {\n\t\t\t\t_, _ = p.Fprintf(str, tabularShortFormatFileMaxMean, maxIn(summary.LineLength), meanIn(summary.LineLength))\n\t\t\t} else {\n\t\t\t\t_, _ = p.Fprintf(str, tabularShortFormatFileMaxMeanNoComplexity, maxIn(summary.LineLength), meanIn(summary.LineLength))\n\t\t\t}\n\n\t\t\taddBreak = true\n\t\t}\n\n\t\tif Files {\n\t\t\tsortSummaryFiles(&summary)\n\t\t\tstr.WriteString(getTabularShortBreak())\n\n\t\t\tfor _, res := range summary.Files {\n\t\t\t\ttmp := unicodeAwareTrim(res.Location, shortFormatFileTruncate)\n\n\t\t\t\tif !Complexity {\n\t\t\t\t\ttmp = unicodeAwareRightPad(tmp, 27)\n\t\t\t\t\t_, _ = p.Fprintf(str, tabularShortFormatFile, tmp, res.Lines, res.Blank, res.Comment, res.Code, res.Complexity)\n\t\t\t\t} else {\n\t\t\t\t\ttmp = unicodeAwareRightPad(tmp, 34)\n\t\t\t\t\t_, _ = p.Fprintf(str, tabularShortFormatFileNoComplexity, tmp, res.Lines, res.Blank, res.Comment, res.Code)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif UlocMode {\n\t\t\tif !Complexity {\n\t\t\t\t_, _ = p.Fprintf(str, tabularShortUlocLanguageFormatBody, len(ulocLanguageCount[summary.Name]))\n\t\t\t} else {\n\t\t\t\t_, _ = p.Fprintf(str, tabularShortUlocLanguageFormatBodyNoComplexity, len(ulocLanguageCount[summary.Name]))\n\t\t\t}\n\n\t\t\taddBreak = true\n\t\t}\n\n\t\tif addBreak {\n\t\t\tif !Files && summary.Name != language[len(language)-1].Name {\n\t\t\t\tstr.WriteString(tabularShortBreakCi)\n\t\t\t}\n\t\t}\n\t}\n\n\tprintDebugF(\"milliseconds to build formatted string: %d\", makeTimestampMilli()-startTime)\n\n\tstr.WriteString(getTabularShortBreak())\n\tif !Complexity {\n\t\t_, _ = p.Fprintf(str, tabularShortFormatBody, \"Total\", sumFiles, sumLines, sumBlank, sumComment, sumCode, sumComplexity)\n\t} else {\n\t\t_, _ = p.Fprintf(str, tabularShortFormatBodyNoComplexity, \"Total\", sumFiles, sumLines, sumBlank, sumComment, sumCode)\n\t}\n\tstr.WriteString(getTabularShortBreak())\n\n\tif UlocMode {\n\t\t_, _ = p.Fprintf(str, tabularShortUlocGlobalFormatBody, len(ulocGlobalCount))\n\t\tif Dryness {\n\t\t\tdryness := float64(len(ulocGlobalCount)) / float64(sumLines)\n\t\t\t_, _ = p.Fprintf(str, tabularShortDrynessFormatBody, dryness)\n\t\t}\n\t\tstr.WriteString(getTabularShortBreak())\n\t}\n\n\tif !Cocomo {\n\t\tif SLOCCountFormat {\n\t\t\tcalculateCocomoSLOCCount(sumCode, str)\n\t\t} else {\n\t\t\tcalculateCocomo(sumCode, str)\n\t\t}\n\t\tstr.WriteString(getTabularShortBreak())\n\t}\n\tif Locomo {\n\t\tcalculateLocomo(sumCode, sumComplexity, str)\n\t\tstr.WriteString(getTabularShortBreak())\n\t}\n\tif !Size {\n\t\tcalculateSize(sumBytes, str)\n\t\tstr.WriteString(getTabularShortBreak())\n\t}\n\treturn str.String()\n}\n\nfunc maxIn(i []int) int {\n\tif len(i) == 0 {\n\t\treturn 0\n\t}\n\n\treturn slices.Max(i)\n}\n\nfunc meanIn(i []int) int {\n\tif len(i) == 0 {\n\t\treturn 0\n\t}\n\n\tsum := 0\n\tfor _, x := range i {\n\t\tsum += x\n\t}\n\n\treturn sum / len(i)\n}\n\nfunc trimNameShort(summary LanguageSummary, trimmedName string) string {\n\tif len(summary.Name) > shortNameTruncate {\n\t\ttrimmedName = summary.Name[:shortNameTruncate-1] + \"…\"\n\t}\n\treturn trimmedName\n}\n\nfunc calculateCocomoSLOCCount(sumCode int64, str *strings.Builder) {\n\testimatedEffort := EstimateEffort(int64(sumCode), EAF)\n\testimatedScheduleMonths := EstimateScheduleMonths(estimatedEffort)\n\testimatedPeopleRequired := 0.0\n\tif estimatedScheduleMonths > 0 {\n\t\testimatedPeopleRequired = estimatedEffort / estimatedScheduleMonths\n\t}\n\testimatedCost := EstimateCost(estimatedEffort, AverageWage, Overhead)\n\n\tp := gmessage.NewPrinter(glanguage.Make(os.Getenv(\"LANG\")))\n\n\t_, _ = p.Fprintf(str, \"Total Physical Source Lines of Code (SLOC)                     = %d\\n\", sumCode)\n\t_, _ = p.Fprintf(str, \"Development Effort Estimate, Person-Years (Person-Months)      = %.2f (%.2f)\\n\", estimatedEffort/12, estimatedEffort)\n\t_, _ = p.Fprintf(str, \" (Basic COCOMO model, Person-Months = %.2f*(KSLOC**%.2f)*%.2f)\\n\", projectType[CocomoProjectType][0], projectType[CocomoProjectType][1], EAF)\n\t_, _ = p.Fprintf(str, \"Schedule Estimate, Years (Months)                              = %.2f (%.2f)\\n\", estimatedScheduleMonths/12, estimatedScheduleMonths)\n\t_, _ = p.Fprintf(str, \" (Basic COCOMO model, Months = %.2f*(person-months**%.2f))\\n\", projectType[CocomoProjectType][2], projectType[CocomoProjectType][3])\n\t_, _ = p.Fprintf(str, \"Estimated Average Number of Developers (Effort/Schedule)       = %.2f\\n\", estimatedPeopleRequired)\n\t_, _ = p.Fprintf(str, \"Total Estimated Cost to Develop                                = %s%.0f\\n\", CurrencySymbol, estimatedCost)\n\t_, _ = p.Fprintf(str, \" (average salary = %s%d/year, overhead = %.2f)\\n\", CurrencySymbol, AverageWage, Overhead)\n}\n\nfunc calculateCocomo(sumCode int64, str *strings.Builder) {\n\testimatedCost, estimatedScheduleMonths, estimatedPeopleRequired := esstimateCostScheduleMonths(sumCode)\n\n\tp := gmessage.NewPrinter(glanguage.Make(os.Getenv(\"LANG\")))\n\n\t_, _ = p.Fprintf(str, \"Estimated Cost to Develop (%s) %s%d\\n\", CocomoProjectType, CurrencySymbol, int64(estimatedCost))\n\t_, _ = p.Fprintf(str, \"Estimated Schedule Effort (%s) %.2f months\\n\", CocomoProjectType, estimatedScheduleMonths)\n\tif math.IsNaN(estimatedPeopleRequired) {\n\t\t_, _ = p.Fprintf(str, \"Estimated People Required 1 Grandparent\\n\")\n\t} else {\n\t\t_, _ = p.Fprintf(str, \"Estimated People Required (%s) %.2f\\n\", CocomoProjectType, estimatedPeopleRequired)\n\t}\n}\n\nfunc esstimateCostScheduleMonths(sumCode int64) (float64, float64, float64) {\n\testimatedEffort := EstimateEffort(int64(sumCode), EAF)\n\testimatedCost := EstimateCost(estimatedEffort, AverageWage, Overhead)\n\testimatedScheduleMonths := EstimateScheduleMonths(estimatedEffort)\n\testimatedPeopleRequired := 0.0\n\tif estimatedScheduleMonths > 0 {\n\t\testimatedPeopleRequired = estimatedEffort / estimatedScheduleMonths\n\t}\n\treturn estimatedCost, estimatedScheduleMonths, estimatedPeopleRequired\n}\n\nfunc calculateLocomo(sumCode, sumComplexity int64, str *strings.Builder) {\n\tresult := LocomoEstimate(sumCode, sumComplexity)\n\n\tp := gmessage.NewPrinter(glanguage.Make(os.Getenv(\"LANG\")))\n\n\t_, _ = p.Fprintf(str, \"LOCOMO LLM Cost Estimate (%s)\\n\", result.Preset)\n\t_, _ = p.Fprintf(str, \"  Tokens Required (in/out) %.1fM / %.1fM\\n\", result.InputTokens/1_000_000, result.OutputTokens/1_000_000)\n\t_, _ = p.Fprintf(str, \"  Cost to Generate %s%.0f\\n\", CurrencySymbol, result.Cost)\n\t_, _ = p.Fprintf(str, \"  Estimated Cycles %.1f\\n\", result.IterationFactor)\n\n\tif result.GenerationSeconds > 86400 {\n\t\t_, _ = p.Fprintf(str, \"  Generation Time (serial) %.1f days\\n\", result.GenerationSeconds/86400)\n\t} else if result.GenerationSeconds > 3600 {\n\t\t_, _ = p.Fprintf(str, \"  Generation Time (serial) %.1f hours\\n\", result.GenerationSeconds/3600)\n\t} else {\n\t\t_, _ = p.Fprintf(str, \"  Generation Time (serial) %.1f minutes\\n\", result.GenerationSeconds/60)\n\t}\n\n\t_, _ = p.Fprintf(str, \"  Human Review Time %.1f hours\\n\", result.ReviewHours)\n\tstr.WriteString(\"  Disclaimer: rough ballpark for regenerating code using a LLM.\\n\")\n\tstr.WriteString(\"  Does not account for context reuse, test generation, or heavy debugging.\\n\")\n}\n\nfunc calculateSize(sumBytes int64, str *strings.Builder) {\n\n\tvar size float64\n\n\tswitch strings.ToLower(SizeUnit) {\n\tcase \"binary\":\n\t\tsize = float64(sumBytes) / 1_048_576\n\tcase \"mixed\":\n\t\tsize = float64(sumBytes) / 1_024_000\n\tcase \"xkcd-kb\":\n\t\tstr.WriteString(\"1000 bytes during leap years, 1024 otherwise\\n\")\n\t\tif isLeapYear(time.Now().Year()) {\n\t\t\tsize = float64(sumBytes) / 1_000_000\n\t\t}\n\tcase \"xkcd-kelly\":\n\t\tstr.WriteString(\"compromise between 1000 and 1024 bytes\\n\")\n\t\tsize = float64(sumBytes) / (1012 * 1012)\n\tcase \"xkcd-imaginary\":\n\t\tstr.WriteString(\"used in quantum computing\\n\")\n\t\t_, _ = fmt.Fprintf(str, \"Processed %d bytes, %s megabytes (%s)\\n\", sumBytes, `¯\\_(ツ)_/¯`, strings.ToUpper(SizeUnit))\n\tcase \"xkcd-intel\":\n\t\tstr.WriteString(\"calculated on pentium F.P.U.\\n\")\n\t\tsize = float64(sumBytes) / (1023.937528 * 1023.937528)\n\tcase \"xkcd-drive\":\n\t\tstr.WriteString(\"shrinks by 4 bytes every year for marketing reasons\\n\")\n\t\ttim := time.Now()\n\n\t\ts := 908 - ((tim.Year() - 2013) * 4) // comic starts with 908 in 2013 hence hardcoded values\n\t\ts = min(s, 908)                      // just in case the clock is stupidly set\n\n\t\tsize = float64(sumBytes) / float64(s*s)\n\tcase \"xkcd-bakers\":\n\t\tstr.WriteString(\"9 bits to the byte since you're such a good customer\\n\")\n\t\tsize = float64(sumBytes) / (1152 * 1152)\n\tdefault:\n\t\t// SI value of 1000 bytes\n\t\tsize = float64(sumBytes) / 1_000_000\n\t\tSizeUnit = \"SI\"\n\t}\n\n\tif !strings.EqualFold(SizeUnit, \"xkcd-imaginary\") {\n\t\t_, _ = fmt.Fprintf(str, \"Processed %d bytes, %.3f megabytes (%s)\\n\", sumBytes, size, strings.ToUpper(SizeUnit))\n\t}\n}\n\nfunc isLeapYear(year int) bool {\n\tleapFlag := false\n\tif year%4 == 0 {\n\t\tif year%100 == 0 {\n\t\t\tleapFlag = year%400 == 0\n\t\t} else {\n\t\t\tleapFlag = true\n\t\t}\n\t}\n\treturn leapFlag\n}\n\nfunc aggregateLanguageSummary(input chan *FileJob) []LanguageSummary {\n\tlangs := map[string]LanguageSummary{}\n\n\tfor res := range input {\n\t\t_, ok := langs[res.Language]\n\n\t\tif !ok {\n\t\t\tfiles := []*FileJob{}\n\t\t\tif Files {\n\t\t\t\tfiles = append(files, res)\n\t\t\t}\n\n\t\t\tlangs[res.Language] = LanguageSummary{\n\t\t\t\tName:       res.Language,\n\t\t\t\tLines:      res.Lines,\n\t\t\t\tCode:       res.Code,\n\t\t\t\tComment:    res.Comment,\n\t\t\t\tBlank:      res.Blank,\n\t\t\t\tComplexity: res.Complexity,\n\t\t\t\tCount:      1,\n\t\t\t\tFiles:      files,\n\t\t\t\tBytes:      res.Bytes,\n\t\t\t\tULOC:       0,\n\t\t\t}\n\t\t} else {\n\t\t\ttmp := langs[res.Language]\n\t\t\tfiles := tmp.Files\n\t\t\tif Files {\n\t\t\t\tfiles = append(files, res)\n\t\t\t}\n\n\t\t\tlangs[res.Language] = LanguageSummary{\n\t\t\t\tName:       res.Language,\n\t\t\t\tLines:      tmp.Lines + res.Lines,\n\t\t\t\tCode:       tmp.Code + res.Code,\n\t\t\t\tComment:    tmp.Comment + res.Comment,\n\t\t\t\tBlank:      tmp.Blank + res.Blank,\n\t\t\t\tComplexity: tmp.Complexity + res.Complexity,\n\t\t\t\tCount:      tmp.Count + 1,\n\t\t\t\tFiles:      files,\n\t\t\t\tBytes:      res.Bytes + tmp.Bytes,\n\t\t\t\tULOC:       0,\n\t\t\t}\n\t\t}\n\t}\n\n\tlanguage := make([]LanguageSummary, 0, len(langs))\n\tfor _, summary := range langs {\n\t\tsummary.ULOC = len(ulocLanguageCount[summary.Name]) // for #498\n\t\tlanguage = append(language, summary)\n\t}\n\n\treturn language\n}\n\nfunc sortLanguageSummary(language []LanguageSummary) []LanguageSummary {\n\t// Cater for the common case of adding plural even for those options that don't make sense\n\t// as it's quite common for those who English is not a first language to make a simple mistake\n\t// NB in any non name cases if the values are the same we sort by name to ensure\n\t// deterministic output\n\tswitch SortBy {\n\tcase \"name\", \"names\", \"language\", \"languages\", \"lang\", \"langs\":\n\t\tslices.SortFunc(language, func(a, b LanguageSummary) int {\n\t\t\treturn strings.Compare(a.Name, b.Name)\n\t\t})\n\tcase \"line\", \"lines\":\n\t\tslices.SortFunc(language, func(a, b LanguageSummary) int {\n\t\t\tif order := cmp.Compare(b.Lines, a.Lines); order != 0 {\n\t\t\t\treturn order\n\t\t\t}\n\t\t\treturn strings.Compare(a.Name, b.Name)\n\t\t})\n\tcase \"blank\", \"blanks\":\n\t\tslices.SortFunc(language, func(a, b LanguageSummary) int {\n\t\t\tif order := cmp.Compare(b.Blank, a.Blank); order != 0 {\n\t\t\t\treturn order\n\t\t\t}\n\t\t\treturn strings.Compare(a.Name, b.Name)\n\t\t})\n\tcase \"code\", \"codes\":\n\t\tslices.SortFunc(language, func(a, b LanguageSummary) int {\n\t\t\tif order := cmp.Compare(b.Code, a.Code); order != 0 {\n\t\t\t\treturn order\n\t\t\t}\n\t\t\treturn strings.Compare(a.Name, b.Name)\n\t\t})\n\tcase \"comment\", \"comments\":\n\t\tslices.SortFunc(language, func(a, b LanguageSummary) int {\n\t\t\tif order := cmp.Compare(b.Comment, a.Comment); order != 0 {\n\t\t\t\treturn order\n\t\t\t}\n\t\t\treturn strings.Compare(a.Name, b.Name)\n\t\t})\n\tcase \"complexity\", \"complexitys\":\n\t\tslices.SortFunc(language, func(a, b LanguageSummary) int {\n\t\t\tif order := cmp.Compare(b.Complexity, a.Complexity); order != 0 {\n\t\t\t\treturn order\n\t\t\t}\n\t\t\treturn strings.Compare(a.Name, b.Name)\n\t\t})\n\tcase \"byte\", \"bytes\":\n\t\tslices.SortFunc(language, func(a, b LanguageSummary) int {\n\t\t\tif order := cmp.Compare(b.Bytes, a.Bytes); order != 0 {\n\t\t\t\treturn order\n\t\t\t}\n\t\t\treturn strings.Compare(a.Name, b.Name)\n\t\t})\n\tcase \"file\", \"files\":\n\t\tslices.SortFunc(language, func(a, b LanguageSummary) int {\n\t\t\tif order := cmp.Compare(b.Count, a.Count); order != 0 {\n\t\t\t\treturn order\n\t\t\t}\n\t\t\treturn strings.Compare(a.Name, b.Name)\n\t\t})\n\tdefault: // Files IE default falls into this category\n\t\tslices.SortFunc(language, func(a, b LanguageSummary) int {\n\t\t\tif order := cmp.Compare(b.Count, a.Count); order != 0 {\n\t\t\t\treturn order\n\t\t\t}\n\t\t\treturn strings.Compare(a.Name, b.Name)\n\t\t})\n\t}\n\n\treturn language\n}\n"
  },
  {
    "path": "processor/formatters_test.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"io\"\n\t\"os\"\n\t\"slices\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/mattn/go-runewidth\"\n)\n\nfunc TestCalculateCocomo(t *testing.T) {\n\tvar str strings.Builder\n\tcalculateCocomo(1, &str)\n\n\tif !strings.Contains(str.String(), \"Estimated Schedule Effort (organic) 0.22 months\") {\n\t\tt.Error(\"expected to match got\", str.String())\n\t}\n}\n\nfunc TestCalculateSizeSingleByte(t *testing.T) {\n\tvar str strings.Builder\n\tcalculateSize(1, &str)\n\n\tif !strings.Contains(str.String(), \"Processed 1 bytes, 0.000 megabytes (SI)\") {\n\t\tt.Error(\"expected to match got\", str.String())\n\t}\n}\n\nfunc TestCalculateSize(t *testing.T) {\n\tvar str strings.Builder\n\tcalculateSize(1000000, &str)\n\n\tif !strings.Contains(str.String(), \"Processed 1000000 bytes, 1.000 megabytes (SI)\") {\n\t\tt.Error(\"expected to match got\", str.String())\n\t}\n}\n\nfunc TestSortSummaryFilesEmpty(t *testing.T) {\n\tsummary := LanguageSummary{}\n\tsortSummaryFiles(&summary)\n}\n\nfunc TestSortSummaryFiles(t *testing.T) {\n\tfiles := []*FileJob{}\n\tfiles = append(files, &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./bbbb.go\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t})\n\tfiles = append(files, &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./aaaa.go\",\n\t\tBytes:              2000,\n\t\tLines:              2000,\n\t\tCode:               2000,\n\t\tComment:            2000,\n\t\tBlank:              2000,\n\t\tComplexity:         2000,\n\t\tWeightedComplexity: 2000,\n\t\tBinary:             false,\n\t})\n\n\tsummary := LanguageSummary{\n\t\tName:               \"Go\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tCount:              1000,\n\t\tWeightedComplexity: 1000,\n\t\tFiles:              files,\n\t}\n\n\tlineSort := []string{\"name\", \"names\", \"language\", \"languages\", \"line\", \"lines\", \"RANDOMTHING\"}\n\tfor _, val := range lineSort {\n\t\tSortBy = val\n\t\tsortSummaryFiles(&summary)\n\n\t\tif summary.Files[0].Filename != \"aaaa.go\" {\n\t\t\tt.Error(\"Sorting on lines failed\", val)\n\t\t}\n\t}\n\n\tblankSort := []string{\"blank\", \"blanks\"}\n\tfor _, val := range blankSort {\n\t\tSortBy = val\n\t\tsortSummaryFiles(&summary)\n\n\t\tif summary.Files[0].Filename != \"aaaa.go\" {\n\t\t\tt.Error(\"Sorting on blank failed\", val)\n\t\t}\n\t}\n\n\tcodeSort := []string{\"code\", \"codes\"}\n\tfor _, val := range codeSort {\n\t\tSortBy = val\n\t\tsortSummaryFiles(&summary)\n\n\t\tif summary.Files[0].Filename != \"aaaa.go\" {\n\t\t\tt.Error(\"Sorting on code failed\", val)\n\t\t}\n\t}\n\n\tcommentSort := []string{\"comment\", \"comments\"}\n\tfor _, val := range commentSort {\n\t\tSortBy = val\n\t\tsortSummaryFiles(&summary)\n\n\t\tif summary.Files[0].Filename != \"aaaa.go\" {\n\t\t\tt.Error(\"Sorting on comment failed\", val)\n\t\t}\n\t}\n\n\tcomplexitySort := []string{\"complexity\", \"complexitys\"}\n\tfor _, val := range complexitySort {\n\t\tSortBy = val\n\t\tsortSummaryFiles(&summary)\n\n\t\tif summary.Files[0].Filename != \"aaaa.go\" {\n\t\t\tt.Error(\"Sorting on complexity failed\", val)\n\t\t}\n\t}\n}\n\nfunc TestSortSummaryFilesName(t *testing.T) {\n\tgoFiles := []*FileJob{}\n\tgoFiles = append(goFiles, &FileJob{\n\t\tLanguage: \"Go\",\n\t\tLocation: \"bbbb.go\",\n\t})\n\n\tgoFiles = append(goFiles, &FileJob{\n\t\tLanguage: \"Go\",\n\t\tLocation: \"aaaa.go\",\n\t})\n\n\tgoFiles = append(goFiles, &FileJob{\n\t\tLanguage: \"Go\",\n\t\tLocation: \"cccc.go\",\n\t})\n\n\tsummary := LanguageSummary{\n\t\tName:  \"Go\",\n\t\tFiles: goFiles,\n\t}\n\n\tlineSort := []string{\"name\", \"names\", \"language\", \"languages\"}\n\tfor _, val := range lineSort {\n\t\tSortBy = val\n\t\tsortSummaryFiles(&summary)\n\n\t\tif summary.Files[0].Location != \"aaaa.go\" {\n\t\t\tt.Error(\"Sorting on lines failed\", val)\n\t\t}\n\t}\n\tSortBy = \"\"\n}\n\nfunc TestSortLanguageSummaryName(t *testing.T) {\n\tSortBy = \"name\"\n\tls := []LanguageSummary{\n\t\t{\n\t\t\tName:  \"b\",\n\t\t\tLines: 1,\n\t\t},\n\t\t{\n\t\t\tName:  \"a\",\n\t\t\tLines: 1,\n\t\t},\n\t}\n\n\tls = sortLanguageSummary(ls)\n\n\tif ls[0].Name != \"a\" {\n\t\tt.Error(\"Expected a to be first\")\n\t}\n}\n\nfunc TestSortLanguageSummaryLine(t *testing.T) {\n\tSortBy = \"line\"\n\tls := []LanguageSummary{\n\t\t{\n\t\t\tName:  \"a\",\n\t\t\tLines: 1,\n\t\t},\n\t\t{\n\t\t\tName:  \"b\",\n\t\t\tLines: 1,\n\t\t},\n\t\t{\n\t\t\tName:  \"c\",\n\t\t\tLines: 2,\n\t\t},\n\t}\n\n\tls = sortLanguageSummary(ls)\n\n\tif ls[0].Name != \"c\" || ls[1].Name != \"a\" {\n\t\tt.Error(\"Expected c to be first and a second\")\n\t}\n}\n\nfunc TestSortLanguageSummaryBlank(t *testing.T) {\n\tSortBy = \"blank\"\n\tls := []LanguageSummary{\n\t\t{\n\t\t\tName:  \"a\",\n\t\t\tBlank: 1,\n\t\t},\n\t\t{\n\t\t\tName:  \"b\",\n\t\t\tBlank: 1,\n\t\t},\n\t\t{\n\t\t\tName:  \"c\",\n\t\t\tBlank: 2,\n\t\t},\n\t}\n\n\tls = sortLanguageSummary(ls)\n\n\tif ls[0].Name != \"c\" || ls[1].Name != \"a\" {\n\t\tt.Error(\"Expected c to be first and a second\")\n\t}\n}\n\nfunc TestSortLanguageSummaryCode(t *testing.T) {\n\tSortBy = \"code\"\n\tls := []LanguageSummary{\n\t\t{\n\t\t\tName: \"a\",\n\t\t\tCode: 1,\n\t\t},\n\t\t{\n\t\t\tName: \"b\",\n\t\t\tCode: 1,\n\t\t},\n\t\t{\n\t\t\tName: \"c\",\n\t\t\tCode: 2,\n\t\t},\n\t}\n\n\tls = sortLanguageSummary(ls)\n\n\tif ls[0].Name != \"c\" || ls[1].Name != \"a\" {\n\t\tt.Error(\"Expected c to be first and a second\")\n\t}\n}\n\nfunc TestSortLanguageSummaryComment(t *testing.T) {\n\tSortBy = \"comment\"\n\tls := []LanguageSummary{\n\t\t{\n\t\t\tName:    \"a\",\n\t\t\tComment: 1,\n\t\t},\n\t\t{\n\t\t\tName:    \"b\",\n\t\t\tComment: 1,\n\t\t},\n\t\t{\n\t\t\tName:    \"c\",\n\t\t\tComment: 2,\n\t\t},\n\t}\n\n\tls = sortLanguageSummary(ls)\n\n\tif ls[0].Name != \"c\" || ls[1].Name != \"a\" {\n\t\tt.Error(\"Expected c to be first and a second\")\n\t}\n}\n\nfunc TestSortLanguageSummaryComplexity(t *testing.T) {\n\tSortBy = \"complexity\"\n\tls := []LanguageSummary{\n\t\t{\n\t\t\tName:       \"a\",\n\t\t\tComplexity: 1,\n\t\t},\n\t\t{\n\t\t\tName:       \"b\",\n\t\t\tComplexity: 1,\n\t\t},\n\t\t{\n\t\t\tName:       \"c\",\n\t\t\tComplexity: 2,\n\t\t},\n\t}\n\n\tls = sortLanguageSummary(ls)\n\n\tif ls[0].Name != \"c\" || ls[1].Name != \"a\" {\n\t\tt.Error(\"Expected c to be first and a second\")\n\t}\n}\n\nfunc TestSortLanguageSummaryBytes(t *testing.T) {\n\tSortBy = \"bytes\"\n\tls := []LanguageSummary{\n\t\t{\n\t\t\tName:  \"a\",\n\t\t\tBytes: 1,\n\t\t},\n\t\t{\n\t\t\tName:  \"b\",\n\t\t\tBytes: 1,\n\t\t},\n\t\t{\n\t\t\tName:  \"c\",\n\t\t\tBytes: 2,\n\t\t},\n\t}\n\n\tls = sortLanguageSummary(ls)\n\n\tif ls[0].Name != \"c\" || ls[1].Name != \"a\" {\n\t\tt.Error(\"Expected c to be first and a second\")\n\t}\n}\n\nfunc TestSortLanguageSummaryFiles(t *testing.T) {\n\tSortBy = \"files\"\n\tls := []LanguageSummary{\n\t\t{\n\t\t\tName:  \"a\",\n\t\t\tCount: 1,\n\t\t},\n\t\t{\n\t\t\tName:  \"b\",\n\t\t\tCount: 1,\n\t\t},\n\t\t{\n\t\t\tName:  \"c\",\n\t\t\tCount: 2,\n\t\t},\n\t}\n\n\tls = sortLanguageSummary(ls)\n\n\tif ls[0].Name != \"c\" || ls[1].Name != \"a\" {\n\t\tt.Error(\"Expected c to be first and a second\")\n\t}\n}\n\nfunc TestSortSummaryNames(t *testing.T) {\n\tSortBy = \"name\"\n\tls := []LanguageSummary{\n\t\t{\n\t\t\tName:       \"a\",\n\t\t\tComplexity: 1,\n\t\t},\n\t\t{\n\t\t\tName:       \"b\",\n\t\t\tComplexity: 1,\n\t\t},\n\t\t{\n\t\t\tName:       \"c\",\n\t\t\tComplexity: 2,\n\t\t},\n\t}\n\n\tls = sortLanguageSummary(ls)\n\n\tif ls[0].Name != \"a\" || ls[1].Name != \"b\" || ls[2].Name != \"c\" {\n\t\tt.Error(\"Expected a to be first and b second and c third\")\n\t}\n}\n\nfunc TestToJSONEmpty(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tclose(inputChan)\n\tres := toJSON(inputChan)\n\n\tif res != \"[]\" {\n\t\tt.Error(\"Expected empty JSON return\", res)\n\t}\n}\n\nfunc TestToJSONSingle(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tDebug = true // Increase coverage slightly\n\tFiles = true\n\tres := toJSON(inputChan)\n\tDebug = false\n\n\tif !strings.Contains(res, `\"Name\":\"Go\"`) || !strings.Contains(res, `\"Code\":1000`) || !strings.Contains(res, `\"Filename\":\"bbbb.go\"`) {\n\t\tt.Error(\"Expected JSON return\", res)\n\t}\n\tif strings.Contains(res, `\"Content\":`) {\n\t\tt.Error(\"Expected JSON return\", res)\n\t}\n}\n\nfunc TestToJSONSingleWithoutFiles(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tDebug = true // Increase coverage slightly\n\tFiles = false\n\tres := toJSON(inputChan)\n\tDebug = false\n\n\tif !strings.Contains(res, `\"Name\":\"Go\"`) || !strings.Contains(res, `\"Code\":1000`) {\n\t\tt.Error(\"Expected JSON return\", res)\n\t}\n\tif strings.Contains(res, `\"Filename\":\"bbbb.go\"`) {\n\t\tt.Error(\"Expected JSON return\", res)\n\t}\n}\n\nfunc TestToJSONMultiple(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tDebug = true // Increase coverage slightly\n\tFiles = true\n\tres := toJSON(inputChan)\n\tDebug = false\n\n\tif !strings.Contains(res, `aaaa.go`) || !strings.Contains(res, `bbbb.go`) {\n\t\tt.Error(\"Expected JSON return\", res)\n\t}\n}\n\nfunc TestToYAMLEmpty(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tclose(inputChan)\n\tres := toClocYAML(inputChan)\n\n\tif !strings.Contains(res, \"{}\") || !strings.Contains(res, \"header:\") || !strings.Contains(res, \"n_files: 0\") {\n\t\tt.Error(\"Expected empty Cloc YAML return\", res)\n\t}\n}\n\nfunc TestToYAMLSingle(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tDebug = true // Increase coverage slightly\n\tres := toClocYAML(inputChan)\n\tDebug = false\n\n\tif !strings.Contains(res, `n_lines: 1000`) {\n\t\tt.Error(\"Expected Cloc YAML return\", res)\n\t}\n}\n\nfunc TestToYAMLMultiple(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tDebug = true // Increase coverage slightly\n\tres := toClocYAML(inputChan)\n\tDebug = false\n\n\tif !strings.Contains(res, `code: 2000`) || !strings.Contains(res, `n_lines: 2000`) {\n\t\tt.Error(\"Expected Cloc JSON return\", res)\n\t}\n}\n\nfunc TestToCsvMultiple(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tDebug = true // Increase coverage slightly\n\tres := toCSV(inputChan)\n\tDebug = false\n\n\tif !strings.Contains(res, `aaaa.go,`) || !strings.Contains(res, `bbbb.go`) {\n\t\tt.Error(\"Expected CSV return\", res)\n\t}\n}\n\nfunc TestToCsvStreamMultiple(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tDebug = true // Increase coverage slightly\n\tres := toCSVStream(inputChan)\n\tDebug = false\n\n\tif res != \"\" {\n\t\tt.Error(\"Expected CSV return\", res)\n\t}\n}\n\nfunc TestToCsvFilesSorted(t *testing.T) {\n\tfj1 := &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              90,\n\t\tLines:              90,\n\t\tCode:               90,\n\t\tComment:            90,\n\t\tBlank:              90,\n\t\tComplexity:         90,\n\t\tWeightedComplexity: 90,\n\t\tBinary:             false,\n\t}\n\tfj2 := &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\n\tFiles = true\n\tSortBy = \"lines\"\n\n\tinputChan1 := make(chan *FileJob, 1000)\n\tinputChan1 <- fj1\n\tinputChan1 <- fj2\n\tclose(inputChan1)\n\tres1 := toCSV(inputChan1)\n\n\tinputChan2 := make(chan *FileJob, 1000)\n\tinputChan2 <- fj2\n\tinputChan2 <- fj1\n\tclose(inputChan2)\n\tres2 := toCSV(inputChan2)\n\n\tFiles = false\n\n\tif res1 != res2 {\n\t\tt.Error(\"Should be sorted to be the same\")\n\t}\n}\n\nfunc TestToOpenMetricsMultiple(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tFiles = false\n\tDebug = true // Increase coverage slightly\n\tres := toOpenMetrics(inputChan)\n\tDebug = false\n\n\tvar expectedResult = `# TYPE scc_files gauge\n# HELP scc_files Number of sourcecode files.\n# TYPE scc_lines gauge\n# HELP scc_lines Number of lines.\n# TYPE scc_code gauge\n# HELP scc_code Number of lines of actual code.\n# TYPE scc_comments gauge\n# HELP scc_comments Number of comments.\n# TYPE scc_blanks gauge\n# HELP scc_blanks Number of blank lines.\n# TYPE scc_complexity gauge\n# HELP scc_complexity Code complexity.\n# TYPE scc_bytes gauge\n# UNIT scc_bytes bytes\n# HELP scc_bytes Size in bytes.\nscc_files{language=\"Go\"} 2\nscc_lines{language=\"Go\"} 2000\nscc_code{language=\"Go\"} 2000\nscc_comments{language=\"Go\"} 2000\nscc_blanks{language=\"Go\"} 2000\nscc_complexity{language=\"Go\"} 2000\nscc_bytes{language=\"Go\"} 2000\n`\n\n\tif res != expectedResult {\n\t\tt.Error(\"Expected OpenMetrics return\", res)\n\t}\n}\n\nfunc TestToSQLSingle(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t\tUloc:               99,\n\t}\n\tclose(inputChan)\n\tFiles = false\n\tDebug = true // Increase coverage slightly\n\tres := toSql(inputChan)\n\tDebug = false\n\n\tif !strings.Contains(res, `create table metadata`) {\n\t\tt.Error(\"Expected create table return\", res)\n\t}\n\n\tif !strings.Contains(res, `create table t`) {\n\t\tt.Error(\"Expected create table return\", res)\n\t}\n\n\tif !strings.Contains(res, `begin transaction`) {\n\t\tt.Error(\"Expected begin transaction return\", res)\n\t}\n\n\tif !strings.Contains(res, `insert into t values('', 'Go', './', './', 'bbbb.go', 1000, 1000, 1000, 1000, 1000, 99);`) {\n\t\tt.Error(\"Expected insert return\", res)\n\t}\n\n\tif !strings.Contains(res, `insert into metadata values`) {\n\t\tt.Error(\"Expected insert return\", res)\n\t}\n}\n\nfunc TestFileSummarizeWide(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\n\tclose(inputChan)\n\tFormat = \"wide\"\n\tMore = true\n\tres := fileSummarize(inputChan)\n\tMore = false\n\n\tif !strings.Contains(res, `Language`) {\n\t\tt.Error(\"Expected CSV return\", res)\n\t}\n}\n\nfunc TestFileSummarizeJson(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\n\tclose(inputChan)\n\tFormat = \"JSON\"\n\tMore = false\n\tFiles = true\n\tres := fileSummarize(inputChan)\n\n\tif !strings.Contains(res, `bbbb.go`) || !strings.HasPrefix(res, \"[\") {\n\t\tt.Error(\"Expected JSON return\", res)\n\t}\n}\n\nfunc TestFileSummarizeCsv(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\n\tclose(inputChan)\n\tFormat = \"CSV\"\n\tMore = false\n\tres := fileSummarize(inputChan)\n\n\tif !strings.Contains(res, `bbbb.go`) {\n\t\tt.Error(\"Expected CSV return\", res)\n\t}\n}\n\nfunc TestFileSummarizeYaml(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\n\tclose(inputChan)\n\tFormat = \"cloc-yml\"\n\tMore = false\n\tres := fileSummarize(inputChan)\n\n\tif !strings.Contains(res, `code: 1000`) {\n\t\tt.Error(\"Expected YAML return\", res)\n\t}\n}\n\nfunc TestFileSummarizeYml(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\n\tclose(inputChan)\n\tFormat = \"cloc-YAML\"\n\tMore = false\n\tres := fileSummarize(inputChan)\n\n\tif !strings.Contains(res, `code: 1000`) {\n\t\tt.Error(\"Expected YML return\", res)\n\t}\n}\n\nfunc TestFileSummarizeOpenMetrics(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\n\tclose(inputChan)\n\tFiles = false\n\tFormat = \"OpenMetrics\"\n\tMore = false\n\tres := fileSummarize(inputChan)\n\n\tvar expectedResult = `# TYPE scc_files gauge\n# HELP scc_files Number of sourcecode files.\n# TYPE scc_lines gauge\n# HELP scc_lines Number of lines.\n# TYPE scc_code gauge\n# HELP scc_code Number of lines of actual code.\n# TYPE scc_comments gauge\n# HELP scc_comments Number of comments.\n# TYPE scc_blanks gauge\n# HELP scc_blanks Number of blank lines.\n# TYPE scc_complexity gauge\n# HELP scc_complexity Code complexity.\n# TYPE scc_bytes gauge\n# UNIT scc_bytes bytes\n# HELP scc_bytes Size in bytes.\nscc_files{language=\"Go\"} 1\nscc_lines{language=\"Go\"} 1000\nscc_code{language=\"Go\"} 1000\nscc_comments{language=\"Go\"} 1000\nscc_blanks{language=\"Go\"} 1000\nscc_complexity{language=\"Go\"} 1000\nscc_bytes{language=\"Go\"} 1000\n`\n\n\tif res != expectedResult {\n\t\tt.Error(\"Expected OpenMetrics return\", res)\n\t}\n}\n\nfunc TestFileSummarizeOpenMetricsPerFile(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"C:\\\\bbbb.go\", // to test escaping of the backslash\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\n\tclose(inputChan)\n\tFormat = \"OpenMetrics\"\n\tMore = false\n\tFiles = true\n\tres := fileSummarize(inputChan)\n\n\tvar expectedResult = `# TYPE scc_files gauge\n# HELP scc_files Number of sourcecode files.\n# TYPE scc_lines gauge\n# HELP scc_lines Number of lines.\n# TYPE scc_code gauge\n# HELP scc_code Number of lines of actual code.\n# TYPE scc_comments gauge\n# HELP scc_comments Number of comments.\n# TYPE scc_blanks gauge\n# HELP scc_blanks Number of blank lines.\n# TYPE scc_complexity gauge\n# HELP scc_complexity Code complexity.\n# TYPE scc_bytes gauge\n# UNIT scc_bytes bytes\n# HELP scc_bytes Size in bytes.\nscc_lines{language=\"Go\",file=\"C:\\\\bbbb.go\"} 1000\nscc_code{language=\"Go\",file=\"C:\\\\bbbb.go\"} 1000\nscc_comments{language=\"Go\",file=\"C:\\\\bbbb.go\"} 1000\nscc_blanks{language=\"Go\",file=\"C:\\\\bbbb.go\"} 1000\nscc_complexity{language=\"Go\",file=\"C:\\\\bbbb.go\"} 1000\nscc_bytes{language=\"Go\",file=\"C:\\\\bbbb.go\"} 1000\n# EOF\n`\n\n\tif res != expectedResult {\n\t\tt.Error(\"Expected OpenMetrics return\", res)\n\t}\n}\n\nfunc TestFileSummarizeHtml(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\n\tclose(inputChan)\n\tFormat = \"html\"\n\tMore = false\n\tres := fileSummarize(inputChan)\n\n\tif !strings.Contains(res, `<th>1000`) {\n\t\tt.Error(\"Expected HTML return\", res)\n\t}\n}\n\nfunc TestFileSummarizeHtmlTable(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\n\tclose(inputChan)\n\tFormat = \"html-table\"\n\tMore = false\n\tres := fileSummarize(inputChan)\n\n\tif !strings.Contains(res, `<th>1000`) {\n\t\tt.Error(\"Expected HTML-table return\", res)\n\t}\n}\n\nfunc TestFileSummarizeDefault(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\n\tclose(inputChan)\n\tFormat = \"\"\n\tMore = false\n\tres := fileSummarize(inputChan)\n\n\tif !strings.Contains(res, `Estimated Cost to Develop`) {\n\t\tt.Error(\"Expected summary return\", res)\n\t}\n}\n\nfunc TestFileSummarizeLong(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tres := fileSummarizeLong(inputChan)\n\n\tif !strings.Contains(res, `Language`) {\n\t\tt.Error(\"Expected Summary return\", res)\n\t}\n}\n\nfunc TestFileSummarizeShort(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tres := fileSummarizeShort(inputChan)\n\n\tif !strings.Contains(res, `Language`) {\n\t\tt.Error(\"Expected Summary return\", res)\n\t}\n}\n\nfunc TestFileSummarizeShortSort(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\n\tsortBy := []string{\"name\", \"line\", \"blank\", \"code\", \"comment\"}\n\n\tFiles = true\n\tfor _, sort := range sortBy {\n\t\tSortBy = sort\n\t\tres := fileSummarizeShort(inputChan)\n\n\t\tif !strings.Contains(res, `Language`) {\n\t\t\tt.Error(\"Expected Summary return\", res)\n\t\t}\n\t}\n}\n\nfunc TestFileSummarizeLongSort(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\n\tsortBy := []string{\"name\", \"line\", \"blank\", \"code\", \"comment\"}\n\n\tFiles = true\n\tfor _, sort := range sortBy {\n\t\tSortBy = sort\n\t\tres := fileSummarizeLong(inputChan)\n\n\t\tif !strings.Contains(res, `Language`) {\n\t\t\tt.Error(\"Expected Summary return\", res)\n\t\t}\n\t}\n}\n\nfunc TestGetTabularShortBreak(t *testing.T) {\n\tCi = false\n\tr := getTabularShortBreak()\n\n\tif !strings.Contains(r, \"─\") {\n\t\tt.Errorf(\"Expected to have box line\")\n\t}\n\n\tCi = true\n\tr = getTabularShortBreak()\n\n\tif !strings.Contains(r, \"-\") {\n\t\tt.Errorf(\"Expected to have hyphen\")\n\t}\n\n\tCi = false\n}\n\nfunc TestGetTabularWideBreak(t *testing.T) {\n\t{\n\t\tCi, HBorder = false, false\n\t\tr := getTabularWideBreak()\n\t\tif !strings.Contains(r, \"─\") {\n\t\t\tt.Errorf(\"Expected to have box line\")\n\t\t}\n\t}\n\t{\n\t\tCi, HBorder = false, true\n\t\tr := getTabularWideBreak()\n\t\tif strings.Contains(r, \"─\") {\n\t\t\tt.Errorf(\"Didn't expect to have box line\")\n\t\t}\n\t}\n\t{\n\t\tCi, HBorder = true, false\n\t\tr := getTabularWideBreak()\n\t\tif !strings.Contains(r, \"-\") {\n\t\t\tt.Errorf(\"Expected to have hyphen\")\n\t\t}\n\t}\n\t{\n\t\tCi, HBorder = true, true\n\t\tr := getTabularWideBreak()\n\t\tif strings.Contains(r, \"-\") {\n\t\t\tt.Errorf(\"Didn't expect to have hyphen\")\n\t\t}\n\t}\n\n\tCi, HBorder = false, false\n}\n\nfunc TestToHTML(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tres := toHtml(inputChan)\n\n\tif !strings.Contains(res, `<html lang=\"en\">`) {\n\t\tt.Error(\"Expected to have HTML wrapper\")\n\t}\n\n\tif !strings.Contains(res, \"<th>Language</th>\") {\n\t\tt.Error(\"html Language check failed\")\n\t}\n\tif !strings.Contains(res, \"<th>Files</th>\") {\n\t\tt.Error(\"html Files check failed\")\n\t}\n\tif !strings.Contains(res, \"<th>Lines</th>\") {\n\t\tt.Error(\"html Lines check failed\")\n\t}\n\tif !strings.Contains(res, \"<th>Blank</th>\") {\n\t\tt.Error(\"html Blank check failed\")\n\t}\n\tif !strings.Contains(res, \"<th>Comment</th>\") {\n\t\tt.Error(\"html Comment check failed\")\n\t}\n\tif !strings.Contains(res, \"<th>Code</th>\") {\n\t\tt.Error(\"html Code check failed\")\n\t}\n\tif !strings.Contains(res, \"<th>Complexity</th>\") {\n\t\tt.Error(\"html Complexity check failed\")\n\t}\n\tif !strings.Contains(res, \"<th>Bytes</th>\") {\n\t\tt.Error(\"html Bytes check failed\")\n\t}\n\tif !strings.Contains(res, \"<th>Uloc</th>\") {\n\t\tt.Error(\"html Uloc check failed\")\n\t}\n}\n\nfunc TestToHTMLTable(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tres := toHtmlTable(inputChan)\n\n\tif strings.Contains(res, `<html lang=\"en\">`) {\n\t\tt.Error(\"Expected to not have wrapper\")\n\t}\n\n\tif !strings.Contains(res, `<table id=\"scc-table\">`) {\n\t\tt.Error(\"Expected to have table element\")\n\t}\n}\n\nfunc TestUnicodeAwareTrimAscii(t *testing.T) {\n\ttmp := \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.md\"\n\tres := unicodeAwareTrim(tmp, shortFormatFileTruncate)\n\tif res != \"~aaaaaaaaaaaaaaaaaaaaaaa.md\" {\n\t\tt.Error(\"expected ~aaaaaaaaaaaaaaaaaaaaaaa.md got\", res)\n\t}\n}\n\nfunc TestUnicodeAwareTrimExactSizeAscii(t *testing.T) {\n\ttmp := \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.md\"\n\tres := unicodeAwareTrim(tmp, len(tmp))\n\tif res != tmp {\n\t\tt.Errorf(\"expected %s got %s\", tmp, res)\n\t}\n}\n\nfunc TestUnicodeAwareTrimUnicode(t *testing.T) {\n\ttmp := \"中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文.md\"\n\tres := unicodeAwareTrim(tmp, shortFormatFileTruncate)\n\tif res != \"~文中文中文中文中文中文.md\" {\n\t\tt.Error(\"expected ~文中文中文中文中文中文.md got\", res)\n\t}\n}\n\nfunc TestUnicodeAwareRightPad(t *testing.T) {\n\ttmp := unicodeAwareRightPad(\"\", 10)\n\tif runewidth.StringWidth(tmp) != 10 {\n\t\tt.Errorf(\"expected length of 10\")\n\t}\n}\n\nfunc TestUnicodeAwareRightPadUnicode(t *testing.T) {\n\ttmp := unicodeAwareRightPad(\"中文\", 10)\n\tif runewidth.StringWidth(tmp) != 10 {\n\t\tt.Errorf(\"expected length of 10\")\n\t}\n}\n\nfunc BenchmarkUnicodeAwareTrimExactSizeAscii(b *testing.B) {\n\ttmp := \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.md\"\n\tfor b.Loop() {\n\t\tres := unicodeAwareTrim(tmp, len(tmp))\n\t\tif res != tmp {\n\t\t\tb.Fatalf(\"expected %s got %s\", tmp, res)\n\t\t}\n\t}\n}\n\nfunc BenchmarkUnicodeAwareTrimUnicode(b *testing.B) {\n\ttmp := \"中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文.md\"\n\tfor b.Loop() {\n\t\tres := unicodeAwareTrim(tmp, shortFormatFileTruncate)\n\t\tif res != \"~文中文中文中文中文中文.md\" {\n\t\t\tb.Fatalf(\"expected ~文中文中文中文中文中文.md got %s\", res)\n\t\t}\n\t}\n}\n\nfunc BenchmarkUnicodeAwareRightPad(b *testing.B) {\n\tfor b.Loop() {\n\t\ttmp := unicodeAwareRightPad(\"\", 10)\n\t\tif runewidth.StringWidth(tmp) != 10 {\n\t\t\tb.Fatal(\"expected length of 10\")\n\t\t}\n\t}\n}\n\nfunc BenchmarkUnicodeAwareRightPadUnicode(b *testing.B) {\n\tfor b.Loop() {\n\t\ttmp := unicodeAwareRightPad(\"中文\", 10)\n\t\tif runewidth.StringWidth(tmp) != 10 {\n\t\t\tb.Fatal(\"expected length of 10\")\n\t\t}\n\t}\n}\n\n// When using columise  ~28726 ns/op\n// When using optimised ~14293 ns/op\nfunc BenchmarkFileSummerize(b *testing.B) {\n\tfor i := 0; i < b.N; i++ {\n\t\tb.StopTimer()\n\t\tfileSummaryJobQueue := make(chan *FileJob, 1000)\n\n\t\tfileSummaryJobQueue <- &FileJob{\n\t\t\tBlank:      1,\n\t\t\tBytes:      1,\n\t\t\tCode:       1,\n\t\t\tComment:    1,\n\t\t\tComplexity: 1,\n\t\t\tLanguage:   \"Go\",\n\t\t\tLines:      10,\n\t\t}\n\t\tfileSummaryJobQueue <- &FileJob{\n\t\t\tBlank:      2,\n\t\t\tBytes:      2,\n\t\t\tCode:       2,\n\t\t\tComment:    2,\n\t\t\tComplexity: 2,\n\t\t\tLanguage:   \"Python\",\n\t\t\tLines:      20,\n\t\t}\n\t\tclose(fileSummaryJobQueue)\n\t\tb.StartTimer()\n\n\t\tfileSummarize(fileSummaryJobQueue)\n\t}\n}\n\nfunc TestGetCSVFilesSortFunc(t *testing.T) {\n\trecords := [][]string{\n\t\t// Language,Provider,Filename,Lines,Code,Comments,Blanks,Complexity,Bytes,ULOC\n\t\t{\"Go\", \"/path/to/file\", \"go.go\", \"10\", \"10\", \"0\", \"1\", \"1\", \"1024\", \"0\"},\n\t\t{\"Python\", \"/path/to/file\", \"python.py\", \"20\", \"20\", \"1\", \"2\", \"2\", \"2048\", \"0\"},\n\t\t{\"C#\", \"/path/to/file\", \"csharp.cs\", \"30\", \"30\", \"2\", \"3\", \"3\", \"4096\", \"0\"},\n\t\t{\"C++\", \"/path/to/file\", \"cpp.cpp\", \"40\", \"40\", \"3\", \"4\", \"4\", \"8192\", \"0\"},\n\t}\n\ttestCases := []struct {\n\t\tsortBy   string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\tsortBy:   \"names\",\n\t\t\texpected: []string{\"C++\", \"C#\", \"Go\", \"Python\"},\n\t\t},\n\t\t{\n\t\t\tsortBy:   \"langs\",\n\t\t\texpected: []string{\"C#\", \"C++\", \"Go\", \"Python\"},\n\t\t},\n\t\t{\n\t\t\tsortBy:   \"lines\",\n\t\t\texpected: []string{\"C++\", \"C#\", \"Python\", \"Go\"},\n\t\t},\n\t\t{\n\t\t\tsortBy:   \"code\",\n\t\t\texpected: []string{\"C++\", \"C#\", \"Python\", \"Go\"},\n\t\t},\n\t\t{\n\t\t\tsortBy:   \"comments\",\n\t\t\texpected: []string{\"C++\", \"C#\", \"Python\", \"Go\"},\n\t\t},\n\t\t{\n\t\t\tsortBy:   \"blanks\",\n\t\t\texpected: []string{\"C++\", \"C#\", \"Python\", \"Go\"},\n\t\t},\n\t\t{\n\t\t\tsortBy:   \"complexity\",\n\t\t\texpected: []string{\"C++\", \"C#\", \"Python\", \"Go\"},\n\t\t},\n\t\t{\n\t\t\tsortBy:   \"bytes\",\n\t\t\texpected: []string{\"C++\", \"C#\", \"Python\", \"Go\"},\n\t\t},\n\t\t{\n\t\t\tsortBy:   \"default\",\n\t\t\texpected: []string{\"C++\", \"C#\", \"Go\", \"Python\"},\n\t\t},\n\t}\n\tfor _, tc := range testCases {\n\t\tdata := slices.Clone(records) // always use an unordered records\n\t\tslices.SortFunc(data, getCSVFilesSortFunc(tc.sortBy))\n\t\tsortedRecords := make([]string, 0, len(data))\n\t\tfor i := range data {\n\t\t\tsortedRecords = append(sortedRecords, data[i][0])\n\t\t}\n\t\tif !slices.Equal(sortedRecords, tc.expected) {\n\t\t\tt.Errorf(\"sortBy: %s failed, expected: %v, got: %v\", tc.sortBy, tc.expected, sortedRecords)\n\t\t}\n\t}\n}\n\nfunc TestToCSVFilesHeader(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\tres := toCSVFiles(inputChan)\n\theader, _, _ := strings.Cut(res, \"\\n\")\n\tconst expected = \"Language,Provider,Filename,Lines,Code,Comments,Blanks,Complexity,Bytes,ULOC\"\n\tif header != expected {\n\t\tt.Errorf(\"check toCSVFiles header failed, expected: %v, got: %v\", expected, header)\n\t}\n}\n\nfunc TestToCSVStreamHeader(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\n\toriginStdout := os.Stdout\n\tt.Cleanup(func() {\n\t\tos.Stdout = originStdout\n\t})\n\tr, w, err := os.Pipe()\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tos.Stdout = w\n\tgo func() {\n\t\ttoCSVStream(inputChan)\n\t\t_ = w.Close()\n\t}()\n\toutput, err := io.ReadAll(r)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\theader, _, _ := strings.Cut(string(output), \"\\n\")\n\tconst expected = \"Language,Provider,Filename,Lines,Code,Comments,Blanks,Complexity,Bytes,Uloc\"\n\tif header != expected {\n\t\tt.Errorf(\"check toCSVStream header failed, expected: %v, got: %v\", expected, header)\n\t}\n}\n\nfunc TestToJSONKeys(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\n\tres := toJSON(inputChan)\n\tif !strings.Contains(res, `\"Name\":`) {\n\t\tt.Error(\"JSON Name check failed\")\n\t}\n\tif !strings.Contains(res, `\"Files\":`) {\n\t\tt.Error(\"JSON Files check failed\")\n\t}\n\tif !strings.Contains(res, `\"Lines\":`) {\n\t\tt.Error(\"JSON Lines check failed\")\n\t}\n\tif !strings.Contains(res, `\"Blank\":`) {\n\t\tt.Error(\"JSON Blank check failed\")\n\t}\n\tif !strings.Contains(res, `\"Comment\":`) {\n\t\tt.Error(\"JSON Comment check failed\")\n\t}\n\tif !strings.Contains(res, `\"Code\":`) {\n\t\tt.Error(\"JSON Code check failed\")\n\t}\n\tif !strings.Contains(res, `\"Complexity\":`) {\n\t\tt.Error(\"JSON Complexity check failed\")\n\t}\n\tif !strings.Contains(res, `\"Bytes\":`) {\n\t\tt.Error(\"JSON Bytes check failed\")\n\t}\n\tif !strings.Contains(res, `\"ULOC\":`) {\n\t\tt.Error(\"JSON Uloc check failed\")\n\t}\n}\n\nfunc TestToJSON2Keys(t *testing.T) {\n\tinputChan := make(chan *FileJob, 1000)\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"bbbb.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tinputChan <- &FileJob{\n\t\tLanguage:           \"Go\",\n\t\tFilename:           \"aaaa.go\",\n\t\tExtension:          \"go\",\n\t\tLocation:           \"./\",\n\t\tBytes:              1000,\n\t\tLines:              1000,\n\t\tCode:               1000,\n\t\tComment:            1000,\n\t\tBlank:              1000,\n\t\tComplexity:         1000,\n\t\tWeightedComplexity: 1000,\n\t\tBinary:             false,\n\t}\n\tclose(inputChan)\n\n\tres := toJSON2(inputChan)\n\tif !strings.Contains(res, `\"Name\":`) {\n\t\tt.Error(\"JSON2 Name check failed\")\n\t}\n\tif !strings.Contains(res, `\"Files\":`) {\n\t\tt.Error(\"JSON2 Files check failed\")\n\t}\n\tif !strings.Contains(res, `\"Lines\":`) {\n\t\tt.Error(\"JSON2 Lines check failed\")\n\t}\n\tif !strings.Contains(res, `\"Blank\":`) {\n\t\tt.Error(\"JSON2 Blank check failed\")\n\t}\n\tif !strings.Contains(res, `\"Comment\":`) {\n\t\tt.Error(\"JSON2 Comment check failed\")\n\t}\n\tif !strings.Contains(res, `\"Code\":`) {\n\t\tt.Error(\"JSON2 Code check failed\")\n\t}\n\tif !strings.Contains(res, `\"Complexity\":`) {\n\t\tt.Error(\"JSON2 Complexity check failed\")\n\t}\n\tif !strings.Contains(res, `\"Bytes\":`) {\n\t\tt.Error(\"JSON2 Bytes check failed\")\n\t}\n\tif !strings.Contains(res, `\"ULOC\":`) {\n\t\tt.Error(\"JSON2 Uloc check failed\")\n\t}\n\tif !strings.Contains(res, `\"languageSummary\":`) {\n\t\tt.Error(\"JSON2 languageSummary check failed\")\n\t}\n\tif !strings.Contains(res, `\"estimatedCost\":`) {\n\t\tt.Error(\"JSON2 estimatedCost check failed\")\n\t}\n\tif !strings.Contains(res, `\"estimatedScheduleMonths\":`) {\n\t\tt.Error(\"JSON2 estimatedScheduleMonths check failed\")\n\t}\n\tif !strings.Contains(res, `\"estimatedPeople\":`) {\n\t\tt.Error(\"JSON2 estimatedPeople check failed\")\n\t}\n}\n"
  },
  {
    "path": "processor/helpers.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"time\"\n)\n\n// Returns the current time as a millisecond timestamp\nfunc makeTimestampMilli() int64 {\n\treturn time.Now().UnixMilli()\n}\n\n// Returns the current time as a nanosecond timestamp as some things\n// are far too fast to measure using nanoseconds\nfunc makeTimestampNano() int64 {\n\treturn time.Now().UnixNano()\n}\n"
  },
  {
    "path": "processor/helpers_test.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestMakeTimestampNano(t *testing.T) {\n\tres := makeTimestampNano()\n\ttime.Sleep(5 * time.Nanosecond)\n\n\tif res == makeTimestampNano() {\n\t\tt.Error(\"Should not match\")\n\t}\n}\n\nfunc TestMakeTimestampMilli(t *testing.T) {\n\tres := makeTimestampMilli()\n\ttime.Sleep(5 * time.Millisecond)\n\n\tif res == makeTimestampMilli() {\n\t\tt.Error(\"Should not match\")\n\t}\n}\n"
  },
  {
    "path": "processor/locomo.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// LOCOMO — LLM Output COst MOdel\n// Estimates the cost to regenerate a codebase using an LLM.\n// Analogous to COCOMO for human development — a rough ballpark estimator.\n\n// LocomoPreset defines the pricing and throughput for an LLM tier.\n// Presets are tier-based (large/medium/small/local) rather than model-specific,\n// so they don't go stale as specific models are retired or renamed.\ntype LocomoPreset struct {\n\tName        string\n\tInputPrice  float64 // cost per 1M input tokens\n\tOutputPrice float64 // cost per 1M output tokens\n\tTPS         float64 // output tokens per second\n}\n\nvar locomoPresets = map[string]LocomoPreset{\n\t// large: frontier models (Claude Opus, GPT-4.5, Gemini Ultra, etc.)\n\t\"large\": {Name: \"large\", InputPrice: 10.00, OutputPrice: 30.00, TPS: 30},\n\t// medium: balanced models (Claude Sonnet, GPT-4o, Gemini Pro, etc.) — default\n\t\"medium\": {Name: \"medium\", InputPrice: 3.00, OutputPrice: 15.00, TPS: 50},\n\t// small: fast/cheap models (Claude Haiku, GPT-4o-mini, Gemini Flash, etc.)\n\t\"small\": {Name: \"small\", InputPrice: 0.50, OutputPrice: 2.00, TPS: 100},\n\t// local: self-hosted models (Llama, Mistral, etc.) — no API cost\n\t\"local\": {Name: \"local\", InputPrice: 0.00, OutputPrice: 0.00, TPS: 15},\n}\n\n// LocomoResult holds the computed estimates from the LOCOMO model\ntype LocomoResult struct {\n\tInputTokens           float64\n\tOutputTokens          float64\n\tCost                  float64\n\tGenerationSeconds     float64\n\tReviewHours           float64\n\tAverageComplexityMult float64\n\tIterationFactor       float64\n\tPreset                string\n}\n\n// GetLocomoPreset returns the preset for the given name, falling back to medium\nfunc GetLocomoPreset(name string) LocomoPreset {\n\tp, ok := locomoPresets[strings.ToLower(name)]\n\tif ok {\n\t\treturn p\n\t}\n\treturn locomoPresets[\"medium\"]\n}\n\n// LocomoComplexityDensity calculates complexity/code with a guard for division by zero\nfunc LocomoComplexityDensity(complexity, code int64) float64 {\n\tif code == 0 {\n\t\treturn 0\n\t}\n\treturn float64(complexity) / float64(code)\n}\n\n// LocomoComplexityFactor calculates the input token scaling factor based on complexity density\n// Uses sqrt scaling to prevent runaway compounding\nfunc LocomoComplexityFactor(complexityDensity, complexityWeight float64) float64 {\n\treturn 1 + math.Sqrt(complexityDensity)*complexityWeight\n}\n\n// LocomoIterationFactor calculates the iteration/retry multiplier based on complexity density\n// Uses sqrt scaling to prevent runaway compounding\nfunc LocomoIterationFactor(complexityDensity, baseIterations, iterationWeight float64) float64 {\n\treturn baseIterations + math.Sqrt(complexityDensity)*iterationWeight\n}\n\n// LocomoEstimate computes the full LOCOMO estimate for a project\nfunc LocomoEstimate(sumCode, sumComplexity int64) LocomoResult {\n\t// Resolve preset, then apply any explicit overrides\n\tpreset := GetLocomoPreset(LocomoPresetName)\n\n\tinputPrice := preset.InputPrice\n\toutputPrice := preset.OutputPrice\n\ttps := preset.TPS\n\n\tif LocomoInputPriceSet {\n\t\tinputPrice = LocomoInputPrice\n\t}\n\tif LocomoOutputPriceSet {\n\t\toutputPrice = LocomoOutputPrice\n\t}\n\tif LocomoTPSSet && LocomoTPS > 0 {\n\t\ttps = LocomoTPS\n\t}\n\n\t// Parse config overrides if provided\n\ttokensPerLine := LocomoTokensPerLine\n\tbaseInputPerLine := LocomoBaseInputPerLine\n\tcomplexityWeight := LocomoComplexityWeight\n\tbaseIterations := LocomoIterations\n\titerationWeight := LocomoIterationWeight\n\n\tif LocomoConfig != \"\" {\n\t\tparseLocomoConfig(LocomoConfig, &tokensPerLine, &baseInputPerLine, &complexityWeight, &baseIterations, &iterationWeight)\n\t}\n\n\tdensity := LocomoComplexityDensity(sumComplexity, sumCode)\n\tcFactor := LocomoComplexityFactor(density, complexityWeight)\n\tiFactor := LocomoIterationFactor(density, baseIterations, iterationWeight)\n\n\tif LocomoCyclesSet && LocomoCyclesOverride > 0 {\n\t\tiFactor = LocomoCyclesOverride\n\t}\n\n\toutputTokens := float64(sumCode) * tokensPerLine * iFactor\n\tinputTokens := float64(sumCode) * baseInputPerLine * cFactor * iFactor\n\n\tcost := (inputTokens/1_000_000)*inputPrice + (outputTokens/1_000_000)*outputPrice\n\n\tgenerationSeconds := 0.0\n\tif tps > 0 {\n\t\tgenerationSeconds = outputTokens / tps\n\t}\n\n\treviewHours := float64(sumCode) * LocomoReviewMinutesPerLine / 60\n\n\treturn LocomoResult{\n\t\tInputTokens:           inputTokens,\n\t\tOutputTokens:          outputTokens,\n\t\tCost:                  cost,\n\t\tGenerationSeconds:     generationSeconds,\n\t\tReviewHours:           reviewHours,\n\t\tAverageComplexityMult: cFactor * iFactor,\n\t\tIterationFactor:       iFactor,\n\t\tPreset:                preset.Name,\n\t}\n}\n\n// parseLocomoConfig parses a comma-separated config string \"tokensPerLine,baseInputPerLine,complexityWeight,iterations,iterationWeight\"\nfunc parseLocomoConfig(config string, tokensPerLine, baseInputPerLine, complexityWeight, iterations, iterationWeight *float64) {\n\tparts := strings.Split(config, \",\")\n\tif len(parts) != 5 {\n\t\treturn\n\t}\n\n\tvals := make([]float64, 5)\n\tfor i, part := range parts {\n\t\tf, err := strconv.ParseFloat(strings.TrimSpace(part), 64)\n\t\tif err != nil {\n\t\t\treturn // if any part fails, use defaults\n\t\t}\n\t\tvals[i] = f\n\t}\n\n\t*tokensPerLine = vals[0]\n\t*baseInputPerLine = vals[1]\n\t*complexityWeight = vals[2]\n\t*iterations = vals[3]\n\t*iterationWeight = vals[4]\n}\n"
  },
  {
    "path": "processor/locomo_test.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"math\"\n\t\"testing\"\n)\n\nfunc TestLocomoComplexityDensityZeroCode(t *testing.T) {\n\tgot := LocomoComplexityDensity(10, 0)\n\tif got != 0 {\n\t\tt.Errorf(\"Expected 0 for zero code lines, got %f\", got)\n\t}\n}\n\nfunc TestLocomoComplexityDensity(t *testing.T) {\n\tgot := LocomoComplexityDensity(30, 100)\n\tif math.Abs(got-0.3) > 0.001 {\n\t\tt.Errorf(\"Expected 0.3, got %f\", got)\n\t}\n}\n\nfunc TestLocomoComplexityFactor(t *testing.T) {\n\t// density 0.3, weight 5 → 1 + sqrt(0.3)*5 ≈ 1 + 0.5477*5 ≈ 3.738\n\tgot := LocomoComplexityFactor(0.3, 5)\n\tif got < 3.7 || got > 3.8 {\n\t\tt.Errorf(\"Expected ~3.74, got %f\", got)\n\t}\n}\n\nfunc TestLocomoComplexityFactorLowDensity(t *testing.T) {\n\t// density 0.05, weight 5 → 1 + sqrt(0.05)*5 ≈ 1 + 0.2236*5 ≈ 2.118\n\tgot := LocomoComplexityFactor(0.05, 5)\n\tif got < 2.0 || got > 2.2 {\n\t\tt.Errorf(\"Expected ~2.12, got %f\", got)\n\t}\n}\n\nfunc TestLocomoIterationFactor(t *testing.T) {\n\t// density 0.3, base 1.5, weight 2 → 1.5 + sqrt(0.3)*2 ≈ 1.5 + 1.095 ≈ 2.595\n\tgot := LocomoIterationFactor(0.3, 1.5, 2)\n\tif got < 2.5 || got > 2.7 {\n\t\tt.Errorf(\"Expected ~2.60, got %f\", got)\n\t}\n}\n\nfunc TestLocomoIterationFactorLowDensity(t *testing.T) {\n\t// density 0.05, base 1.5, weight 2 → 1.5 + sqrt(0.05)*2 ≈ 1.5 + 0.447 ≈ 1.947\n\tgot := LocomoIterationFactor(0.05, 1.5, 2)\n\tif got < 1.9 || got > 2.0 {\n\t\tt.Errorf(\"Expected ~1.95, got %f\", got)\n\t}\n}\n\nfunc TestLocomoEstimateBasic(t *testing.T) {\n\t// Reset to defaults\n\tLocomoPresetName = \"medium\"\n\tLocomoTokensPerLine = 10\n\tLocomoBaseInputPerLine = 20\n\tLocomoComplexityWeight = 5\n\tLocomoIterations = 1.5\n\tLocomoIterationWeight = 2\n\tLocomoReviewMinutesPerLine = 0.01\n\tLocomoConfig = \"\"\n\tLocomoInputPriceSet = false\n\tLocomoOutputPriceSet = false\n\tLocomoTPSSet = false\n\tLocomoCyclesSet = false\n\n\tresult := LocomoEstimate(1000, 100)\n\n\t// density = 0.1, complexityFactor ≈ 2.58, iterationFactor ≈ 2.13\n\t// outputTokens = 1000 * 10 * 2.13 = 21322\n\t// inputTokens = 1000 * 20 * 2.58 * 2.13 = 109929\n\t// cost = (109929/1M * 3) + (21322/1M * 15) ≈ 0.33 + 0.32 ≈ 0.65\n\n\tif result.OutputTokens <= 0 {\n\t\tt.Error(\"Expected positive output tokens\")\n\t}\n\tif result.InputTokens <= 0 {\n\t\tt.Error(\"Expected positive input tokens\")\n\t}\n\tif result.Cost <= 0 {\n\t\tt.Error(\"Expected positive cost\")\n\t}\n\tif result.GenerationSeconds <= 0 {\n\t\tt.Error(\"Expected positive generation time\")\n\t}\n\tif result.ReviewHours <= 0 {\n\t\tt.Error(\"Expected positive review hours\")\n\t}\n\tif result.AverageComplexityMult <= 1 {\n\t\tt.Error(\"Expected complexity multiplier > 1\")\n\t}\n\tif result.Preset != \"medium\" {\n\t\tt.Errorf(\"Expected preset medium, got %s\", result.Preset)\n\t}\n}\n\nfunc TestLocomoEstimateZeroCode(t *testing.T) {\n\tLocomoPresetName = \"medium\"\n\tLocomoConfig = \"\"\n\tLocomoInputPriceSet = false\n\tLocomoOutputPriceSet = false\n\tLocomoTPSSet = false\n\tLocomoTokensPerLine = 10\n\tLocomoBaseInputPerLine = 20\n\tLocomoComplexityWeight = 5\n\tLocomoIterations = 1.5\n\tLocomoIterationWeight = 2\n\tLocomoReviewMinutesPerLine = 0.01\n\n\tresult := LocomoEstimate(0, 0)\n\n\tif result.OutputTokens != 0 {\n\t\tt.Errorf(\"Expected 0 output tokens for zero code, got %f\", result.OutputTokens)\n\t}\n\tif result.Cost != 0 {\n\t\tt.Errorf(\"Expected 0 cost for zero code, got %f\", result.Cost)\n\t}\n}\n\nfunc TestLocomoEstimateHighComplexity(t *testing.T) {\n\tLocomoPresetName = \"medium\"\n\tLocomoConfig = \"\"\n\tLocomoInputPriceSet = false\n\tLocomoOutputPriceSet = false\n\tLocomoTPSSet = false\n\tLocomoTokensPerLine = 10\n\tLocomoBaseInputPerLine = 20\n\tLocomoComplexityWeight = 5\n\tLocomoIterations = 1.5\n\tLocomoIterationWeight = 2\n\tLocomoReviewMinutesPerLine = 0.01\n\n\tlow := LocomoEstimate(1000, 50)   // density 0.05\n\thigh := LocomoEstimate(1000, 300) // density 0.3\n\n\tif high.Cost <= low.Cost {\n\t\tt.Error(\"Higher complexity should produce higher cost\")\n\t}\n\n\t// The ratio should be in a reasonable range (not 12x like v1 linear would produce)\n\tratio := high.Cost / low.Cost\n\tif ratio > 5 {\n\t\tt.Errorf(\"Cost ratio between high and low complexity seems too high: %f\", ratio)\n\t}\n}\n\nfunc TestLocomoEstimateLocalLlama(t *testing.T) {\n\tLocomoPresetName = \"local\"\n\tLocomoConfig = \"\"\n\tLocomoInputPriceSet = false\n\tLocomoOutputPriceSet = false\n\tLocomoTPSSet = false\n\tLocomoTokensPerLine = 10\n\tLocomoBaseInputPerLine = 20\n\tLocomoComplexityWeight = 5\n\tLocomoIterations = 1.5\n\tLocomoIterationWeight = 2\n\tLocomoReviewMinutesPerLine = 0.01\n\n\tresult := LocomoEstimate(1000, 100)\n\n\tif result.Cost != 0 {\n\t\tt.Errorf(\"Expected 0 cost for local, got %f\", result.Cost)\n\t}\n\tif result.GenerationSeconds <= 0 {\n\t\tt.Error(\"Expected positive generation time even for local model\")\n\t}\n}\n\nfunc TestGetLocomoPresetUnknown(t *testing.T) {\n\tp := GetLocomoPreset(\"nonexistent\")\n\tif p.Name != \"medium\" {\n\t\tt.Errorf(\"Expected fallback to medium, got %s\", p.Name)\n\t}\n}\n\nfunc TestParseLocomoConfig(t *testing.T) {\n\tvar a, b, c, d, e float64\n\tparseLocomoConfig(\"8,15,3,2.0,1.5\", &a, &b, &c, &d, &e)\n\n\tif a != 8 || b != 15 || c != 3 || d != 2.0 || e != 1.5 {\n\t\tt.Errorf(\"Config parsing failed: got %f,%f,%f,%f,%f\", a, b, c, d, e)\n\t}\n}\n\nfunc TestParseLocomoConfigInvalid(t *testing.T) {\n\ta, b, c, d, e := 10.0, 20.0, 5.0, 1.5, 2.0\n\tparseLocomoConfig(\"bad,config\", &a, &b, &c, &d, &e)\n\n\t// Should remain unchanged\n\tif a != 10 || b != 20 || c != 5 || d != 1.5 || e != 2 {\n\t\tt.Error(\"Invalid config should not change defaults\")\n\t}\n}\n\nfunc TestLocomoEstimateIterationFactorPopulated(t *testing.T) {\n\tLocomoPresetName = \"medium\"\n\tLocomoConfig = \"\"\n\tLocomoInputPriceSet = false\n\tLocomoOutputPriceSet = false\n\tLocomoTPSSet = false\n\tLocomoCyclesSet = false\n\tLocomoTokensPerLine = 10\n\tLocomoBaseInputPerLine = 20\n\tLocomoComplexityWeight = 5\n\tLocomoIterations = 1.5\n\tLocomoIterationWeight = 2\n\tLocomoReviewMinutesPerLine = 0.01\n\n\tresult := LocomoEstimate(1000, 100)\n\n\tif result.IterationFactor <= 0 {\n\t\tt.Error(\"Expected positive IterationFactor\")\n\t}\n\t// density = 0.1, iFactor = 1.5 + sqrt(0.1)*2 ≈ 2.13\n\tif result.IterationFactor < 2.0 || result.IterationFactor > 2.3 {\n\t\tt.Errorf(\"Expected IterationFactor ~2.13, got %f\", result.IterationFactor)\n\t}\n}\n\nfunc TestLocomoCyclesOverride(t *testing.T) {\n\tLocomoPresetName = \"medium\"\n\tLocomoConfig = \"\"\n\tLocomoInputPriceSet = false\n\tLocomoOutputPriceSet = false\n\tLocomoTPSSet = false\n\tLocomoTokensPerLine = 10\n\tLocomoBaseInputPerLine = 20\n\tLocomoComplexityWeight = 5\n\tLocomoIterations = 1.5\n\tLocomoIterationWeight = 2\n\tLocomoReviewMinutesPerLine = 0.01\n\n\t// First get the default result\n\tLocomoCyclesSet = false\n\tdefaultResult := LocomoEstimate(1000, 100)\n\n\t// Now override with 100 cycles\n\tLocomoCyclesSet = true\n\tLocomoCyclesOverride = 100\n\toverrideResult := LocomoEstimate(1000, 100)\n\n\t// Reset\n\tLocomoCyclesSet = false\n\tLocomoCyclesOverride = 0\n\n\tif overrideResult.IterationFactor != 100 {\n\t\tt.Errorf(\"Expected IterationFactor 100, got %f\", overrideResult.IterationFactor)\n\t}\n\tif overrideResult.Cost <= defaultResult.Cost {\n\t\tt.Error(\"Expected override cost to be higher than default\")\n\t}\n\t// Cost should scale roughly proportionally with cycles\n\tratio := overrideResult.Cost / defaultResult.Cost\n\tif ratio < 30 || ratio > 70 {\n\t\tt.Errorf(\"Cost ratio seems off: %f (expected ~47x for 100 vs ~2.13 cycles)\", ratio)\n\t}\n}\n\nfunc TestParseLocomoConfigPartialInvalid(t *testing.T) {\n\ta, b, c, d, e := 10.0, 20.0, 5.0, 1.5, 2.0\n\tparseLocomoConfig(\"8,15,bad,2.0,1.5\", &a, &b, &c, &d, &e)\n\n\t// Should remain unchanged since one part failed\n\tif a != 10 || b != 20 || c != 5 || d != 1.5 || e != 2 {\n\t\tt.Error(\"Partially invalid config should not change defaults\")\n\t}\n}\n"
  },
  {
    "path": "processor/processor.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"runtime/debug\"\n\t\"slices\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/boyter/gocodewalker\"\n)\n\n// Version indicates the version of the application\nvar Version = \"3.7.0\"\n\n// Flags set via the CLI which control how the output is displayed\n\n// Files indicates if there should be file output or not when formatting\nvar Files = false\n\n// Languages indicates if the command line should print out the supported languages\nvar Languages = false\n\n// Verbose enables verbose logging output\nvar Verbose = false\n\n// Debug enables debug logging output\nvar Debug = false\n\n// Trace enables trace logging output which is extremely verbose\nvar Trace = false\n\n// Duplicates enables duplicate file detection\nvar Duplicates = false\n\n// MinifiedGenerated enables minified/generated file detection\nvar MinifiedGenerated = false\n\n// IgnoreMinifiedGenerate printing counts for minified/generated files\nvar IgnoreMinifiedGenerate = false\n\n// MinifiedGeneratedLineByteLength number of bytes per average line to determine file is minified/generated\nvar MinifiedGeneratedLineByteLength = 255\n\n// Minified enables minified file detection\nvar Minified = false\n\n// IgnoreMinified ignore printing counts for minified files\nvar IgnoreMinified = false\n\n// Generated enables generated file detection\nvar Generated = false\n\n// GeneratedMarkers defines head markers for generated file detection\nvar GeneratedMarkers []string\n\n// IgnoreGenerated ignore printing counts for generated files\nvar IgnoreGenerated = false\n\n// Complexity toggles complexity calculation\nvar Complexity = false\n\n// More enables wider output with more information in formatter\nvar More = false\n\n// Cocomo toggles the COCOMO calculation\nvar Cocomo = false\n\n// SLOCCountFormat prints a more SLOCCount like COCOMO calculation\nvar SLOCCountFormat = false\n\n// CocomoProjectType allows the flipping between project types which impacts the calculation\nvar CocomoProjectType = \"organic\"\n\n// Size toggles the Size calculation\nvar Size = false\n\n// Draw horizontal borders between sections.\nvar HBorder = false\n\n// SizeUnit determines what size calculation is used for megabytes\nvar SizeUnit = \"si\"\n\n// Ci indicates if running inside a CI so to disable box drawing characters\nvar Ci = false\n\n// GitIgnore disables .gitignore checks\nvar GitIgnore = false\n\n// GitModuleIgnore disables .gitmodules checks\nvar GitModuleIgnore = false\n\n// Ignore disables ignore file checks\nvar Ignore = false\n\n// SccIgnore disables sccignore file checks\nvar SccIgnore = false\n\n// CountIgnore should we count ignore files?\nvar CountIgnore = false\n\n// DisableCheckBinary toggles checking for binary files using NUL bytes\nvar DisableCheckBinary = false\n\n// UlocMode toggles checking for binary files using NUL bytes\nvar UlocMode = false\n\n// Percent toggles checking for binary files using NUL bytes\nvar Percent = false\n\n// MaxMean sets the calculation of the max and mean line length\nvar MaxMean = false\n\n// Dryness toggles checking for binary files using NUL bytes\nvar Dryness = false\n\n// SortBy sets which column output in formatter should be sorted by\nvar SortBy = \"\"\n\n// Exclude is a regular expression which is used to exclude files from being processed\nvar Exclude = []string{}\n\n// CountAs is a rule for mapping known or new extensions to other rules\nvar CountAs = \"\"\n\n// Format sets the output format of the formatter\nvar Format = \"\"\n\n// FormatMulti is a rule for defining multiple output formats\nvar FormatMulti = \"\"\n\n// SQLProject is used to store the name for the SQL insert formats but is optional\nvar SQLProject = \"\"\n\n// RemapUnknown allows remapping of unknown files with a string to search the content for\nvar RemapUnknown = \"\"\n\n// RemapAll allows remapping of all files with a string to search the content for\nvar RemapAll = \"\"\n\n// CurrencySymbol allows setting the currency symbol for cocomo project cost estimation\nvar CurrencySymbol = \"\"\n\n// FileOutput sets the file that output should be written to\nvar FileOutput = \"\"\n\n// PathDenyList sets the paths that should be skipped\nvar PathDenyList = []string{}\n\n// FileListQueueSize is the queue of files found and ready to be read into memory\nvar FileListQueueSize = runtime.NumCPU()\n\n// FileProcessJobWorkers is the number of workers that process the file collecting stats\nvar FileProcessJobWorkers = runtime.NumCPU() * 4\n\n// FileSummaryJobQueueSize is the queue used to hold processed file statistics before formatting\nvar FileSummaryJobQueueSize = runtime.NumCPU()\n\n// DirectoryWalkerJobWorkers is the number of workers which will walk the directory tree\nvar DirectoryWalkerJobWorkers = 8\n\n// AllowListExtensions is a list of extensions which are allowed to be processed\nvar AllowListExtensions = []string{}\n\n// ExcludeListExtensions is a list of extensions which should be ignored\nvar ExcludeListExtensions = []string{}\n\n// ExcludeFilename is a list of filenames which should be ignored\nvar ExcludeFilename = []string{}\n\n// AverageWage is the average wage in dollars used for the COCOMO cost estimate\nvar AverageWage int64 = 56286\n\n// Overhead is the overhead multiplier for corporate overhead (facilities, equipment, accounting, etc.)\nvar Overhead float64 = 2.4\n\n// EAF is the effort adjustment factor derived from the cost drivers, i.e. 1.0 if rated nominal\nvar EAF float64 = 1.0\n\n// Locomo toggles the LOCOMO (LLM Output COst MOdel) calculation\nvar Locomo = false\n\n// CostComparison enables both COCOMO and LOCOMO output for side-by-side comparison\nvar CostComparison = false\n\n// LocomoPresetName is the LLM model preset for pricing and throughput defaults\nvar LocomoPresetName = \"medium\"\n\n// LocomoInputPrice is the cost per 1M input tokens (overrides preset)\nvar LocomoInputPrice float64\nvar LocomoInputPriceSet = false\n\n// LocomoOutputPrice is the cost per 1M output tokens (overrides preset)\nvar LocomoOutputPrice float64\nvar LocomoOutputPriceSet = false\n\n// LocomoTPS is the output tokens per second (overrides preset)\nvar LocomoTPS float64\nvar LocomoTPSSet = false\n\n// LocomoReviewMinutesPerLine is the human review time per line of code in minutes\nvar LocomoReviewMinutesPerLine float64 = 0.01\n\n// LocomoConfig is the power-user config string \"tokensPerLine,baseInputPerLine,complexityWeight,iterations,iterationWeight\"\nvar LocomoConfig = \"\"\n\n// LocomoTokensPerLine is the average number of output tokens per line of code\nvar LocomoTokensPerLine float64 = 10\n\n// LocomoBaseInputPerLine is the base number of input tokens per output line\nvar LocomoBaseInputPerLine float64 = 20\n\n// LocomoComplexityWeight is the scaling weight applied to sqrt(complexity density) for input tokens\nvar LocomoComplexityWeight float64 = 5\n\n// LocomoIterations is the base number of iteration/retry attempts\nvar LocomoIterations float64 = 1.5\n\n// LocomoIterationWeight is the scaling weight for complexity-driven retries\nvar LocomoIterationWeight float64 = 2\n\n// LocomoCyclesOverride is the user-supplied iteration factor override (--locomo-cycles)\nvar LocomoCyclesOverride float64\n\n// LocomoCyclesSet indicates whether --locomo-cycles was explicitly set\nvar LocomoCyclesSet = false\n\n// GcFileCount is the number of files to process before turning the GC back on\nvar GcFileCount = 10000\nvar gcPercent = -1\nvar isLazy = false\n\n// NoLarge if set true will ignore files over a certain number of lines or bytes\nvar NoLarge = false\n\n// IncludeSymLinks if set true will count symlink files\nvar IncludeSymLinks = false\n\n// LargeLineCount number of lines before being counted as a large file based on https://github.com/pinpt/ripsrc/blob/master/ripsrc/fileinfo/fileinfo.go#L44\nvar LargeLineCount int64 = 40000\n\n// LargeByteCount number of bytes before being counted as a large file based on https://github.com/pinpt/ripsrc/blob/master/ripsrc/fileinfo/fileinfo.go#L44\nvar LargeByteCount int64 = 1000000\n\n// DirFilePaths is not set via flags but by arguments following the flags for file or directory to process\nvar DirFilePaths = []string{}\n\n// ExtensionToLanguage is loaded from the JSON that is in constants.go\nvar ExtensionToLanguage = map[string][]string{}\n\n// ShebangLookup loaded from the JSON in constants.go contains shebang lookups\nvar ShebangLookup = map[string][]string{}\n\n// FilenameToLanguage similar to ExtensionToLanguage loaded from the JSON in constants.go\nvar FilenameToLanguage = map[string]string{}\n\n// LanguageFeatures contains the processed languages from processLanguageFeature\nvar LanguageFeatures = map[string]LanguageFeature{}\n\n// LanguageFeaturesMutex is the shared mutex used to control getting and setting of language features\n// used rather than sync.Map because it turned out to be marginally faster\nvar LanguageFeaturesMutex = sync.Mutex{}\n\n// Start time in milli seconds in case we want the total time\nvar startTimeMilli = makeTimestampMilli()\n\n// ConfigureGc needs to be set outside of ProcessConstants because it should only be enabled in command line\n// mode https://github.com/boyter/scc/issues/32\nfunc ConfigureGc() {\n\tgcPercent = debug.SetGCPercent(gcPercent)\n}\n\n// ConfigureLazy is a simple setter used to turn on lazy loading used only by command line\nfunc ConfigureLazy(lazy bool) {\n\tisLazy = lazy\n}\n\n// ProcessConstants is responsible for setting up the language features based on the JSON file that is stored in constants\n// Needs to be called at least once in order for anything to actually happen\nfunc ProcessConstants() {\n\tstartTime := makeTimestampNano()\n\tfor name, value := range languageDatabase {\n\t\tfor _, ext := range value.Extensions {\n\t\t\tExtensionToLanguage[ext] = append(ExtensionToLanguage[ext], name)\n\t\t}\n\n\t\tfor _, fname := range value.FileNames {\n\t\t\tFilenameToLanguage[fname] = name\n\t\t}\n\n\t\tif len(value.SheBangs) != 0 {\n\t\t\tShebangLookup[name] = value.SheBangs\n\t\t}\n\t}\n\n\t// If we have anything in CountAs set it up now\n\tif len(CountAs) != 0 {\n\t\tsetupCountAs()\n\t}\n\n\tprintTraceF(\"nanoseconds build extension to language: %d\", makeTimestampNano()-startTime)\n\n\t// Configure COCOMO setting\n\t_, ok := projectType[strings.ToLower(CocomoProjectType)]\n\tif !ok {\n\t\t// let's see if we can turn it into a custom one\n\t\tspl := strings.Split(CocomoProjectType, \",\")\n\t\tval := []float64{}\n\t\tif len(spl) == 5 {\n\t\t\t// let's try to convert to float if we can\n\t\t\tfor i := 1; i < 5; i++ {\n\t\t\t\tf, err := strconv.ParseFloat(spl[i], 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tval = append(val, f)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif len(val) == 4 {\n\t\t\tprojectType[CocomoProjectType] = val\n\t\t} else {\n\t\t\t// if nothing matches fall back to organic\n\t\t\tCocomoProjectType = \"organic\"\n\t\t}\n\t}\n\n\t// If lazy is set then we want to load in the features as we find them not in one go\n\t// however otherwise being used as a library so just load them all in\n\tif !isLazy {\n\t\tstartTime = makeTimestampMilli()\n\t\tfor name, value := range languageDatabase {\n\t\t\tprocessLanguageFeature(name, value)\n\t\t}\n\n\t\tprintTraceF(\"milliseconds build language features: %d\", makeTimestampMilli()-startTime)\n\t} else {\n\t\tprintTrace(\"configured to lazy load language features\")\n\t}\n\n\t// Fix for https://github.com/boyter/scc/issues/250\n\tfixedPath := make([]string, 0, len(PathDenyList))\n\tfor _, path := range PathDenyList {\n\t\tfixedPath = append(fixedPath, strings.TrimRight(path, \"/\"))\n\t}\n\tPathDenyList = fixedPath\n}\n\n// Configure and setup any count-as params the use has supplied\nfunc setupCountAs() {\n\tfor s := range strings.SplitSeq(CountAs, \",\") {\n\t\tt := strings.Split(s, \":\")\n\t\tif len(t) == 2 {\n\n\t\t\tidentified := false\n\n\t\t\t// There are two cases here.\n\t\t\t// first is they provide the name e.g. \"Cargo Lock\"\n\t\t\t// second is that the user supplies the extension EG wsdl\n\t\t\t// we should support BOTH cases\n\t\t\t// always remember we only need to validate t[1] as that's the one\n\t\t\t// that tells us where we are trying to map\n\n\t\t\t// See if we can identify based on language name which is the most\n\t\t\t// reliable as the name should be unique\n\t\t\tfor name := range languageDatabase {\n\t\t\t\tif strings.EqualFold(name, t[1]) {\n\t\t\t\t\tExtensionToLanguage[strings.ToLower(t[0])] = []string{name}\n\t\t\t\t\tidentified = true\n\t\t\t\t\tprintDebugF(\"set to count extension: %s as language %s by language\", t[0], name)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If the above did not work, its a matter of extension match\n\t\t\t// note that this is less reliable as some languages share extensions\n\t\t\tif !identified {\n\t\t\t\ttarget, ok := ExtensionToLanguage[strings.ToLower(t[1])]\n\n\t\t\t\tif ok {\n\t\t\t\t\tExtensionToLanguage[strings.ToLower(t[0])] = target\n\t\t\t\t\tprintDebugF(\"set to count extension: %s as language %s by extension\", t[0], target)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// LoadLanguageFeature will load a single feature as requested given the name\nfunc LoadLanguageFeature(loadName string) {\n\tif !isLazy {\n\t\treturn\n\t}\n\n\t// Check if already loaded and if so return because we don't need to do it again\n\tLanguageFeaturesMutex.Lock()\n\t_, ok := LanguageFeatures[loadName]\n\tLanguageFeaturesMutex.Unlock()\n\tif ok {\n\t\treturn\n\t}\n\n\tvar name string\n\tvar value Language\n\n\tfor name, value = range languageDatabase {\n\t\tif name == loadName {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tstartTime := makeTimestampNano()\n\tprocessLanguageFeature(loadName, value)\n\tprintTraceF(\"nanoseconds to build language %s features: %d\", loadName, makeTimestampNano()-startTime)\n}\n\nfunc processLanguageFeature(name string, value Language) {\n\tcomplexityTrie := &Trie{}\n\tslCommentTrie := &Trie{}\n\tmlCommentTrie := &Trie{}\n\tstringTrie := &Trie{}\n\ttokenTrie := &Trie{}\n\n\tcomplexityMask := byte(0)\n\tsingleLineCommentMask := byte(0)\n\tmultiLineCommentMask := byte(0)\n\tstringMask := byte(0)\n\tprocessMask := byte(0)\n\n\tfor _, v := range value.ComplexityChecks {\n\t\tcomplexityMask |= v[0]\n\t\tcomplexityTrie.Insert(TComplexity, []byte(v))\n\t\tif !Complexity {\n\t\t\ttokenTrie.Insert(TComplexity, []byte(v))\n\t\t}\n\t}\n\tif !Complexity {\n\t\tprocessMask |= complexityMask\n\t}\n\n\tfor _, v := range value.LineComment {\n\t\tsingleLineCommentMask |= v[0]\n\t\tslCommentTrie.Insert(TSlcomment, []byte(v))\n\t\ttokenTrie.Insert(TSlcomment, []byte(v))\n\t}\n\tprocessMask |= singleLineCommentMask\n\n\tfor _, v := range value.MultiLine {\n\t\tmultiLineCommentMask |= v[0][0]\n\t\tmlCommentTrie.InsertClose(TMlcomment, []byte(v[0]), []byte(v[1]))\n\t\ttokenTrie.InsertClose(TMlcomment, []byte(v[0]), []byte(v[1]))\n\t}\n\tprocessMask |= multiLineCommentMask\n\n\tfor _, v := range value.Quotes {\n\t\tstringMask |= v.Start[0]\n\t\tstringTrie.InsertClose(TString, []byte(v.Start), []byte(v.End))\n\t\ttokenTrie.InsertClose(TString, []byte(v.Start), []byte(v.End))\n\t}\n\tprocessMask |= stringMask\n\n\tLanguageFeaturesMutex.Lock()\n\tLanguageFeatures[name] = LanguageFeature{\n\t\tComplexity:            complexityTrie,\n\t\tMultiLineComments:     mlCommentTrie,\n\t\tMultiLine:             value.MultiLine,\n\t\tSingleLineComments:    slCommentTrie,\n\t\tLineComment:           value.LineComment,\n\t\tStrings:               stringTrie,\n\t\tTokens:                tokenTrie,\n\t\tNested:                value.NestedMultiLine,\n\t\tComplexityCheckMask:   complexityMask,\n\t\tMultiLineCommentMask:  multiLineCommentMask,\n\t\tSingleLineCommentMask: singleLineCommentMask,\n\t\tStringCheckMask:       stringMask,\n\t\tProcessMask:           processMask,\n\t\tKeywords:              value.Keywords,\n\t\tQuotes:                value.Quotes,\n\t}\n\tLanguageFeaturesMutex.Unlock()\n}\n\nfunc processFlags() {\n\t// If wide/more mode is enabled we want the complexity calculation\n\t// to happen regardless as that is the only purpose of the flag\n\tif More && Complexity {\n\t\tComplexity = false\n\t}\n\n\t// If ignore minified/generated is on ensure we turn on the code to calculate that\n\tif IgnoreMinifiedGenerate {\n\t\tMinifiedGenerated = true\n\t\tIgnoreMinified = true\n\t\tIgnoreGenerated = true\n\t}\n\n\tif MinifiedGenerated {\n\t\tMinified = true\n\t\tGenerated = true\n\t}\n\n\tif IgnoreMinified {\n\t\tMinified = true\n\t}\n\n\tif IgnoreGenerated {\n\t\tGenerated = true\n\t}\n\n\tif Dryness {\n\t\tUlocMode = true\n\t}\n\n\tprintDebugF(\"Path Deny List: %v\", PathDenyList)\n\tprintDebugF(\"Sort By: %s\", SortBy)\n\tprintDebugF(\"White List: %v\", AllowListExtensions)\n\tprintDebugF(\"Files Output: %t\", Files)\n\tprintDebugF(\"Verbose: %t\", Verbose)\n\tprintDebugF(\"Duplicates Detection: %t\", Duplicates)\n\tprintDebugF(\"Complexity Calculation: %t\", !Complexity)\n\tprintDebugF(\"Wide: %t\", More)\n\t// If cost-comparison is enabled, turn on both COCOMO and LOCOMO\n\tif CostComparison {\n\t\tCocomo = false\n\t\tLocomo = true\n\t}\n\n\t// LOCOMO needs complexity data to produce accurate estimates.\n\t// If complexity was disabled via --no-complexity, force it back on.\n\tif Locomo && Complexity {\n\t\tComplexity = false\n\t}\n\n\tprintDebugF(\"Average Wage: %d\", AverageWage)\n\tprintDebugF(\"Cocomo: %t\", !Cocomo)\n\tprintDebugF(\"Locomo: %t\", Locomo)\n\tprintDebugF(\"Minified/Generated Detection: %t/%t\", Minified, Generated)\n\tprintDebugF(\"Ignore Minified/Generated: %t/%t\", IgnoreMinified, IgnoreGenerated)\n\tprintDebugF(\"IncludeSymLinks: %t\", IncludeSymLinks)\n\tprintDebugF(\"Uloc: %t\", UlocMode)\n\tprintDebugF(\"Dryness: %t\", Dryness)\n}\n\n// LanguageDatabase provides access to the internal language database\n// useful for consuming applications wanting to consume and use\nfunc LanguageDatabase() map[string]Language {\n\treturn languageDatabase\n}\n\nfunc printLanguages() {\n\tnames := make([]string, 0, len(languageDatabase))\n\tfor key := range languageDatabase {\n\t\tnames = append(names, key)\n\t}\n\n\tslices.SortFunc(names, func(a, b string) int {\n\t\treturn strings.Compare(strings.ToLower(a), strings.ToLower(b))\n\t})\n\n\tfor _, name := range names {\n\t\tfmt.Printf(\"%s (%s)\\n\", name, strings.Join(append(languageDatabase[name].Extensions, languageDatabase[name].FileNames...), \",\"))\n\t}\n}\n\n// global variables to deal with ULOC calculations\nvar ulocMutex = sync.Mutex{}\nvar ulocGlobalCount = map[string]struct{}{}\nvar ulocLanguageCount = map[string]map[string]struct{}{}\n\n// Process is the main entry point of the command line it sets everything up and starts running\nfunc Process() {\n\tif Languages {\n\t\tprintLanguages()\n\t\treturn\n\t}\n\n\tProcessConstants()\n\tprocessFlags()\n\n\t// Clean up any invalid arguments before setting everything up\n\tif len(DirFilePaths) == 0 {\n\t\tDirFilePaths = append(DirFilePaths, \".\")\n\t}\n\n\tfilePaths := []string{}\n\tdirPaths := []string{}\n\n\t// Check if the paths or files added exist and exit if not\n\tfor _, f := range DirFilePaths {\n\t\tfpath := filepath.Clean(f)\n\n\t\ts, err := os.Stat(fpath)\n\t\tif err != nil {\n\t\t\tfmt.Println(\"file or directory could not be read: \" + fpath)\n\t\t\tos.Exit(1)\n\t\t}\n\n\t\tif s.IsDir() {\n\t\t\tdirPaths = append(dirPaths, fpath)\n\t\t} else {\n\t\t\tfilePaths = append(filePaths, fpath)\n\t\t}\n\t}\n\n\tSortBy = strings.ToLower(SortBy)\n\n\tprintDebugF(\"NumCPU: %d\", runtime.NumCPU())\n\tprintDebugF(\"SortBy: %s\", SortBy)\n\tprintDebugF(\"PathDenyList: %v\", PathDenyList)\n\n\tpotentialFilesQueue := make(chan *gocodewalker.File, FileListQueueSize) // files that pass the .gitignore checks\n\tfileListQueue := make(chan *FileJob, FileListQueueSize)                 // Files ready to be read from disk\n\tfileSummaryJobQueue := make(chan *FileJob, FileSummaryJobQueueSize)     // Files ready to be summarised\n\n\tfileWalker := gocodewalker.NewParallelFileWalker(dirPaths, potentialFilesQueue)\n\tfileWalker.SetErrorHandler(func(e error) bool {\n\t\tprintError(e.Error())\n\t\treturn true\n\t})\n\tfileWalker.IgnoreGitIgnore = GitIgnore\n\tfileWalker.IgnoreIgnoreFile = Ignore\n\tfileWalker.IgnoreGitModules = GitModuleIgnore\n\tfileWalker.IncludeHidden = true\n\tfileWalker.ExcludeDirectory = PathDenyList\n\tfileWalker.SetConcurrency(DirectoryWalkerJobWorkers)\n\n\tif !SccIgnore {\n\t\tfileWalker.CustomIgnore = []string{\".sccignore\"}\n\t}\n\n\tvar excludePathRegexes []*regexp.Regexp\n\tfor _, exclude := range Exclude {\n\t\tregexpResult, err := regexp.Compile(exclude)\n\t\tif err == nil {\n\t\t\tfileWalker.ExcludeFilenameRegex = append(fileWalker.ExcludeFilenameRegex, regexpResult)\n\t\t\tfileWalker.ExcludeDirectoryRegex = append(fileWalker.ExcludeDirectoryRegex, regexpResult)\n\t\t\texcludePathRegexes = append(excludePathRegexes, regexpResult)\n\t\t} else {\n\t\t\tprintError(err.Error())\n\t\t}\n\t}\n\n\tgo func() {\n\t\terr := fileWalker.Start()\n\t\tif err != nil {\n\t\t\tprintError(err.Error())\n\t\t}\n\t}()\n\n\tgo func() {\n\t\tfor _, f := range filePaths {\n\t\t\tfileInfo, err := os.Lstat(f)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tfileJob := newFileJob(f, f, fileInfo)\n\t\t\tif fileJob != nil {\n\t\t\t\tfileListQueue <- fileJob\n\t\t\t}\n\t\t}\n\n\t\tfor fi := range potentialFilesQueue {\n\t\t\tshouldExclude := false\n\t\t\tfor _, re := range excludePathRegexes {\n\t\t\t\tif re.MatchString(fi.Location) {\n\t\t\t\t\tshouldExclude = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif shouldExclude {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tfileInfo, err := os.Lstat(fi.Location)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif !fileInfo.IsDir() {\n\t\t\t\tfileJob := newFileJob(fi.Location, fi.Filename, fileInfo)\n\t\t\t\tif fileJob != nil {\n\t\t\t\t\tfileListQueue <- fileJob\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tclose(fileListQueue)\n\t}()\n\n\tgo fileProcessorWorker(fileListQueue, fileSummaryJobQueue)\n\n\tresult := fileSummarize(fileSummaryJobQueue)\n\tif FileOutput == \"\" {\n\t\tfmt.Print(result)\n\t} else {\n\t\t_ = os.WriteFile(FileOutput, []byte(result), 0644)\n\t\tfmt.Println(\"results written to \" + FileOutput)\n\t}\n}\n"
  },
  {
    "path": "processor/processor_test.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"testing\"\n)\n\nfunc TestProcessConstants(t *testing.T) {\n\tTrace = true\n\tProcessConstants()\n\n\tif len(ExtensionToLanguage) == 0 {\n\t\tt.Error(\"Should not be 0\")\n\t}\n\n\tif len(LanguageFeatures) == 0 {\n\t\tt.Error(\"Should not be 0\")\n\t}\n}\n\nfunc TestProcessConstantsPathExclude(t *testing.T) {\n\tPathDenyList = []string{\"testing/\"}\n\tProcessConstants()\n\n\tif PathDenyList[0] != \"testing\" {\n\t\tt.Error(\"expected / to be trimmed\")\n\t}\n\n\tPathDenyList = []string{}\n}\n\nfunc TestConfigureGc(t *testing.T) {\n\tConfigureGc()\n}\n\nfunc TestConfigureLazy(t *testing.T) {\n\tConfigureLazy(true)\n\tif !isLazy {\n\t\tt.Error(\"isLazy should be true\")\n\t}\n\n\tConfigureLazy(false)\n\tif isLazy {\n\t\tt.Error(\"isLazy should be false\")\n\t}\n}\n\nfunc TestLoadLanguageFeature(t *testing.T) {\n\tisLazy = true\n\tLoadLanguageFeature(\"Go\")\n\t_, ok := LanguageFeatures[\"Go\"]\n\n\tif !ok {\n\t\tt.Error(\"Language should have been loaded\")\n\t}\n}\n\nfunc TestLoadLanguageFeatureNew(t *testing.T) {\n\tisLazy = true\n\tLanguageFeatures = map[string]LanguageFeature{}\n\tLoadLanguageFeature(\"Go\")\n\tLoadLanguageFeature(\"Go\")\n\n\t_, ok := LanguageFeatures[\"Go\"]\n\n\tif !ok {\n\t\tt.Error(\"Language should have been loaded\")\n\t}\n\n\tisLazy = false\n\tProcessConstants()\n}\n\nfunc TestProcessFlags(t *testing.T) {\n\tDebug = true\n\tMore = true\n\tComplexity = true\n\n\tprocessFlags()\n\n\tif Complexity {\n\t\tt.Error(\"Complexity should be false\")\n\t}\n}\n\nfunc TestPrintLanguages(t *testing.T) {\n\tprintLanguages()\n}\n\nfunc TestProcess(t *testing.T) {\n\tProcess()\n}\n\nfunc TestSetupCountAsLanguage(t *testing.T) {\n\tProcessConstants()\n\tCountAs = \"boyter:C Header\"\n\tsetupCountAs()\n\tv := ExtensionToLanguage[\"boyter\"]\n\n\tif v[0] != \"C Header\" {\n\t\tt.Error(\"Expected boyter to map to C Header\")\n\t}\n\n\tCountAs = \"\"\n}\n\nfunc TestSetupCountAsLanguageCase(t *testing.T) {\n\tProcessConstants()\n\tCountAs = \"BoYtER:C Header\"\n\tsetupCountAs()\n\tv := ExtensionToLanguage[\"boyter\"]\n\n\tif v[0] != \"C Header\" {\n\t\tt.Error(\"Expected boyter to map to C Header\")\n\t}\n\n\tCountAs = \"\"\n}\n\nfunc TestSetupCountAsExtension(t *testing.T) {\n\tProcessConstants()\n\tCountAs = \"boyter:j2\"\n\tsetupCountAs()\n\tv := ExtensionToLanguage[\"boyter\"]\n\n\tif v[0] != \"Jinja\" {\n\t\tt.Error(\"Expected boyter to map to Jinja\")\n\t}\n\n\tCountAs = \"\"\n}\n\nfunc TestSetupCountAsMultiple(t *testing.T) {\n\tProcessConstants()\n\tCountAs = \"boyter:j2,retyob:JAVA\"\n\tsetupCountAs()\n\tv := ExtensionToLanguage[\"boyter\"]\n\n\tif v[0] != \"Jinja\" {\n\t\tt.Error(\"Expected boyter to map to Jinja\")\n\t}\n\n\tv = ExtensionToLanguage[\"retyob\"]\n\n\tif v[0] != \"Java\" {\n\t\tt.Error(\"Expected retyob to map to Java\")\n\t}\n\n\tCountAs = \"\"\n}\n"
  },
  {
    "path": "processor/result.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"strings\"\n\n\t\"github.com/boyter/gocodewalker\"\n)\n\n// ProcessResult runs the same pipeline as Process but returns structured results\n// instead of formatting to stdout. Useful for programmatic consumers like MCP servers.\nfunc ProcessResult() ([]LanguageSummary, error) {\n\tProcessConstants()\n\tprocessFlags()\n\n\tif len(DirFilePaths) == 0 {\n\t\tDirFilePaths = append(DirFilePaths, \".\")\n\t}\n\n\tfilePaths := []string{}\n\tdirPaths := []string{}\n\n\tfor _, f := range DirFilePaths {\n\t\tfpath := filepath.Clean(f)\n\n\t\ts, err := os.Stat(fpath)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"file or directory could not be read: %s\", fpath)\n\t\t}\n\n\t\tif s.IsDir() {\n\t\t\tdirPaths = append(dirPaths, fpath)\n\t\t} else {\n\t\t\tfilePaths = append(filePaths, fpath)\n\t\t}\n\t}\n\n\tSortBy = strings.ToLower(SortBy)\n\n\tprintDebugF(\"NumCPU: %d\", runtime.NumCPU())\n\tprintDebugF(\"SortBy: %s\", SortBy)\n\tprintDebugF(\"PathDenyList: %v\", PathDenyList)\n\n\tpotentialFilesQueue := make(chan *gocodewalker.File, FileListQueueSize)\n\tfileListQueue := make(chan *FileJob, FileListQueueSize)\n\tfileSummaryJobQueue := make(chan *FileJob, FileSummaryJobQueueSize)\n\n\tfileWalker := gocodewalker.NewParallelFileWalker(dirPaths, potentialFilesQueue)\n\tfileWalker.SetErrorHandler(func(e error) bool {\n\t\tprintError(e.Error())\n\t\treturn true\n\t})\n\tfileWalker.IgnoreGitIgnore = GitIgnore\n\tfileWalker.IgnoreIgnoreFile = Ignore\n\tfileWalker.IgnoreGitModules = GitModuleIgnore\n\tfileWalker.IncludeHidden = true\n\tfileWalker.ExcludeDirectory = PathDenyList\n\tfileWalker.SetConcurrency(DirectoryWalkerJobWorkers)\n\n\tif !SccIgnore {\n\t\tfileWalker.CustomIgnore = []string{\".sccignore\"}\n\t}\n\n\tvar excludePathRegexes []*regexp.Regexp\n\tfor _, exclude := range Exclude {\n\t\tregexpResult, err := regexp.Compile(exclude)\n\t\tif err == nil {\n\t\t\tfileWalker.ExcludeFilenameRegex = append(fileWalker.ExcludeFilenameRegex, regexpResult)\n\t\t\tfileWalker.ExcludeDirectoryRegex = append(fileWalker.ExcludeDirectoryRegex, regexpResult)\n\t\t\texcludePathRegexes = append(excludePathRegexes, regexpResult)\n\t\t} else {\n\t\t\tprintError(err.Error())\n\t\t}\n\t}\n\n\tgo func() {\n\t\terr := fileWalker.Start()\n\t\tif err != nil {\n\t\t\tprintError(err.Error())\n\t\t}\n\t}()\n\n\tgo func() {\n\t\tfor _, f := range filePaths {\n\t\t\tfileInfo, err := os.Lstat(f)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tfileJob := newFileJob(f, f, fileInfo)\n\t\t\tif fileJob != nil {\n\t\t\t\tfileListQueue <- fileJob\n\t\t\t}\n\t\t}\n\n\t\tfor fi := range potentialFilesQueue {\n\t\t\tshouldExclude := false\n\t\t\tfor _, re := range excludePathRegexes {\n\t\t\t\tif re.MatchString(fi.Location) {\n\t\t\t\t\tshouldExclude = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif shouldExclude {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tfileInfo, err := os.Lstat(fi.Location)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif !fileInfo.IsDir() {\n\t\t\t\tfileJob := newFileJob(fi.Location, fi.Filename, fileInfo)\n\t\t\t\tif fileJob != nil {\n\t\t\t\t\tfileListQueue <- fileJob\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tclose(fileListQueue)\n\t}()\n\n\tgo fileProcessorWorker(fileListQueue, fileSummaryJobQueue)\n\n\tlanguage := aggregateLanguageSummary(fileSummaryJobQueue)\n\tlanguage = sortLanguageSummary(language)\n\n\treturn language, nil\n}\n"
  },
  {
    "path": "processor/similar_flags.go",
    "content": "package processor\n\nimport (\n\t\"cmp\"\n\t\"slices\"\n\t\"strings\"\n\n\t\"github.com/agnivade/levenshtein\"\n\t\"github.com/spf13/pflag\"\n)\n\nconst SimilarStringThreshold float64 = 0.75\n\n// StringSimilarRatio calculates the similarity ratio between s1 and s2.\n//\n// The function is based on the Levenshtein distance. The ratio is calculated using the formula:\n//\n// 1 - (Levenshtein Distance / length of the longer string).\n//\n// It returns a float64 between 0.0 (completely dissimilar) and 1.0 (identical).\n// Based on experience, a ratio >= [SimilarStringThreshold] can generally be\n// considered to indicate that two strings are highly similar.\n//\n// Note: The comparison is case-sensitive. For example, \"hello\" and \"HELLO\"\n// will be treated as completely different strings (their similarity ratio is 0).\nfunc StringSimilarRatio(s1, s2 string) float64 {\n\tdistance := levenshtein.ComputeDistance(s1, s2)\n\treturn 1 - float64(distance)/float64(max(len(s1), len(s2)))\n}\n\ntype similarFlag struct {\n\tname  string\n\tratio float64\n}\n\nfunc GetMostSimilarFlags(flagSet *pflag.FlagSet, flag string) []string {\n\tsimilarFlags := make([]similarFlag, 0)\n\tflagSet.VisitAll(func(f *pflag.Flag) {\n\t\tif len(f.Name) <= 1 {\n\t\t\treturn\n\t\t}\n\t\tvar ratio float64\n\t\tif len(f.Name) <= 3 {\n\t\t\tratio = StringSimilarRatio(\"--\"+flag, \"--\"+f.Name)\n\t\t} else {\n\t\t\tratio = StringSimilarRatio(flag, f.Name)\n\t\t}\n\t\tif ratio >= SimilarStringThreshold {\n\t\t\tsimilarFlags = append(similarFlags, similarFlag{\n\t\t\t\tname:  f.Name,\n\t\t\t\tratio: ratio,\n\t\t\t})\n\t\t}\n\t})\n\t// cobra doesn't put --version and --help into the flag set\n\t// we should check it handly\n\tversionSimilarRatio := StringSimilarRatio(flag, \"version\")\n\tif versionSimilarRatio >= SimilarStringThreshold {\n\t\tsimilarFlags = append(similarFlags, similarFlag{\n\t\t\tname:  \"version\",\n\t\t\tratio: versionSimilarRatio,\n\t\t})\n\t}\n\n\thelpSimilarRatio := StringSimilarRatio(flag, \"help\")\n\tif helpSimilarRatio >= SimilarStringThreshold {\n\t\tsimilarFlags = append(similarFlags, similarFlag{\n\t\t\tname:  \"help\",\n\t\t\tratio: helpSimilarRatio,\n\t\t})\n\t}\n\n\tif len(similarFlags) == 0 {\n\t\treturn []string{}\n\t}\n\n\tslices.SortFunc(similarFlags, func(a, b similarFlag) int {\n\t\tresult := cmp.Compare(b.ratio, a.ratio)\n\t\tif result != 0 {\n\t\t\treturn result\n\t\t}\n\t\treturn strings.Compare(a.name, b.name)\n\t})\n\tresult := make([]string, 0, len(similarFlags))\n\tfor _, sc := range similarFlags {\n\t\tresult = append(result, sc.name)\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "processor/similar_flags_test.go",
    "content": "package processor\n\nimport (\n\t\"slices\"\n\t\"testing\"\n\n\t\"github.com/spf13/pflag\"\n)\n\nfunc TestStringSimilarRatio(t *testing.T) {\n\ttestCases := []struct {\n\t\ts1, s2    string\n\t\tisSimilar bool\n\t}{\n\t\t{\n\t\t\ts1:        \"\",\n\t\t\ts2:        \"\",\n\t\t\tisSimilar: false,\n\t\t},\n\t\t{\n\t\t\ts1:        \"\",\n\t\t\ts2:        \"hello\",\n\t\t\tisSimilar: false,\n\t\t},\n\t\t{\n\t\t\ts1:        \"hello\",\n\t\t\ts2:        \"\",\n\t\t\tisSimilar: false,\n\t\t},\n\t\t{\n\t\t\ts1:        \"hello\",\n\t\t\ts2:        \"hello\",\n\t\t\tisSimilar: true,\n\t\t},\n\t\t{\n\t\t\ts1:        \"hello\",\n\t\t\ts2:        \"Hello\",\n\t\t\tisSimilar: true,\n\t\t},\n\t\t{\n\t\t\ts1:        \"hello\",\n\t\t\ts2:        \"helle\",\n\t\t\tisSimilar: true,\n\t\t},\n\t\t{\n\t\t\ts1:        \"hello\",\n\t\t\ts2:        \"hallo\",\n\t\t\tisSimilar: true,\n\t\t},\n\t\t{\n\t\t\ts1:        \"hello\",\n\t\t\ts2:        \"helo\",\n\t\t\tisSimilar: true,\n\t\t},\n\t\t{\n\t\t\ts1:        \"hello\",\n\t\t\ts2:        \"hell\",\n\t\t\tisSimilar: true,\n\t\t},\n\t\t{\n\t\t\ts1:        \"hello\",\n\t\t\ts2:        \"heelo\",\n\t\t\tisSimilar: true,\n\t\t},\n\t\t{\n\t\t\ts1:        \"uloc\",\n\t\t\ts2:        \"ulc\",\n\t\t\tisSimilar: true,\n\t\t},\n\t\t{\n\t\t\ts1:        \"uloc\",\n\t\t\ts2:        \"ulcc\",\n\t\t\tisSimilar: true,\n\t\t},\n\t\t{\n\t\t\ts1:        \"uloc\",\n\t\t\ts2:        \"ulocc\",\n\t\t\tisSimilar: true,\n\t\t},\n\t\t{\n\t\t\ts1:        \"--ci\",\n\t\t\ts2:        \"--cii\",\n\t\t\tisSimilar: true,\n\t\t},\n\t\t{\n\t\t\ts1:        \"hello\",\n\t\t\ts2:        \"hello-world\",\n\t\t\tisSimilar: false,\n\t\t},\n\t\t{\n\t\t\ts1:        \"hello\",\n\t\t\ts2:        \"how\",\n\t\t\tisSimilar: false,\n\t\t},\n\t\t{\n\t\t\ts1:        \"hello\",\n\t\t\ts2:        \"HELLO\",\n\t\t\tisSimilar: false,\n\t\t},\n\t\t{\n\t\t\ts1:        \"python\",\n\t\t\ts2:        \"golang\",\n\t\t\tisSimilar: false,\n\t\t},\n\t}\n\tfor _, tc := range testCases {\n\t\tresult := StringSimilarRatio(tc.s1, tc.s2) >= SimilarStringThreshold\n\t\tif result != tc.isSimilar {\n\t\t\tt.Errorf(\"StringSimilarRatio(%q, %q) failed, got %v, want %v\", tc.s1, tc.s2, result, tc.isSimilar)\n\t\t}\n\t}\n}\n\nfunc TestGetMostSimilarFlags(t *testing.T) {\n\tflags := pflag.NewFlagSet(\"testing\", pflag.ExitOnError)\n\t_ = flags.Bool(\"no-ignore\", false, \"test\")\n\t_ = flags.Bool(\"no-gitignore\", false, \"test\")\n\t_ = flags.Int(\"no-gitmodule\", 0, \"test\")\n\t_ = flags.String(\"format\", \"\", \"test\")\n\t_ = flags.String(\"uloc\", \"\", \"test\")\n\t_ = flags.String(\"gen\", \"\", \"test\")\n\t_ = flags.String(\"ci\", \"\", \"test\")\n\n\ttestCases := []struct {\n\t\tname    string\n\t\texpects []string\n\t}{\n\t\t{\n\t\t\tname:    \"\",\n\t\t\texpects: []string{},\n\t\t},\n\t\t{\n\t\t\tname:    \"unknown\",\n\t\t\texpects: []string{},\n\t\t},\n\t\t{\n\t\t\tname:    \"no-gignore\",\n\t\t\texpects: []string{\"no-ignore\", \"no-gitignore\"},\n\t\t},\n\t\t{\n\t\t\tname:    \"no-gitmodyle\",\n\t\t\texpects: []string{\"no-gitmodule\"},\n\t\t},\n\t\t{\n\t\t\tname:    \"formet\",\n\t\t\texpects: []string{\"format\"},\n\t\t},\n\t\t{\n\t\t\tname:    \"ulc\",\n\t\t\texpects: []string{\"uloc\"},\n\t\t},\n\t\t{\n\t\t\tname:    \"gan\",\n\t\t\texpects: []string{\"gen\"},\n\t\t},\n\t\t{\n\t\t\tname:    \"cii\",\n\t\t\texpects: []string{\"ci\"},\n\t\t},\n\t\t// these two are not included in the set, but still need to be matched\n\t\t{\n\t\t\tname:    \"vrsion\",\n\t\t\texpects: []string{\"version\"},\n\t\t},\n\t\t{\n\t\t\tname:    \"hellp\",\n\t\t\texpects: []string{\"help\"},\n\t\t},\n\t}\n\tfor _, tc := range testCases {\n\t\tresult := GetMostSimilarFlags(flags, tc.name)\n\t\tif !slices.Equal(result, tc.expects) {\n\t\t\tt.Errorf(\"got: %v, want: %v\", result, tc.expects)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "processor/structs.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"bytes\"\n\t\"hash\"\n\t\"slices\"\n\t\"sync\"\n)\n\n// Used by trie structure to store the types\nconst (\n\tTString int = iota + 1\n\tTSlcomment\n\tTMlcomment\n\tTComplexity\n)\n\n// ByteType constants for per-byte content classification.\n// When FileJob.ClassifyContent is true, CountStats populates\n// FileJob.ContentByteType with one of these values per byte.\nconst (\n\tByteTypeBlank   byte = 0\n\tByteTypeCode    byte = 1\n\tByteTypeComment byte = 2\n\tByteTypeString  byte = 3\n)\n\n// Quote is a struct which holds rules and start/end values for string quotes\ntype Quote struct {\n\tStart        string `json:\"start\"`\n\tEnd          string `json:\"end\"`\n\tIgnoreEscape bool   `json:\"ignoreEscape\"` // To enable turning off the \\ check for C# @\"\\\" string examples https://github.com/boyter/scc/issues/71\n\tDocString    bool   `json:\"docString\"`    // To enable docstring check for Python where \"If the triple quote string starts following a newline with only white-space characters in front and ends followed by only a newline or white-space characters it is a comment\" https://github.com/boyter/scc/issues/62\n}\n\n// Language is a struct which contains the values for each language stored in languages.json\ntype Language struct {\n\tLineComment      []string   `json:\"line_comment\"`\n\tComplexityChecks []string   `json:\"complexitychecks\"`\n\tExtensions       []string   `json:\"extensions\"`\n\tMultiLine        [][]string `json:\"multi_line\"`\n\tQuotes           []Quote    `json:\"quotes\"`\n\tKeywords         []string   `json:\"keywords\"`\n\tFileNames        []string   `json:\"filenames\"`\n\tSheBangs         []string   `json:\"shebangs\"`\n\tExtensionFile    bool       `json:\"extensionFile\"`\n\tNestedMultiLine  bool       `json:\"nestedmultiline\"`\n}\n\n// LanguageFeature is a struct which represents the conversion from Language into what is used for matching\ntype LanguageFeature struct {\n\tComplexity            *Trie\n\tMultiLineComments     *Trie\n\tMultiLine             [][]string // in case someone needs the actual value\n\tSingleLineComments    *Trie\n\tLineComment           []string // in case someone needs the actual value\n\tStrings               *Trie\n\tTokens                *Trie\n\tNested                bool\n\tComplexityCheckMask   byte\n\tSingleLineCommentMask byte\n\tMultiLineCommentMask  byte\n\tStringCheckMask       byte\n\tProcessMask           byte\n\tKeywords              []string\n\tQuotes                []Quote\n}\n\n// FileJobCallback is an interface that FileJobs can implement to get a per line callback with the line type\ntype FileJobCallback interface {\n\t// ProcessLine should return true to continue processing or false to stop further processing and return\n\tProcessLine(job *FileJob, currentLine int64, lineType LineType) bool\n}\n\n// FileJob is a struct used to hold all of the results of processing internally before sent to the formatter\ntype FileJob struct {\n\tLanguage           string\n\tPossibleLanguages  []string // Used to hold potentially more than one language which populates language when determined\n\tFilename           string\n\tExtension          string\n\tLocation           string\n\tSymlocation        string\n\tContent            []byte `json:\"-\"`\n\tBytes              int64\n\tLines              int64\n\tCode               int64\n\tComment            int64\n\tBlank              int64\n\tComplexity         int64\n\tComplexityLine     []int64 `json:\"-\"`\n\tWeightedComplexity float64\n\tHash               hash.Hash\n\tCallback           FileJobCallback `json:\"-\"`\n\tBinary             bool\n\tMinified           bool\n\tGenerated          bool\n\tEndPoint           int\n\tUloc               int\n\tLineLength         []int  `json:\"-\"`\n\tClassifyContent    bool   `json:\"-\"` // When true, CountStats populates ContentByteType\n\tContentByteType    []byte `json:\"-\"` // Per-byte classification, allocated by CountStats when ClassifyContent is true\n}\n\n// FilterContentByType returns a copy of Content with bytes not matching any of\n// the given types replaced by spaces. Newlines are always preserved regardless\n// of type. Returns nil if ContentByteType is nil.\nfunc (fj *FileJob) FilterContentByType(keepTypes ...byte) []byte {\n\tif fj.ContentByteType == nil {\n\t\treturn nil\n\t}\n\n\tkeep := make(map[byte]bool, len(keepTypes))\n\tfor _, t := range keepTypes {\n\t\tkeep[t] = true\n\t}\n\n\tresult := make([]byte, len(fj.Content))\n\tfor i, b := range fj.Content {\n\t\tif b == '\\n' || keep[fj.ContentByteType[i]] {\n\t\t\tresult[i] = b\n\t\t} else {\n\t\t\tresult[i] = ' '\n\t\t}\n\t}\n\treturn result\n}\n\n// LanguageSummary is used to hold summarized results for a single language\ntype LanguageSummary struct {\n\tName               string\n\tBytes              int64\n\tCodeBytes          int64\n\tLines              int64\n\tCode               int64\n\tComment            int64\n\tBlank              int64\n\tComplexity         int64\n\tCount              int64\n\tWeightedComplexity float64\n\tFiles              []*FileJob\n\tLineLength         []int\n\tULOC               int\n}\n\n// OpenClose is used to hold an open/close pair for matching such as multi line comments\ntype OpenClose struct {\n\tOpen  []byte\n\tClose []byte\n}\n\n// CheckDuplicates is used to hold hashes if duplicate detection is enabled it comes with a mutex\n// that should be locked while a check is being performed then added\ntype CheckDuplicates struct {\n\thashes map[int64][][]byte\n\tmux    sync.Mutex\n}\n\n// Add is a non thread safe add a key into the duplicates check need to use mutex inside struct before calling this\nfunc (c *CheckDuplicates) Add(key int64, hash []byte) {\n\thashes, ok := c.hashes[key]\n\tif ok {\n\t\tc.hashes[key] = append(hashes, hash)\n\t} else {\n\t\tc.hashes[key] = [][]byte{hash}\n\t}\n}\n\n// Check is a non thread safe check to see if the key exists already need to use mutex inside struct before calling this\nfunc (c *CheckDuplicates) Check(key int64, hash []byte) bool {\n\thashes, ok := c.hashes[key]\n\n\treturn ok && slices.ContainsFunc(hashes, func(h []byte) bool {\n\t\treturn bytes.Equal(h, hash)\n\t})\n}\n\n// Trie is a structure used to store matches efficiently\ntype Trie struct {\n\tType  int\n\tClose []byte\n\tTable [256]*Trie\n}\n\n// Insert inserts a string into the trie for matching\nfunc (root *Trie) Insert(tokenType int, token []byte) {\n\tvar node *Trie\n\n\tnode = root\n\tfor _, c := range token {\n\t\tif node.Table[c] == nil {\n\t\t\tnode.Table[c] = &Trie{}\n\t\t}\n\t\tnode = node.Table[c]\n\t}\n\tnode.Type = tokenType\n}\n\n// InsertClose closes off a string in the trie\nfunc (root *Trie) InsertClose(tokenType int, openToken, closeToken []byte) {\n\tvar node *Trie\n\n\tnode = root\n\tfor _, c := range openToken {\n\t\tif node.Table[c] == nil {\n\t\t\tnode.Table[c] = &Trie{}\n\t\t}\n\t\tnode = node.Table[c]\n\t}\n\tnode.Type = tokenType\n\tnode.Close = closeToken\n}\n\n// Match checks the created trie structure for a match\nfunc (root *Trie) Match(token []byte) (int, int, []byte) {\n\tvar node *Trie\n\tvar depth int\n\tvar c byte\n\n\tnode = root\n\tvar prevClosedNode *Trie\n\tvar prevClosedDepth int\n\tfor depth, c = range token {\n\t\tif node.Table[c] == nil {\n\t\t\tbreak\n\t\t}\n\t\tnode = node.Table[c]\n\t\tif len(node.Close) > 0 {\n\t\t\tprevClosedNode = node\n\t\t\tprevClosedDepth = depth\n\t\t}\n\t}\n\tif len(node.Close) == 0 && prevClosedNode != nil {\n\t\treturn prevClosedNode.Type, prevClosedDepth, prevClosedNode.Close\n\t}\n\treturn node.Type, depth, node.Close\n}\n"
  },
  {
    "path": "processor/structs_test.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"encoding/json\"\n\t\"slices\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestCheckDuplicates(t *testing.T) {\n\tc := CheckDuplicates{\n\t\thashes: make(map[int64][][]byte),\n\t}\n\n\tc.Add(1, []byte(\"hash\"))\n\tc.Add(1, []byte(\"hash2\"))\n\n\tif !c.Check(1, []byte(\"hash\")) {\n\t\tt.Error(\"Expected match\")\n\t}\n\n\tif !c.Check(1, []byte(\"hash2\")) {\n\t\tt.Error(\"Expected match\")\n\t}\n\n\tif c.Check(2, []byte(\"hash\")) {\n\t\tt.Error(\"Expected no match\")\n\t}\n\n\tif c.Check(1, []byte(\"hash3\")) {\n\t\tt.Error(\"Expected no match\")\n\t}\n}\n\nfunc TestMatch(t *testing.T) {\n\ttrie := &Trie{}\n\ttrie.InsertClose(TString, []byte(\"'\"), []byte(\"'\"))\n\ttrie.InsertClose(TString, []byte(\"'''\"), []byte(\"'''\"))\n\n\ttestCases := []struct {\n\t\ttoken        []byte\n\t\texpectType   int\n\t\texpectDepth  int\n\t\texpectClosed []byte\n\t}{\n\t\t{\n\t\t\ttoken:        []byte(\"'\"),\n\t\t\texpectType:   TString,\n\t\t\texpectDepth:  0,\n\t\t\texpectClosed: []byte(\"'\"),\n\t\t},\n\t\t{\n\t\t\ttoken:        []byte(\"-\"),\n\t\t\texpectType:   0,\n\t\t\texpectDepth:  0,\n\t\t\texpectClosed: []byte{},\n\t\t},\n\t\t{\n\t\t\ttoken:        []byte(\"'-\"),\n\t\t\texpectType:   TString,\n\t\t\texpectDepth:  1,\n\t\t\texpectClosed: []byte(\"'\"),\n\t\t},\n\t\t{\n\t\t\ttoken:        []byte(\"''\"),\n\t\t\texpectType:   TString,\n\t\t\texpectDepth:  0,\n\t\t\texpectClosed: []byte(\"'\"),\n\t\t},\n\t\t{\n\t\t\ttoken:        []byte(\"'''\"),\n\t\t\texpectType:   1,\n\t\t\texpectDepth:  2,\n\t\t\texpectClosed: []byte(\"'''\"),\n\t\t},\n\t\t{\n\t\t\ttoken:        []byte(\"'''a'''\"),\n\t\t\texpectType:   TString,\n\t\t\texpectDepth:  3,\n\t\t\texpectClosed: []byte(\"'''\"),\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\ttyp, depth, closed := trie.Match(tc.token)\n\t\tif typ != tc.expectType {\n\t\t\tt.Errorf(\"\\\"%v\\\" matched wrong type, want: %v, got: %v\", string(tc.token), tc.expectType, typ)\n\t\t}\n\t\tif depth != tc.expectDepth {\n\t\t\tt.Errorf(\"\\\"%v\\\" matched wrong depth, want: %v, got: %v\", string(tc.token), tc.expectDepth, depth)\n\t\t}\n\t\tif !slices.Equal(tc.expectClosed, closed) {\n\t\t\tt.Errorf(\"\\\"%v\\\" matched wrong closed, want: %v, got: %v\", string(tc.token), tc.expectClosed, closed)\n\t\t}\n\t}\n}\n\nfunc TestFileJobJSONIgnoreFields(t *testing.T) {\n\tjob := FileJob{\n\t\tLanguage:           \"Dockerfile\",\n\t\tPossibleLanguages:  []string{\"Dockerfile\"},\n\t\tFilename:           \"Dockerfile\",\n\t\tExtension:          \"Dockerfile\",\n\t\tLocation:           \"Dockerfile\",\n\t\tSymlocation:        \"\",\n\t\tContent:            []uint8{1, 2, 3},\n\t\tBytes:              248,\n\t\tLines:              14,\n\t\tCode:               11,\n\t\tComment:            0,\n\t\tBlank:              3,\n\t\tComplexity:         1,\n\t\tComplexityLine:     []int64{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\n\t\tWeightedComplexity: 1,\n\t\tHash:               nil,\n\t\tCallback:           &linecounter{},\n\t\tBinary:             false,\n\t\tMinified:           false,\n\t\tGenerated:          false,\n\t\tEndPoint:           0,\n\t\tUloc:               0,\n\t\tLineLength:         []int{1, 2, 3},\n\t}\n\n\tdata, err := json.MarshalIndent(&job, \"\", \"\\t\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tjsonStr := string(data)\n\tif strings.Contains(jsonStr, `\"Content\": `) {\n\t\tt.Errorf(\"Content should be ignored\")\n\t}\n\tif strings.Contains(jsonStr, `\"ComplexityLine\": `) {\n\t\tt.Errorf(\"ComplexityLine should be ignored\")\n\t}\n\tif strings.Contains(jsonStr, `\"Callback\": `) {\n\t\tt.Errorf(\"Callback should be ignored\")\n\t}\n\tif strings.Contains(jsonStr, `\"LineLength\": `) {\n\t\tt.Errorf(\"LineLength should be ignored\")\n\t}\n}\n"
  },
  {
    "path": "processor/trace.go",
    "content": "package processor\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"time\"\n)\n\ntype traceLevel uint8\n\nconst (\n\tlevelTrace traceLevel = iota + 1\n\tlevelDebug\n\tlevelWarn\n\tlevelError\n)\n\nfunc (tl traceLevel) String() string {\n\tswitch tl {\n\tcase levelTrace:\n\t\treturn \"TRACE\"\n\tcase levelDebug:\n\t\treturn \"DEBUG\"\n\tcase levelWarn:\n\t\treturn \"WARN\"\n\tcase levelError:\n\t\treturn \"ERROR\"\n\tdefault:\n\t\treturn \"\"\n\t}\n}\n\n// Get the time as standard UTC/Zulu format\nfunc getFormattedTime() string {\n\treturn time.Now().UTC().Format(time.RFC3339)\n}\n\nfunc prepareMsg(template string, args []any) string {\n\tif len(args) == 0 {\n\t\treturn template\n\t}\n\n\treturn fmt.Sprintf(template, args...)\n}\n\nfunc doPrint(dst io.Writer, level traceLevel, template string, args []any) {\n\t_, _ = fmt.Fprintf(dst, \"%s %s: %s\\n\", level, getFormattedTime(), prepareMsg(template, args))\n}\n\n// Prints a message to stdout if flag to enable warning output is set\nfunc printWarn(msg string) {\n\tif Verbose {\n\t\tdoPrint(os.Stdout, levelWarn, msg, nil)\n\t}\n}\n\n// Prints a message to stdout if flag to enable warning output is set\nfunc printWarnF(msg string, args ...any) {\n\tif Verbose {\n\t\tdoPrint(os.Stdout, levelWarn, msg, args)\n\t}\n}\n\n// Prints a message to stdout if flag to enable debug output is set\nfunc printDebug(msg string) {\n\tif Debug {\n\t\tdoPrint(os.Stdout, levelDebug, msg, nil)\n\t}\n}\n\n// Prints a message to stdout if flag to enable debug output is set\nfunc printDebugF(msg string, args ...any) {\n\tif Debug {\n\t\tdoPrint(os.Stdout, levelDebug, msg, args)\n\t}\n}\n\n// Prints a message to stdout if flag to enable trace output is set\nfunc printTrace(msg string) {\n\tif Trace {\n\t\tdoPrint(os.Stdout, levelTrace, msg, nil)\n\t}\n}\n\n// Prints a message to stdout if flag to enable trace output is set\nfunc printTraceF(msg string, args ...any) {\n\tif Trace {\n\t\tdoPrint(os.Stdout, levelTrace, msg, args)\n\t}\n}\n\n// Used when explicitly for os.exit output when crashing out\nfunc printError(msg string) {\n\tdoPrint(os.Stderr, levelError, msg, nil)\n}\n"
  },
  {
    "path": "processor/trace_test.go",
    "content": "package processor\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestTraceLevel(t *testing.T) {\n\tif levelTrace.String() != \"TRACE\" {\n\t\tt.Errorf(\"traceLevel format error: got %s, want TRACE\", levelTrace.String())\n\t}\n\tif levelDebug.String() != \"DEBUG\" {\n\t\tt.Errorf(\"traceLevel format error: got %s, want DEBUG\", levelDebug.String())\n\t}\n\tif levelWarn.String() != \"WARN\" {\n\t\tt.Errorf(\"traceLevel format error: got %s, want WARN\", levelWarn.String())\n\t}\n\tif levelError.String() != \"ERROR\" {\n\t\tt.Errorf(\"traceLevel format error: got %s, want ERROR\", levelError.String())\n\t}\n\tif traceLevel(0).String() != \"\" {\n\t\tt.Error(\"formated unknown traceLevel is not empty\")\n\t}\n}\n\nfunc TestDoPrint(t *testing.T) {\n\ttestCases := []struct {\n\t\tlevel          traceLevel\n\t\ttemplate       string\n\t\targs           []any\n\t\texpectedPrefix string\n\t\texpectedSuffix string\n\t}{\n\t\t{\n\t\t\tlevel:          levelTrace,\n\t\t\ttemplate:       \"test: %d\",\n\t\t\targs:           []any{1},\n\t\t\texpectedPrefix: levelTrace.String(),\n\t\t\texpectedSuffix: \": test: 1\\n\",\n\t\t},\n\t\t{\n\t\t\tlevel:          levelWarn,\n\t\t\ttemplate:       \"test: %s\",\n\t\t\targs:           []any{\"message\"},\n\t\t\texpectedPrefix: levelWarn.String(),\n\t\t\texpectedSuffix: \": test: message\\n\",\n\t\t},\n\t\t{\n\t\t\tlevel:          levelDebug,\n\t\t\ttemplate:       \"test\",\n\t\t\targs:           nil,\n\t\t\texpectedPrefix: levelDebug.String(),\n\t\t\texpectedSuffix: \": test\\n\",\n\t\t},\n\t}\n\tbuff := &bytes.Buffer{}\n\tfor _, tc := range testCases {\n\t\tdoPrint(buff, tc.level, tc.template, tc.args)\n\t\tif !strings.HasPrefix(buff.String(), tc.expectedPrefix) {\n\t\t\tt.Errorf(\"doPrint got \\\"%s\\\", want prefix \\\"%s\\\"\", buff.String(), tc.expectedPrefix)\n\t\t}\n\t\tif !strings.HasSuffix(buff.String(), tc.expectedSuffix) {\n\t\t\tt.Errorf(\"doPrint got \\\"%s\\\", want suffix \\\"%s\\\"\", buff.String(), tc.expectedSuffix)\n\t\t}\n\t\tbuff.Reset()\n\t}\n}\n\nfunc TestPrintTrace(t *testing.T) {\n\tTrace = true\n\tprintTrace(\"Testing print trace\")\n\tTrace = false\n\tprintTrace(\"Testing print trace\")\n}\n\nfunc TestPrintDebug(t *testing.T) {\n\tDebug = true\n\tprintDebug(\"Testing print debug\")\n\tDebug = false\n\tprintDebug(\"Testing print debug\")\n}\n\nfunc TestPrintWarn(t *testing.T) {\n\tVerbose = true\n\tprintWarn(\"Testing print warn\")\n\tVerbose = false\n\tprintWarn(\"Testing print warn\")\n}\n\nfunc TestPrintError(t *testing.T) {\n\tprintError(\"Testing print error\")\n}\n\nfunc TestPrintWarnF(t *testing.T) {\n\tprintWarnF(\"Testing print error\")\n}\n\nfunc TestPrintDebugF(t *testing.T) {\n\tprintDebugF(\"Testing print error\")\n}\n\nfunc TestPrintTraceF(t *testing.T) {\n\tprintTraceF(\"Testing print error\")\n}\n\nfunc TestGetFormattedTime(t *testing.T) {\n\tres := getFormattedTime()\n\n\tif !strings.Contains(res, \"T\") {\n\t\tt.Error(\"String does not contain expected T\", res)\n\t}\n\n\tif !strings.Contains(res, \"Z\") {\n\t\tt.Error(\"String does not contain expected Z\", res)\n\t}\n}\n"
  },
  {
    "path": "processor/workers.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"bytes\"\n\t\"hash\"\n\t\"runtime/debug\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"golang.org/x/crypto/blake2b\"\n)\n\n// The below are used as identifiers for the code state machine\nconst (\n\tSBlank             int64 = 1\n\tSCode              int64 = 2\n\tSComment           int64 = 3\n\tSCommentCode       int64 = 4 // Indicates comment after code\n\tSMulticomment      int64 = 5\n\tSMulticommentCode  int64 = 6 // Indicates multi comment after code\n\tSMulticommentBlank int64 = 7 // Indicates multi comment ended with blank afterward\n\tSString            int64 = 8\n\tSDocString         int64 = 9\n)\n\n// SheBang is a global constant for indicating a shebang file header\nconst SheBang string = \"#!\"\n\n// LineType what type of line are processing\ntype LineType int32\n\n// These are not meant to be CAMEL_CASE but as it us used by an external project we cannot change it\nconst (\n\tLINE_BLANK LineType = iota\n\tLINE_CODE\n\tLINE_COMMENT\n)\n\n// ByteOrderMarks are taken from https://en.wikipedia.org/wiki/Byte_order_mark#Byte_order_marks_by_encoding\n// These indicate that we cannot count the file correctly so we can at least warn the user\nvar ByteOrderMarks = [][]byte{\n\t{254, 255},            // UTF-16 BE\n\t{255, 254},            // UTF-16 LE\n\t{0, 0, 254, 255},      // UTF-32 BE\n\t{255, 254, 0, 0},      // UTF-32 LE\n\t{43, 47, 118, 56},     // UTF-7\n\t{43, 47, 118, 57},     // UTF-7\n\t{43, 47, 118, 43},     // UTF-7\n\t{43, 47, 118, 47},     // UTF-7\n\t{43, 47, 118, 56, 45}, // UTF-7\n\t{247, 100, 76},        // UTF-1\n\t{221, 115, 102, 115},  // UTF-EBCDIC\n\t{14, 254, 255},        // SCSU\n\t{251, 238, 40},        // BOCU-1\n\t{132, 49, 149, 51},    // GB-18030\n}\n\nvar duplicates = CheckDuplicates{\n\thashes: make(map[int64][][]byte),\n}\n\nfunc checkForMatchSingle(currentByte byte, index int, endPoint int, matches []byte, fileJob *FileJob) bool {\n\tpotentialMatch := true\n\tif currentByte == matches[0] {\n\t\tfor j := 0; j < len(matches); j++ {\n\t\t\tif index+j >= endPoint || matches[j] != fileJob.Content[index+j] {\n\t\t\t\tpotentialMatch = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif potentialMatch {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc isWhitespace(currentByte byte) bool {\n\tif currentByte != ' ' && currentByte != '\\t' && currentByte != '\\n' && currentByte != '\\r' {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Check if this file is binary by checking for nul byte and if so bail out\n// this is how GNU Grep, git and ripgrep check for binary files\nfunc isBinary(index int, currentByte byte) bool {\n\treturn index < 10000 && !DisableCheckBinary && currentByte == 0\n}\n\nfunc shouldProcess(currentByte, processBytesMask byte) bool {\n\treturn currentByte&processBytesMask == currentByte\n}\n\nfunc stateToByteType(state int64) byte {\n\tswitch state {\n\tcase SCode:\n\t\treturn ByteTypeCode\n\tcase SString:\n\t\treturn ByteTypeString\n\tcase SComment, SCommentCode, SMulticomment, SMulticommentCode, SMulticommentBlank, SDocString:\n\t\treturn ByteTypeComment\n\tdefault: // SBlank\n\t\treturn ByteTypeBlank\n\t}\n}\n\nfunc resetState(currentState int64) int64 {\n\tswitch currentState {\n\tcase SMulticomment, SMulticommentCode:\n\t\tcurrentState = SMulticomment\n\tcase SString:\n\t\tcurrentState = SString\n\tdefault:\n\t\tcurrentState = SBlank\n\t}\n\n\treturn currentState\n}\n\nfunc stringState(fileJob *FileJob, index int, endPoint int, endString []byte, currentState int64, ignoreEscape bool) (int, int64) {\n\t// It's not possible to enter this state without checking at least 1 byte so it is safe to check -1 here\n\t// without checking if it is out of bounds first\n\tfor i := index; i < endPoint; i++ {\n\t\tindex = i\n\n\t\tif fileJob.ContentByteType != nil {\n\t\t\tfileJob.ContentByteType[i] = ByteTypeString\n\t\t}\n\n\t\t// If we hit a newline, return because we want to count the stats but keep\n\t\t// the current state so we end up back in this loop when the outer\n\t\t// one calls again\n\t\tif fileJob.Content[i] == '\\n' {\n\t\t\treturn i, currentState\n\t\t}\n\n\t\tis_escaped := false\n\t\t// if there is an escape symbol before us, investigate\n\t\tif fileJob.Content[i-1] == '\\\\' {\n\t\t\tnum_escapes := 0\n\t\t\tfor j := i - 1; j > 0; j-- {\n\t\t\t\tif fileJob.Content[j] != '\\\\' {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnum_escapes++\n\t\t\t}\n\n\t\t\t// if number of escapes is even, all escapes are themselves escaped\n\t\t\t// otherwise the last escape does escape current string terminator\n\t\t\tif num_escapes%2 != 0 {\n\t\t\t\tis_escaped = true\n\t\t\t}\n\t\t}\n\n\t\t// If we are in a literal string we want to ignore escapes OR we aren't checking for special ones\n\t\tif ignoreEscape || !is_escaped {\n\t\t\tif checkForMatchSingle(fileJob.Content[i], index, endPoint, endString, fileJob) {\n\t\t\t\treturn i, SCode\n\t\t\t}\n\t\t}\n\t}\n\n\treturn index, currentState\n}\n\n// This is a special state check pretty much only ever used by Python codebases\n// but potentially it could be expanded to deal with other types\nfunc docStringState(fileJob *FileJob, index int, endPoint int, stringTrie *Trie, endString []byte, currentState int64) (int, int64) {\n\t// It's not possible to enter this state without checking at least 1 byte so it is safe to check -1 here\n\t// without checking if it is out of bounds first\n\tfor i := index; i < endPoint; i++ {\n\t\tindex = i\n\n\t\tif fileJob.ContentByteType != nil {\n\t\t\tfileJob.ContentByteType[i] = ByteTypeComment\n\t\t}\n\n\t\tif fileJob.Content[i] == '\\n' {\n\t\t\treturn i, currentState\n\t\t}\n\n\t\tif fileJob.Content[i-1] != '\\\\' {\n\t\t\tif ok, _, _ := stringTrie.Match(fileJob.Content[i:]); ok != 0 {\n\t\t\t\t// So we have hit end of docstring at this point in which case check if only whitespace characters till the next\n\t\t\t\t// newline and if so we change to a comment otherwise to code\n\t\t\t\t// need to start the loop after ending definition of docstring, therefore adding the length of the string to\n\t\t\t\t// the index\n\t\t\t\tfor j := index + len(endString); j <= endPoint; j++ {\n\t\t\t\t\tif fileJob.Content[j] == '\\n' {\n\t\t\t\t\t\tprintDebug(\"Found newline so docstring is comment\")\n\t\t\t\t\t\treturn i, SComment\n\t\t\t\t\t}\n\n\t\t\t\t\tif !isWhitespace(fileJob.Content[j]) {\n\t\t\t\t\t\tprintDebugF(\"Found something not whitespace so is code: %s\", string(fileJob.Content[j]))\n\t\t\t\t\t\treturn i, SCode\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn i, SCode\n\t\t\t}\n\t\t}\n\t}\n\n\treturn index, currentState\n}\n\nfunc codeState(\n\tfileJob *FileJob,\n\tindex int,\n\tendPoint int,\n\tcurrentState int64,\n\tendString []byte,\n\tendComments [][]byte,\n\tlangFeatures LanguageFeature,\n\tdigest *hash.Hash,\n) (int, int64, []byte, [][]byte, bool) {\n\t// Hacky fix to https://github.com/boyter/scc/issues/181\n\tif endPoint > len(fileJob.Content) {\n\t\tendPoint--\n\t}\n\n\tfor i := index; i < endPoint; i++ {\n\t\tcurByte := fileJob.Content[i]\n\t\tindex = i\n\n\t\tif fileJob.ContentByteType != nil {\n\t\t\tfileJob.ContentByteType[i] = ByteTypeCode\n\t\t}\n\n\t\tif curByte == '\\n' {\n\t\t\treturn i, currentState, endString, endComments, false\n\t\t}\n\n\t\tif isBinary(i, curByte) {\n\t\t\tfileJob.Binary = true\n\t\t\treturn i, currentState, endString, endComments, false\n\t\t}\n\n\t\tif shouldProcess(curByte, langFeatures.ProcessMask) {\n\t\t\tif Duplicates {\n\t\t\t\t// Technically this is wrong because we skip bytes, so this is not a true\n\t\t\t\t// hash of the file contents, but for duplicate files it shouldn't matter\n\t\t\t\t// as both will skip the same way\n\t\t\t\tdigestible := []byte{fileJob.Content[index]}\n\t\t\t\t(*digest).Write(digestible)\n\t\t\t}\n\n\t\t\tswitch tokenType, offsetJump, endString := langFeatures.Tokens.Match(fileJob.Content[i:]); tokenType {\n\t\t\tcase TString:\n\t\t\t\t// If we are in string state then check what sort of string so we know if docstring OR ignoreescape string\n\t\t\t\ti, ignoreEscape := verifyIgnoreEscape(langFeatures, fileJob, index)\n\n\t\t\t\t// It is safe to -1 here as to enter the code state we need to have\n\t\t\t\t// transitioned from blank to here hence i should always be >= 1\n\t\t\t\t// This check is to ensure we aren't in a character declaration\n\t\t\t\t// TODO this should use language features\n\t\t\t\tif fileJob.Content[i-1] != '\\\\' {\n\t\t\t\t\tcurrentState = SString\n\t\t\t\t}\n\n\t\t\t\treturn i, currentState, endString, endComments, ignoreEscape\n\n\t\t\tcase TSlcomment:\n\t\t\t\tcurrentState = SCommentCode\n\t\t\t\treturn i, currentState, endString, endComments, false\n\n\t\t\tcase TMlcomment:\n\t\t\t\tif langFeatures.Nested || len(endComments) == 0 {\n\t\t\t\t\tendComments = append(endComments, endString)\n\t\t\t\t\tcurrentState = SMulticommentCode\n\t\t\t\t\ti += offsetJump - 1\n\n\t\t\t\t\treturn i, currentState, endString, endComments, false\n\t\t\t\t}\n\n\t\t\tcase TComplexity:\n\t\t\t\tif index == 0 || isWhitespace(fileJob.Content[index-1]) {\n\t\t\t\t\tfileJob.Complexity++\n\t\t\t\t\tfileJob.ComplexityLine[len(fileJob.ComplexityLine)-1] = fileJob.ComplexityLine[len(fileJob.ComplexityLine)-1] + 1\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn index, currentState, endString, endComments, false\n}\n\nfunc commentState(fileJob *FileJob, index int, endPoint int, currentState int64, endComments [][]byte, endString []byte, langFeatures LanguageFeature) (int, int64, []byte, [][]byte) {\n\tfor i := index; i < endPoint; i++ {\n\t\tcurByte := fileJob.Content[i]\n\t\tindex = i\n\n\t\tif fileJob.ContentByteType != nil {\n\t\t\tfileJob.ContentByteType[i] = ByteTypeComment\n\t\t}\n\n\t\tif curByte == '\\n' {\n\t\t\treturn i, currentState, endString, endComments\n\t\t}\n\n\t\tif checkForMatchSingle(curByte, index, endPoint, endComments[len(endComments)-1], fileJob) {\n\t\t\t// set offset jump here\n\t\t\toffsetJump := len(endComments[len(endComments)-1])\n\t\t\tendComments = endComments[:len(endComments)-1]\n\n\t\t\tif len(endComments) == 0 {\n\t\t\t\t// If we started as multiline code switch back to code so we count correctly\n\t\t\t\t// IE i := 1 /* for the lols */\n\t\t\t\t// TODO is that required? Might still be required to count correctly\n\t\t\t\tif currentState == SMulticommentCode {\n\t\t\t\t\tcurrentState = SCode // TODO pointless to change here, just set S_MULTICOMMENT_BLANK\n\t\t\t\t} else {\n\t\t\t\t\tcurrentState = SMulticommentBlank\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti += offsetJump - 1\n\t\t\treturn i, currentState, endString, endComments\n\t\t}\n\t\t// Check if we are entering another multiline comment\n\t\t// This should come below check for match single as it speeds up processing\n\t\tif langFeatures.Nested || len(endComments) == 0 {\n\t\t\tif ok, offsetJump, endString := langFeatures.MultiLineComments.Match(fileJob.Content[i:]); ok != 0 {\n\t\t\t\tendComments = append(endComments, endString)\n\t\t\t\ti += offsetJump - 1\n\n\t\t\t\treturn i, currentState, endString, endComments\n\t\t\t}\n\t\t}\n\t}\n\n\treturn index, currentState, endString, endComments\n}\n\nfunc blankState(\n\tfileJob *FileJob,\n\tindex int,\n\tcurrentState int64,\n\tendComments [][]byte,\n\tendString []byte,\n\tlangFeatures LanguageFeature,\n) (int, int64, []byte, [][]byte, bool) {\n\tswitch tokenType, offsetJump, endString := langFeatures.Tokens.Match(fileJob.Content[index:]); tokenType {\n\tcase TMlcomment:\n\t\tif langFeatures.Nested || len(endComments) == 0 {\n\t\t\tendComments = append(endComments, endString)\n\t\t\tcurrentState = SMulticomment\n\t\t\tindex += offsetJump - 1\n\t\t\tif fileJob.ContentByteType != nil {\n\t\t\t\tfileJob.ContentByteType[index] = ByteTypeComment\n\t\t\t}\n\t\t\treturn index, currentState, endString, endComments, false\n\t\t}\n\n\tcase TSlcomment:\n\t\tcurrentState = SComment\n\t\tif fileJob.ContentByteType != nil {\n\t\t\tfileJob.ContentByteType[index] = ByteTypeComment\n\t\t}\n\t\treturn index, currentState, endString, endComments, false\n\n\tcase TString:\n\t\tindex, ignoreEscape := verifyIgnoreEscape(langFeatures, fileJob, index)\n\n\t\tfor _, v := range langFeatures.Quotes {\n\t\t\tif v.End == string(endString) && v.DocString {\n\t\t\t\tcurrentState = SDocString\n\t\t\t\tif fileJob.ContentByteType != nil {\n\t\t\t\t\tfileJob.ContentByteType[index] = ByteTypeComment\n\t\t\t\t}\n\t\t\t\treturn index, currentState, endString, endComments, ignoreEscape\n\t\t\t}\n\t\t}\n\t\tcurrentState = SString\n\t\tif fileJob.ContentByteType != nil {\n\t\t\tfileJob.ContentByteType[index] = ByteTypeString\n\t\t}\n\t\treturn index, currentState, endString, endComments, ignoreEscape\n\n\tcase TComplexity:\n\t\tcurrentState = SCode\n\t\tif fileJob.ContentByteType != nil {\n\t\t\tfileJob.ContentByteType[index] = ByteTypeCode\n\t\t}\n\t\tif index == 0 || isWhitespace(fileJob.Content[index-1]) {\n\t\t\tfileJob.Complexity++\n\t\t\tfileJob.ComplexityLine[len(fileJob.ComplexityLine)-1] = fileJob.ComplexityLine[len(fileJob.ComplexityLine)-1] + 1\n\t\t}\n\n\tdefault:\n\t\tcurrentState = SCode\n\t\tif fileJob.ContentByteType != nil {\n\t\t\tfileJob.ContentByteType[index] = ByteTypeCode\n\t\t}\n\t}\n\n\treturn index, currentState, endString, endComments, false\n}\n\n// Some languages such as C# have quoted strings like @\"\\\" where no escape character is required\n// this checks if there is one so we can cater for these cases\nfunc verifyIgnoreEscape(langFeatures LanguageFeature, fileJob *FileJob, index int) (int, bool) {\n\tignoreEscape := false\n\n\t// loop over the string states and if we have the special flag match, and if so we need to ensure we can handle them\n\tfor i := 0; i < len(langFeatures.Quotes); i++ {\n\t\tif langFeatures.Quotes[i].DocString || langFeatures.Quotes[i].IgnoreEscape {\n\t\t\t// If so we need to check if where we are falls into these conditions\n\t\t\tisMatch := true\n\t\t\tfor j := 0; j < len(langFeatures.Quotes[i].Start); j++ {\n\t\t\t\tif len(fileJob.Content) <= index+j || fileJob.Content[index+j] != langFeatures.Quotes[i].Start[j] {\n\t\t\t\t\tisMatch = false\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If we have a match then jump ahead enough so we don't pick it up again for cases like @\"\n\t\t\tif isMatch {\n\t\t\t\tignoreEscape = true\n\t\t\t\tindex = index + len(langFeatures.Quotes[i].Start)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn index, ignoreEscape\n}\n\n// CountStats will process the fileJob\n// If the file contains anything even just a newline its line count should be >= 1.\n// If the file has a size of 0 its line count should be 0.\n// Newlines belong to the line they started on so a file of \\n means only 1 line\n// This is the 'hot' path for the application and needs to be as fast as possible\nfunc CountStats(fileJob *FileJob) {\n\t// For determining duplicates we need the below. The reason for creating\n\t// the byte array here is to avoid GC pressure. MD5 is in the standard library\n\t// and is fast enough to not warrant murmur3 hashing. No need to be\n\t// crypto secure here either so no need to eat the performance cost of a better\n\t// hash method\n\tif Duplicates {\n\t\tfileJob.Hash, _ = blake2b.New256(nil)\n\t}\n\n\t// If the file has a length of 0 it is empty then we say it has no lines\n\tif fileJob.Bytes == 0 {\n\t\tfileJob.Lines = 0\n\t\treturn\n\t}\n\n\tLanguageFeaturesMutex.Lock()\n\tlangFeatures := LanguageFeatures[fileJob.Language]\n\tLanguageFeaturesMutex.Unlock()\n\n\tif langFeatures.Complexity == nil {\n\t\tlangFeatures.Complexity = &Trie{}\n\t}\n\tif langFeatures.SingleLineComments == nil {\n\t\tlangFeatures.SingleLineComments = &Trie{}\n\t}\n\tif langFeatures.MultiLineComments == nil {\n\t\tlangFeatures.MultiLineComments = &Trie{}\n\t}\n\tif langFeatures.Strings == nil {\n\t\tlangFeatures.Strings = &Trie{}\n\t}\n\tif langFeatures.Tokens == nil {\n\t\tlangFeatures.Tokens = &Trie{}\n\t}\n\n\tendPoint := int(fileJob.Bytes - 1)\n\tcurrentState := SBlank\n\tendComments := [][]byte{}\n\tendString := []byte{}\n\n\t// TODO needs to be set via langFeatures.Quotes[0].IgnoreEscape for the matching feature\n\tignoreEscape := false\n\tfileJob.ComplexityLine = append(fileJob.ComplexityLine, 0)\n\n\tif fileJob.ClassifyContent {\n\t\tfileJob.ContentByteType = make([]byte, fileJob.Bytes)\n\t}\n\n\tfor index := checkBomSkip(fileJob); index < int(fileJob.Bytes); index++ {\n\t\tif fileJob.ContentByteType != nil {\n\t\t\tfileJob.ContentByteType[index] = stateToByteType(currentState)\n\t\t}\n\n\t\t// Based on our current state determine if the state should change by checking\n\t\t// what the character is. The below is very CPU bound so need to be careful if\n\t\t// changing anything in here and profile/measure afterwards!\n\t\t// NB that the order of the if statements matters and has been set to what in benchmarks is most efficient\n\t\tif !isWhitespace(fileJob.Content[index]) {\n\n\t\t\tswitch currentState {\n\t\t\tcase SCode:\n\t\t\t\tindex, currentState, endString, endComments, ignoreEscape = codeState(\n\t\t\t\t\tfileJob,\n\t\t\t\t\tindex,\n\t\t\t\t\tendPoint,\n\t\t\t\t\tcurrentState,\n\t\t\t\t\tendString,\n\t\t\t\t\tendComments,\n\t\t\t\t\tlangFeatures,\n\t\t\t\t\t&fileJob.Hash,\n\t\t\t\t)\n\t\t\tcase SString:\n\t\t\t\tindex, currentState = stringState(fileJob, index, endPoint, endString, currentState, ignoreEscape)\n\t\t\tcase SDocString:\n\t\t\t\t// For a docstring we can either move into blank in which case we count it as a docstring\n\t\t\t\t// or back into code in which case it should be counted as code\n\t\t\t\tindex, currentState = docStringState(fileJob, index, endPoint, langFeatures.Strings, endString, currentState)\n\t\t\tcase SMulticomment, SMulticommentCode:\n\t\t\t\tindex, currentState, endString, endComments = commentState(\n\t\t\t\t\tfileJob,\n\t\t\t\t\tindex,\n\t\t\t\t\tendPoint,\n\t\t\t\t\tcurrentState,\n\t\t\t\t\tendComments,\n\t\t\t\t\tendString,\n\t\t\t\t\tlangFeatures,\n\t\t\t\t)\n\t\t\tcase SBlank, SMulticommentBlank:\n\t\t\t\t// From blank we can move into comment, move into a multiline comment\n\t\t\t\t// or move into code but we can only do one.\n\t\t\t\tindex, currentState, endString, endComments, ignoreEscape = blankState(\n\t\t\t\t\tfileJob,\n\t\t\t\t\tindex,\n\t\t\t\t\tcurrentState,\n\t\t\t\t\tendComments,\n\t\t\t\t\tendString,\n\t\t\t\t\tlangFeatures,\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\t// We shouldn't normally need this, but unclosed strings or comments\n\t\t// might leave the index past the end of the file when we reach this\n\t\t// point.\n\t\tif index >= len(fileJob.Content) {\n\t\t\treturn\n\t\t}\n\n\t\t// Only check the first 10000 characters for null bytes indicating a binary file\n\t\t// and if we find it then we return otherwise carry on and ignore binary markers\n\t\tif index < 10000 && fileJob.Binary {\n\t\t\treturn\n\t\t}\n\n\t\t// This means the end of processing the line so calculate the stats according to what state\n\t\t// we are currently in\n\t\tif fileJob.Content[index] == '\\n' || index >= endPoint {\n\t\t\tfileJob.Lines++\n\t\t\tfileJob.ComplexityLine = append(fileJob.ComplexityLine, 0)\n\n\t\t\tif NoLarge && fileJob.Lines >= LargeLineCount {\n\t\t\t\t// Save memory by unsetting the content as we no longer require it\n\t\t\t\tfileJob.Content = nil\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tswitch currentState {\n\t\t\tcase SCode, SString, SCommentCode, SMulticommentCode:\n\t\t\t\tfileJob.Code++\n\t\t\t\tcurrentState = resetState(currentState)\n\t\t\t\tif fileJob.Callback != nil {\n\t\t\t\t\tif !fileJob.Callback.ProcessLine(fileJob, fileJob.Lines, LINE_CODE) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif Trace {\n\t\t\t\t\t// Don't remove the outside if-statements, for performance\n\t\t\t\t\tprintTraceF(\"%s line %d ended with state: %d: counted as code\", fileJob.Location, fileJob.Lines, currentState)\n\t\t\t\t}\n\t\t\tcase SComment, SMulticomment, SMulticommentBlank:\n\t\t\t\tfileJob.Comment++\n\t\t\t\tcurrentState = resetState(currentState)\n\t\t\t\tif fileJob.Callback != nil {\n\t\t\t\t\tif !fileJob.Callback.ProcessLine(fileJob, fileJob.Lines, LINE_COMMENT) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif Trace {\n\t\t\t\t\t// Same as above\n\t\t\t\t\tprintTraceF(\"%s line %d ended with state: %d: counted as comment\", fileJob.Location, fileJob.Lines, currentState)\n\t\t\t\t}\n\t\t\tcase SBlank:\n\t\t\t\tfileJob.Blank++\n\t\t\t\tif fileJob.Callback != nil {\n\t\t\t\t\tif !fileJob.Callback.ProcessLine(fileJob, fileJob.Lines, LINE_BLANK) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif Trace {\n\t\t\t\t\t// Same as above\n\t\t\t\t\tprintTraceF(\"%s line %d ended with state: %d: counted as blank\", fileJob.Location, fileJob.Lines, currentState)\n\t\t\t\t}\n\t\t\tcase SDocString:\n\t\t\t\tfileJob.Comment++\n\t\t\t\tif fileJob.Callback != nil {\n\t\t\t\t\tif !fileJob.Callback.ProcessLine(fileJob, fileJob.Lines, LINE_COMMENT) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif Trace {\n\t\t\t\t\t// Same as above\n\t\t\t\t\tprintTraceF(\"%s line %d ended with state: %d: counted as comment\", fileJob.Location, fileJob.Lines, currentState)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif UlocMode {\n\t\tuloc := map[string]struct{}{}\n\t\tfor l := range strings.SplitSeq(strings.TrimRight(string(fileJob.Content), \"\\n\"), \"\\n\") {\n\t\t\tuloc[l] = struct{}{}\n\t\t}\n\t\tfileJob.Uloc = len(uloc)\n\t}\n\n\tif MaxMean {\n\t\tfor l := range strings.SplitSeq(strings.TrimRight(string(fileJob.Content), \"\\n\"), \"\\n\") {\n\t\t\tfileJob.LineLength = append(fileJob.LineLength, len(l))\n\t\t}\n\t}\n\n\tisGenerated := false\n\n\tif Generated {\n\t\theadLen := min(1000, len(fileJob.Content))\n\t\thead := bytes.ToLower(fileJob.Content[0:headLen])\n\t\tfor _, marker := range GeneratedMarkers {\n\t\t\tif bytes.Contains(head, bytes.ToLower([]byte(marker))) {\n\t\t\t\tfileJob.Generated = true\n\t\t\t\tfileJob.Language = fileJob.Language + \" (gen)\"\n\t\t\t\tisGenerated = true\n\t\t\t\tprintWarnF(\"%s identified as isGenerated with heading comment\", fileJob.Filename)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t// check if 0 as well to avoid divide by zero https://github.com/boyter/scc/issues/223\n\tif !isGenerated && Minified && fileJob.Lines != 0 {\n\t\tavgLineByteCount := len(fileJob.Content) / int(fileJob.Lines)\n\t\tminifiedGeneratedCheck(avgLineByteCount, fileJob)\n\t}\n\n\tfileJob.ComplexityLine = fileJob.ComplexityLine[:fileJob.Lines]\n}\n\nfunc minifiedGeneratedCheck(avgLineByteCount int, fileJob *FileJob) {\n\tif avgLineByteCount >= MinifiedGeneratedLineByteLength {\n\t\tfileJob.Minified = true\n\t\tfileJob.Language = fileJob.Language + \" (min)\"\n\t\tprintWarnF(\"%s identified as minified/generated with average line byte length of %d >= %d\", fileJob.Filename, avgLineByteCount, MinifiedGeneratedLineByteLength)\n\t} else {\n\t\tprintDebugF(\"%s not identified as minified/generated with average line byte length of %d < %d\", fileJob.Filename, avgLineByteCount, MinifiedGeneratedLineByteLength)\n\t}\n}\n\n// Check if we have any Byte Order Marks (BOM) in front of the file\nfunc checkBomSkip(fileJob *FileJob) int {\n\t// UTF-8 BOM which if detected we should skip the BOM as we can then count correctly\n\t// []byte is UTF-8 BOM taken from https://en.wikipedia.org/wiki/Byte_order_mark#Byte_order_marks_by_encoding\n\tif bytes.HasPrefix(fileJob.Content, []byte{239, 187, 191}) {\n\t\tprintWarnF(\"UTF-8 BOM found for file %s skipping 3 bytes\", fileJob.Filename)\n\t\treturn 3\n\t}\n\n\t// If we have one of the other BOM then we might not be able to count correctly so if verbose let the user know\n\tif Verbose {\n\t\tfor _, v := range ByteOrderMarks {\n\t\t\tif bytes.HasPrefix(fileJob.Content, v) {\n\t\t\t\tprintWarnF(\"BOM found for file %s indicating it is not ASCII/UTF-8 and may be counted incorrectly or ignored as a binary file\", fileJob.Filename)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn 0\n}\n\n// Reads and processes files from input chan in parallel, and sends results to\n// output chan\nfunc fileProcessorWorker(input chan *FileJob, output chan *FileJob) {\n\tvar startTime int64\n\tvar fileCount int64\n\tvar gcEnabled int64\n\tvar wg sync.WaitGroup\n\n\tfor i := 0; i < FileProcessJobWorkers; i++ {\n\t\twg.Add(1)\n\t\tgo func() {\n\t\t\treader := NewFileReader()\n\n\t\t\tfor job := range input {\n\t\t\t\tatomic.CompareAndSwapInt64(&startTime, 0, makeTimestampMilli())\n\n\t\t\t\tloc := job.Location\n\t\t\t\tif job.Symlocation != \"\" {\n\t\t\t\t\tloc = job.Symlocation\n\t\t\t\t}\n\n\t\t\t\tfileStartTime := makeTimestampNano()\n\t\t\t\tcontent, err := reader.ReadFile(loc, int(job.Bytes))\n\t\t\t\tatomic.AddInt64(&fileCount, 1)\n\n\t\t\t\tif atomic.LoadInt64(&gcEnabled) == 0 && atomic.LoadInt64(&fileCount) >= int64(GcFileCount) {\n\t\t\t\t\tdebug.SetGCPercent(gcPercent)\n\t\t\t\t\tatomic.AddInt64(&gcEnabled, 1)\n\t\t\t\t\tprintWarn(\"read file limit exceeded GC re-enabled\")\n\t\t\t\t}\n\n\t\t\t\tprintTraceF(\"nanoseconds read into memory: %s: %d\", job.Location, makeTimestampNano()-fileStartTime)\n\n\t\t\t\tif err == nil {\n\t\t\t\t\tjob.Content = content\n\t\t\t\t\tif processFile(job) {\n\t\t\t\t\t\toutput <- job\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tprintWarnF(\"error reading: %s %s\", job.Location, err)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\twg.Done()\n\t\t}()\n\t}\n\n\tgo func() {\n\t\twg.Wait()\n\t\tclose(output)\n\n\t\tprintDebugF(\"milliseconds reading files into memory: %d\", makeTimestampMilli()-startTime)\n\t}()\n}\n\n// Process a single file\n// File must have been read to job.Content already\nfunc processFile(job *FileJob) bool {\n\tfileStartTime := makeTimestampNano()\n\n\tcontents := job.Content\n\n\t// Needs to always run to ensure the language is set\n\tjob.Language = DetermineLanguage(job.Filename, job.Language, job.PossibleLanguages, job.Content)\n\n\tremapped := false\n\tif RemapAll != \"\" {\n\t\thardRemapLanguage(job)\n\t}\n\n\t// If the type is #! we should check to see if we can identify\n\tif job.Language == SheBang {\n\t\tif RemapUnknown != \"\" {\n\t\t\tremapped = unknownRemapLanguage(job)\n\t\t}\n\n\t\t// if we didn't remap we then want to see if it's a #! map\n\t\tif !remapped {\n\t\t\tcutoff := min(200, len(contents))\n\n\t\t\tlang, err := DetectSheBang(string(contents[:cutoff]))\n\t\t\tif err != nil {\n\t\t\t\tprintWarnF(\"unable to determine #! language for %s\", job.Location)\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tprintWarnF(\"detected #! %s for %s\", lang, job.Location)\n\t\t\tjob.Language = lang\n\t\t\tLoadLanguageFeature(lang)\n\t\t}\n\t}\n\n\tCountStats(job)\n\n\tif Duplicates {\n\t\tduplicates.mux.Lock()\n\t\tjobHash := job.Hash.Sum(nil)\n\t\tif duplicates.Check(job.Bytes, jobHash) {\n\t\t\tprintWarnF(\"skipping duplicate file: %s\", job.Location)\n\t\t\tduplicates.mux.Unlock()\n\t\t\treturn false\n\t\t}\n\n\t\tduplicates.Add(job.Bytes, jobHash)\n\t\tduplicates.mux.Unlock()\n\t}\n\n\tif IgnoreMinified && job.Minified {\n\t\tprintWarnF(\"skipping minified file: %s\", job.Location)\n\t\treturn false\n\t}\n\n\tif IgnoreGenerated && job.Generated {\n\t\tprintWarnF(\"skipping generated file: %s\", job.Location)\n\t\treturn false\n\t}\n\n\tif NoLarge && job.Lines >= LargeLineCount {\n\t\tprintWarnF(\"skipping large file due to line length: %s\", job.Location)\n\t\treturn false\n\t}\n\n\tprintTraceF(\"nanoseconds process: %s: %d\", job.Location, makeTimestampNano()-fileStartTime)\n\n\tif job.Binary {\n\t\tprintWarnF(\"skipping file identified as binary: %s\", job.Location)\n\t\treturn false\n\t}\n\n\t// This needs to be at the end so we can ensure duplicate detection et.al run first\n\t// avoiding inflating the counts\n\tif UlocMode {\n\t\tulocMutex.Lock()\n\n\t\tfor l := range strings.SplitSeq(strings.TrimRight(string(job.Content), \"\\n\"), \"\\n\") {\n\t\t\tulocGlobalCount[l] = struct{}{}\n\n\t\t\t_, ok := ulocLanguageCount[job.Language]\n\t\t\tif !ok {\n\t\t\t\tulocLanguageCount[job.Language] = map[string]struct{}{}\n\t\t\t}\n\t\t\tulocLanguageCount[job.Language][l] = struct{}{}\n\t\t}\n\t\tulocMutex.Unlock()\n\t}\n\n\treturn true\n}\n\nfunc hardRemapLanguage(job *FileJob) bool {\n\tremapped := false\n\tfor s := range strings.SplitSeq(RemapAll, \",\") {\n\t\tt := strings.Split(s, \":\")\n\t\tif len(t) == 2 {\n\t\t\tcutoff := min(1000, len(job.Content)) // at most 1000 bytes into the file to look\n\n\t\t\tif strings.Contains(string(job.Content[:cutoff]), t[0]) {\n\t\t\t\tjob.Language = t[1]\n\t\t\t\tremapped = true\n\t\t\t\tprintWarnF(\"hard remapping: %s to %s\", job.Location, job.Language)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn remapped\n}\n\nfunc unknownRemapLanguage(job *FileJob) bool {\n\tremapped := false\n\tfor s := range strings.SplitSeq(RemapUnknown, \",\") {\n\t\tt := strings.Split(s, \":\")\n\t\tif len(t) == 2 {\n\t\t\tcutoff := min(1000, len(job.Content)) // at most 1000 bytes into the file to look\n\n\t\t\tif strings.Contains(string(job.Content[:cutoff]), t[0]) {\n\t\t\t\tprintWarnF(\"unknown remapping: %s to %s\", job.Location, job.Language)\n\t\t\t\tjob.Language = t[1]\n\t\t\t\tremapped = true\n\t\t\t}\n\t\t}\n\t}\n\n\treturn remapped\n}\n"
  },
  {
    "path": "processor/workers_regression_test.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport \"testing\"\n\n// https://github.com/boyter/scc/issues/72\n// Turns out the above is due to BOM being present for that file\nfunc TestCountStatsIssue72(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"C#\",\n\t}\n\n\tfileJob.SetContent(`   // Comment 1\nnamespace Baz\n{\n    using System;\n\n    public class FooClass\n    {\n        public void Test(string report)\n        {\n          // Comment 2\n          throw new NotImplementedException();\n        }\n    }\n}`)\n\n\t// Set the BOM\n\tfileJob.Content[0] = 239\n\tfileJob.Content[1] = 187\n\tfileJob.Content[2] = 191\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 14 {\n\t\tt.Errorf(\"Expected 14 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 11 {\n\t\tt.Errorf(\"Expected 11 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 2 {\n\t\tt.Errorf(\"Expected 2 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsPr76(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Go\",\n\t}\n\n\tfileJob.SetContent(`package main\nvar MyString = ` + \"`\\\\`\" + `\n// Comment`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 3 {\n\t\tt.Errorf(\"Expected 3 lines\")\n\t}\n\n\tif fileJob.Code != 2 {\n\t\tt.Errorf(\"Expected 2 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Blank)\n\t}\n}\n\n// https://github.com/boyter/scc/issues/62\nfunc TestCountStatsIssue62(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Python\",\n\t}\n\n\tfileJob.SetContent(`def f():\n\t\"\"\"\n\tThis is a docstring\n\t\"\"\"\n\t# A normal comment\n\n\thello_world = \"Some string declaration\"\n\tprint(hello_world)\n\tpass\n\n\tdef g():\n\t'''\n\tThis is a not PEP-8 conform docstring'''\n\tpass\n`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 14 {\n\t\tt.Errorf(\"Expected 14 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 6 {\n\t\tt.Errorf(\"Expected 6 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 6 {\n\t\tt.Errorf(\"Expected 6 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 2 {\n\t\tt.Errorf(\"Expected 2 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsIssue123(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Python\",\n\t}\n\n\tfileJob.SetContent(`\"\"\"\nhello there! how's it going?\n\"\"\"`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 2 {\n\t\tt.Errorf(\"Expected 2 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsIssue230(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Elm\",\n\t}\n\n\tfileJob.SetContent(`module Main exposing (main)\n\nimport Html\n\n\nmain =\n    Html.node \"style\" [] [ Html.text \"div[role=button] {-webkit-tap-highlight-color: transparent}\" ]\n\n\na =\n    3`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 11 {\n\t\tt.Errorf(\"Expected 11 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 6 {\n\t\tt.Errorf(\"Expected 6 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 5 {\n\t\tt.Errorf(\"Expected 5 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsComplexityLines(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Go\",\n\t}\n\n\tfileJob.SetContent(`fileJob.Comment++\n\t\t\t\tif fileJob.Callback != nil {\n\t\t\t\t\tif !fileJob.Callback.ProcessLine(fileJob, fileJob.Lines, LINE_COMMENT) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif Trace {\n\t\t\t\t\tprintTrace(fmt.Sprintf(\"%s line %d ended with state: %d: counted as comment\", fileJob.Location, fileJob.Lines, currentState))\n\t\t\t\t}`)\n\n\tCountStats(&fileJob)\n\n\tif len(fileJob.ComplexityLine) != int(fileJob.Lines) {\n\t\tt.Errorf(\"Expected %d lines got %d\", fileJob.Lines, len(fileJob.ComplexityLine))\n\t}\n}\n"
  },
  {
    "path": "processor/workers_test.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"bytes\"\n\t\"reflect\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc (job *FileJob) SetContent(content string) {\n\tjob.Content = []byte(content)\n\tjob.Bytes = int64(len(job.Content))\n}\n\nfunc TestIsWhitespace(t *testing.T) {\n\tif !isWhitespace(' ') {\n\t\tt.Errorf(\"Expected to be true\")\n\t}\n}\n\nfunc TestIsBinaryTrue(t *testing.T) {\n\tDisableCheckBinary = false\n\n\tif !isBinary(0, 0) {\n\t\tt.Errorf(\"Expected to be true\")\n\t}\n}\n\nfunc TestIsBinaryDisableCheck(t *testing.T) {\n\tDisableCheckBinary = true\n\n\tif isBinary(0, 0) {\n\t\tt.Errorf(\"Expected to be false\")\n\t}\n}\n\nfunc TestCountStatsLines(t *testing.T) {\n\tTrace = false\n\tDebug = false\n\tVerbose = false\n\n\tfileJob := FileJob{\n\t\tContent: []byte(\"\"),\n\t\tLines:   0,\n\t}\n\n\t// Both tokei and sloccount count this as 0 so lets follow suit\n\t// cloc ignores the file itself because it is empty\n\tCountStats(&fileJob)\n\tif fileJob.Lines != 0 {\n\t\tt.Errorf(\"Zero lines expected got %d\", fileJob.Lines)\n\t}\n\n\t// Interestingly this file would be 0 lines in \"wc -l\" because it only counts newlines\n\t// all others count this as 1\n\tfileJob.Lines = 0\n\tfileJob.SetContent(\"a\")\n\tCountStats(&fileJob)\n\tif fileJob.Lines != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Lines)\n\t}\n\n\tfileJob.Lines = 0\n\tfileJob.SetContent(\"a\\n\")\n\tCountStats(&fileJob)\n\tif fileJob.Lines != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Lines)\n\t}\n\n\t// tokei counts this as 1 because it's still on a single line unless something follows\n\t// the newline it's still 1 line\n\tfileJob.Lines = 0\n\tfileJob.SetContent(\"1\\n\")\n\tCountStats(&fileJob)\n\tif fileJob.Lines != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Lines)\n\t}\n\n\tfileJob.Lines = 0\n\tfileJob.SetContent(\"1\\n2\\n\")\n\tCountStats(&fileJob)\n\tif fileJob.Lines != 2 {\n\t\tt.Errorf(\"Two lines expected got %d\", fileJob.Lines)\n\t}\n\n\tfileJob.Lines = 0\n\tfileJob.SetContent(\"1\\n2\\n3\")\n\tCountStats(&fileJob)\n\tif fileJob.Lines != 3 {\n\t\tt.Errorf(\"Three lines expected got %d\", fileJob.Lines)\n\t}\n\n\tcontent := \"\"\n\tfor i := 0; i < 5000; i++ {\n\t\tcontent += \"a\\n\"\n\t\tfileJob.Lines = 0\n\t\tfileJob.SetContent(content)\n\t\tCountStats(&fileJob)\n\t\tif fileJob.Lines != int64(i+1) {\n\t\t\tt.Errorf(\"Expected %d got %d\", i+1, fileJob.Lines)\n\t\t}\n\t}\n}\n\nfunc TestCountStatsCode(t *testing.T) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"\"),\n\t\tCode:    0,\n\t}\n\n\t// Both tokei and sloccount count this as 0 so lets follow suit\n\t// cloc ignores the file itself because it is empty\n\tCountStats(&fileJob)\n\tif fileJob.Code != 0 {\n\t\tt.Errorf(\"Zero lines expected got %d\", fileJob.Code)\n\t}\n\n\t// Interestingly this file would be 0 lines in \"wc -l\" because it only counts newlines\n\t// all others count this as 1\n\tfileJob.Code = 0\n\tfileJob.SetContent(\"a\")\n\tCountStats(&fileJob)\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Code)\n\t}\n\n\tfileJob.Code = 0\n\tfileJob.SetContent(\"i++ # comment\")\n\tCountStats(&fileJob)\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Code)\n\t}\n\n\tfileJob.Code = 0\n\tfileJob.SetContent(\"i++ // comment\")\n\tCountStats(&fileJob)\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Code)\n\t}\n\n\tfileJob.Code = 0\n\tfileJob.SetContent(\"a\\n\")\n\tCountStats(&fileJob)\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Code)\n\t}\n\n\t// tokei counts this as 1 because it's still on a single line unless something follows\n\t// the newline it's still 1 line\n\tfileJob.Code = 0\n\tfileJob.SetContent(\"1\\n\")\n\tCountStats(&fileJob)\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Code)\n\t}\n\n\tfileJob.Code = 0\n\tfileJob.SetContent(\"1\\n2\\n\")\n\tCountStats(&fileJob)\n\tif fileJob.Code != 2 {\n\t\tt.Errorf(\"Two lines expected got %d\", fileJob.Code)\n\t}\n\n\tfileJob.Code = 0\n\tfileJob.SetContent(\"1\\n2\\n3\")\n\tCountStats(&fileJob)\n\tif fileJob.Code != 3 {\n\t\tt.Errorf(\"Three lines expected got %d\", fileJob.Code)\n\t}\n\n\tcontent := \"\"\n\tfor i := 0; i < 100; i++ {\n\t\tcontent += \"a\\n\"\n\t\tfileJob.Code = 0\n\t\tfileJob.SetContent(content)\n\t\tCountStats(&fileJob)\n\t\tif fileJob.Code != int64(i+1) {\n\t\t\tt.Errorf(\"Expected %d got %d\", i+1, fileJob.Code)\n\t\t}\n\t}\n}\n\nfunc TestCountStatsWithQuotes(t *testing.T) {\n\tfileJob := FileJob{}\n\n\tfileJob.Code = 0\n\tfileJob.Comment = 0\n\tfileJob.Complexity = 0\n\tfileJob.SetContent(`var test = \"/*\";`)\n\tCountStats(&fileJob)\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Code)\n\t}\n\tif fileJob.Comment != 0 {\n\t\tt.Errorf(\"No line expected got %d\", fileJob.Comment)\n\t}\n\n\tfileJob.Code = 0\n\tfileJob.Comment = 0\n\tfileJob.Complexity = 0\n\tfileJob.SetContent(`t = \" if \";`)\n\tCountStats(&fileJob)\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Code)\n\t}\n\tif fileJob.Comment != 0 {\n\t\tt.Errorf(\"No line expected got %d\", fileJob.Comment)\n\t}\n\tif fileJob.Complexity != 0 {\n\t\tt.Errorf(\"No line expected got %d\", fileJob.Complexity)\n\t}\n\n\tfileJob.Code = 0\n\tfileJob.Comment = 0\n\tfileJob.Complexity = 0\n\tfileJob.SetContent(`t = \" if switch for while do loop != == && || \";`)\n\tCountStats(&fileJob)\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Code)\n\t}\n\tif fileJob.Comment != 0 {\n\t\tt.Errorf(\"No line expected got %d\", fileJob.Comment)\n\t}\n\tif fileJob.Complexity != 0 {\n\t\tt.Errorf(\"No line expected got %d\", fileJob.Complexity)\n\t}\n}\n\nfunc TestCountStatsBlankLines(t *testing.T) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"\"),\n\t\tBlank:   0,\n\t}\n\n\tCountStats(&fileJob)\n\tif fileJob.Blank != 0 {\n\t\tt.Errorf(\"Zero lines expected got %d\", fileJob.Blank)\n\t}\n\n\tfileJob.Blank = 0\n\tfileJob.SetContent(\" \")\n\tCountStats(&fileJob)\n\tif fileJob.Blank != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Blank)\n\t}\n\n\tfileJob.Blank = 0\n\tfileJob.SetContent(\"\\n\")\n\tCountStats(&fileJob)\n\tif fileJob.Blank != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Blank)\n\t}\n\n\tfileJob.Blank = 0\n\tfileJob.SetContent(\"\\n \")\n\tCountStats(&fileJob)\n\tif fileJob.Blank != 2 {\n\t\tt.Errorf(\"Two line expected got %d\", fileJob.Blank)\n\t}\n\n\tfileJob.Blank = 0\n\tfileJob.SetContent(\"            \")\n\tCountStats(&fileJob)\n\tif fileJob.Blank != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Blank)\n\t}\n\n\tfileJob.Blank = 0\n\tfileJob.SetContent(\"            \\n             \")\n\tCountStats(&fileJob)\n\tif fileJob.Blank != 2 {\n\t\tt.Errorf(\"Two lines expected got %d\", fileJob.Blank)\n\t}\n\n\tfileJob.Blank = 0\n\tfileJob.SetContent(\"\\r\\n\\r\\n\")\n\tCountStats(&fileJob)\n\tif fileJob.Blank != 2 {\n\t\tt.Errorf(\"Two lines expected got %d\", fileJob.Blank)\n\t}\n\n\tfileJob.Blank = 0\n\tfileJob.SetContent(\"\\r\\n\")\n\tCountStats(&fileJob)\n\tif fileJob.Blank != 1 {\n\t\tt.Errorf(\"One line expected got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsComplexityCount(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{}\n\n\tchecks := []string{\n\t\t\"if \",\n\t\t\"\tif \",\n\t\t\"if a.equals(b) {\",\n\t\t\"if(\",\n\t\t\" if(i.equals(0))\",\n\t\t\"    if(\",\n\t\t\"    if( \",\n\t}\n\n\tfor _, check := range checks {\n\t\tfileJob.Complexity = 0\n\t\tfileJob.SetContent(check)\n\t\tfileJob.Language = \"Java\"\n\t\tCountStats(&fileJob)\n\t\tif fileJob.Complexity != 1 {\n\t\t\tt.Errorf(\"Expected complexity of 1 got %d for %s\", fileJob.Complexity, check)\n\t\t}\n\t}\n}\n\nfunc TestCountStatsComplexityCountFalse(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{}\n\n\tchecks := []string{\n\t\t\"if\",\n\t\t\"aif \",\n\t\t\"aif(\",\n\t}\n\n\tfor _, check := range checks {\n\t\tfileJob.Complexity = 0\n\t\tfileJob.SetContent(check)\n\t\tfileJob.Language = \"Java\"\n\t\tCountStats(&fileJob)\n\t\tif fileJob.Complexity != 0 {\n\t\t\tt.Errorf(\"Expected complexity of 0 got %d for %s\", fileJob.Complexity, check)\n\t\t}\n\t}\n\n}\n\ntype linecounter struct {\n\tblanks   int\n\tcomments int\n\tcode     int\n\tloc      int\n\tstop     bool\n}\n\nfunc (l *linecounter) ProcessLine(job *FileJob, currentLine int64, lineType LineType) bool {\n\tl.loc++\n\tswitch lineType {\n\tcase LINE_BLANK:\n\t\tl.blanks++\n\tcase LINE_COMMENT:\n\t\tl.comments++\n\tcase LINE_CODE:\n\t\tl.code++\n\t}\n\treturn !l.stop\n}\n\nfunc TestCountStatsCallback(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{}\n\n\tfileJob.SetContent(`package foo\n\nimport com.foo.bar;\n\n// this is a comment\nclass A {\n}`)\n\tvar lc linecounter\n\tfileJob.Language = \"Java\"\n\tfileJob.Callback = &lc\n\tCountStats(&fileJob)\n\tif lc.loc != 7 {\n\t\tt.Errorf(\"Expected loc of 7 got %d\", lc.loc)\n\t}\n\tif lc.blanks != 2 {\n\t\tt.Errorf(\"Expected loc of 2 got %d\", lc.blanks)\n\t}\n\tif lc.comments != 1 {\n\t\tt.Errorf(\"Expected loc of 1 got %d\", lc.comments)\n\t}\n\tif lc.code != 4 {\n\t\tt.Errorf(\"Expected loc of 4 got %d\", lc.code)\n\t}\n}\n\nfunc TestCountStatsCallbackInterrupt(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{}\n\n\tfileJob.SetContent(`package foo\n\nimport com.foo.bar;\n\n// this is a comment\nclass A {\n}`)\n\tvar lc linecounter\n\tlc.stop = true\n\tfileJob.Language = \"Java\"\n\tfileJob.Callback = &lc\n\tCountStats(&fileJob)\n\tif lc.loc != 1 {\n\t\tt.Errorf(\"Expected loc of 1 got %d\", lc.loc)\n\t}\n}\n\n// Edge case condition where if ending with comment it would be counted\n// as code due to how internal state work.\nfunc TestCountStatsEdgeCase1(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Java\",\n\t}\n\n\tfileJob.SetContent(`/**/\n`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Comment != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Comment)\n\t}\n}\n\n// Turns out that some languages such as Rust support\n// nested comments. Check that it works here\nfunc TestCountStatsNestedComments(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Rust\",\n\t}\n\n\tfileJob.SetContent(`/*/**/*/`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Blank)\n\t}\n}\n\n// Java does not support nested multiline comments\nfunc TestCountStatsNestedCommentsJava(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Java\",\n\t}\n\n\tfileJob.SetContent(`/*/**/*/`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsNestedCommentsRegression(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Rust\",\n\t}\n\n\tfileJob.SetContent(`t/*/**/*/`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsSingleCommentRegression(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Rust\",\n\t}\n\n\tfileJob.SetContent(`t = \"\n/*\n\";`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 3 {\n\t\tt.Errorf(\"Expected 3 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 3 {\n\t\tt.Errorf(\"Expected 3 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsStringCheck(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Rust\",\n\t}\n\n\tfileJob.SetContent(`let does_not_start = // \"\n\"until here,\ntest/*\ntest\"; // a quote: \"`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 4 {\n\t\tt.Errorf(\"Expected 4 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 4 {\n\t\tt.Errorf(\"Expected 4 code lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 0 {\n\t\tt.Errorf(\"Expected 0 comment lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 0 {\n\t\tt.Errorf(\"Expected 0 blank lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsBosque(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Bosque\",\n\t}\n\n\tfileJob.SetContent(`//This is a bosque test\nmethod offsetMomentum(px: Float, py: Float, pz: Float): Body {\n      return this<~(vx=Float::div(px->negate(), Body::solar_mass), vy=Float::div(py->negate(), Body::solar_mass), vz=Float::div(pz->negate(), Body::solar_mass));\n}`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 4 {\n\t\tt.Errorf(\"Expected 4 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 3 {\n\t\tt.Errorf(\"Expected 4 code lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 1 {\n\t\tt.Errorf(\"Expected 0 comment lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 0 {\n\t\tt.Errorf(\"Expected 0 blank lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCheckForMatchNoMatch(t *testing.T) {\n\tProcessConstants()\n\n\tfileJob := FileJob{\n\t\tLanguage: \"Rust\",\n\t\tContent:  []byte(\"one does not simply walk into mordor\"),\n\t}\n\n\tmatches := &Trie{}\n\tmatches.Insert(TSlcomment, []byte(\"//\"))\n\tmatches.Insert(TSlcomment, []byte(\"--\"))\n\n\tmatch, _, _ := matches.Match(fileJob.Content)\n\n\tif match != 0 {\n\t\tt.Errorf(\"Expected no match\")\n\t}\n}\n\nfunc TestCheckForMatchHasMatch(t *testing.T) {\n\tProcessConstants()\n\n\tfileJob := FileJob{\n\t\tLanguage: \"Rust\",\n\t\tContent:  []byte(\"// one does not simply walk into mordor\"),\n\t}\n\n\tmatches := &Trie{}\n\tmatches.Insert(TSlcomment, []byte(\"//\"))\n\tmatches.Insert(TSlcomment, []byte(\"--\"))\n\n\tmatch, _, _ := matches.Match(fileJob.Content)\n\n\tif match != TSlcomment {\n\t\tt.Errorf(\"Expected match\")\n\t}\n}\n\nfunc TestCheckForMatchSingleNoMatch(t *testing.T) {\n\tProcessConstants()\n\n\tfileJob := FileJob{\n\t\tLanguage: \"Rust\",\n\t\tContent:  []byte(\"// one does not simply walk into mordor\"),\n\t}\n\n\tmatches := []byte(\"*/\")\n\n\tmatch := checkForMatchSingle('/', 0, 100, matches, &fileJob)\n\n\tif match != false {\n\t\tt.Errorf(\"Expected no match\")\n\t}\n}\n\nfunc TestCheckForMatchSingleMatch(t *testing.T) {\n\tProcessConstants()\n\n\tfileJob := FileJob{\n\t\tLanguage: \"Rust\",\n\t\tContent:  []byte(\"*/ one does not simply walk into mordor\"),\n\t}\n\n\tmatches := []byte(\"*/\")\n\n\tmatch := checkForMatchSingle('*', 0, 100, matches, &fileJob)\n\n\tif match != true {\n\t\tt.Errorf(\"Expected match\")\n\t}\n}\n\nfunc TestCheckComplexityMatch(t *testing.T) {\n\tProcessConstants()\n\n\tfileJob := FileJob{\n\t\tLanguage: \"Java\",\n\t\tContent:  []byte(\"for (int i=0; i<100; i++) {\"),\n\t}\n\n\tmatches := &Trie{}\n\tmatches.Insert(TComplexity, []byte(\"for \"))\n\tmatches.Insert(TComplexity, []byte(\"for(\"))\n\n\tmatch, n, _ := matches.Match(fileJob.Content)\n\n\tif match != TComplexity || n != 4 {\n\t\tt.Errorf(\"Expected match\")\n\t}\n}\n\nfunc TestCheckComplexityNoMatch(t *testing.T) {\n\tProcessConstants()\n\n\tfileJob := FileJob{\n\t\tLanguage: \"Java\",\n\t\tContent:  []byte(\"far (int i=0; i<100; i++) {\"),\n\t}\n\n\tmatches := &Trie{}\n\tmatches.Insert(TComplexity, []byte(\"for \"))\n\tmatches.Insert(TComplexity, []byte(\"for(\"))\n\n\tmatch, _, _ := matches.Match(fileJob.Content)\n\n\tif match != 0 {\n\t\tt.Errorf(\"Expected no match\")\n\t}\n}\n\nfunc TestCountStatsRubyRegression(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Ruby\",\n\t}\n\n\tfileJob.SetContent(`=begin\n=end\nt`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 3 {\n\t\tt.Errorf(\"Expected 3 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"Expected 1 code lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 2 {\n\t\tt.Errorf(\"Expected 2 comment lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 0 {\n\t\tt.Errorf(\"Expected 0 blank lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestFileProcessorWorker(t *testing.T) {\n\tinputChan := make(chan *FileJob, 10000)\n\n\tinputChan <- &FileJob{\n\t\tFilename:  \"testing.go\",\n\t\tLocation:  \"./\",\n\t\tExtension: \"go\",\n\t\tContent:   []byte(\"this is some content\"),\n\t}\n\n\tclose(inputChan)\n\toutputChan := make(chan *FileJob, 10000)\n\n\tDuplicates = true\n\n\tfileProcessorWorker(inputChan, outputChan)\n\n\tfor res := range outputChan {\n\t\tif res.Bytes == 0 {\n\t\t\tt.Error(\"Expect bytes to have something\")\n\t\t}\n\t}\n}\n\nfunc TestEdgeCase(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"C#\",\n\t}\n\n\t// For C# we can enter a string using @\" or \" but if we do the former,\n\t// and we don't skip over the full length we exit the string in this case\n\t// which means we pick up the /* and the count is incorrect\n\tfileJob.SetContent(`@\"\\ /*\"\na`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 2 {\n\t\tt.Errorf(\"Expected 2 lines\")\n\t}\n\n\tif fileJob.Code != 2 {\n\t\tt.Errorf(\"Expected 2 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Comment)\n\t}\n}\n\nfunc TestEdgeCaseOther(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"C#\",\n\t}\n\n\t// For C# we can enter a string using @\" or \" but if we do the former,\n\t// and we don't skip over the full length we exit the string in this case\n\t// which means we pick up the /* and the count is incorrect\n\tfileJob.SetContent(`@\"C:\\\" /*\na */`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 2 {\n\t\tt.Errorf(\"Expected 2 lines\")\n\t}\n\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Comment)\n\t}\n}\n\nfunc TestCountStatsCSharpIgnoreEscape(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"C#\",\n\t}\n\n\tfileJob.SetContent(`namespace Ns\n{\n   public class Cls\n   {\n       private const string BasePath = @\"a:\\\";\n\n       [Fact]\n       public void MyTest()\n       {\n           // Arrange.\n           Foo();\n\n           // Act.\n           Bar();\n\n           // Assert.\n           Baz();\n       }\n   }\n}`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 20 {\n\t\tt.Errorf(\"Expected 20 lines\")\n\t}\n\n\tif fileJob.Code != 14 {\n\t\tt.Errorf(\"Expected 14 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 3 {\n\t\tt.Errorf(\"Expected 3 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 3 {\n\t\tt.Errorf(\"Expected 3 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCheckBomSkipUTF8(t *testing.T) {\n\tfileJob := &FileJob{\n\t\tContent: []byte{239, 187, 191}, // UTF-8 BOM\n\t}\n\n\tskip := checkBomSkip(fileJob)\n\tif skip != 3 {\n\t\tt.Errorf(\"Expected skip length to match 3 got %d\", skip)\n\t}\n}\n\nfunc TestCheckBomSkip(t *testing.T) {\n\tVerbose = true\n\tfor _, v := range ByteOrderMarks {\n\t\tfileJob := &FileJob{\n\t\t\tContent: v,\n\t\t}\n\n\t\tskip := checkBomSkip(fileJob)\n\t\tif skip != 0 {\n\t\t\tt.Errorf(\"Expected skip length to match %d got %d\", len(v), skip)\n\t\t}\n\t}\n}\n\n// Captures checking if a quote is prefixed by \\ such as in\n// a char which should otherwise trigger the string state which is incorrect\nfunc TestCountStatsIssue73(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Java\",\n\t}\n\n\tfileJob.SetContent(`'\\\"'{\ncode\n\n`)\n\tfileJob.Bytes = int64(len(fileJob.Content))\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 3 {\n\t\tt.Errorf(\"Expected 3 lines\")\n\t}\n\n\tif fileJob.Code != 2 {\n\t\tt.Errorf(\"Expected 2 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsIssue106(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Go\",\n\t}\n\n\tfileJob.SetContent(\"foo = `\\nabc\\\"\\ndef\\n`\")\n\n\tCountStats(&fileJob)\n}\n\nfunc TestMinifiedGeneratedCheck(t *testing.T) {\n\tfileJob := FileJob{\n\t\tLanguage: \"Go\",\n\t}\n\n\tfileJob.SetContent(\"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890ABCDEF\")\n\tMinified = true\n\tCountStats(&fileJob)\n\tMinified = false\n\n\tif fileJob.Minified != true {\n\t\tt.Error(\"Expected minified to come back true\")\n\t}\n}\n\nfunc TestMinifiedGeneratedCheckTwoLines(t *testing.T) {\n\tfileJob := FileJob{\n\t\tLanguage: \"Go\",\n\t}\n\n\tfileJob.SetContent(\"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890ABCDEF\\n1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890ABCDEF\")\n\tMinified = true\n\tCountStats(&fileJob)\n\tMinified = false\n\n\tif fileJob.Minified != true {\n\t\tt.Error(\"Expected minified to come back true\")\n\t}\n}\n\nfunc TestMinifiedGeneratedCheckEdge(t *testing.T) {\n\tfileJob := FileJob{\n\t\tLanguage: \"Go\",\n\t}\n\n\tfileJob.SetContent(\"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890ABCD\")\n\tMinified = true\n\tCountStats(&fileJob)\n\tMinified = false\n\n\tif fileJob.Minified != false {\n\t\tt.Error(\"Expected minified to come back false\")\n\t}\n}\n\nfunc TestGenerated(t *testing.T) {\n\tfileJob := FileJob{\n\t\tLanguage: \"Go\",\n\t}\n\n\tfileJob.SetContent(`\n// Code generated by some tool, DO NOT EDIT.\n\n// Package some contains something.\npackage some\n`)\n\tGenerated = true\n\tGeneratedMarkers = []string{\"do not edit\", \"generated\"}\n\tCountStats(&fileJob)\n\tGenerated = false\n\n\tif fileJob.Generated != true {\n\t\tt.Error(\"Expected generated to come back true\")\n\t}\n\n\tif fileJob.Language != \"Go (gen)\" {\n\t\tt.Errorf(\"Expected Language \\\"Go (gen)\\\", received %q\", fileJob.Language)\n\t}\n}\n\nfunc TestCountStatsIssue182(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Pascal\",\n\t}\n\n\tfileJob.SetContent(`uses\n    someunit;\n\n{This is a comment}\nprocedure Something\nvar\n    avar: String;\nbegin\n    Println('Oho');\nend;\n{This is a comment}\nprocedure Nothing\nbegin\nend.\n`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Code != 11 {\n\t\tt.Errorf(\"Expected 11 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 2 {\n\t\tt.Errorf(\"Expected 2 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsIssue182Delphi(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Pascal\",\n\t}\n\n\tfileJob.SetContent(`// this isnt a comment in pascal but is in delphi\n`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Code != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 1 {\n\t\tt.Errorf(\"Expected 1 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 0 {\n\t\tt.Errorf(\"Expected 0 lines got %d\", fileJob.Blank)\n\t}\n}\n\n//////////////////////////////////////////////////\n// Content Classification Tests\n//////////////////////////////////////////////////\n\n// Classification should not change any line counts\nfunc TestClassifyContentCountInvariance(t *testing.T) {\n\tProcessConstants()\n\n\tcontent := `package main\n\nimport \"fmt\"\n\n// main function\nfunc main() {\n\tfmt.Println(\"hello\") // inline comment\n\t/* block\n\t   comment */\n}\n`\n\t// Run without classification\n\tfj1 := FileJob{Language: \"Go\"}\n\tfj1.SetContent(content)\n\tCountStats(&fj1)\n\n\t// Run with classification\n\tfj2 := FileJob{Language: \"Go\", ClassifyContent: true}\n\tfj2.SetContent(content)\n\tCountStats(&fj2)\n\n\tif fj1.Lines != fj2.Lines {\n\t\tt.Errorf(\"Lines mismatch: %d vs %d\", fj1.Lines, fj2.Lines)\n\t}\n\tif fj1.Code != fj2.Code {\n\t\tt.Errorf(\"Code mismatch: %d vs %d\", fj1.Code, fj2.Code)\n\t}\n\tif fj1.Comment != fj2.Comment {\n\t\tt.Errorf(\"Comment mismatch: %d vs %d\", fj1.Comment, fj2.Comment)\n\t}\n\tif fj1.Blank != fj2.Blank {\n\t\tt.Errorf(\"Blank mismatch: %d vs %d\", fj1.Blank, fj2.Blank)\n\t}\n\tif fj1.Complexity != fj2.Complexity {\n\t\tt.Errorf(\"Complexity mismatch: %d vs %d\", fj1.Complexity, fj2.Complexity)\n\t}\n}\n\n// ContentByteType should stay nil when ClassifyContent is false (default)\nfunc TestClassifyContentNilGuard(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{Language: \"Go\"}\n\tfileJob.SetContent(\"x := 1\\n\")\n\tCountStats(&fileJob)\n\n\tif fileJob.ContentByteType != nil {\n\t\tt.Error(\"Expected ContentByteType to be nil when ClassifyContent is false\")\n\t}\n}\n\n// Code-only file: all non-whitespace bytes should be ByteTypeCode\nfunc TestClassifyContentCodeOnly(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{Language: \"Go\", ClassifyContent: true}\n\tfileJob.SetContent(\"x := 1\")\n\tCountStats(&fileJob)\n\n\tif fileJob.ContentByteType == nil {\n\t\tt.Fatal(\"Expected ContentByteType to be non-nil\")\n\t}\n\n\tfor i, b := range fileJob.Content {\n\t\tbt := fileJob.ContentByteType[i]\n\t\tif b == ' ' || b == '\\t' || b == '\\n' || b == '\\r' {\n\t\t\tcontinue // whitespace can be blank or code depending on state\n\t\t}\n\t\tif bt != ByteTypeCode {\n\t\t\tt.Errorf(\"byte %d (%q): expected ByteTypeCode(%d), got %d\", i, string(b), ByteTypeCode, bt)\n\t\t}\n\t}\n}\n\n// Comment-only file: \"// comment\" bytes after // should be ByteTypeComment\nfunc TestClassifyContentCommentOnly(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{Language: \"Go\", ClassifyContent: true}\n\tfileJob.SetContent(\"// this is a comment\")\n\tCountStats(&fileJob)\n\n\tif fileJob.ContentByteType == nil {\n\t\tt.Fatal(\"Expected ContentByteType to be non-nil\")\n\t}\n\n\t// After the first byte that triggers comment state, subsequent bytes should be comment\n\thasComment := false\n\tfor i := range fileJob.Content {\n\t\tif fileJob.ContentByteType[i] == ByteTypeComment {\n\t\t\thasComment = true\n\t\t}\n\t}\n\tif !hasComment {\n\t\tt.Error(\"Expected at least some ByteTypeComment bytes for a comment-only line\")\n\t}\n\n\tif fileJob.Comment != 1 {\n\t\tt.Errorf(\"Expected 1 comment line, got %d\", fileJob.Comment)\n\t}\n}\n\n// Multi-line comment: inner bytes should be ByteTypeComment\nfunc TestClassifyContentMultiLineComment(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{Language: \"Go\", ClassifyContent: true}\n\tfileJob.SetContent(\"/* hello\\nworld */\")\n\tCountStats(&fileJob)\n\n\tif fileJob.ContentByteType == nil {\n\t\tt.Fatal(\"Expected ContentByteType to be non-nil\")\n\t}\n\n\t// Check that \"hello\" inside the comment is classified as comment\n\thelloStart := bytes.Index(fileJob.Content, []byte(\"hello\"))\n\tfor i := helloStart; i < helloStart+5; i++ {\n\t\tif fileJob.ContentByteType[i] != ByteTypeComment {\n\t\t\tt.Errorf(\"byte %d (%q): expected ByteTypeComment(%d), got %d\", i, string(fileJob.Content[i]), ByteTypeComment, fileJob.ContentByteType[i])\n\t\t}\n\t}\n}\n\n// String literal: bytes inside \"...\" should be ByteTypeString\nfunc TestClassifyContentString(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{Language: \"Go\", ClassifyContent: true}\n\tfileJob.SetContent(`x := \"hello\"`)\n\tCountStats(&fileJob)\n\n\tif fileJob.ContentByteType == nil {\n\t\tt.Fatal(\"Expected ContentByteType to be non-nil\")\n\t}\n\n\t// Find \"hello\" inside the string\n\thelloStart := bytes.Index(fileJob.Content, []byte(\"hello\"))\n\tfor i := helloStart; i < helloStart+5; i++ {\n\t\tif fileJob.ContentByteType[i] != ByteTypeString {\n\t\t\tt.Errorf(\"byte %d (%q): expected ByteTypeString(%d), got %d\", i, string(fileJob.Content[i]), ByteTypeString, fileJob.ContentByteType[i])\n\t\t}\n\t}\n\n\t// \"x\" at the start should be code\n\tif fileJob.ContentByteType[0] != ByteTypeCode {\n\t\tt.Errorf(\"byte 0 (%q): expected ByteTypeCode(%d), got %d\", string(fileJob.Content[0]), ByteTypeCode, fileJob.ContentByteType[0])\n\t}\n}\n\n// Mixed line: \"x := 1 // comment\" has code then comment\nfunc TestClassifyContentMixedLine(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{Language: \"Go\", ClassifyContent: true}\n\tfileJob.SetContent(\"x := 1 // comment\")\n\tCountStats(&fileJob)\n\n\tif fileJob.ContentByteType == nil {\n\t\tt.Fatal(\"Expected ContentByteType to be non-nil\")\n\t}\n\n\t// 'x' should be code\n\tif fileJob.ContentByteType[0] != ByteTypeCode {\n\t\tt.Errorf(\"byte 0 (%q): expected ByteTypeCode, got %d\", string(fileJob.Content[0]), fileJob.ContentByteType[0])\n\t}\n\n\t// \"comment\" text after // should be ByteTypeComment\n\tcommentStart := bytes.Index(fileJob.Content, []byte(\"comment\"))\n\tfor i := commentStart; i < commentStart+7; i++ {\n\t\tif fileJob.ContentByteType[i] != ByteTypeComment {\n\t\t\tt.Errorf(\"byte %d (%q): expected ByteTypeComment, got %d\", i, string(fileJob.Content[i]), fileJob.ContentByteType[i])\n\t\t}\n\t}\n\n\t// Line should be counted as code (code + comment = code line)\n\tif fileJob.Code != 1 {\n\t\tt.Errorf(\"Expected 1 code line, got %d\", fileJob.Code)\n\t}\n}\n\n// Python docstring: content classified as ByteTypeComment\nfunc TestClassifyContentPythonDocstring(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{Language: \"Python\", ClassifyContent: true}\n\tfileJob.SetContent(`\"\"\"\ndocstring content\n\"\"\"`)\n\tCountStats(&fileJob)\n\n\tif fileJob.ContentByteType == nil {\n\t\tt.Fatal(\"Expected ContentByteType to be non-nil\")\n\t}\n\n\t// \"docstring content\" should be classified as comment\n\tdocStart := bytes.Index(fileJob.Content, []byte(\"docstring\"))\n\tif docStart >= 0 {\n\t\tfor i := docStart; i < docStart+9; i++ {\n\t\t\tif fileJob.ContentByteType[i] != ByteTypeComment {\n\t\t\t\tt.Errorf(\"byte %d (%q): expected ByteTypeComment(%d), got %d\",\n\t\t\t\t\ti, string(fileJob.Content[i]), ByteTypeComment, fileJob.ContentByteType[i])\n\t\t\t}\n\t\t}\n\t}\n}\n\n// FilterContentByType: returns filtered content correctly\nfunc TestFilterContentByType(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{Language: \"Go\", ClassifyContent: true}\n\tfileJob.SetContent(\"x := 1 // comment\\n\")\n\tCountStats(&fileJob)\n\n\t// Filter to only code\n\tcodeOnly := fileJob.FilterContentByType(ByteTypeCode)\n\tif codeOnly == nil {\n\t\tt.Fatal(\"Expected non-nil result from FilterContentByType\")\n\t}\n\n\t// Should preserve newlines\n\tif codeOnly[len(codeOnly)-1] != '\\n' {\n\t\tt.Error(\"Expected newline to be preserved\")\n\t}\n\n\t// 'x' should be preserved\n\tif codeOnly[0] != 'x' {\n\t\tt.Errorf(\"Expected 'x' to be preserved, got %q\", string(codeOnly[0]))\n\t}\n\n\t// \"comment\" should be replaced with spaces\n\tcommentStart := bytes.Index(fileJob.Content, []byte(\"comment\"))\n\tfor i := commentStart; i < commentStart+7; i++ {\n\t\tif codeOnly[i] != ' ' {\n\t\t\tt.Errorf(\"byte %d: expected space, got %q\", i, string(codeOnly[i]))\n\t\t}\n\t}\n}\n\n// FilterContentByType returns nil when ContentByteType is nil\nfunc TestFilterContentByTypeNil(t *testing.T) {\n\tfileJob := FileJob{}\n\tfileJob.SetContent(\"hello\")\n\n\tresult := fileJob.FilterContentByType(ByteTypeCode)\n\tif result != nil {\n\t\tt.Error(\"Expected nil result when ContentByteType is nil\")\n\t}\n}\n\n// FilterContentByType with multiple keep types\nfunc TestFilterContentByTypeMultiple(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{Language: \"Go\", ClassifyContent: true}\n\tfileJob.SetContent(`x := \"hello\" // comment`)\n\tCountStats(&fileJob)\n\n\t// Keep both code and string, filter out comments\n\tresult := fileJob.FilterContentByType(ByteTypeCode, ByteTypeString)\n\tif result == nil {\n\t\tt.Fatal(\"Expected non-nil result\")\n\t}\n\n\t// 'x' (code) should be preserved\n\tif result[0] != 'x' {\n\t\tt.Errorf(\"Expected 'x' preserved, got %q\", string(result[0]))\n\t}\n\n\t// \"hello\" (string) content should be preserved\n\thelloStart := bytes.Index(fileJob.Content, []byte(\"hello\"))\n\tfor i := helloStart; i < helloStart+5; i++ {\n\t\tif result[i] != fileJob.Content[i] {\n\t\t\tt.Errorf(\"byte %d: expected %q preserved, got %q\", i, string(fileJob.Content[i]), string(result[i]))\n\t\t}\n\t}\n}\n\n//////////////////////////////////////////////////\n// Benchmarks Below\n//////////////////////////////////////////////////\n\nfunc BenchmarkCountStatsLinesEmpty(b *testing.B) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"\"),\n\t}\n\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesSingleChar(b *testing.B) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"a\"),\n\t}\n\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesTwoLines(b *testing.B) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"a\\na\"),\n\t}\n\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesThreeLines(b *testing.B) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"a\\na\\na\"),\n\t}\n\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesShortLine(b *testing.B) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"1234567890\"),\n\t}\n\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesShortEmptyLine(b *testing.B) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"          \"),\n\t}\n\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesThreeShortLines(b *testing.B) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"1234567890\\n1234567890\\n1234567890\"),\n\t}\n\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesThreeShortEmptyLines(b *testing.B) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"          \\n          \\n          \"),\n\t}\n\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesLongLine(b *testing.B) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\"),\n\t}\n\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesLongMixedLine(b *testing.B) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"1234567890          1234567890          1234567890          1234567890          1234567890          \"),\n\t}\n\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesLongAlternateLine(b *testing.B) {\n\tfileJob := FileJob{\n\t\tContent: []byte(\"a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a \"),\n\t}\n\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesFiveHundredLongLines(b *testing.B) {\n\tb.StopTimer()\n\tcontent := \"\"\n\tfor i := 0; i < 500; i++ {\n\t\tcontent += \"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\\n\"\n\t}\n\n\tfileJob := FileJob{\n\t\tContent: []byte(content),\n\t}\n\tb.StartTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesFiveHundredLongLinesTriggerComplexityIf(b *testing.B) {\n\tb.StopTimer()\n\tcontent := \"\"\n\tfor i := 0; i < 500; i++ {\n\t\tcontent += \"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\\n\"\n\t}\n\n\tfileJob := FileJob{\n\t\tContent: []byte(content),\n\t}\n\tb.StartTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesFiveHundredLongLinesTriggerComplexityFor(b *testing.B) {\n\tb.StopTimer()\n\tcontent := \"\"\n\tfor i := 0; i < 500; i++ {\n\t\tcontent += \"fofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofo\\n\"\n\t}\n\n\tfileJob := FileJob{\n\t\tContent: []byte(content),\n\t}\n\tb.StartTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsLinesFourHundredLongLinesMixed(b *testing.B) {\n\tb.StopTimer()\n\tcontent := \"\"\n\tfor i := 0; i < 100; i++ {\n\t\tcontent += \"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\\n\"\n\t\tcontent += \"1234567890          1234567890          1234567890          1234567890          1234567890          \\n\"\n\t\tcontent += \"                                                                                                    \\n\"\n\t\tcontent += \"a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a \\n\"\n\t}\n\n\tfileJob := FileJob{\n\t\tContent: []byte(content),\n\t}\n\tb.StartTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCheckByteEqualityReflect(b *testing.B) {\n\tb.StopTimer()\n\tone := []byte(\"for\")\n\ttwo := []byte(\"for\")\n\n\tcount := 0\n\n\tb.StartTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\tequal := reflect.DeepEqual(one[1:], two[1:])\n\n\t\tif equal {\n\t\t\tcount++\n\t\t}\n\t}\n\n\tb.Log(count)\n}\n\nfunc BenchmarkCheckByteEqualityBytes(b *testing.B) {\n\tb.StopTimer()\n\tone := []byte(\"for\")\n\ttwo := []byte(\"for\")\n\n\tcount := 0\n\n\tb.StartTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\tequal := bytes.Equal(one[1:], two[1:])\n\n\t\tif equal {\n\t\t\tcount++\n\t\t}\n\t}\n\n\tb.Log(count)\n}\n\n// This appears to be faster than bytes.Equal because it does not need\n// to do length comparison checks at the start\nfunc BenchmarkCheckByteEqualityLoop(b *testing.B) {\n\tb.StopTimer()\n\tone := []byte(\"for\")\n\ttwo := []byte(\"for\")\n\n\tcount := 0\n\n\tb.StartTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\tequal := true\n\n\t\tfor j := 1; j < len(one); j++ {\n\t\t\tif one[j] != two[j] {\n\t\t\t\tequal = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif equal {\n\t\t\tcount++\n\t\t}\n\t}\n\n\tb.Log(count)\n}\n\n// Check if the 1 offset makes a difference, which it does by ~1 ns\nfunc BenchmarkCheckByteEqualityLoopWithAdditional(b *testing.B) {\n\tb.StopTimer()\n\tone := []byte(\"for\")\n\ttwo := []byte(\"for\")\n\n\tcount := 0\n\n\tb.StartTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\tequal := true\n\n\t\t// Don't start at 1 like the above but 0 to do a full scan\n\t\tfor j := 0; j < len(one); j++ {\n\t\t\tif one[j] != two[j] {\n\t\t\t\tequal = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif equal {\n\t\t\tcount++\n\t\t}\n\t}\n\n\tb.Log(count)\n}\n\nfunc BenchmarkCheckArrayCheck(b *testing.B) {\n\tarray := []byte{\n\t\t'a',\n\t\t'b',\n\t\t'c',\n\t\t'd',\n\t\t'e',\n\t\t'f',\n\t\t'g',\n\t\t'h',\n\t\t'i',\n\t\t'j',\n\t}\n\n\tvar searchFor byte = 'j'\n\tfound := 0\n\n\tfor i := 0; i < b.N; i++ {\n\t\tfor index := 0; index < len(array); index++ {\n\t\t\tif array[index] == searchFor {\n\t\t\t\tfound++\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\tb.Log(found)\n}\n\nfunc BenchmarkCheckMapCheck(b *testing.B) {\n\tarray := map[byte]bool{\n\t\t'a': true,\n\t\t'b': true,\n\t\t'c': true,\n\t\t'd': true,\n\t\t'e': true,\n\t\t'f': true,\n\t\t'g': true,\n\t\t'h': true,\n\t\t'i': true,\n\t\t'j': true,\n\t}\n\n\tvar searchFor byte = 'j'\n\tfound := 0\n\n\tfor i := 0; i < b.N; i++ {\n\n\t\t_, ok := array[searchFor]\n\n\t\tif ok {\n\t\t\tfound++\n\t\t}\n\t}\n\n\tb.Log(found)\n}\n\nfunc BenchmarkStringLoop(b *testing.B) {\n\tb.StopTimer()\n\n\tvar str strings.Builder\n\tfor i := 0; i < 10000; i++ {\n\t\tstr.WriteString(\"1\")\n\t}\n\tsearch := str.String()\n\tcount := 0\n\tb.StartTimer()\n\n\tfor i := 0; i < b.N; i++ {\n\t\tfor j := 0; j < len(search); j++ {\n\t\t\tif search[j] != '\\n' {\n\t\t\t\tcount++\n\t\t\t}\n\n\t\t}\n\t}\n\tb.Log(count)\n}\n\nfunc BenchmarkByteLoop(b *testing.B) {\n\tb.StopTimer()\n\n\tvar str strings.Builder\n\tfor i := 0; i < 10000; i++ {\n\t\tstr.WriteString(\"1\")\n\t}\n\tsearch := []byte(str.String())\n\tcount := 0\n\tb.StartTimer()\n\n\tfor i := 0; i < b.N; i++ {\n\t\tfor j := 0; j < len(search); j++ {\n\t\t\tif search[j] != '\\n' {\n\t\t\t\tcount++\n\t\t\t}\n\n\t\t}\n\t}\n\tb.Log(count)\n}\n\nfunc BenchmarkLoopInLoop(b *testing.B) {\n\tsearch := []byte(\"this is a long from for string which we will search\")\n\tmatches := [][]byte{\n\t\t[]byte(\"if\"),\n\t\t[]byte(\"if(\"),\n\t\t[]byte(\"else\"),\n\t\t[]byte(\"while\"),\n\t\t[]byte(\"while(\"),\n\t\t[]byte(\"for\"),\n\t\t[]byte(\"foreach\"),\n\t}\n\tendPoint := len(search)\n\tb.ResetTimer()\n\n\tpotentialMatch := true\n\tfor i := 0; i < b.N; i++ {\n\n\t\tpotentialMatch = true\n\t\tfor index := 0; index < len(search); index++ {\n\n\t\t\tfor k := 0; k < len(matches); k++ {\n\n\t\t\t\tfor j := 0; j < len(matches[k]); j++ {\n\t\t\t\t\tif index+j >= endPoint || matches[k][j] != search[index+j] {\n\t\t\t\t\t\tpotentialMatch = false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n\tb.Log(potentialMatch)\n}\n\nfunc BenchmarkFlattenedLoop(b *testing.B) {\n\tindex := 0\n\tsearch := []byte(\"this is a long from for string which we will search\")\n\tmatches := []byte(\"if if( else while while( for foreach\")\n\n\tb.ResetTimer()\n\n\tpotentialMatch := true\n\tcount := 0\n\tfor i := 0; i < b.N; i++ {\n\n\t\tpotentialMatch = true\n\t\tfor j := 0; j < len(matches); j++ {\n\t\t\tif matches[j] == ' ' {\n\t\t\t\tcount = 0\n\t\t\t} else {\n\t\t\t\tif matches[j] != search[index+count] {\n\t\t\t\t\tpotentialMatch = false\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t}\n\n\tb.Log(potentialMatch)\n}\n\nfunc BenchmarkCheckComplexity(b *testing.B) {\n\tProcessConstants()\n\n\tfileJob := FileJob{\n\t\tLanguage: \"Java\",\n\t\tContent:  []byte(\"A little while ago, I passed my first year mark of working for Google. This also marked the \"),\n\t}\n\n\tmatches := &Trie{}\n\tmatches.Insert(TComplexity, []byte(\"for \"))\n\tmatches.Insert(TComplexity, []byte(\"for(\"))\n\tmatches.Insert(TComplexity, []byte(\"if \"))\n\tmatches.Insert(TComplexity, []byte(\"if(\"))\n\tmatches.Insert(TComplexity, []byte(\"switch \"))\n\tmatches.Insert(TComplexity, []byte(\"while \"))\n\tmatches.Insert(TComplexity, []byte(\"else \"))\n\tmatches.Insert(TComplexity, []byte(\"|| \"))\n\tmatches.Insert(TComplexity, []byte(\"&& \"))\n\tmatches.Insert(TComplexity, []byte(\"!= \"))\n\tmatches.Insert(TComplexity, []byte(\"== \"))\n\n\tb.ResetTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\tfor j := 0; j < len(fileJob.Content); j++ {\n\t\t\tmatches.Match(fileJob.Content)\n\t\t}\n\t}\n}\n\nfunc BenchmarkCheckLen(b *testing.B) {\n\tmatches := [][]byte{\n\t\t[]byte(\"for \"),\n\t\t[]byte(\"for(\"),\n\t\t[]byte(\"if \"),\n\t\t[]byte(\"if(\"),\n\t\t[]byte(\"switch \"),\n\t\t[]byte(\"while \"),\n\t\t[]byte(\"else \"),\n\t\t[]byte(\"|| \"),\n\t\t[]byte(\"&& \"),\n\t\t[]byte(\"!= \"),\n\t\t[]byte(\"== \"),\n\t}\n\n\tcount := 0\n\tfor i := 0; i < b.N; i++ {\n\t\tfor j := 0; j < len(matches); j++ {\n\t\t\tcount++\n\t\t}\n\t}\n\n\tb.Log(count)\n}\n\nfunc BenchmarkCheckLenPrecalc(b *testing.B) {\n\tmatches := [][]byte{\n\t\t[]byte(\"for \"),\n\t\t[]byte(\"for(\"),\n\t\t[]byte(\"if \"),\n\t\t[]byte(\"if(\"),\n\t\t[]byte(\"switch \"),\n\t\t[]byte(\"while \"),\n\t\t[]byte(\"else \"),\n\t\t[]byte(\"|| \"),\n\t\t[]byte(\"&& \"),\n\t\t[]byte(\"!= \"),\n\t\t[]byte(\"== \"),\n\t}\n\n\tcount := 0\n\tfor i := 0; i < b.N; i++ {\n\t\tl := len(matches)\n\t\tfor j := 0; j < l; j++ {\n\t\t\tcount++\n\t\t}\n\t}\n\n\tb.Log(count)\n}\n\nfunc BenchmarkCountStatsNoClassify(b *testing.B) {\n\tProcessConstants()\n\tb.StopTimer()\n\tcontent := \"\"\n\tfor i := 0; i < 500; i++ {\n\t\tcontent += \"x := 1 // comment\\n\"\n\t}\n\tfileJob := FileJob{\n\t\tLanguage: \"Go\",\n\t\tContent:  []byte(content),\n\t\tBytes:    int64(len(content)),\n\t}\n\tb.StartTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\tfileJob.Lines = 0\n\t\tfileJob.Code = 0\n\t\tfileJob.Comment = 0\n\t\tfileJob.Blank = 0\n\t\tfileJob.Complexity = 0\n\t\tfileJob.ComplexityLine = nil\n\t\tfileJob.ContentByteType = nil\n\t\tCountStats(&fileJob)\n\t}\n}\n\nfunc BenchmarkCountStatsWithClassify(b *testing.B) {\n\tProcessConstants()\n\tb.StopTimer()\n\tcontent := \"\"\n\tfor i := 0; i < 500; i++ {\n\t\tcontent += \"x := 1 // comment\\n\"\n\t}\n\tfileJob := FileJob{\n\t\tLanguage:        \"Go\",\n\t\tContent:         []byte(content),\n\t\tBytes:           int64(len(content)),\n\t\tClassifyContent: true,\n\t}\n\tb.StartTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\tfileJob.Lines = 0\n\t\tfileJob.Code = 0\n\t\tfileJob.Comment = 0\n\t\tfileJob.Blank = 0\n\t\tfileJob.Complexity = 0\n\t\tfileJob.ComplexityLine = nil\n\t\tfileJob.ContentByteType = nil\n\t\tCountStats(&fileJob)\n\t}\n}\n"
  },
  {
    "path": "processor/workers_tokei_test.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage processor\n\nimport (\n\t\"testing\"\n)\n\nfunc TestCountStatsJava(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Java\",\n\t}\n\n\tfileJob.SetContent(`/* 23 lines 16 code 4 comments 3 blanks */\n\n/*\n* Simple test class\n*/\npublic class Test\n{\n int j = 0; // Not counted\n public static void main(String[] args)\n {\n     Foo f = new Foo();\n     f.bar();\n\n }\n}\n\nclass Foo\n{\n public void bar()\n {\n   System.out.println(\"FooBar\"); //Not counted\n }\n}`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 23 {\n\t\tt.Errorf(\"Expected 23 lines\")\n\t}\n\n\tif fileJob.Code != 16 {\n\t\tt.Errorf(\"Expected 16 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 4 {\n\t\tt.Errorf(\"Expected 4 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 3 {\n\t\tt.Errorf(\"Expected 3 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsAccuracyCPlusPlus(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"C++\",\n\t}\n\n\tfileJob.SetContent(`/* 15 lines 7 code 4 comments 4 blanks */\n\n#include <iostream>\n\n\nusing namespace std;\n\n/*\n * Simple test\n */\nint main()\n{\n    cout<<\"Hello world\"<<endl;\n    return 0;\n}\n`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 15 {\n\t\tt.Errorf(\"Expected 15 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 7 {\n\t\tt.Errorf(\"Expected 7 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 4 {\n\t\tt.Errorf(\"Expected 4 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 4 {\n\t\tt.Errorf(\"Expected 4 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsAccuracyRakefile(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Rakefile\",\n\t}\n\n\tfileJob.SetContent(`# 10 lines 4 code 2 comments 4 blanks\n\n# this is a rakefile\n\ntask default: %w[test]\n\ntask :test do # not counted\n  ruby \"test/unittest.rb\"\nend\n\n`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 10 {\n\t\tt.Errorf(\"Expected 10 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 4 {\n\t\tt.Errorf(\"Expected 4 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 2 {\n\t\tt.Errorf(\"Expected 2 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 4 {\n\t\tt.Errorf(\"Expected 4 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsAccuracyRuby(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Ruby\",\n\t}\n\n\tfileJob.SetContent(`# 20 lines 9 code 8 comments 3 blanks\nx = 3\nif x < 2\n  p = \"Smaller\"\nelse\n  p = \"Bigger\"\nend\n\n=begin\n  Comments\n  Comments\n  Comments\n  Comments\n=end\n\n# testing.\nwhile x > 2 and x < 10\n  x += 1\nend\n\n`)\n\n\tCountStats(&fileJob)\n\n\tif fileJob.Lines != 20 {\n\t\tt.Errorf(\"Expected 20 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 9 {\n\t\tt.Errorf(\"Expected 9 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 8 {\n\t\tt.Errorf(\"Expected 8 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 3 {\n\t\tt.Errorf(\"Expected 3 lines got %d\", fileJob.Blank)\n\t}\n}\n\nfunc TestCountStatsAccuracyTokeiTest(t *testing.T) {\n\tProcessConstants()\n\tfileJob := FileJob{\n\t\tLanguage: \"Rust\",\n\t}\n\n\tfileJob.SetContent(`// 39 lines 32 code 2 comments 5 blanks\n\n/* /**/ */\nfn main() {\n  let start = \"/*\";\n  loop {\n      if x.len() >= 2 && x[0] == '*' && x[1] == '/' { // found the */\n          break;\n      }\n  }\n}\n\nfn foo() {\n  let this_ends = \"a \\\"test/*.\";\n  call1();\n  call2();\n  let this_does_not = /* a /* nested */ comment \" */\n      \"*/another /*test\n          call3();\n          */\";\n}\n\nfn foobar() {\n  let does_not_start = // \"\n      \"until here,\n      test/*\n      test\"; // a quote: \"\n  let also_doesnt_start = /* \" */\n      \"until here,\n      test,*/\n      test\"; // another quote: \"\n}\n\nfn foo() {\n  let a = 4; // /*\n  let b = 5;\n  let c = 6; // */\n}\n\n`)\n\n\tCountStats(&fileJob)\n\n\t// 39 lines 32 code 2 comments 5 blanks\n\tif fileJob.Lines != 39 {\n\t\tt.Errorf(\"Expected 39 lines got %d\", fileJob.Lines)\n\t}\n\n\tif fileJob.Code != 32 {\n\t\tt.Errorf(\"Expected 32 lines got %d\", fileJob.Code)\n\t}\n\n\tif fileJob.Comment != 2 {\n\t\tt.Errorf(\"Expected 2 lines got %d\", fileJob.Comment)\n\t}\n\n\tif fileJob.Blank != 5 {\n\t\tt.Errorf(\"Expected 5 lines got %d\", fileJob.Blank)\n\t}\n}\n"
  },
  {
    "path": "scripts/include.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage main\n\nimport (\n\t\"bytes\"\n\t_ \"embed\"\n\t\"fmt\"\n\t\"go/format\"\n\t\"maps\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"text/template\"\n\n\t\"github.com/boyter/scc/v3/processor\"\n\tjsoniter \"github.com/json-iterator/go\"\n)\n\nconst constantsFile = \"./processor/constants.go\"\n\nvar json = jsoniter.ConfigCompatibleWithStandardLibrary\n\n//go:embed languages.tmpl\nvar langTemplate string\n\n// Reads all .json files in the current folder\n// and encodes them as strings literals in constants.go\nfunc generateConstants() error {\n\tfiles, _ := os.ReadDir(\".\")\n\tbuf := &bytes.Buffer{}\n\n\tlangs := map[string]processor.Language{}\n\n\tfor _, f := range files {\n\t\tif strings.HasPrefix(f.Name(), \"languages\") && strings.HasSuffix(f.Name(), \".json\") {\n\t\t\tf, err := os.Open(f.Name())\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"failed to open file '%s': %v\", f.Name(), err)\n\t\t\t}\n\t\t\tdefer func(file *os.File) {\n\t\t\t\t_ = file.Close()\n\t\t\t}(f)\n\n\t\t\tdata := map[string]processor.Language{}\n\n\t\t\t// validate the json by decoding into an empty struct\n\t\t\tif err := json.NewDecoder(f).Decode(&data); err != nil {\n\t\t\t\treturn fmt.Errorf(\"failed to validate json in file '%s': %v\", f.Name(), err)\n\t\t\t}\n\n\t\t\tmaps.Insert(langs, maps.All(data))\n\t\t}\n\t}\n\n\tt, err := template.New(\"codeGenerator\").Funcs(template.FuncMap{\n\t\t\"quote\": strconv.Quote,\n\t}).Parse(langTemplate)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to parse template file: %v\", err)\n\t}\n\n\tif err := t.Execute(buf, langs); err != nil {\n\t\treturn fmt.Errorf(\"failed to execute template file: %v\", err)\n\t}\n\n\tsource, err := format.Source(buf.Bytes())\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to format code: %v\", err)\n\t}\n\n\tout, err := os.OpenFile(constantsFile, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to open constants file: %v\", err)\n\t}\n\tdefer func(file *os.File) {\n\t\t_ = file.Close()\n\t}(out)\n\n\tif _, err := out.Write(source); err != nil {\n\t\treturn fmt.Errorf(\"failed to write constants file %v\", err)\n\t}\n\n\treturn nil\n}\n\nfunc main() {\n\tif err := generateConstants(); err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"failed to generate constants: %v\\n\", err)\n\t\tos.Exit(1)\n\t}\n}\n"
  },
  {
    "path": "scripts/languages.tmpl",
    "content": "// Code generated by scripts/include.go using 'go generate'. DO NOT EDIT.\npackage processor\n\n// Raw languageDatabase loaded\nvar languageDatabase = map[string]Language{\n\t{{- range $key, $value := .}}\n\t{{quote $key}}: {\n\t\tLineComment: []string{\n\t\t\t{{- range $value.LineComment}}\n\t\t\t{{quote .}},\n\t\t\t{{- end}}\n\t\t},\n\t\tComplexityChecks: []string{\n\t\t\t{{- range $value.ComplexityChecks}}\n\t\t\t{{quote .}},\n\t\t\t{{- end}}\n\t\t},\n\t\tExtensions: []string{\n\t\t\t{{- range $value.Extensions}}\n\t\t\t{{quote .}},\n\t\t\t{{- end}}\n\t\t},\n\t\tExtensionFile: {{$value.ExtensionFile}},\n\t\tMultiLine: [][]string{\n\t\t\t{{- range $value.MultiLine}}\n\t\t\t{\n\t\t\t\t{{- range .}}\n\t\t\t\t{{quote .}},\n\t\t\t\t{{- end}}\n\t\t\t},\n\t\t\t{{- end}}\n\t\t},\n\t\tQuotes: []Quote{\n\t\t\t{{- range $value.Quotes}}\n\t\t\t{\n\t\t\t\tStart:        {{quote .Start}},\n\t\t\t\tEnd:          {{quote .End}},\n\t\t\t\tIgnoreEscape: {{.IgnoreEscape}},\n\t\t\t\tDocString:    {{.DocString}},\n\t\t\t},\n\t\t\t{{- end}}\n\t\t},\n\t\tNestedMultiLine: {{$value.NestedMultiLine}},\n\t\tKeywords: []string{\n\t\t\t{{- range $value.Keywords}}\n\t\t\t{{quote .}},\n\t\t\t{{- end}}\n\t\t},\n\t\tFileNames: []string{\n\t\t\t{{- range $value.FileNames}}\n\t\t\t{{quote .}},\n\t\t\t{{- end}}\n\t\t},\n\t\tSheBangs: []string{\n\t\t\t{{- range $value.SheBangs}}\n\t\t\t{{quote .}},\n\t\t\t{{- else}}\n\t\t\t{{- end}}\n\t\t},\n\t},\n\t{{- end}}\n}\n"
  },
  {
    "path": "test-all.sh",
    "content": "#!/bin/bash\n\n# make sure this script can be executed from any dir\ncd $(dirname $0)\n\nGREEN='\\033[1;32m'\nRED='\\033[0;31m'\nNC='\\033[0m'\n\necho \"Running go generate...\"\ngo generate\n\necho \"Running go fmt...\"\ngo fmt ./...\n\necho \"Running unit tests...\"\ngo test ./... || exit\n\n# Race Detection\necho \"Running race detection...\"\nif  go run --race . 2>&1 >/dev/null | grep -q \"Found\" ; then\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED race detection run 'go run --race .' to identify\"\n    echo -e \"=======================================================${NC}\"\n    exit\nelse\n    echo -e \"${GREEN}PASSED race detection${NC}\"\nfi\n\necho \"Building application...\"\ngo build -ldflags=\"-s -w\" || exit\n\necho '```' > LANGUAGES.md\n./scc --languages >> LANGUAGES.md\necho '```' >> LANGUAGES.md\n\n\necho \"Building HTML report...\"\n\n./scc --format html -a --by-file -i go -o SCC-OUTPUT-REPORT.html\n\necho \"Running integration tests...\"\n\n## NB you need to have pyyaml installed via pip install pyyaml for this to work\n#if ./scc \"examples/language/\" --format cloc-yaml -o .tmp_scc_yaml >/dev/null && python <<EOS\n#import yaml,sys\n#try:\n#    with open('.tmp_scc_yaml','r') as f:\n#        data = yaml.load(f.read())\n#        if type(data) is dict and data.keys():\n#            sys.exit(0)\n#        else:\n#            print('data was {}'.format(type(data)))\n#except Exception as e:\n#    pass\n#sys.exit(1)\n#EOS\n#\n#then\n#\techo -e \"${GREEN}PASSED cloc-yaml format test\"\n#else\n#    echo -e \"${RED}=======================================================\"\n#    echo -e \"${RED}FAILED Should accept --format cloc-yaml and should generate valid output\"\n#    echo -e \"=======================================================${NC}\"\n#    rm -f .tmp_scc_yaml\n#    exit\n#fi\n#\n#if ./scc \"examples/language/\" --format cloc-yml -o .tmp_scc_yaml >/dev/null && python <<EOS\n#import yaml,sys\n#try:\n#    with open('.tmp_scc_yaml','r') as f:\n#        data = yaml.load(f.read())\n#        if type(data) is dict and data.keys():\n#            sys.exit(0)\n#        else:\n#            print('data was {}'.format(type(data)))\n#except Exception as e:\n#    pass\n#sys.exit(1)\n#EOS\n#\n#then\n#\techo -e \"${GREEN}PASSED cloc-yml format test\"\n#else\n#    echo -e \"${RED}=======================================================\"\n#    echo -e \"${RED}FAILED Should accept --format cloc-yml and should generate valid output\"\n#    echo -e \"=======================================================${NC}\"\n#    rm -f .tmp_scc_yaml\n#    exit\n#fi\n\nif ./scc NOTAREALDIRECTORYORFILE > /dev/null ; then\n    echo -e \"${RED}=================================================\"\n    echo -e \"FAILED Invalid file/directory should produce error code \"\n    echo -e \"=======================================================${NC}\"\n    exit\nelse\n    echo -e \"${GREEN}PASSED invalid file/directory test\"\nfi\n\nif ./scc > /dev/null ; then\n    echo -e \"${GREEN}PASSED no directory specified test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should run correctly with no directory specified\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc processor > /dev/null ; then\n    echo -e \"${GREEN}PASSED directory specified test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should run correctly with directory specified\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --avg-wage 10000 --binary --by-file --no-cocomo --no-size --size-unit si --include-symlinks --debug --exclude-dir .git -f tabular -i go -c -d -M something -s name -w processor > /dev/null ; then\n    echo -e \"${GREEN}PASSED multiple options test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should run correctly with multiple options\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc -i sh -M \"vendor|examples|p.*\" > /dev/null ; then\n    echo -e \"${GREEN}PASSED regular expression ignore test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should run with regular expression ignore\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc \"examples/shared_extension/\" | grep -q \"Coq\"; then\n    echo -e \"${GREEN}PASSED shared extension test 1\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should be able to work with shared extension 1\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc \"examples/shared_extension/\" | grep -q \"Verilog\"; then\n    echo -e \"${GREEN}PASSED shared extension test 2\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should be able to work with shared extension 2\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc \"examples/shared_extension/\" | grep -q \"V \"; then\n    echo -e \"${GREEN}PASSED shared extension test 3\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should be able to work with shared extension 3\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --ci | grep -q \"\\-\\-\\-\\-\"; then\n    echo -e \"${GREEN}PASSED ci param test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should be able to work with ci flag\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc \"examples/denylist/\" | grep -q \"Java\"; then\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should hit default .git denylist \"\n    echo -e \"=======================================================${NC}\"\n    exit\nelse\n    echo -e \"${GREEN}PASSED denylist test\"\nfi\n\n# Simple test to see if we get any concurrency issues\nfor i in {1..100}\ndo\n    if ./scc > /dev/null ; then\n        :\n    else\n        echo -e \"${RED}=======================================================\"\n        echo -e \"FAILED Should not have concurrency issue\"\n        echo -e \"=================================================${NC}\"\n        exit\n    fi\ndone\necho -e \"${GREEN}PASSED concurrency issue test\"\n\nif ./scc main.go > /dev/null ; then\n    echo -e \"${GREEN}PASSED file specified test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should run correctly with a file is specified\"\n    echo -e \"=================================================${NC}\"\n    exit\nfi\n\n# Multiple directory or file arguments\nif ./scc main.go README.md | grep -q \"Go \" ; then\n    echo -e \"${GREEN}PASSED multiple file argument test 1\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should work with multiple file arguments 1\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc main.go README.md | grep -q \"Markdown \" ; then\n    echo -e \"${GREEN}PASSED multiple file argument test 2\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should work with multiple file arguments 2\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc processor scripts > /dev/null ; then\n    echo -e \"${GREEN}PASSED multiple directory specified test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should run correctly with multiple directory specified\"\n    echo -e \"=================================================${NC}\"\n    exit\nfi\n\n# Try out duplicates\nfor i in {1..100}\ndo\n    if ./scc -d \"examples/duplicates/\" | grep -e \"Java\" | grep -q -e \" 1 \"; then\n        :\n    else\n        echo -e \"${RED}=======================================================\"\n        echo -e \"FAILED Duplicates should be consistent\"\n        echo -e \"=======================================================${NC}\"\n        exit\n    fi\ndone\necho -e \"${GREEN}PASSED duplicates test\"\n\n# Check for multiple regex via https://github.com/andyfitzgerald\na=$(./scc --not-match=\"(.*\\.hex|.*\\.d|.*\\.o|.*\\.csv|^(./)?[0-9]{8}_.*)\" . | grep Estimated | md5sum)\nb=$(./scc --not-match=\".*\\.hex\" --not-match=\".*\\.d\" --not-match=\".*\\.o\" --not-match=\".*\\.csv\" --not-match=\"^(./)?[0-9]{8}_.*\" . | grep Estimated | md5sum)\nif [ \"$a\" == \"$b\" ]; then\n    echo -e \"${GREEN}PASSED multiple regex test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED multiple regex test\"\n    echo -e \"=================================================${NC}\"\n    exit\nfi\n\na=$(./scc | grep Total)\nb=$(./scc --no-ignore | grep Total)\nif [ \"$a\" == \"$b\" ]; then\n    echo \"$a\"\n    echo \"$b\"\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED ignore filter\"\n    echo -e \"=================================================${NC}\"\n    exit\nelse\n    echo -e \"${GREEN}PASSED ignore filter\"\nfi\n\na=$(./scc -i js ./examples/minified/ --no-scc-ignore)\nb=$(./scc -i js -z ./examples/minified/ --no-scc-ignore)\nif [ \"$a\" == \"$b\" ]; then\n    echo \"$a\"\n    echo \"$b\"\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Minified check\"\n    echo -e \"=================================================${NC}\"\n    exit\nelse\n    echo -e \"${GREEN}PASSED minified check\"\nfi\n\na=$(./scc -i js -z ./examples/minified/ --no-scc-ignore)\nb=$(./scc -i js -z --no-min-gen ./examples/minified/ --no-scc-ignore)\nif [ \"$a\" == \"$b\" ]; then\n    echo \"$a\"\n    echo \"$b\"\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Minified ignored check\"\n    echo -e \"=================================================${NC}\"\n    exit\nelse\n    echo -e \"${GREEN}PASSED minified ignored check\"\nfi\n\na=$(./scc ./examples/symlink/ --no-scc-ignore)\nb=$(./scc --include-symlinks ./examples/symlink/ --no-scc-ignore)\nif [ \"$a\" == \"$b\" ]; then\n    echo \"$a\"\n    echo \"$b\"\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED symlink check\"\n    echo -e \"=================================================${NC}\"\n    exit\nelse\n    echo -e \"${GREEN}PASSED minified ignored check\"\nfi\n\nif ./scc ./examples/minified/ --no-min-gen --no-scc-ignore | grep -q \"\\$0\"; then\n    echo -e \"${GREEN}PASSED removed min\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED removed min\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc ./examples/generated/ --no-min-gen --no-scc-ignore | grep -q \"\\$0\"; then\n    echo -e \"${GREEN}PASSED removed gen\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED removed gen\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc -z ./examples/generated/ --no-scc-ignore | grep -q \"C Header (gen)\"; then\n    echo -e \"${GREEN}PASSED flagged as gen\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED flagged as gen\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc ./examples/minified/ -i js -z --no-scc-ignore | grep -q \"JavaScript (mi\"; then\n    echo -e \"${GREEN}PASSED flagged as min\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED flagged as min\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc -z --min-gen-line-length 1 --no-min-gen . | grep -q \"\\$0\"; then\n    echo -e \"${GREEN}PASSED min gen line length\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED min gen line length\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --no-large --large-byte-count 0 ./examples/language | grep -q \"\\$0\"; then\n    echo -e \"${GREEN}PASSED no large byte test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED no large byte test\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --no-large --large-line-count 0 ./examples/language | grep -q \"\\$0\"; then\n    echo -e \"${GREEN}PASSED no large line test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED no large line test\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --format html | grep -q \"html\"; then\n    echo -e \"${GREEN}PASSED html output test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should be able to output to html\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --format html-table | grep -q \"table\"; then\n    echo -e \"${GREEN}PASSED html-table output test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should be able to output to html-table\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --format sql | grep -q \"create table metadata\"; then\n    echo -e \"${GREEN}PASSED sql output test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should be able to output to sql\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --format sql-insert | grep -q \"insert into t values\"; then\n    echo -e \"${GREEN}PASSED sql-insert output test\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED Should be able to output to sql-insert\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc ./examples/countas/ --count-as jsp:html | grep -q \"HTML\"; then\n    echo -e \"${GREEN}PASSED counted JSP as HTML\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED counted JSP as HTML\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc ./examples/countas/ --count-as JsP:html | grep -q \"HTML\"; then\n    echo -e \"${GREEN}PASSED counted JSP as HTML case\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED counted JSP as HTML case\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc ./examples/countas/ --count-as jsp:j2 | grep -q \"Jinja\"; then\n    echo -e \"${GREEN}PASSED counted JSP as Jinja\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED counted JSP as Jinja\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc ./examples/countas/ --count-as jsp:html,new:java | grep -q \"Java\"; then\n    echo -e \"${GREEN}PASSED counted new as Java\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED counted new as Java\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc ./examples/countas/ --count-as jsp:html,new:\"C Header\" | grep -q \"C Header\"; then\n    echo -e \"${GREEN}PASSED counted new as C Header\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED counted new as C Header\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --file-gc-count 10 ./examples/duplicates/ -v | grep -q \"read file limit exceeded GC re-enabled\"; then\n    echo -e \"${GREEN}PASSED gc file count\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED gc file count\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc -f json | grep -q \"Bytes\"; then\n    echo -e \"${GREEN}PASSED json bytes check\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED json bytes check\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc | grep -q \"megabytes\"; then\n    echo -e \"${GREEN}PASSED bytes check\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED bytes check\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --remap-unknown \"-*- C++ -*-\":\"C Header\" ./examples/remap/unknown | grep -q \"C Header\"; then\n    echo -e \"${GREEN}PASSED remap unknown\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED remap unknown\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --remap-all \"-*- C++ -*-\":\"C Header\" ./examples/remap/java.java | grep -q \"C Header\"; then\n    echo -e \"${GREEN}PASSED remap all\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED remap all\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --cocomo-project-type organic | grep -q \"organic\"; then\n    echo -e \"${GREEN}PASSED cocomo organic\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED cocomo organic\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --cocomo-project-type doesnotexist | grep -q \"organic\"; then\n    echo -e \"${GREEN}PASSED cocomo fallback\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED cocomo fallback\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --cocomo-project-type semi-detached | grep -q \"semi-detached\"; then\n    echo -e \"${GREEN}PASSED cocomo semi-detached\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED cocomo semi-detached\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --cocomo-project-type embedded | grep -q \"embedded\"; then\n    echo -e \"${GREEN}PASSED cocomo embedded\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED cocomo embedded\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --cocomo-project-type custom,1,1,1,1 | grep -q \"custom,1,1,1,1\"; then\n    echo -e \"${GREEN}PASSED cocomo custom,1,1,1,1\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED cocomo custom,1,1,1,1\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\nif ./scc --cocomo-project-type custom,1,1,1 | grep -q \"organic\"; then\n    echo -e \"${GREEN}PASSED cocomo custom fallback\"\nelse\n    echo -e \"${RED}=======================================================\"\n    echo -e \"FAILED cocomo custom fallback\"\n    echo -e \"=======================================================${NC}\"\n    exit\nfi\n\necho -e  \"${NC}Checking compile targets...\"\n\necho \"   darwin...\"\nGOOS=darwin GOARCH=amd64 go build -ldflags=\"-s -w\"\nGOOS=darwin GOARCH=arm64 go build -ldflags=\"-s -w\"\necho \"   windows...\"\nGOOS=windows GOARCH=amd64 go build -ldflags=\"-s -w\"\nGOOS=windows GOARCH=386 go build -ldflags=\"-s -w\"\nGOOS=windows GOARCH=arm64 go build -ldflags=\"-s -w\"\necho \"   linux...\"\nGOOS=linux GOARCH=amd64 go build -ldflags=\"-s -w\"\nGOOS=linux GOARCH=386 go build -ldflags=\"-s -w\"\nGOOS=linux GOARCH=arm64 go build -ldflags=\"-s -w\"\nGOOS=linux GOARCH=riscv64 go build -ldflags=\"-s -w\"\nGOOS=linux GOARCH=loong64 go build -ldflags=\"-s -w\"\n\necho -e \"${NC}Cleaning up...\"\nrm ./scc\nrm ./scc.exe\nrm .tmp_scc_yaml\nrm ./code.db\n\n\necho -e \"${GREEN}=================================================\"\necho -e \"ALL TESTS PASSED\"\necho -e \"=================================================${NC}\"\n"
  },
  {
    "path": "vendor/github.com/agnivade/levenshtein/.gitignore",
    "content": "coverage.txt\nfuzz/fuzz-fuzz.zip\nfuzz/corpus/corpus/*\nfuzz/corpus/suppressions/*\nfuzz/corpus/crashes/*\n"
  },
  {
    "path": "vendor/github.com/agnivade/levenshtein/License.txt",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2015 Agniva De Sarker\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/agnivade/levenshtein/Makefile",
    "content": "all: test install\n\ninstall:\n\tgo install\n\nlint:\n\tgofmt -l -s -w . && go vet .\n\ntest:\n\tgo test -race -v -coverprofile=coverage.txt -covermode=atomic\n\nbench:\n\tgo test -run=XXX -bench=. -benchmem -count=5\n"
  },
  {
    "path": "vendor/github.com/agnivade/levenshtein/README.md",
    "content": "levenshtein ![Build Status](https://github.com/agnivade/levenshtein/actions/workflows/ci.yml/badge.svg) [![Go Report Card](https://goreportcard.com/badge/github.com/agnivade/levenshtein)](https://goreportcard.com/report/github.com/agnivade/levenshtein) [![PkgGoDev](https://pkg.go.dev/badge/github.com/agnivade/levenshtein)](https://pkg.go.dev/github.com/agnivade/levenshtein)\n===========\n\n[Go](http://golang.org) package to calculate the [Levenshtein Distance](http://en.wikipedia.org/wiki/Levenshtein_distance)\n\nThe library is fully capable of working with non-ascii strings. But the strings are not normalized. That is left as a user-dependant use case. Please normalize the strings before passing it to the library if you have such a requirement.\n- https://blog.golang.org/normalization\n\n#### Limitation\n\nAs a performance optimization, the library can handle strings only up to 65536 characters (runes). If you need to handle strings larger than that, please pin to version 1.0.3.\n\nInstall\n-------\n\n    go get github.com/agnivade/levenshtein\n\nExample\n-------\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/agnivade/levenshtein\"\n)\n\nfunc main() {\n\ts1 := \"kitten\"\n\ts2 := \"sitting\"\n\tdistance := levenshtein.ComputeDistance(s1, s2)\n\tfmt.Printf(\"The distance between %s and %s is %d.\\n\", s1, s2, distance)\n\t// Output:\n\t// The distance between kitten and sitting is 3.\n}\n\n```\n\nBenchmarks\n----------\n\n```\nname              time/op\nSimple/ASCII-4     330ns ± 2%\nSimple/French-4    617ns ± 2%\nSimple/Nordic-4   1.16µs ± 4%\nSimple/Tibetan-4  1.05µs ± 1%\n\nname              alloc/op\nSimple/ASCII-4     96.0B ± 0%\nSimple/French-4     128B ± 0%\nSimple/Nordic-4     192B ± 0%\nSimple/Tibetan-4    144B ± 0%\n\nname              allocs/op\nSimple/ASCII-4      1.00 ± 0%\nSimple/French-4     1.00 ± 0%\nSimple/Nordic-4     1.00 ± 0%\nSimple/Tibetan-4    1.00 ± 0%\n```\n\nComparisons with other libraries\n--------------------------------\n\n```\nname                     time/op\nLeven/ASCII/agniva-4      353ns ± 1%\nLeven/ASCII/arbovm-4      485ns ± 1%\nLeven/ASCII/dgryski-4     395ns ± 0%\nLeven/French/agniva-4     648ns ± 1%\nLeven/French/arbovm-4     791ns ± 0%\nLeven/French/dgryski-4    682ns ± 0%\nLeven/Nordic/agniva-4    1.28µs ± 1%\nLeven/Nordic/arbovm-4    1.52µs ± 1%\nLeven/Nordic/dgryski-4   1.32µs ± 1%\nLeven/Tibetan/agniva-4   1.12µs ± 1%\nLeven/Tibetan/arbovm-4   1.31µs ± 0%\nLeven/Tibetan/dgryski-4  1.16µs ± 0%\n```\n"
  },
  {
    "path": "vendor/github.com/agnivade/levenshtein/levenshtein.go",
    "content": "// Package levenshtein is a Go implementation to calculate Levenshtein Distance.\n//\n// Implementation taken from\n// https://gist.github.com/andrei-m/982927#gistcomment-1931258\npackage levenshtein\n\nimport \"unicode/utf8\"\n\n// minLengthThreshold is the length of the string beyond which\n// an allocation will be made. Strings smaller than this will be\n// zero alloc.\nconst minLengthThreshold = 32\n\n// ComputeDistance computes the levenshtein distance between the two\n// strings passed as an argument. The return value is the levenshtein distance\n//\n// Works on runes (Unicode code points) but does not normalize\n// the input strings. See https://blog.golang.org/normalization\n// and the golang.org/x/text/unicode/norm package.\nfunc ComputeDistance(a, b string) int {\n\tif len(a) == 0 {\n\t\treturn utf8.RuneCountInString(b)\n\t}\n\n\tif len(b) == 0 {\n\t\treturn utf8.RuneCountInString(a)\n\t}\n\n\tif a == b {\n\t\treturn 0\n\t}\n\n\t// We need to convert to []rune if the strings are non-ASCII.\n\t// This could be avoided by using utf8.RuneCountInString\n\t// and then doing some juggling with rune indices,\n\t// but leads to far more bounds checks. It is a reasonable trade-off.\n\ts1 := []rune(a)\n\ts2 := []rune(b)\n\n\t// swap to save some memory O(min(a,b)) instead of O(a)\n\tif len(s1) > len(s2) {\n\t\ts1, s2 = s2, s1\n\t}\n\n\t// remove trailing identical runes.\n\ts1, s2 = trimLongestCommonSuffix(s1, s2)\n\n\t// Remove leading identical runes.\n\ts1, s2 = trimLongestCommonPrefix(s1, s2)\n\n\tlenS1 := len(s1)\n\tlenS2 := len(s2)\n\n\t// Init the row.\n\tvar x []uint16\n\tif lenS1+1 > minLengthThreshold {\n\t\tx = make([]uint16, lenS1+1)\n\t} else {\n\t\t// We make a small optimization here for small strings.\n\t\t// Because a slice of constant length is effectively an array,\n\t\t// it does not allocate. So we can re-slice it to the right length\n\t\t// as long as it is below a desired threshold.\n\t\tx = make([]uint16, minLengthThreshold)\n\t\tx = x[:lenS1+1]\n\t}\n\n\t// we start from 1 because index 0 is already 0.\n\tfor i := 1; i < len(x); i++ {\n\t\tx[i] = uint16(i)\n\t}\n\n\t// hoist bounds checks out of the loops\n\t_ = x[lenS1]\n\ty := x[1:]\n\ty = y[:lenS1]\n\t// fill in the rest\n\tfor i := 0; i < lenS2; i++ {\n\t\tprev := uint16(i + 1)\n\t\tfor j := 0; j < lenS1; j++ {\n\t\t\tcurrent := x[j] // match\n\t\t\tif s2[i] != s1[j] {\n\t\t\t\tcurrent = min(x[j], prev, y[j]) + 1\n\t\t\t}\n\t\t\tx[j] = prev\n\t\t\tprev = current\n\t\t}\n\t\tx[lenS1] = prev\n\t}\n\treturn int(x[lenS1])\n}\n\nfunc trimLongestCommonSuffix(a, b []rune) ([]rune, []rune) {\n\tm := min(len(a), len(b))\n\ta2 := a[len(a)-m:]\n\tb2 := b[len(b)-m:]\n\ti := len(a2)\n\tb2 = b2[:i] // hoist bounds checks out of the loop\n\tfor ; i > 0 && a2[i-1] == b2[i-1]; i-- {\n\t\t// deliberately empty body\n\t}\n\treturn a[:len(a)-len(a2)+i], b[:len(b)-len(b2)+i]\n}\n\nfunc trimLongestCommonPrefix(a, b []rune) ([]rune, []rune) {\n\tvar i int\n\tfor m := min(len(a), len(b)); i < m && a[i] == b[i]; i++ {\n\t\t// deliberately empty body\n\t}\n\treturn a[i:], b[i:]\n}\n"
  },
  {
    "path": "vendor/github.com/bahlo/generic-list-go/LICENSE",
    "content": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/bahlo/generic-list-go/README.md",
    "content": "# generic-list-go [![CI](https://github.com/bahlo/generic-list-go/actions/workflows/ci.yml/badge.svg)](https://github.com/bahlo/generic-list-go/actions/workflows/ci.yml)\n\nGo [container/list](https://pkg.go.dev/container/list) but with generics.\n\nThe code is based on `container/list` in `go1.18beta2`.\n"
  },
  {
    "path": "vendor/github.com/bahlo/generic-list-go/list.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 list implements a doubly linked list.\n//\n// To iterate over a list (where l is a *List):\n//\tfor e := l.Front(); e != nil; e = e.Next() {\n//\t\t// do something with e.Value\n//\t}\n//\npackage list\n\n// Element is an element of a linked list.\ntype Element[T any] struct {\n\t// Next and previous pointers in the doubly-linked list of elements.\n\t// To simplify the implementation, internally a list l is implemented\n\t// as a ring, such that &l.root is both the next element of the last\n\t// list element (l.Back()) and the previous element of the first list\n\t// element (l.Front()).\n\tnext, prev *Element[T]\n\n\t// The list to which this element belongs.\n\tlist *List[T]\n\n\t// The value stored with this element.\n\tValue T\n}\n\n// Next returns the next list element or nil.\nfunc (e *Element[T]) Next() *Element[T] {\n\tif p := e.next; e.list != nil && p != &e.list.root {\n\t\treturn p\n\t}\n\treturn nil\n}\n\n// Prev returns the previous list element or nil.\nfunc (e *Element[T]) Prev() *Element[T] {\n\tif p := e.prev; e.list != nil && p != &e.list.root {\n\t\treturn p\n\t}\n\treturn nil\n}\n\n// List represents a doubly linked list.\n// The zero value for List is an empty list ready to use.\ntype List[T any] struct {\n\troot Element[T] // sentinel list element, only &root, root.prev, and root.next are used\n\tlen  int        // current list length excluding (this) sentinel element\n}\n\n// Init initializes or clears list l.\nfunc (l *List[T]) Init() *List[T] {\n\tl.root.next = &l.root\n\tl.root.prev = &l.root\n\tl.len = 0\n\treturn l\n}\n\n// New returns an initialized list.\nfunc New[T any]() *List[T] { return new(List[T]).Init() }\n\n// Len returns the number of elements of list l.\n// The complexity is O(1).\nfunc (l *List[T]) Len() int { return l.len }\n\n// Front returns the first element of list l or nil if the list is empty.\nfunc (l *List[T]) Front() *Element[T] {\n\tif l.len == 0 {\n\t\treturn nil\n\t}\n\treturn l.root.next\n}\n\n// Back returns the last element of list l or nil if the list is empty.\nfunc (l *List[T]) Back() *Element[T] {\n\tif l.len == 0 {\n\t\treturn nil\n\t}\n\treturn l.root.prev\n}\n\n// lazyInit lazily initializes a zero List value.\nfunc (l *List[T]) lazyInit() {\n\tif l.root.next == nil {\n\t\tl.Init()\n\t}\n}\n\n// insert inserts e after at, increments l.len, and returns e.\nfunc (l *List[T]) insert(e, at *Element[T]) *Element[T] {\n\te.prev = at\n\te.next = at.next\n\te.prev.next = e\n\te.next.prev = e\n\te.list = l\n\tl.len++\n\treturn e\n}\n\n// insertValue is a convenience wrapper for insert(&Element{Value: v}, at).\nfunc (l *List[T]) insertValue(v T, at *Element[T]) *Element[T] {\n\treturn l.insert(&Element[T]{Value: v}, at)\n}\n\n// remove removes e from its list, decrements l.len\nfunc (l *List[T]) remove(e *Element[T]) {\n\te.prev.next = e.next\n\te.next.prev = e.prev\n\te.next = nil // avoid memory leaks\n\te.prev = nil // avoid memory leaks\n\te.list = nil\n\tl.len--\n}\n\n// move moves e to next to at.\nfunc (l *List[T]) move(e, at *Element[T]) {\n\tif e == at {\n\t\treturn\n\t}\n\te.prev.next = e.next\n\te.next.prev = e.prev\n\n\te.prev = at\n\te.next = at.next\n\te.prev.next = e\n\te.next.prev = e\n}\n\n// Remove removes e from l if e is an element of list l.\n// It returns the element value e.Value.\n// The element must not be nil.\nfunc (l *List[T]) Remove(e *Element[T]) T {\n\tif e.list == l {\n\t\t// if e.list == l, l must have been initialized when e was inserted\n\t\t// in l or l == nil (e is a zero Element) and l.remove will crash\n\t\tl.remove(e)\n\t}\n\treturn e.Value\n}\n\n// PushFront inserts a new element e with value v at the front of list l and returns e.\nfunc (l *List[T]) PushFront(v T) *Element[T] {\n\tl.lazyInit()\n\treturn l.insertValue(v, &l.root)\n}\n\n// PushBack inserts a new element e with value v at the back of list l and returns e.\nfunc (l *List[T]) PushBack(v T) *Element[T] {\n\tl.lazyInit()\n\treturn l.insertValue(v, l.root.prev)\n}\n\n// InsertBefore inserts a new element e with value v immediately before mark and returns e.\n// If mark is not an element of l, the list is not modified.\n// The mark must not be nil.\nfunc (l *List[T]) InsertBefore(v T, mark *Element[T]) *Element[T] {\n\tif mark.list != l {\n\t\treturn nil\n\t}\n\t// see comment in List.Remove about initialization of l\n\treturn l.insertValue(v, mark.prev)\n}\n\n// InsertAfter inserts a new element e with value v immediately after mark and returns e.\n// If mark is not an element of l, the list is not modified.\n// The mark must not be nil.\nfunc (l *List[T]) InsertAfter(v T, mark *Element[T]) *Element[T] {\n\tif mark.list != l {\n\t\treturn nil\n\t}\n\t// see comment in List.Remove about initialization of l\n\treturn l.insertValue(v, mark)\n}\n\n// MoveToFront moves element e to the front of list l.\n// If e is not an element of l, the list is not modified.\n// The element must not be nil.\nfunc (l *List[T]) MoveToFront(e *Element[T]) {\n\tif e.list != l || l.root.next == e {\n\t\treturn\n\t}\n\t// see comment in List.Remove about initialization of l\n\tl.move(e, &l.root)\n}\n\n// MoveToBack moves element e to the back of list l.\n// If e is not an element of l, the list is not modified.\n// The element must not be nil.\nfunc (l *List[T]) MoveToBack(e *Element[T]) {\n\tif e.list != l || l.root.prev == e {\n\t\treturn\n\t}\n\t// see comment in List.Remove about initialization of l\n\tl.move(e, l.root.prev)\n}\n\n// MoveBefore moves element e to its new position before mark.\n// If e or mark is not an element of l, or e == mark, the list is not modified.\n// The element and mark must not be nil.\nfunc (l *List[T]) MoveBefore(e, mark *Element[T]) {\n\tif e.list != l || e == mark || mark.list != l {\n\t\treturn\n\t}\n\tl.move(e, mark.prev)\n}\n\n// MoveAfter moves element e to its new position after mark.\n// If e or mark is not an element of l, or e == mark, the list is not modified.\n// The element and mark must not be nil.\nfunc (l *List[T]) MoveAfter(e, mark *Element[T]) {\n\tif e.list != l || e == mark || mark.list != l {\n\t\treturn\n\t}\n\tl.move(e, mark)\n}\n\n// PushBackList inserts a copy of another list at the back of list l.\n// The lists l and other may be the same. They must not be nil.\nfunc (l *List[T]) PushBackList(other *List[T]) {\n\tl.lazyInit()\n\tfor i, e := other.Len(), other.Front(); i > 0; i, e = i-1, e.Next() {\n\t\tl.insertValue(e.Value, l.root.prev)\n\t}\n}\n\n// PushFrontList inserts a copy of another list at the front of list l.\n// The lists l and other may be the same. They must not be nil.\nfunc (l *List[T]) PushFrontList(other *List[T]) {\n\tl.lazyInit()\n\tfor i, e := other.Len(), other.Back(); i > 0; i, e = i-1, e.Prev() {\n\t\tl.insertValue(e.Value, &l.root)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/.gitignore",
    "content": "# Binaries for programs and plugins\n*.exe\n*.exe~\n*.dll\n*.so\n*.dylib\n\n# Test binary, built with `go test -c`\n*.test\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\n\n# Dependency directories (remove the comment below to include it)\n# vendor/\n\n.idea\ndist/\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/.goreleaser.yml",
    "content": "# This is an example .goreleaser.yml file with some sensible defaults.\n# Make sure to check the documentation at https://goreleaser.com\nbefore:\n  hooks:\n    # You may remove this if you don't use go modules.\n    - go mod tidy\n    # you may remove this if you don't need go generate\n    - go generate ./...\nbuilds:\n  - skip: true\n\narchives:\n  - format: tar.gz\n    # this name template makes the OS and Arch compatible with the results of uname.\n    name_template: >-\n      {{ .ProjectName }}_\n      {{- title .Os }}_\n      {{- if eq .Arch \"amd64\" }}x86_64\n      {{- else if eq .Arch \"386\" }}i386\n      {{- else }}{{ .Arch }}{{ end }}\n      {{- if .Arm }}v{{ .Arm }}{{ end }}\n    # use zip for windows archives\n    format_overrides:\n      - goos: windows\n        format: zip\nchecksum:\n  name_template: 'checksums.txt'\nsnapshot:\n  name_template: \"{{ incpatch .Version }}-next\"\nchangelog:\n  sort: asc\n  filters:\n    exclude:\n      - '^docs:'\n      - '^test:'\n\n# The lines beneath this are called `modelines`. See `:help modeline`\n# Feel free to remove those if you don't want/use them.\n# yaml-language-server: $schema=https://goreleaser.com/static/schema.json\n# vim: set ts=2 sw=2 tw=0 fo=cnqoj\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/.ignore",
    "content": "/\ngo-gitignore"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/LICENSE",
    "content": "MIT License Copyright (c) 2021 Ben Boyter\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 (including the next paragraph) 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."
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/Makefile",
    "content": "# Some people have gotestsum installed and like it so use it if it exists\nHAS_GOTESTSUM := $(shell which gotestsum)\nifdef HAS_GOTESTSUM\n    TEST_CMD = gotestsum --format testname --packages=\"./...\" -- -count=1 -tags=integration -v -p 1\nelse\n    TEST_CMD = go test ./... --count=1 -tags=integration\nendif\n\nlint:\n\t@golangci-lint run --fix\n\t@golangci-lint run\n\ntest:\n\t@$(TEST_CMD)\n\ntest-run:\n\t@$(TEST_CMD) -run=$(RUN)\n\nfuzz:\n\tgo test -fuzz=FuzzTestGitIgnore -fuzztime 30s\n\ntest-coverage:\n\tgo test ./... -coverprofile coverage.out && go tool cover -html=coverage.out -o coverage.html\n\nmod:\n\t@go mod tidy\n\t@go mod vendor\n\nclean:\n\tgo clean -modcache\n\nall: mod lint test fuzz\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/README.md",
    "content": "# gocodewalker\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/boyter/gocodewalker)](https://goreportcard.com/report/github.com/boyter/gocodewalker)\n[![Str Count Badge](https://sloc.xyz/github/boyter/gocodewalker/)](https://github.com/boyter/gocodewalker/)\n\nLibrary to help with walking of code directories in Go. \n\nThe problem. You want to walk the directories of a code repository. You want to respect .gitignore and .ignore files, and \nsome are nested. This library is the answer.\n\n - Designed to walk code repositories or find the root of them.\n - By default, respects both .gitignore and .ignore files (can be disabled) and nested ones for accuracy\n - Has configurable options for skipping files based on regex, extension or general match\n - Uses readdir to provide as fast as possible file walking\n\nNB this was moved from go-code-walker due to the name being annoying and to ensure it has a unique package name. Should still be drop in replaceable\nso long as you refer to the new package name.\n\nhttps://pkg.go.dev/github.com/boyter/gocodewalker\n\nPackage provides file operations specific to code repositories such as walking the file tree obeying .ignore and .gitignore files\nor looking for the root directory assuming already in a git project.\n\nExample of usage,\n\n```go\nfileListQueue := make(chan *gocodewalker.File, 100)\n\nfileWalker := gocodewalker.NewFileWalker(\".\", fileListQueue)\n\n// restrict to only process files that have the .go extension\nfileWalker.AllowListExtensions = append(fileWalker.AllowListExtensions, \"go\")\n\n// handle the errors by printing them out and then ignore\nerrorHandler := func(e error) bool {\n    fmt.Println(\"ERR\", e.Error())\n    return true\n}\nfileWalker.SetErrorHandler(errorHandler)\n\n// skipHandler\nskipHandler := func(path string, name string, isDir bool, reason gocodewalker.SkipReason) {\n    fmt.Println(\"SKIPPED\", path, name, isDir, reason)\n}\nfileWalker.SetSkipHandler(skipHandler)\n\ngo fileWalker.Start()\n\nfor f := range fileListQueue {\n    fmt.Println(f.Location)\n}\n```\n\nThe above by default will recursively add files to the fileListQueue respecting both .ignore and .gitignore files if found, and\nonly adding files with the go extension into the queue.\n\nYou can also run the walker in parallel with the results intermixed if required,\n\n```go\nfileListQueue := make(chan *gocodewalker.File, 100)\n\nfileWalker := gocodewalker.NewParallelFileWalker([]string{\".\", \"someotherdir\"}, fileListQueue)\ngo fileWalker.Start()\n\nfor f := range fileListQueue {\n    fmt.Println(f.Location)\n}\n```\n\nAll code is licenced as MIT.\n\n### Error Handler\n\nYou can supply your own error handler when walking. This allows you to perform an action when there is an error\nand decide if the walker should continue to process, or return.\n\nThe simplest handler is the below, which if set will swallow all errors and continue as best it can.\n\n```go\nerrorHandler := func(e error) bool {\n    return true\n}\nfileWalker.SetErrorHandler(errorHandler)\n```\n\nIf you wanted to return on errors you could use the following.\n\n```go\nerrorHandler := func(e error) bool {\n    return false\n}\nfileWalker.SetErrorHandler(errorHandler)\n```\n\nIf you wanted to terminate walking on an error you could use the following, which would cause it to return the error,\nand then terminate all walking. This might be desirable where any error indicates a total failure.\n\n```go\nerrorHandler := func(e error) bool {\n    fileWalker.Terminate()\n    return false\n}\nfileWalker.SetErrorHandler(errorHandler)\n```\n\n### Skip Handler\n\nYou can supply your own skip handler when walking. This allows you to perform an action a file is skipped.\n\n```go\n// skipHandler\nskipHandler := func(path string, name string, isDir bool, reason gocodewalker.SkipReason) {\n    fmt.Println(\"SKIPPED\", path, name, isDir, reason)\n}\nfileWalker.SetSkipHandler(skipHandler)\n```\n\n\n### Binary Checking\n\nYou can ask it to ignore binary files for you by setting `IgnoreBinaryFiles` to true and optionally \n`IgnoreBinaryFileBytes` to the number of bytes you want to check which by default is set to 1,000.\n\nThis will have a performance impact as gocodewalker will open each file, so you may want to do this check yourself\nif performance is your goal.\n\n```go\nfileListQueue := make(chan *gocodewalker.File, 100)\n\nfileWalker := gocodewalker.NewFileWalker(\".\", fileListQueue)\n\n// set to ignore binary files\nfileWalker.IgnoreBinaryFiles = true\nfileWalker.IgnoreBinaryFileBytes = 500\n```\n\nThe check itself looks for a null byte `if b == 0 {` which is a fast mostly accurate way of checking for \na binary file.\n\n### Testing\n\nDone through unit/integration tests. Otherwise see https://github.com/svent/gitignore-test\n\nSee `./cmd/gocodewalker/main.go` for an example of how to implement and validate \n\n### Info\n\nDetails on how gitignores work\n\nhttps://stackoverflow.com/questions/71735516/proper-way-to-setup-multiple-gitignore-files-in-nested-folders-of-a-repository\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/dir_suffix.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gocodewalker\n\nimport (\n\t\"path/filepath\"\n\t\"strings\"\n)\n\n// isSuffixDir returns true if base ends with suffix. Suffix \"/\" will be trimmed.\n// suffix must be a valid sub dir of base.\n// For examples:\n//   - isSuffixDir(\"a\", \"a\") returns true\n//   - isSuffixDir(\"a/b/c\", \"c\") returns true\n//   - isSuffixDir(\"a/b/c\", \"b/c\") returns true\n//   - isSuffixDir(\"a/b/c\", \"b\") returns false\n//   - isSuffixDir(\"a/b/c\", \"a/b\") returns false, \"a/b\" is a valid sub dir but not at the end of \"a/b/c\"\n//   - isSuffixDir(\"a/bb/c\", \"b/c\") returns false\nfunc isSuffixDir(base string, suffix string) bool {\n\tif base == \"\" || suffix == \"\" {\n\t\treturn false\n\t}\n\tbase = strings.TrimSuffix(filepath.ToSlash(base), \"/\")\n\tsuffix = strings.TrimSuffix(filepath.ToSlash(suffix), \"/\")\n\tnewBase := strings.TrimSuffix(base, suffix)\n\tif newBase == base {\n\t\treturn false\n\t}\n\treturn strings.HasSuffix(newBase, \"/\") || newBase == \"\"\n}\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/file.go",
    "content": "// Package file provides file operations specific to code repositories\n// such as walking the file tree obeying .ignore and .gitignore files\n// or looking for the root directory assuming already in a git project\n\n// SPDX-License-Identifier: MIT\n\npackage gocodewalker\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"io/fs\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"slices\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/boyter/gocodewalker/go-gitignore\"\n\t\"golang.org/x/sync/errgroup\"\n)\n\nconst (\n\tGitIgnore             = \".gitignore\"\n\tIgnore                = \".ignore\"\n\tGitModules            = \".gitmodules\"\n\tIgnoreBinaryFileBytes = 1000\n)\n\n// ErrTerminateWalk error which indicates that the walker was terminated\nvar ErrTerminateWalk = errors.New(\"gocodewalker terminated\")\n\n// SkipReason indicates why a file or directory was skipped during walking\ntype SkipReason string\n\nconst (\n\tSkipReasonGitignore              SkipReason = \"gitignore\"\n\tSkipReasonIgnoreFile             SkipReason = \"ignore_file\"\n\tSkipReasonCustomIgnore           SkipReason = \"custom_ignore\"\n\tSkipReasonModuleIgnore           SkipReason = \"module_ignore\"\n\tSkipReasonIncludeFilename        SkipReason = \"include_filename\"\n\tSkipReasonExcludeFilename        SkipReason = \"exclude_filename\"\n\tSkipReasonIncludeFilenameRegex   SkipReason = \"include_filename_regex\"\n\tSkipReasonExcludeFilenameRegex   SkipReason = \"exclude_filename_regex\"\n\tSkipReasonHidden                 SkipReason = \"hidden\"\n\tSkipReasonAllowListExtension     SkipReason = \"allow_list_extension\"\n\tSkipReasonExcludeListExtension   SkipReason = \"exclude_list_extension\"\n\tSkipReasonLocationExcludePattern SkipReason = \"location_exclude_pattern\"\n\tSkipReasonBinary                 SkipReason = \"binary\"\n\tSkipReasonIncludeDirectory       SkipReason = \"include_directory\"\n\tSkipReasonExcludeDirectory       SkipReason = \"exclude_directory\"\n\tSkipReasonIncludeDirectoryRegex  SkipReason = \"include_directory_regex\"\n\tSkipReasonExcludeDirectoryRegex  SkipReason = \"exclude_directory_regex\"\n)\n\n// File is a struct returned which contains the location and the filename of the file that passed all exclusion rules\ntype File struct {\n\tLocation string\n\tFilename string\n}\n\nvar semaphoreCount = 8\n\ntype FileWalker struct {\n\tfileListQueue          chan<- *File\n\terrorsHandler          func(error) bool // If returns true will continue to process where possible, otherwise returns if possible\n\tskipHandler            func(path string, name string, isDir bool, reason SkipReason)\n\tdirectory              string\n\tdirectories            []string\n\tLocationExcludePattern []string // Case-sensitive patterns which exclude directory/file matches\n\tIncludeDirectory       []string\n\tExcludeDirectory       []string // Paths to always ignore such as .git,.svn and .hg\n\tIncludeFilename        []string\n\tExcludeFilename        []string\n\tIncludeDirectoryRegex  []*regexp.Regexp // Must match regex as logical OR IE can match any of them\n\tExcludeDirectoryRegex  []*regexp.Regexp\n\tIncludeFilenameRegex   []*regexp.Regexp\n\tExcludeFilenameRegex   []*regexp.Regexp\n\tAllowListExtensions    []string // Which extensions should be allowed case sensitive\n\tExcludeListExtensions  []string // Which extensions should be excluded case sensitive\n\twalkMutex              sync.Mutex\n\tterminateWalking       bool\n\tisWalking              bool\n\tIgnoreIgnoreFile       bool     // Should .ignore files be respected?\n\tIgnoreGitIgnore        bool     // Should .gitignore files be respected?\n\tIgnoreGitModules       bool     // Should .gitmodules files be respected?\n\tCustomIgnore           []string // Custom ignore files\n\tCustomIgnorePatterns   []string //Custom ignore patterns\n\tIncludeHidden          bool     // Should hidden files and directories be included/walked\n\tosOpen                 func(name string) (*os.File, error)\n\tosReadFile             func(name string) ([]byte, error)\n\tcountingSemaphore      chan bool\n\tsemaphoreCount         int\n\tMaxDepth               int\n\tIgnoreBinaryFiles      bool // Should we open the file and try to determine if it is binary?\n\tIgnoreBinaryFileBytes  int  // How many bytes should be used\n}\n\n// NewFileWalker constructs a filewalker, which will walk the supplied directory\n// and output File results to the supplied queue as it finds them\nfunc NewFileWalker(directory string, fileListQueue chan<- *File) *FileWalker {\n\treturn &FileWalker{\n\t\tfileListQueue:          fileListQueue,\n\t\terrorsHandler:          func(e error) bool { return true }, // a generic one that just swallows everything\n\t\tskipHandler:            func(path string, name string, isDir bool, reason SkipReason) {},\n\t\tdirectory:              directory,\n\t\tLocationExcludePattern: nil,\n\t\tIncludeDirectory:       nil,\n\t\tExcludeDirectory:       nil,\n\t\tIncludeFilename:        nil,\n\t\tExcludeFilename:        nil,\n\t\tIncludeDirectoryRegex:  nil,\n\t\tExcludeDirectoryRegex:  nil,\n\t\tIncludeFilenameRegex:   nil,\n\t\tExcludeFilenameRegex:   nil,\n\t\tAllowListExtensions:    nil,\n\t\tExcludeListExtensions:  nil,\n\t\twalkMutex:              sync.Mutex{},\n\t\tterminateWalking:       false,\n\t\tisWalking:              false,\n\t\tIgnoreIgnoreFile:       false,\n\t\tIgnoreGitIgnore:        false,\n\t\tCustomIgnore:           []string{},\n\t\tCustomIgnorePatterns:   []string{},\n\t\tIgnoreGitModules:       false,\n\t\tIncludeHidden:          false,\n\t\tosOpen:                 os.Open,\n\t\tosReadFile:             os.ReadFile,\n\t\tcountingSemaphore:      make(chan bool, semaphoreCount),\n\t\tsemaphoreCount:         semaphoreCount,\n\t\tMaxDepth:               -1,\n\t\tIgnoreBinaryFiles:      false,\n\t\tIgnoreBinaryFileBytes:  IgnoreBinaryFileBytes,\n\t}\n}\n\n// NewParallelFileWalker constructs a filewalker, which will walk the supplied directories in parallel\n// and output File results to the supplied queue as it finds them\nfunc NewParallelFileWalker(directories []string, fileListQueue chan<- *File) *FileWalker {\n\treturn &FileWalker{\n\t\tfileListQueue:          fileListQueue,\n\t\terrorsHandler:          func(e error) bool { return true }, // a generic one that just swallows everything\n\t\tskipHandler:            func(path string, name string, isDir bool, reason SkipReason) {},\n\t\tdirectories:            directories,\n\t\tLocationExcludePattern: nil,\n\t\tIncludeDirectory:       nil,\n\t\tExcludeDirectory:       nil,\n\t\tIncludeFilename:        nil,\n\t\tExcludeFilename:        nil,\n\t\tIncludeDirectoryRegex:  nil,\n\t\tExcludeDirectoryRegex:  nil,\n\t\tIncludeFilenameRegex:   nil,\n\t\tExcludeFilenameRegex:   nil,\n\t\tAllowListExtensions:    nil,\n\t\tExcludeListExtensions:  nil,\n\t\twalkMutex:              sync.Mutex{},\n\t\tterminateWalking:       false,\n\t\tisWalking:              false,\n\t\tIgnoreIgnoreFile:       false,\n\t\tIgnoreGitIgnore:        false,\n\t\tCustomIgnore:           []string{},\n\t\tCustomIgnorePatterns:   []string{},\n\t\tIgnoreGitModules:       false,\n\t\tIncludeHidden:          false,\n\t\tosOpen:                 os.Open,\n\t\tosReadFile:             os.ReadFile,\n\t\tcountingSemaphore:      make(chan bool, semaphoreCount),\n\t\tsemaphoreCount:         semaphoreCount,\n\t\tMaxDepth:               -1,\n\t\tIgnoreBinaryFiles:      false,\n\t\tIgnoreBinaryFileBytes:  IgnoreBinaryFileBytes,\n\t}\n}\n\n// SetConcurrency sets the concurrency when walking\n// which controls the number of goroutines that\n// walk directories concurrently\n// by default it is set to 8\n// must be a whole integer greater than 0\nfunc (f *FileWalker) SetConcurrency(i int) {\n\tf.walkMutex.Lock()\n\tdefer f.walkMutex.Unlock()\n\tif i >= 1 {\n\t\tf.semaphoreCount = i\n\t}\n}\n\n// Walking gets the state of the file walker and determine\n// if we are walking or not\nfunc (f *FileWalker) Walking() bool {\n\tf.walkMutex.Lock()\n\tdefer f.walkMutex.Unlock()\n\treturn f.isWalking\n}\n\n// Terminate have the walker break out of walking and return as\n// soon as it possibly can. This is needed because\n// this walker needs to work in a TUI interactive mode and\n// as such we need to be able to end old processes\nfunc (f *FileWalker) Terminate() {\n\tf.walkMutex.Lock()\n\tdefer f.walkMutex.Unlock()\n\tf.terminateWalking = true\n}\n\n// SetErrorHandler sets the function that is called on processing any error\n// where if you return true it will attempt to continue processing, and if false\n// will return the error instantly\nfunc (f *FileWalker) SetErrorHandler(errors func(error) bool) {\n\tif errors != nil {\n\t\tf.errorsHandler = errors\n\t}\n}\n\n// SetSkipHandler sets the function that is called whenever a file or directory is skipped\n// by the filter pipeline. The handler receives the full path, the entry name, whether it is\n// a directory, and the reason it was skipped. By default it is a no-op.\nfunc (f *FileWalker) SetSkipHandler(handler func(path string, name string, isDir bool, reason SkipReason)) {\n\tif handler != nil {\n\t\tf.skipHandler = handler\n\t}\n}\n\n// Start will start walking the supplied directory with the supplied settings\n// and putting files that mach into the supplied channel.\n// Returns usual ioutil errors if there is a file issue\n// and a ErrTerminateWalk if terminate is called while walking\nfunc (f *FileWalker) Start() error {\n\tf.walkMutex.Lock()\n\tf.isWalking = true\n\tf.walkMutex.Unlock()\n\n\t// we now set the counting semaphore based on the count\n\t// done here because it should not change while walking\n\tf.countingSemaphore = make(chan bool, semaphoreCount)\n\n\tvar err error\n\tif len(f.directories) != 0 {\n\t\teg := errgroup.Group{}\n\t\tfor _, directory := range f.directories {\n\t\t\td := directory // capture var\n\t\t\teg.Go(func() error {\n\t\t\t\treturn f.walkDirectoryRecursive(0, d, []gitignore.GitIgnore{}, []gitignore.GitIgnore{}, []gitignore.GitIgnore{}, []gitignore.GitIgnore{})\n\t\t\t})\n\t\t}\n\n\t\terr = eg.Wait()\n\t} else {\n\t\tif f.directory != \"\" {\n\t\t\terr = f.walkDirectoryRecursive(0, f.directory, []gitignore.GitIgnore{}, []gitignore.GitIgnore{}, []gitignore.GitIgnore{}, []gitignore.GitIgnore{})\n\t\t}\n\t}\n\n\tclose(f.fileListQueue)\n\n\tf.walkMutex.Lock()\n\tf.isWalking = false\n\tf.walkMutex.Unlock()\n\n\treturn err\n}\n\nfunc (f *FileWalker) walkDirectoryRecursive(iteration int,\n\tdirectory string,\n\tgitignores []gitignore.GitIgnore,\n\tignores []gitignore.GitIgnore,\n\tmoduleIgnores []gitignore.GitIgnore,\n\tcustomIgnores []gitignore.GitIgnore) error {\n\n\t// implement max depth option\n\tif f.MaxDepth != -1 && iteration >= f.MaxDepth {\n\t\treturn nil\n\t}\n\n\tif iteration == 1 {\n\t\tf.countingSemaphore <- true\n\t\tdefer func() {\n\t\t\t<-f.countingSemaphore\n\t\t}()\n\t}\n\n\t// NB have to call unlock not using defer because method is recursive\n\t// and will deadlock if not done manually\n\tf.walkMutex.Lock()\n\tif f.terminateWalking {\n\t\tf.walkMutex.Unlock()\n\t\treturn ErrTerminateWalk\n\t}\n\tf.walkMutex.Unlock()\n\n\td, err := f.osOpen(directory)\n\tif err != nil {\n\t\t// nothing we can do with this so return nil and process as best we can\n\t\tif f.errorsHandler(err) {\n\t\t\treturn nil\n\t\t}\n\t\treturn err\n\t}\n\tdefer func(d *os.File) {\n\t\terr := d.Close()\n\t\tif err != nil {\n\t\t\tf.errorsHandler(err)\n\t\t}\n\t}(d)\n\n\tfoundFiles, err := d.ReadDir(-1)\n\tif err != nil {\n\t\t// nothing we can do with this so return nil and process as best we can\n\t\tif f.errorsHandler(err) {\n\t\t\treturn nil\n\t\t}\n\t\treturn err\n\t}\n\n\tfiles := []fs.DirEntry{}\n\tdirs := []fs.DirEntry{}\n\n\t// We want to break apart the files and directories from the\n\t// return as we loop over them differently and this avoids some\n\t// nested if logic at the expense of a \"redundant\" loop\n\tfor _, file := range foundFiles {\n\t\tif file.IsDir() {\n\t\t\tdirs = append(dirs, file)\n\t\t} else {\n\t\t\tfiles = append(files, file)\n\t\t}\n\t}\n\n\t// Pull out all ignore, gitignore and gitmodule files and add them\n\t// to out collection of gitignores to be applied for this pass\n\t// and any subdirectories\n\t// Since they can apply to the current list of files we need to ensure\n\t// we do this before processing files themselves\n\tfor _, file := range files {\n\t\tif !f.IgnoreGitIgnore {\n\t\t\tif file.Name() == GitIgnore {\n\t\t\t\tc, err := f.osReadFile(filepath.Join(directory, file.Name()))\n\t\t\t\tif err != nil {\n\t\t\t\t\tif f.errorsHandler(err) {\n\t\t\t\t\t\tcontinue // if asked to ignore it lets continue\n\t\t\t\t\t}\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tabs, err := filepath.Abs(directory)\n\t\t\t\tif err != nil {\n\t\t\t\t\tif f.errorsHandler(err) {\n\t\t\t\t\t\tcontinue // if asked to ignore it lets continue\n\t\t\t\t\t}\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tgitIgnore := gitignore.New(bytes.NewReader(c), abs, nil)\n\t\t\t\tgitignores = append(gitignores, gitIgnore)\n\t\t\t}\n\t\t}\n\n\t\tif !f.IgnoreIgnoreFile {\n\t\t\tif file.Name() == Ignore {\n\t\t\t\tc, err := f.osReadFile(filepath.Join(directory, file.Name()))\n\t\t\t\tif err != nil {\n\t\t\t\t\tif f.errorsHandler(err) {\n\t\t\t\t\t\tcontinue // if asked to ignore it lets continue\n\t\t\t\t\t}\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tabs, err := filepath.Abs(directory)\n\t\t\t\tif err != nil {\n\t\t\t\t\tif f.errorsHandler(err) {\n\t\t\t\t\t\tcontinue // if asked to ignore it lets continue\n\t\t\t\t\t}\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tgitIgnore := gitignore.New(bytes.NewReader(c), abs, nil)\n\t\t\t\tignores = append(ignores, gitIgnore)\n\t\t\t}\n\t\t}\n\n\t\t// this should only happen on the first iteration\n\t\t// because there should be one .gitmodules file per repository\n\t\t// however we also need to support someone running in a directory of\n\t\t// projects that have multiple repositories or in a go vendor\n\t\t// repository etc... hence check every time\n\t\tif !f.IgnoreGitModules {\n\t\t\tif file.Name() == GitModules {\n\t\t\t\t// now we need to open and parse the file\n\t\t\t\tc, err := f.osReadFile(filepath.Join(directory, file.Name()))\n\t\t\t\tif err != nil {\n\t\t\t\t\tif f.errorsHandler(err) {\n\t\t\t\t\t\tcontinue // if asked to ignore it lets continue\n\t\t\t\t\t}\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tabs, err := filepath.Abs(directory)\n\t\t\t\tif err != nil {\n\t\t\t\t\tif f.errorsHandler(err) {\n\t\t\t\t\t\tcontinue // if asked to ignore it lets continue\n\t\t\t\t\t}\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tfor _, gm := range extractGitModuleFolders(string(c)) {\n\t\t\t\t\tgitIgnore := gitignore.New(strings.NewReader(gm), abs, nil)\n\t\t\t\t\tmoduleIgnores = append(moduleIgnores, gitIgnore)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor _, ci := range f.CustomIgnore {\n\t\t\tif file.Name() == ci {\n\t\t\t\tc, err := f.osReadFile(filepath.Join(directory, file.Name()))\n\t\t\t\tif err != nil {\n\t\t\t\t\tif f.errorsHandler(err) {\n\t\t\t\t\t\tcontinue // if asked to ignore it lets continue\n\t\t\t\t\t}\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tabs, err := filepath.Abs(directory)\n\t\t\t\tif err != nil {\n\t\t\t\t\tif f.errorsHandler(err) {\n\t\t\t\t\t\tcontinue // if asked to ignore it lets continue\n\t\t\t\t\t}\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tgitIgnore := gitignore.New(bytes.NewReader(c), abs, nil)\n\t\t\t\tcustomIgnores = append(customIgnores, gitIgnore)\n\t\t\t}\n\t\t}\n\t}\n\n\t// If we have custom ignore patterns defined we should concatenate them and treat them as a single gitignore file\n\tif len(f.CustomIgnorePatterns) > 0 {\n\t\tcustomIgnorePatternsCombined := strings.Join(f.CustomIgnorePatterns, \"\\n\")\n\n\t\tabs, err := filepath.Abs(directory)\n\t\tif err != nil {\n\t\t\tif !f.errorsHandler(err) {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tgitIgnore := gitignore.New(bytes.NewReader([]byte(customIgnorePatternsCombined)), abs, nil)\n\t\tcustomIgnores = append(customIgnores, gitIgnore)\n\t}\n\n\t// Process files first to start feeding whatever process is consuming\n\t// the output before traversing into directories for more files\n\tfor _, file := range files {\n\t\tshouldIgnore := false\n\t\tvar skipReason SkipReason\n\t\tjoined := filepath.Join(directory, file.Name())\n\n\t\tfor _, ignore := range gitignores {\n\t\t\t// we have the following situations\n\t\t\t// 1. none of the gitignores match\n\t\t\t// 2. one or more match\n\t\t\t// for #1 this means we should include the file\n\t\t\t// for #2 this means the last one wins since it should be the most correct\n\t\t\tif ignore.MatchIsDir(joined, false) != nil {\n\t\t\t\tshouldIgnore = ignore.Ignore(joined)\n\t\t\t\tif shouldIgnore {\n\t\t\t\t\tskipReason = SkipReasonGitignore\n\t\t\t\t} else {\n\t\t\t\t\tskipReason = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor _, ignore := range ignores {\n\t\t\t// same rules as above\n\t\t\tif ignore.MatchIsDir(joined, false) != nil {\n\t\t\t\tshouldIgnore = ignore.Ignore(joined)\n\t\t\t\tif shouldIgnore {\n\t\t\t\t\tskipReason = SkipReasonIgnoreFile\n\t\t\t\t} else {\n\t\t\t\t\tskipReason = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor _, ignore := range customIgnores {\n\t\t\t// same rules as above\n\t\t\tif ignore.MatchIsDir(joined, false) != nil {\n\t\t\t\tshouldIgnore = ignore.Ignore(joined)\n\t\t\t\tif shouldIgnore {\n\t\t\t\t\tskipReason = SkipReasonCustomIgnore\n\t\t\t\t} else {\n\t\t\t\t\tskipReason = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif len(f.IncludeFilename) != 0 {\n\t\t\t// include files\n\t\t\tshouldIgnore = !slices.ContainsFunc(f.IncludeFilename, func(allow string) bool {\n\t\t\t\treturn file.Name() == allow\n\t\t\t})\n\t\t\tif shouldIgnore {\n\t\t\t\tskipReason = SkipReasonIncludeFilename\n\t\t\t} else {\n\t\t\t\tskipReason = \"\"\n\t\t\t}\n\t\t}\n\t\t// Exclude comes after include as it takes precedence\n\t\tfor _, deny := range f.ExcludeFilename {\n\t\t\tif file.Name() == deny {\n\t\t\t\tshouldIgnore = true\n\t\t\t\tskipReason = SkipReasonExcludeFilename\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif len(f.IncludeFilenameRegex) != 0 {\n\t\t\tshouldIgnore = !slices.ContainsFunc(f.IncludeFilenameRegex, func(allow *regexp.Regexp) bool {\n\t\t\t\treturn allow.MatchString(file.Name())\n\t\t\t})\n\t\t\tif shouldIgnore {\n\t\t\t\tskipReason = SkipReasonIncludeFilenameRegex\n\t\t\t} else {\n\t\t\t\tskipReason = \"\"\n\t\t\t}\n\t\t}\n\t\t// Exclude comes after include as it takes precedence\n\t\tfor _, deny := range f.ExcludeFilenameRegex {\n\t\t\tif deny.MatchString(file.Name()) {\n\t\t\t\tshouldIgnore = true\n\t\t\t\tskipReason = SkipReasonExcludeFilenameRegex\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Ignore hidden files\n\t\tif !f.IncludeHidden {\n\t\t\ts, err := IsHiddenDirEntry(file, directory)\n\t\t\tif err != nil {\n\t\t\t\tif !f.errorsHandler(err) {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif s {\n\t\t\t\tshouldIgnore = true\n\t\t\t\tskipReason = SkipReasonHidden\n\t\t\t}\n\t\t}\n\n\t\t// Check against extensions\n\t\tif len(f.AllowListExtensions) != 0 {\n\t\t\text := GetExtension(file.Name())\n\t\t\t// try again because we could have one of those pesky ones such as something.spec.tsx\n\t\t\t// but only if we didn't already find something to save on a bit of processing\n\t\t\tif !slices.Contains(f.AllowListExtensions, ext) && !slices.Contains(f.AllowListExtensions, GetExtension(ext)) {\n\t\t\t\tshouldIgnore = true\n\t\t\t\tskipReason = SkipReasonAllowListExtension\n\t\t\t}\n\t\t}\n\n\t\tif len(f.ExcludeListExtensions) != 0 {\n\t\t\text := GetExtension(file.Name())\n\t\t\tshouldIgnore = slices.ContainsFunc(f.ExcludeListExtensions, func(deny string) bool {\n\t\t\t\treturn ext == deny || GetExtension(ext) == deny\n\t\t\t})\n\t\t\tif shouldIgnore {\n\t\t\t\tskipReason = SkipReasonExcludeListExtension\n\t\t\t} else {\n\t\t\t\tskipReason = \"\"\n\t\t\t}\n\t\t}\n\n\t\tfor _, p := range f.LocationExcludePattern {\n\t\t\tif strings.Contains(joined, p) {\n\t\t\t\tshouldIgnore = true\n\t\t\t\tskipReason = SkipReasonLocationExcludePattern\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif f.IgnoreBinaryFiles {\n\t\t\tfi, err := os.Open(filepath.Join(directory, file.Name()))\n\t\t\tif err != nil {\n\t\t\t\tif !f.errorsHandler(err) {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tdefer func(fi *os.File) {\n\t\t\t\t_ = fi.Close()\n\t\t\t}(fi)\n\n\t\t\tbuffer := make([]byte, f.IgnoreBinaryFileBytes)\n\n\t\t\t// Read up to buffer size\n\t\t\t_, err = io.ReadFull(fi, buffer)\n\t\t\tif err != nil && err != io.EOF && !errors.Is(err, io.ErrUnexpectedEOF) {\n\t\t\t\tif !f.errorsHandler(err) {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// cheaply check if is binary file by checking for null byte.\n\t\t\t// note that this could be improved later on by checking for magic numbers and the like\n\t\t\t// but that should probably be its own package\n\t\t\tfor _, b := range buffer {\n\t\t\t\tif b == 0 {\n\t\t\t\t\tshouldIgnore = true\n\t\t\t\t\tskipReason = SkipReasonBinary\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif shouldIgnore {\n\t\t\tf.skipHandler(joined, file.Name(), false, skipReason)\n\t\t} else {\n\t\t\tf.fileListQueue <- &File{\n\t\t\t\tLocation: joined,\n\t\t\t\tFilename: file.Name(),\n\t\t\t}\n\t\t}\n\t}\n\n\t// if we are the 1st iteration IE not the root, we run in parallel\n\twg := sync.WaitGroup{}\n\n\t// Now we process the directories after hopefully giving the\n\t// channel some files to process\n\tfor _, dir := range dirs {\n\t\tvar shouldIgnore bool\n\t\tvar skipReason SkipReason\n\t\tjoined := filepath.Join(directory, dir.Name())\n\n\t\t// Check against the ignore files we have if the file we are looking at\n\t\t// should be ignored\n\t\t// It is safe to always call this because the gitignores will not be added\n\t\t// in previous steps\n\t\tfor _, ignore := range gitignores {\n\t\t\t// we have the following situations\n\t\t\t// 1. none of the gitignores match\n\t\t\t// 2. one or more match\n\t\t\t// for #1 this means we should include the file\n\t\t\t// for #2 this means the last one wins since it should be the most correct\n\t\t\tif ignore.MatchIsDir(joined, true) != nil {\n\t\t\t\tshouldIgnore = ignore.Ignore(joined)\n\t\t\t\tif shouldIgnore {\n\t\t\t\t\tskipReason = SkipReasonGitignore\n\t\t\t\t} else {\n\t\t\t\t\tskipReason = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor _, ignore := range ignores {\n\t\t\t// same rules as above\n\t\t\tif ignore.MatchIsDir(joined, true) != nil {\n\t\t\t\tshouldIgnore = ignore.Ignore(joined)\n\t\t\t\tif shouldIgnore {\n\t\t\t\t\tskipReason = SkipReasonIgnoreFile\n\t\t\t\t} else {\n\t\t\t\t\tskipReason = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor _, ignore := range customIgnores {\n\t\t\t// same rules as above\n\t\t\tif ignore.MatchIsDir(joined, true) != nil {\n\t\t\t\tshouldIgnore = ignore.Ignore(joined)\n\t\t\t\tif shouldIgnore {\n\t\t\t\t\tskipReason = SkipReasonCustomIgnore\n\t\t\t\t} else {\n\t\t\t\t\tskipReason = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor _, ignore := range moduleIgnores {\n\t\t\t// same rules as above\n\t\t\tif ignore.MatchIsDir(joined, true) != nil {\n\t\t\t\tshouldIgnore = ignore.Ignore(joined)\n\t\t\t\tif shouldIgnore {\n\t\t\t\t\tskipReason = SkipReasonModuleIgnore\n\t\t\t\t} else {\n\t\t\t\t\tskipReason = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// start by saying we didn't find it then check each possible\n\t\t// choice to see if we did find it\n\t\t// if we didn't find it then we should ignore\n\t\tif len(f.IncludeDirectory) != 0 {\n\t\t\tshouldIgnore = !slices.ContainsFunc(f.IncludeDirectory, func(allow string) bool {\n\t\t\t\treturn dir.Name() == allow\n\t\t\t})\n\t\t\tif shouldIgnore {\n\t\t\t\tskipReason = SkipReasonIncludeDirectory\n\t\t\t} else {\n\t\t\t\tskipReason = \"\"\n\t\t\t}\n\t\t}\n\t\t// Confirm if there are any files in the path deny list which usually includes\n\t\t// things like .git .hg and .svn\n\t\t// Comes after include as it takes precedence\n\t\tfor _, deny := range f.ExcludeDirectory {\n\t\t\tif isSuffixDir(joined, deny) {\n\t\t\t\tshouldIgnore = true\n\t\t\t\tskipReason = SkipReasonExcludeDirectory\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif len(f.IncludeDirectoryRegex) != 0 {\n\t\t\tshouldIgnore = !slices.ContainsFunc(f.IncludeDirectoryRegex, func(allow *regexp.Regexp) bool {\n\t\t\t\treturn allow.MatchString(dir.Name())\n\t\t\t})\n\t\t\tif shouldIgnore {\n\t\t\t\tskipReason = SkipReasonIncludeDirectoryRegex\n\t\t\t} else {\n\t\t\t\tskipReason = \"\"\n\t\t\t}\n\t\t}\n\t\t// Exclude comes after include as it takes precedence\n\t\tfor _, deny := range f.ExcludeDirectoryRegex {\n\t\t\tif deny.MatchString(dir.Name()) {\n\t\t\t\tshouldIgnore = true\n\t\t\t\tskipReason = SkipReasonExcludeDirectoryRegex\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Ignore hidden directories\n\t\tif !f.IncludeHidden {\n\t\t\ts, err := IsHiddenDirEntry(dir, directory)\n\t\t\tif err != nil {\n\t\t\t\tif !f.errorsHandler(err) {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif s {\n\t\t\t\tshouldIgnore = true\n\t\t\t\tskipReason = SkipReasonHidden\n\t\t\t}\n\t\t}\n\n\t\tfor _, p := range f.LocationExcludePattern {\n\t\t\tif strings.Contains(joined, p) {\n\t\t\t\tshouldIgnore = true\n\t\t\t\tskipReason = SkipReasonLocationExcludePattern\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif shouldIgnore {\n\t\t\tf.skipHandler(joined, dir.Name(), true, skipReason)\n\t\t}\n\n\t\tif !shouldIgnore {\n\t\t\tif iteration == 0 {\n\t\t\t\twg.Add(1)\n\t\t\t\tgo func(iteration int, directory string, gitignores []gitignore.GitIgnore, ignores []gitignore.GitIgnore) {\n\t\t\t\t\t_ = f.walkDirectoryRecursive(iteration+1, joined, gitignores, ignores, moduleIgnores, customIgnores)\n\t\t\t\t\twg.Done()\n\t\t\t\t}(iteration, joined, gitignores, ignores)\n\t\t\t} else {\n\t\t\t\terr = f.walkDirectoryRecursive(iteration+1, joined, gitignores, ignores, moduleIgnores, customIgnores)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\twg.Wait()\n\n\treturn nil\n}\n\n// FindRepositoryRoot given the supplied directory backwards looking for .git or .hg\n// directories indicating we should start our search from that\n// location as it's the root.\n// Returns the first directory below supplied with .git or .hg in it\n// otherwise the supplied directory\nfunc FindRepositoryRoot(startDirectory string) string {\n\t// Firstly try to determine our real location\n\tcurdir, err := os.Getwd()\n\tif err != nil {\n\t\treturn startDirectory\n\t}\n\n\t// Check if we have .git or .hg where we are and if\n\t// so just return because we are already there\n\tif checkForGitOrMercurial(curdir) {\n\t\treturn startDirectory\n\t}\n\n\t// We did not find something, so now we need to walk the file tree\n\t// backwards in a cross platform way and if we find\n\t// a match we return that\n\tlastIndex := strings.LastIndex(curdir, string(os.PathSeparator))\n\tfor lastIndex != -1 {\n\t\tcurdir = curdir[:lastIndex]\n\n\t\tif checkForGitOrMercurial(curdir) {\n\t\t\treturn curdir\n\t\t}\n\n\t\tlastIndex = strings.LastIndex(curdir, string(os.PathSeparator))\n\t}\n\n\t// If we didn't find a good match return the supplied directory\n\t// so that we start the search from where we started at least\n\t// rather than the root\n\treturn startDirectory\n}\n\n// Check if there is a .git or .hg folder in the supplied directory\nfunc checkForGitOrMercurial(curdir string) bool {\n\tif stat, err := os.Stat(filepath.Join(curdir, \".git\")); err == nil && stat.IsDir() {\n\t\treturn true\n\t}\n\n\tif stat, err := os.Stat(filepath.Join(curdir, \".hg\")); err == nil && stat.IsDir() {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// GetExtension is a custom version of extracting extensions for a file\n// which deals with extensions specific to code such as\n// .travis.yml and the like\nfunc GetExtension(name string) string {\n\tname = strings.ToLower(name)\n\tif !strings.Contains(name, \".\") {\n\t\treturn name\n\t}\n\n\tif strings.LastIndex(name, \".\") == 0 {\n\t\treturn name\n\t}\n\n\treturn path.Ext(name)[1:]\n}\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/gitmodule.go",
    "content": "package gocodewalker\n\nimport (\n\t\"regexp\"\n\t\"strings\"\n)\n\nfunc extractGitModuleFolders(input string) []string {\n\t// Compile a regular expression to match lines starting with \"path =\"\n\tre := regexp.MustCompile(`^\\s*path\\s*=\\s*(.*)`)\n\toutput := []string{}\n\n\tfor _, line := range strings.Split(input, \"\\n\") {\n\t\t// Check if the line matches the \"path = \" pattern\n\t\tif matches := re.FindStringSubmatch(line); matches != nil {\n\t\t\t// Extract the submodule path (which is captured in the regex group)\n\t\t\tsubmodulePath := strings.TrimSpace(matches[1])\n\t\t\toutput = append(output, submodulePath)\n\t\t}\n\t}\n\n\treturn output\n}\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2016 Denormal Limited\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/boyter/gocodewalker/go-gitignore/README.md",
    "content": "# go-gitignore\n\nPackage `go-gitignore` provides an interface for parsing `.gitignore` files,\neither individually, or within a repository, and\nmatching paths against the retrieved patterns. Path matching is done using\n[fnmatch](https://github.com/danwakefield/fnmatch) as specified by\n[git](https://git-scm.com/docs/gitignore), with\nsupport for recursive matching via the `**` pattern.\n\n```go\nimport \"github.com/denormal/go-gitignore\"\n\n// match a file against a particular .gitignore\nignore, err := gitignore.NewFromFile(\"/my/.gitignore\")\nif err != nil {\n    panic(err)\n}\nmatch := ignore.Match(\"/my/file/to.check\")\nif match != nil {\n    if match.Ignore() {\n        return true\n    }\n}\n\n// or match against a repository\n//  - here we match a directory path relative to the repository\nignore, err := gitignore.NewRepository( \"/my/git/repository\" )\nif err != nil {\n    panic(err)\n}\nmatch := ignore.Relative(\"src/examples\", true)\nif match != nil {\n    if match.Include() {\n        fmt.Printf(\n            \"include src/examples/ because of pattern %q at %s\",\n\t\t\tmatch, match.Position(),\n\t\t)\n    }\n}\n\n// if it's not important whether a path matches, but whether it is\n// ignored or included...\nif ignore.Ignore(\"src/test\") {\n    fmt.Println(\"ignore src/test\")\n} else if ignore.Include(\"src/github.com\") {\n    fmt.Println(\"include src/github.com\")\n}\n```\n\nFor more information see `godoc github.com/denormal/go-gitignore`.\n\n## Patterns\n\n`go-gitignore` supports the same `.gitignore` pattern format and matching rules as defined by [git](https://git-scm.com/docs/gitignore):\n\n* A blank line matches no files, so it can serve as a separator for readability.\n\n* A line starting with `#` serves as a comment. Put a backslash `\\` in front of the first hash for patterns that begin with a hash.\n\n* Trailing spaces are ignored unless they are quoted with backslash `\\`.\n\n* An optional prefix `!` which negates the pattern; any matching file excluded by a previous pattern will become included again. It is not possible to re-include a file if a parent directory of that file is excluded. Git doesn’t list excluded directories for performance reasons, so any patterns on contained files have no effect, no matter where they are defined. Put a backslash `\\` in front of the first `!` for patterns that begin with a literal `!`, for example, `\\!important!.txt`.\n\n* If the pattern ends with a slash, it is removed for the purpose of the following description, but it would only find a match with a directory. In other words, `foo/` will match a directory foo and paths underneath it, but will not match a regular file or a symbolic link `foo` (this is consistent with the way how pathspec works in general in Git).\n\n* If the pattern does not contain a slash `/`, Git treats it as a shell glob pattern and checks for a match against the pathname relative to the location of the `.gitignore` file (relative to the toplevel of the work tree if not from a `.gitignore` file).\n\n* Otherwise, Git treats the pattern as a shell glob suitable for consumption by `fnmatch(3)` with the `FNM_PATHNAME` flag: wildcards in the pattern will not match a `/` in the pathname. For example, `Documentation/*.html` matches `Documentation/git.html` but not `Documentation/ppc/ppc.html` or `tools/perf/Documentation/perf.html`.\n\n* A leading slash matches the beginning of the pathname. For example, `/*.c` matches `cat-file.c` but not `mozilla-sha1/sha1.c`.\n\nTwo consecutive asterisks `**` in patterns matched against full pathname may have special meaning:\n\n* A leading `**` followed by a slash means match in all directories. For example, `**/foo` matches file or directory `foo` anywhere, the same as pattern `foo`. `**/foo/bar` matches file or directory `bar` anywhere that is directly under directory `foo`.\n\n* A trailing `/**` matches everything inside. For example, `abc/**` matches all files inside directory `abc`, relative to the location of the `.gitignore` file, with infinite depth.\n\n* A slash followed by two consecutive asterisks then a slash matches zero or more directories. For example, `a/**/b` matches `a/b`, `a/x/b`, `a/x/y/b` and so on.\n\n* Other consecutive asterisks are considered invalid.\n\n## Installation\n\n`go-gitignore` can be installed using the standard Go approach:\n\n```go\ngo get github.com/denormal/go-gitignore\n```\n\n## License\n\nCopyright (c) 2016 Denormal Limited\n\n[MIT License](LICENSE)\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/cache.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\nimport (\n\t\"sync\"\n)\n\n// Cache is the interface for the GitIgnore cache\ntype Cache interface {\n\t// Set stores the GitIgnore ignore against its path.\n\tSet(path string, ig GitIgnore)\n\n\t// Get attempts to retrieve an GitIgnore instance associated with the given\n\t// path. If the path is not known nil is returned.\n\tGet(path string) GitIgnore\n}\n\n// cache is the default thread-safe cache implementation\ntype cache struct {\n\t_i    map[string]GitIgnore\n\t_lock sync.Mutex\n}\n\n// NewCache returns a Cache instance. This is a thread-safe, in-memory cache\n// for GitIgnore instances.\nfunc NewCache() Cache {\n\treturn &cache{}\n} // Cache()\n\n// Set stores the GitIgnore ignore against its path.\nfunc (c *cache) Set(path string, ignore GitIgnore) {\n\tif ignore == nil {\n\t\treturn\n\t}\n\n\t// ensure the map is defined\n\tif c._i == nil {\n\t\tc._i = make(map[string]GitIgnore)\n\t}\n\n\t// set the cache item\n\tc._lock.Lock()\n\tc._i[path] = ignore\n\tc._lock.Unlock()\n} // Set()\n\n// Get attempts to retrieve an GitIgnore instance associated with the given\n// path. If the path is not known nil is returned.\nfunc (c *cache) Get(path string) GitIgnore {\n\tc._lock.Lock()\n\t_ignore, _ok := c._i[path]\n\tc._lock.Unlock()\n\tif _ok {\n\t\treturn _ignore\n\t} else {\n\t\treturn nil\n\t}\n} // Get()\n\n// ensure cache supports the Cache interface\nvar _ Cache = &cache{}\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/doc.go",
    "content": "// SPDX-License-Identifier: MIT\n\n/*\nPackage gitignore provides an interface for parsing .gitignore files,\neither individually, or within a repository, and\nmatching paths against the retrieved patterns. Path matching is done using\nfnmatch as specified by git (see https://git-scm.com/docs/gitignore), with\nsupport for recursive matching via the \"**\" pattern.\n*/\npackage gitignore\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/error.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\ntype Error interface {\n\terror\n\n\t// Position returns the position of the error within the .gitignore file\n\t// (if any)\n\tPosition() Position\n\n\t// Underlying returns the underlying error, permitting direct comparison\n\t// against the wrapped error.\n\tUnderlying() error\n}\n\ntype err struct {\n\terror\n\t_position Position\n} // err()\n\n// NewError returns a new Error instance for the given error e and position p.\nfunc NewError(e error, p Position) Error {\n\treturn &err{error: e, _position: p}\n} // NewError()\n\nfunc (e *err) Position() Position { return e._position }\n\nfunc (e *err) Underlying() error { return e.error }\n\n// ensure err satisfies the Error interface\nvar _ Error = &err{}\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/errors.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\tErrCarriageReturnError   = errors.New(\"unexpected carriage return '\\\\r'\")\n\tErrInvalidPatternError   = errors.New(\"invalid pattern\")\n\tErrInvalidDirectoryError = errors.New(\"invalid directory\")\n)\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/exclude.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n)\n\n// exclude attempts to return the GitIgnore instance for the\n// $GIT_DIR/info/exclude from the working copy to which path belongs.\nfunc exclude(path string) (GitIgnore, error) {\n\t// attempt to locate GIT_DIR\n\t_gitdir := os.Getenv(\"GIT_DIR\")\n\tif _gitdir == \"\" {\n\t\t_gitdir = filepath.Join(path, \".git\")\n\t}\n\t_info, _err := os.Stat(_gitdir)\n\tif _err != nil {\n\t\tif os.IsNotExist(_err) {\n\t\t\treturn nil, nil\n\t\t} else {\n\t\t\treturn nil, _err\n\t\t}\n\t} else if !_info.IsDir() {\n\t\treturn nil, nil\n\t}\n\n\t// is there an info/exclude file within this directory?\n\t_file := filepath.Join(_gitdir, \"info\", \"exclude\")\n\t_, _err = os.Stat(_file)\n\tif _err != nil {\n\t\tif os.IsNotExist(_err) {\n\t\t\treturn nil, nil\n\t\t} else {\n\t\t\treturn nil, _err\n\t\t}\n\t}\n\n\t// attempt to load the exclude file\n\treturn NewFromFile(_file)\n} // exclude()\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/gitignore.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\nimport (\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// matchIsDirCache maps raw paths to their absolute-path equivalents.\n// sync.Map gives lock-free reads on the hot path (concurrent file walking).\nvar matchIsDirCache sync.Map\n\n// use an empty GitIgnore for cached lookups\nvar empty = &ignore{}\n\n// GitIgnore is the interface to .gitignore files and repositories. It defines\n// methods for testing files for matching the .gitignore file, and then\n// determining whether a file should be ignored or included.\ntype GitIgnore interface {\n\t// Base returns the directory containing the .gitignore file.\n\tBase() string\n\n\t// Match attempts to match the path against this GitIgnore, and will\n\t// return its Match if successful. Match will invoke the GitIgnore error\n\t// handler (if defined) if it is not possible to determine the absolute\n\t// path of the given path, or if its not possible to determine if the\n\t// path represents a file or a directory. If an error occurs, Match\n\t// returns nil and the error handler (if defined via New, NewWithErrors\n\t// or NewWithCache) will be invoked.\n\tMatch(path string) Match\n\n\tMatchIsDir(path string, _isdir bool) Match\n\n\t// Absolute attempts to match an absolute path against this GitIgnore. If\n\t// the path is not located under the base directory of this GitIgnore, or\n\t// is not matched by this GitIgnore, nil is returned.\n\tAbsolute(string, bool) Match\n\n\t// Relative attempts to match a path relative to the GitIgnore base\n\t// directory. isdir is used to indicate whether the path represents a file\n\t// or a directory. If the path is not matched by the GitIgnore, nil is\n\t// returned.\n\tRelative(path string, isdir bool) Match\n\n\t// Ignore returns true if the path is ignored by this GitIgnore. Paths\n\t// that are not matched by this GitIgnore are not ignored. Internally,\n\t// Ignore uses Match, and will return false if Match() returns nil for path.\n\tIgnore(path string) bool\n\n\t// Include returns true if the path is included by this GitIgnore. Paths\n\t// that are not matched by this GitIgnore are always included. Internally,\n\t// Include uses Match, and will return true if Match() returns nil for path.\n\tInclude(path string) bool\n}\n\n// ignore is the implementation of a .gitignore file.\ntype ignore struct {\n\t_base    string\n\t_pattern []Pattern\n\t_errors  func(Error) bool\n}\n\n// NewGitIgnore creates a new GitIgnore instance from the patterns listed in t,\n// representing a .gitignore file in the base directory. If errors is given, it\n// will be invoked for every error encountered when parsing the .gitignore\n// patterns. Parsing will terminate if errors is called and returns false,\n// otherwise, parsing will continue until end of file has been reached.\nfunc New(r io.Reader, base string, errors func(Error) bool) GitIgnore {\n\t// do we have an error handler?\n\t_errors := errors\n\tif _errors == nil {\n\t\t_errors = func(e Error) bool { return true }\n\t}\n\n\t// extract the patterns from the reader\n\t_parser := NewParser(r, _errors)\n\t_patterns := _parser.Parse()\n\n\treturn &ignore{_base: base, _pattern: _patterns, _errors: _errors}\n} // New()\n\n// NewFromFile creates a GitIgnore instance from the given file. An error\n// will be returned if file cannot be opened or its absolute path determined.\nfunc NewFromFile(file string) (GitIgnore, error) {\n\t// define an error handler to catch any file access errors\n\t//\t\t- record the first encountered error\n\tvar _error Error\n\t_errors := func(e Error) bool {\n\t\tif _error == nil {\n\t\t\t_error = e\n\t\t}\n\t\treturn true\n\t}\n\n\t// attempt to retrieve the GitIgnore represented by this file\n\t_ignore := NewWithErrors(file, _errors)\n\n\t// did we encounter an error?\n\t//\t\t- if the error has a zero Position then it was encountered\n\t//\t\t  before parsing was attempted, so we return that error\n\tif _error != nil {\n\t\tif _error.Position().Zero() {\n\t\t\treturn nil, _error.Underlying()\n\t\t}\n\t}\n\n\t// otherwise, we ignore the parser errors\n\treturn _ignore, nil\n} // NewFromFile()\n\n// NewWithErrors creates a GitIgnore instance from the given file.\n// If errors is given, it will be invoked for every error encountered when\n// parsing the .gitignore patterns. Parsing will terminate if errors is called\n// and returns false, otherwise, parsing will continue until end of file has\n// been reached. NewWithErrors returns nil if the .gitignore could not be read.\nfunc NewWithErrors(file string, errors func(Error) bool) GitIgnore {\n\tvar _err error\n\n\t// do we have an error handler?\n\t_file := file\n\t_errors := errors\n\tif _errors == nil {\n\t\t_errors = func(e Error) bool { return true }\n\t} else {\n\t\t// augment the error handler to include the .gitignore file name\n\t\t//\t\t- we do this here since the parser and lexer interfaces are\n\t\t//\t\t  not aware of file names\n\t\t_errors = func(e Error) bool {\n\t\t\t// augment the position with the file name\n\t\t\t_position := e.Position()\n\t\t\t_position.File = _file\n\n\t\t\t// create a new error with the updated Position\n\t\t\t_error := NewError(e.Underlying(), _position)\n\n\t\t\t// invoke the original error handler\n\t\t\treturn errors(_error)\n\t\t}\n\t}\n\n\t// we need the absolute path for the GitIgnore base\n\t_file, _err = filepath.Abs(file)\n\tif _err != nil {\n\t\t_errors(NewError(_err, Position{}))\n\t\treturn nil\n\t}\n\t_base := filepath.Dir(_file)\n\n\t// attempt to open the ignore file to create the io.Reader\n\t_fh, _err := os.Open(_file)\n\tif _err != nil {\n\t\t_errors(NewError(_err, Position{}))\n\t\treturn nil\n\t}\n\n\t// return the GitIgnore instance\n\treturn New(_fh, _base, _errors)\n} // NewWithErrors()\n\n// NewWithCache returns a GitIgnore instance (using NewWithErrors)\n// for the given file. If the file has been loaded before, its GitIgnore\n// instance will be returned from the cache rather than being reloaded. If\n// cache is not defined, NewWithCache will behave as NewWithErrors\n//\n// If NewWithErrors returns nil, NewWithCache will store an empty\n// GitIgnore (i.e. no patterns) against the file to prevent repeated parse\n// attempts on subsequent requests for the same file. Subsequent calls to\n// NewWithCache for a file that could not be loaded due to an error will\n// return nil.\n//\n// If errors is given, it will be invoked for every error encountered when\n// parsing the .gitignore patterns. Parsing will terminate if errors is called\n// and returns false, otherwise, parsing will continue until end of file has\n// been reached.\nfunc NewWithCache(file string, cache Cache, errors func(Error) bool) GitIgnore {\n\t// do we have an error handler?\n\t_errors := errors\n\tif _errors == nil {\n\t\t_errors = func(e Error) bool { return true }\n\t}\n\n\t// use the file absolute path as its key into the cache\n\t_abs, _err := filepath.Abs(file)\n\tif _err != nil {\n\t\t_errors(NewError(_err, Position{}))\n\t\treturn nil\n\t}\n\n\tvar _ignore GitIgnore\n\tif cache != nil {\n\t\t_ignore = cache.Get(_abs)\n\t}\n\tif _ignore == nil {\n\t\t_ignore = NewWithErrors(file, _errors)\n\t\tif _ignore == nil {\n\t\t\t// if the load failed, cache an empty GitIgnore to prevent\n\t\t\t// further attempts to load this file\n\t\t\t_ignore = empty\n\t\t}\n\t\tif cache != nil {\n\t\t\tcache.Set(_abs, _ignore)\n\t\t}\n\t}\n\n\t// return the ignore (if we have it)\n\tif _ignore == empty {\n\t\treturn nil\n\t} else {\n\t\treturn _ignore\n\t}\n} // NewWithCache()\n\n// Base returns the directory containing the .gitignore file for this GitIgnore.\nfunc (i *ignore) Base() string {\n\treturn i._base\n} // Base()\n\n// Match attempts to match the path against this GitIgnore, and will\n// return its Match if successful. Match will invoke the GitIgnore error\n// handler (if defined) if it is not possible to determine the absolute\n// path of the given path, or if its not possible to determine if the\n// path represents a file or a directory. If an error occurs, Match\n// returns nil and the error handler (if defined via New, NewWithErrors\n// or NewWithCache) will be invoked.\nfunc (i *ignore) Match(path string) Match {\n\t// ensure we have the absolute path for the given file\n\t_path, _err := filepath.Abs(path)\n\tif _err != nil {\n\t\ti._errors(NewError(_err, Position{}))\n\t\treturn nil\n\t}\n\n\t// is the path a file or a directory?\n\t_info, _err := os.Stat(_path)\n\tif _err != nil {\n\t\ti._errors(NewError(_err, Position{}))\n\t\treturn nil\n\t}\n\t_isdir := _info.IsDir()\n\n\t// attempt to match the absolute path\n\treturn i.Absolute(_path, _isdir)\n} // Match()\n\nfunc (i *ignore) MatchIsDir(path string, _isdir bool) Match {\n\t// ensure we have the absolute path for the given file\n\tif v, ok := matchIsDirCache.Load(path); ok {\n\t\treturn i.Absolute(v.(string), _isdir)\n\t}\n\n\t_path, _err := filepath.Abs(path)\n\tif _err != nil {\n\t\ti._errors(NewError(_err, Position{}))\n\t\treturn nil\n\t}\n\tmatchIsDirCache.Store(path, _path)\n\n\t// attempt to match the absolute path\n\treturn i.Absolute(_path, _isdir)\n} // Match()\n\n// Absolute attempts to match an absolute path against this GitIgnore. If\n// the path is not located under the base directory of this GitIgnore, or\n// is not matched by this GitIgnore, nil is returned.\nfunc (i *ignore) Absolute(path string, isdir bool) Match {\n\t// does the file share the same directory as this ignore file?\n\tif !strings.HasPrefix(path, i._base) {\n\t\treturn nil\n\t}\n\n\t// extract the relative path of this file\n\t_prefix := len(i._base) + 1 // BOYTERWASHERE\n\t//_prefix := len(i._base)\n\t_rel := string(path[_prefix:])\n\treturn i.Relative(_rel, isdir)\n} // Absolute()\n\n// Relative attempts to match a path relative to the GitIgnore base\n// directory. isdir is used to indicate whether the path represents a file\n// or a directory. If the path is not matched by the GitIgnore, nil is\n// returned.\nfunc (i *ignore) Relative(path string, isdir bool) Match {\n\t// if we are on Windows, then translate the path to Unix form\n\t_rel := path\n\tif runtime.GOOS == \"windows\" {\n\t\t_rel = filepath.ToSlash(_rel)\n\t}\n\n\t// iterate over the patterns for this ignore file\n\t//      - iterate in reverse, since later patterns overwrite earlier\n\tfor _i := len(i._pattern) - 1; _i >= 0; _i-- {\n\t\t_pattern := i._pattern[_i]\n\t\tif _pattern.Match(_rel, isdir) {\n\t\t\treturn _pattern\n\t\t}\n\t}\n\n\t// we don't match this file\n\treturn nil\n} // Relative()\n\n// Ignore returns true if the path is ignored by this GitIgnore. Paths\n// that are not matched by this GitIgnore are not ignored. Internally,\n// Ignore uses Match, and will return false if Match() returns nil for path.\nfunc (i *ignore) Ignore(path string) bool {\n\t_match := i.Match(path)\n\tif _match != nil {\n\t\treturn _match.Ignore()\n\t}\n\n\t// we didn't match this path, so we don't ignore it\n\treturn false\n} // Ignore()\n\n// Include returns true if the path is included by this GitIgnore. Paths\n// that are not matched by this GitIgnore are always included. Internally,\n// Include uses Match, and will return true if Match() returns nil for path.\nfunc (i *ignore) Include(path string) bool {\n\t_match := i.Match(path)\n\tif _match != nil {\n\t\treturn _match.Include()\n\t}\n\n\t// we didn't match this path, so we include it\n\treturn true\n} // Include()\n\n// ensure Ignore satisfies the GitIgnore interface\nvar _ GitIgnore = &ignore{}\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/lexer.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\nimport (\n\t\"bufio\"\n\t\"io\"\n)\n\n//\n// inspired by https://blog.gopheracademy.com/advent-2014/parsers-lexers/\n//\n\n// lexer is the implementation of the .gitignore lexical analyser\ntype lexer struct {\n\t_r        *bufio.Reader\n\t_unread   []rune\n\t_offset   int\n\t_line     int\n\t_column   int\n\t_previous []int\n} // lexer{}\n\n// Lexer is the interface to the lexical analyser for .gitignore files\ntype Lexer interface {\n\t// Next returns the next Token from the Lexer reader. If an error is\n\t// encountered, it will be returned as an Error instance, detailing the\n\t// error and its position within the stream.\n\tNext() (*Token, Error)\n\n\t// Position returns the current position of the Lexer.\n\tPosition() Position\n\n\t// String returns the string representation of the current position of the\n\t// Lexer.\n\tString() string\n}\n\n// NewLexer returns a Lexer instance for the io.Reader r.\nfunc NewLexer(r io.Reader) Lexer {\n\treturn &lexer{_r: bufio.NewReader(r), _line: 1, _column: 1}\n} // NewLexer()\n\n// Next returns the next Token from the Lexer reader. If an error is\n// encountered, it will be returned as an Error instance, detailing the error\n// and its position within the stream.\nfunc (l *lexer) Next() (*Token, Error) {\n\t// are we at the beginning of the line?\n\t_beginning := l.beginning()\n\n\t// read the next rune\n\t_r, _err := l.read()\n\tif _err != nil {\n\t\treturn nil, _err\n\t}\n\n\tswitch _r {\n\t// end of file\n\tcase _EOF:\n\t\treturn l.token(EOF, nil, nil)\n\n\t// whitespace ' ', '\\t'\n\tcase _SPACE:\n\t\tfallthrough\n\tcase _TAB:\n\t\tl.unread(_r)\n\t\t_rtn, _err := l.whitespace()\n\t\treturn l.token(WHITESPACE, _rtn, _err)\n\n\t// end of line '\\n' or '\\r\\n'\n\tcase _CR:\n\t\tfallthrough\n\tcase _NEWLINE:\n\t\tl.unread(_r)\n\t\t_rtn, _err := l.eol()\n\t\treturn l.token(EOL, _rtn, _err)\n\n\t// separator '/'\n\tcase _SEPARATOR:\n\t\treturn l.token(SEPARATOR, []rune{_r}, nil)\n\n\t// '*' or any '**'\n\tcase _WILDCARD:\n\t\t// is the wildcard followed by another wildcard?\n\t\t//      - does this represent the \"any\" token (i.e. \"**\")\n\t\t_next, _err := l.peek()\n\t\tif _err != nil {\n\t\t\treturn nil, _err\n\t\t} else if _next == _WILDCARD {\n\t\t\t// we know read() will succeed here since we used peek() above\n\t\t\t_, _ = l.read()\n\t\t\treturn l.token(ANY, []rune{_WILDCARD, _WILDCARD}, nil)\n\t\t}\n\n\t\t// we have a single wildcard, so treat this as a pattern\n\t\tl.unread(_r)\n\t\t_rtn, _err := l.pattern()\n\t\treturn l.token(PATTERN, _rtn, _err)\n\n\t// comment '#'\n\tcase _COMMENT:\n\t\tl.unread(_r)\n\n\t\t// if we are at the start of the line, then we treat this as a comment\n\t\tif _beginning {\n\t\t\t_rtn, _err := l.comment()\n\t\t\treturn l.token(COMMENT, _rtn, _err)\n\t\t}\n\n\t\t// otherwise, we regard this as a pattern\n\t\t_rtn, _err := l.pattern()\n\t\treturn l.token(PATTERN, _rtn, _err)\n\n\t// negation '!'\n\tcase _NEGATION:\n\t\tif _beginning {\n\t\t\treturn l.token(NEGATION, []rune{_r}, nil)\n\t\t}\n\t\tfallthrough\n\n\t// pattern\n\tdefault:\n\t\tl.unread(_r)\n\t\t_rtn, _err := l.pattern()\n\t\treturn l.token(PATTERN, _rtn, _err)\n\t}\n} // Next()\n\n// Position returns the current position of the Lexer.\nfunc (l *lexer) Position() Position {\n\treturn Position{\"\", l._line, l._column, l._offset}\n} // Position()\n\n// String returns the string representation of the current position of the\n// Lexer.\nfunc (l *lexer) String() string {\n\treturn l.Position().String()\n} // String()\n\n//\n// private methods\n//\n\n// read the next rune from the stream. Return an Error if there is a problem\n// reading from the stream. If the end of stream is reached, return the EOF\n// Token.\nfunc (l *lexer) read() (rune, Error) {\n\tvar _r rune\n\tvar _err error\n\n\t// do we have any unread runes to read?\n\t_length := len(l._unread)\n\tif _length > 0 {\n\t\t_r = l._unread[_length-1]\n\t\tl._unread = l._unread[:_length-1]\n\n\t\t// otherwise, attempt to read a new rune\n\t} else {\n\t\t_r, _, _err = l._r.ReadRune()\n\t\tif _err == io.EOF {\n\t\t\treturn _EOF, nil\n\t\t}\n\t}\n\n\t// increment the offset and column counts\n\tl._offset++\n\tl._column++\n\n\treturn _r, l.err(_err)\n} // read()\n\n// unread returns the given runes to the stream, making them eligible to be\n// read again. The runes are returned in the order given, so the last rune\n// specified will be the next rune read from the stream.\nfunc (l *lexer) unread(r ...rune) {\n\t// ignore EOF runes\n\t_r := make([]rune, 0)\n\tfor _, _rune := range r {\n\t\tif _rune != _EOF {\n\t\t\t_r = append(_r, _rune)\n\t\t}\n\t}\n\n\t// initialise the unread rune list if necessary\n\tif l._unread == nil {\n\t\tl._unread = make([]rune, 0)\n\t}\n\tif len(_r) != 0 {\n\t\tl._unread = append(l._unread, _r...)\n\t}\n\n\t// decrement the offset and column counts\n\t//      - we have to take care of column being 0\n\t//      - at present we can only unwind across a single line boundary\n\t_length := len(_r)\n\tfor ; _length > 0; _length-- {\n\t\tl._offset--\n\t\tif l._column == 1 {\n\t\t\t_length := len(l._previous)\n\t\t\tif _length > 0 {\n\t\t\t\tl._column = l._previous[_length-1]\n\t\t\t\tl._previous = l._previous[:_length-1]\n\t\t\t\tl._line--\n\t\t\t}\n\t\t} else {\n\t\t\tl._column--\n\t\t}\n\t}\n} // unread()\n\n// peek returns the next rune in the stream without consuming it (i.e. it will\n// be returned by the next call to read or peek). peek will return an error if\n// there is a problem reading from the stream.\nfunc (l *lexer) peek() (rune, Error) {\n\t// read the next rune\n\t_r, _err := l.read()\n\tif _err != nil {\n\t\treturn _r, _err\n\t}\n\n\t// unread & return the rune\n\tl.unread(_r)\n\treturn _r, _err\n} // peek()\n\n// newline adjusts the positional counters when an end of line is reached\nfunc (l *lexer) newline() {\n\t// adjust the counters for the new line\n\tif l._previous == nil {\n\t\tl._previous = make([]int, 0)\n\t}\n\tl._previous = append(l._previous, l._column)\n\tl._column = 1\n\tl._line++\n} // newline()\n\n// comment reads all runes until a newline or end of file is reached. An\n// error is returned if an error is encountered reading from the stream.\nfunc (l *lexer) comment() ([]rune, Error) {\n\t_comment := make([]rune, 0)\n\n\t// read until we reach end of line or end of file\n\t//\t\t- as we are in a comment, we ignore escape characters\n\tfor {\n\t\t_next, _err := l.read()\n\t\tif _err != nil {\n\t\t\treturn _comment, _err\n\t\t}\n\n\t\t// read until we have end of line or end of file\n\t\tswitch _next {\n\t\tcase _CR:\n\t\t\tfallthrough\n\t\tcase _NEWLINE:\n\t\t\tfallthrough\n\t\tcase _EOF:\n\t\t\t// return the read run to the stream and stop\n\t\t\tl.unread(_next)\n\t\t\treturn _comment, nil\n\t\t}\n\n\t\t// otherwise, add this run to the comment\n\t\t_comment = append(_comment, _next)\n\t}\n} // comment()\n\n// escape attempts to read an escape sequence (e.g. '\\ ') form the input\n// stream. An error will be returned if there is an error reading from the\n// stream. escape returns just the escape rune if the following rune is either\n// end of line or end of file (since .gitignore files do not support line\n// continuations).\nfunc (l *lexer) escape() ([]rune, Error) {\n\t// attempt to process the escape sequence\n\t_peek, _err := l.peek()\n\tif _err != nil {\n\t\treturn nil, _err\n\t}\n\n\t// what is the next rune after the escape?\n\tswitch _peek {\n\t// are we at the end of the line or file?\n\t//      - we return just the escape rune\n\tcase _CR:\n\t\tfallthrough\n\tcase _NEWLINE:\n\t\tfallthrough\n\tcase _EOF:\n\t\treturn []rune{_ESCAPE}, nil\n\t}\n\n\t// otherwise, return the escape and the next rune\n\t//      - we know read() will succeed here since we used peek() above\n\t_, _ = l.read()\n\treturn []rune{_ESCAPE, _peek}, nil\n} // escape()\n\n// eol returns all runes from the current position to the end of the line. An\n// error is returned if there is a problem reading from the stream, or if a\n// carriage return character '\\r' is encountered that is not followed by a\n// newline '\\n'.\nfunc (l *lexer) eol() ([]rune, Error) {\n\t// read the to the end of the line\n\t//      - we should only be called here when we encounter an end of line\n\t//        sequence\n\t_line := make([]rune, 0, 1)\n\n\t// loop until there's nothing more to do\n\tfor {\n\t\t_next, _err := l.read()\n\t\tif _err != nil {\n\t\t\treturn _line, _err\n\t\t}\n\n\t\t// read until we have a newline or we're at end of file\n\t\tswitch _next {\n\t\t// end of file\n\t\tcase _EOF:\n\t\t\treturn _line, nil\n\n\t\t// carriage return - we expect to see a newline next\n\t\tcase _CR:\n\t\t\t_line = append(_line, _next)\n\t\t\t_next, _err = l.read()\n\t\t\tif _err != nil {\n\t\t\t\treturn _line, _err\n\t\t\t} else if _next != _NEWLINE {\n\t\t\t\tl.unread(_next)\n\t\t\t\treturn _line, l.err(ErrCarriageReturnError)\n\t\t\t}\n\t\t\tfallthrough\n\n\t\t// newline\n\t\tcase _NEWLINE:\n\t\t\t_line = append(_line, _next)\n\t\t\treturn _line, nil\n\t\t}\n\t}\n} // eol()\n\n// whitespace returns all whitespace (i.e. ' ' and '\\t') runes in a sequence,\n// or an error if there is a problem reading the next runes.\nfunc (l *lexer) whitespace() ([]rune, Error) {\n\t// read until we hit the first non-whitespace rune\n\t_ws := make([]rune, 0, 1)\n\n\t// loop until there's nothing more to do\n\tfor {\n\t\t_next, _err := l.read()\n\t\tif _err != nil {\n\t\t\treturn _ws, _err\n\t\t}\n\n\t\t// what is this next rune?\n\t\tswitch _next {\n\t\t// space or tab is consumed\n\t\tcase _SPACE:\n\t\t\tfallthrough\n\t\tcase _TAB:\n\t\t\t//nolint:staticcheck // SA4011: ineffective break statement (deliberate)\n\t\t\tbreak\n\n\t\t// non-whitespace rune\n\t\tdefault:\n\t\t\t// return the rune to the buffer and we're done\n\t\t\tl.unread(_next)\n\t\t\treturn _ws, nil\n\t\t}\n\n\t\t// add this rune to the whitespace\n\t\t_ws = append(_ws, _next)\n\t}\n} // whitespace()\n\n// pattern returns all runes representing a file or path pattern, delimited\n// either by unescaped whitespace, a path separator '/' or enf of file. An\n// error is returned if a problem is encountered reading from the stream.\nfunc (l *lexer) pattern() ([]rune, Error) {\n\t// read until we hit the first whitespace/end of line/eof rune\n\t_pattern := make([]rune, 0, 1)\n\n\t// loop until there's nothing more to do\n\tfor {\n\t\t_r, _err := l.read()\n\t\tif _err != nil {\n\t\t\treturn _pattern, _err\n\t\t}\n\n\t\t// what is the next rune?\n\t\tswitch _r {\n\t\t// whitespace, newline, end of file, separator\n\t\t//\t\t- this is the end of the pattern\n\t\tcase _SPACE:\n\t\t\tfallthrough\n\t\tcase _TAB:\n\t\t\tfallthrough\n\t\tcase _CR:\n\t\t\tfallthrough\n\t\tcase _NEWLINE:\n\t\t\tfallthrough\n\t\tcase _SEPARATOR:\n\t\t\tfallthrough\n\t\tcase _EOF:\n\t\t\t// return what we have\n\t\t\tl.unread(_r)\n\t\t\treturn _pattern, nil\n\n\t\t// a wildcard is the end of the pattern if it is part of any '**'\n\t\tcase _WILDCARD:\n\t\t\t_next, _err := l.peek()\n\t\t\tif _err != nil {\n\t\t\t\treturn _pattern, _err\n\t\t\t} else if _next == _WILDCARD {\n\t\t\t\tl.unread(_r)\n\t\t\t\treturn _pattern, _err\n\t\t\t} else {\n\t\t\t\t_pattern = append(_pattern, _r)\n\t\t\t}\n\n\t\t// escape sequence - consume the next rune\n\t\tcase _ESCAPE:\n\t\t\t_escape, _err := l.escape()\n\t\t\tif _err != nil {\n\t\t\t\treturn _pattern, _err\n\t\t\t}\n\n\t\t\t// add the escape sequence as part of the pattern\n\t\t\t_pattern = append(_pattern, _escape...)\n\n\t\t// any other character, we add to the pattern\n\t\tdefault:\n\t\t\t_pattern = append(_pattern, _r)\n\t\t}\n\t}\n} // pattern()\n\n// token returns a Token instance of the given type_ represented by word runes.\nfunc (l *lexer) token(type_ TokenType, word []rune, e Error) (*Token, Error) {\n\t// if we have an error, then we return a BAD token\n\tif e != nil {\n\t\ttype_ = BAD\n\t}\n\n\t// extract the lexer position\n\t//      - the column is taken from the current column position\n\t//        minus the length of the consumed \"word\"\n\t_word := len(word)\n\t_column := l._column - _word\n\t_offset := l._offset - _word\n\tposition := Position{\"\", l._line, _column, _offset}\n\n\t// if this is a newline token, we adjust the line & column counts\n\tif type_ == EOL {\n\t\tl.newline()\n\t}\n\n\t// return the Token\n\treturn NewToken(type_, word, position), e\n} // token()\n\n// err returns an Error encapsulating the error e and the current Lexer\n// position.\nfunc (l *lexer) err(e error) Error {\n\t// do we have an error?\n\tif e == nil {\n\t\treturn nil\n\t} else {\n\t\treturn NewError(e, l.Position())\n\t}\n} // err()\n\n// beginning returns true if the Lexer is at the start of a new line.\nfunc (l *lexer) beginning() bool {\n\treturn l._column == 1\n} // beginning()\n\n// ensure the lexer conforms to the lexer interface\nvar _ Lexer = &lexer{}\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/match.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\n// Match represents the interface of successful matches against a .gitignore\n// pattern set. A Match can be queried to determine whether the matched path\n// should be ignored or included (i.e. was the path matched by a negated\n// pattern), and to extract the position of the pattern within the .gitignore,\n// and a string representation of the pattern.\ntype Match interface {\n\t// Ignore returns true if the match pattern describes files or paths that\n\t// should be ignored.\n\tIgnore() bool\n\n\t// Include returns true if the match pattern describes files or paths that\n\t// should be included.\n\tInclude() bool\n\n\t// String returns a string representation of the matched pattern.\n\tString() string\n\n\t// Position returns the position in the .gitignore file at which the\n\t// matching pattern was defined.\n\tPosition() Position\n}\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/parser.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\nimport (\n\t\"io\"\n)\n\n// Parser is the interface for parsing .gitignore files and extracting the set\n// of patterns specified in the .gitignore file.\ntype Parser interface {\n\t// Parse returns all well-formed .gitignore Patterns contained within the\n\t// parser stream. Parsing will terminate at the end of the stream, or if\n\t// the parser error handler returns false.\n\tParse() []Pattern\n\n\t// Next returns the next well-formed .gitignore Pattern from the parser\n\t// stream.  If an error is encountered, and the error handler is either\n\t// not defined, or returns true, Next will skip to the end of the current\n\t// line and attempt to parse the next Pattern. If the error handler\n\t// returns false, or the parser reaches the end of the stream, Next\n\t// returns nil.\n\tNext() Pattern\n\n\t// Position returns the current position of the parser in the input stream.\n\tPosition() Position\n} // Parser{}\n\n// parser is the implementation of the .gitignore parser\ntype parser struct {\n\t_lexer Lexer\n\t_undo  []*Token\n\t_error func(Error) bool\n} // parser{}\n\n// NewParser returns a new Parser instance for the given stream r.\n// If err is not nil, it will be called for every error encountered during\n// parsing. Parsing will terminate at the end of the stream, or if err\n// returns false.\nfunc NewParser(r io.Reader, err func(Error) bool) Parser {\n\treturn &parser{_lexer: NewLexer(r), _error: err}\n} // NewParser()\n\n// Parse returns all well-formed .gitignore Patterns contained within the\n// parser stream. Parsing will terminate at the end of the stream, or if\n// the parser error handler returns false.\nfunc (p *parser) Parse() []Pattern {\n\t// keep parsing until there's no more patterns\n\t_patterns := make([]Pattern, 0)\n\tfor {\n\t\t_pattern := p.Next()\n\t\tif _pattern == nil {\n\t\t\treturn _patterns\n\t\t}\n\t\t_patterns = append(_patterns, _pattern)\n\t}\n} // Parse()\n\n// Next returns the next well-formed .gitignore Pattern from the parser stream.\n// If an error is encountered, and the error handler is either not defined, or\n// returns true, Next will skip to the end of the current line and attempt to\n// parse the next Pattern. If the error handler returns false, or the parser\n// reaches the end of the stream, Next returns nil.\nfunc (p *parser) Next() Pattern {\n\t// keep searching until we find the next pattern, or until we\n\t// reach the end of the file\n\tfor {\n\t\t_token, _err := p.next()\n\t\tif _err != nil {\n\t\t\tif !p.errors(_err) {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\t// we got an error from the lexer, so skip the remainder\n\t\t\t// of this line and try again from the next line\n\t\t\tfor _err != nil {\n\t\t\t\t_err = p.skip()\n\t\t\t\tif _err != nil {\n\t\t\t\t\tif !p.errors(_err) {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch _token.Type {\n\t\t// we're at the end of the file\n\t\tcase EOF:\n\t\t\treturn nil\n\n\t\t// we have a blank line or comment\n\t\tcase EOL:\n\t\t\tcontinue\n\t\tcase COMMENT:\n\t\t\tcontinue\n\n\t\t// otherwise, attempt to build the next pattern\n\t\tdefault:\n\t\t\t_pattern, _err := p.build(_token)\n\t\t\tif _err != nil {\n\t\t\t\tif !p.errors(_err) {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\n\t\t\t\t// we encountered an error parsing the retrieved tokens\n\t\t\t\t//      - skip to the end of the line\n\t\t\t\tfor _err != nil {\n\t\t\t\t\t_err = p.skip()\n\t\t\t\t\tif _err != nil {\n\t\t\t\t\t\tif !p.errors(_err) {\n\t\t\t\t\t\t\treturn nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// skip to the next token\n\t\t\t\tcontinue\n\t\t\t} else if _pattern != nil {\n\t\t\t\treturn _pattern\n\t\t\t}\n\t\t}\n\t}\n} // Next()\n\n// Position returns the current position of the parser in the input stream.\nfunc (p *parser) Position() Position {\n\t// if we have any previously read tokens, then the token at\n\t// the end of the \"undo\" list (most recently \"undone\") gives the\n\t// position of the parser\n\t_length := len(p._undo)\n\tif _length != 0 {\n\t\treturn p._undo[_length-1].Position\n\t}\n\n\t// otherwise, return the position of the lexer\n\treturn p._lexer.Position()\n} // Position()\n\n//\n// private methods\n//\n\n// build attempts to build a well-formed .gitignore Pattern starting from the\n// given Token t. An Error will be returned if the sequence of tokens returned\n// by the Lexer does not represent a valid Pattern.\nfunc (p *parser) build(t *Token) (Pattern, Error) {\n\t// attempt to create a valid pattern\n\tswitch t.Type {\n\t// we have a negated pattern\n\tcase NEGATION:\n\t\treturn p.negation(t)\n\n\t// attempt to build a path specification\n\tdefault:\n\t\treturn p.path(t)\n\t}\n} // build()\n\n// negation attempts to build a well-formed negated .gitignore Pattern starting\n// from the negation Token t. As with build, negation returns an Error if the\n// sequence of tokens returned by the Lexer does not represent a valid Pattern.\nfunc (p *parser) negation(t *Token) (Pattern, Error) {\n\t// a negation appears before a path specification, so\n\t// skip the negation token\n\t_next, _err := p.next()\n\tif _err != nil {\n\t\treturn nil, _err\n\t}\n\n\t// extract the sequence of tokens for this path\n\t_tokens, _err := p.sequence(_next)\n\tif _err != nil {\n\t\treturn nil, _err\n\t}\n\n\t// include the \"negation\" token at the front of the sequence\n\t_tokens = append([]*Token{t}, _tokens...)\n\n\t// return the Pattern instance\n\treturn NewPattern(_tokens), nil\n} // negation()\n\n// path attempts to build a well-formed .gitignore Pattern representing a path\n// specification, starting with the Token t. If the sequence of tokens returned\n// by the Lexer does not represent a valid Pattern, path returns an Error.\n// Trailing whitespace is dropped from the sequence of pattern tokens.\nfunc (p *parser) path(t *Token) (Pattern, Error) {\n\t// extract the sequence of tokens for this path\n\t_tokens, _err := p.sequence(t)\n\tif _err != nil {\n\t\treturn nil, _err\n\t}\n\n\t// remove trailing whitespace tokens\n\t_length := len(_tokens)\n\tfor _length > 0 {\n\t\t// if we have a non-whitespace token, we can stop\n\t\t_length--\n\t\tif _tokens[_length].Type != WHITESPACE {\n\t\t\tbreak\n\t\t}\n\n\t\t// otherwise, truncate the token list\n\t\t_tokens = _tokens[:_length]\n\t}\n\n\t// return the Pattern instance\n\treturn NewPattern(_tokens), nil\n} // path()\n\n// sequence attempts to extract a well-formed Token sequence from the Lexer\n// representing a .gitignore Pattern. sequence returns an Error if the\n// retrieved sequence of tokens does not represent a valid Pattern.\nfunc (p *parser) sequence(t *Token) ([]*Token, Error) {\n\t// extract the sequence of tokens for a valid path\n\t//      - this excludes the negation token, which is handled as\n\t//        a special case before sequence() is called\n\tswitch t.Type {\n\t// the path starts with a separator\n\tcase SEPARATOR:\n\t\treturn p.separator(t)\n\n\t// the path starts with the \"any\" pattern (\"**\")\n\tcase ANY:\n\t\treturn p.any(t)\n\n\t// the path starts with whitespace, wildcard or a pattern\n\tcase WHITESPACE:\n\t\tfallthrough\n\tcase PATTERN:\n\t\treturn p.pattern(t)\n\t}\n\n\t// otherwise, we have an invalid specification\n\tp.undo(t)\n\treturn nil, p.err(ErrInvalidPatternError)\n} // sequence()\n\n// separator attempts to retrieve a valid sequence of tokens that may appear\n// after the path separator '/' Token t. An Error is returned if the sequence if\n// tokens is not valid, or if there is an error extracting tokens from the\n// input stream.\nfunc (p *parser) separator(t *Token) ([]*Token, Error) {\n\t// build a list of tokens that may appear after a separator\n\t_tokens := []*Token{t}\n\t_token, _err := p.next()\n\tif _err != nil {\n\t\treturn _tokens, _err\n\t}\n\n\t// what tokens are we allowed to have follow a separator?\n\tswitch _token.Type {\n\t// a separator can be followed by a pattern or\n\t// an \"any\" pattern (i.e. \"**\")\n\tcase ANY:\n\t\t_next, _err := p.any(_token)\n\t\treturn append(_tokens, _next...), _err\n\n\tcase WHITESPACE:\n\t\tfallthrough\n\tcase PATTERN:\n\t\t_next, _err := p.pattern(_token)\n\t\treturn append(_tokens, _next...), _err\n\n\t// if we encounter end of line or file we are done\n\tcase EOL:\n\t\tfallthrough\n\tcase EOF:\n\t\treturn _tokens, nil\n\n\t// a separator can be followed by another separator\n\t//      - it's not ideal, and not very useful, but it's interpreted\n\t//        as a single separator\n\t//      - we could clean it up here, but instead we pass\n\t//        everything down to the matching later on\n\tcase SEPARATOR:\n\t\t_next, _err := p.separator(_token)\n\t\treturn append(_tokens, _next...), _err\n\t}\n\n\t// any other token is invalid\n\tp.undo(_token)\n\treturn _tokens, p.err(ErrInvalidPatternError)\n} // separator()\n\n// any attempts to retrieve a valid sequence of tokens that may appear\n// after the any '**' Token t. An Error is returned if the sequence if\n// tokens is not valid, or if there is an error extracting tokens from the\n// input stream.\nfunc (p *parser) any(t *Token) ([]*Token, Error) {\n\t// build the list of tokens that may appear after \"any\" (i.e. \"**\")\n\t_tokens := []*Token{t}\n\t_token, _err := p.next()\n\tif _err != nil {\n\t\treturn _tokens, _err\n\t}\n\n\t// what tokens are we allowed to have follow an \"any\" symbol?\n\tswitch _token.Type {\n\t// an \"any\" token may only be followed by a separator\n\tcase SEPARATOR:\n\t\t_next, _err := p.separator(_token)\n\t\treturn append(_tokens, _next...), _err\n\n\t// whitespace is acceptable if it takes us to the end of the line\n\tcase WHITESPACE:\n\t\treturn _tokens, p.eol()\n\n\t// if we encounter end of line or file we are done\n\tcase EOL:\n\t\tfallthrough\n\tcase EOF:\n\t\treturn _tokens, nil\n\t}\n\n\t// any other token is invalid\n\tp.undo(_token)\n\treturn _tokens, p.err(ErrInvalidPatternError)\n} // any()\n\n// pattern attempts to retrieve a valid sequence of tokens that may appear\n// after the path pattern Token t. An Error is returned if the sequence if\n// tokens is not valid, or if there is an error extracting tokens from the\n// input stream.\nfunc (p *parser) pattern(t *Token) ([]*Token, Error) {\n\t// build the list of tokens that may appear after a pattern\n\t_tokens := []*Token{t}\n\t_token, _err := p.next()\n\tif _err != nil {\n\t\treturn _tokens, _err\n\t}\n\n\t// what tokens are we allowed to have follow a pattern?\n\tvar _next []*Token\n\tswitch _token.Type {\n\tcase SEPARATOR:\n\t\t_next, _err = p.separator(_token)\n\t\treturn append(_tokens, _next...), _err\n\n\tcase WHITESPACE:\n\t\tfallthrough\n\tcase PATTERN:\n\t\t_next, _err = p.pattern(_token)\n\t\treturn append(_tokens, _next...), _err\n\n\t// if we encounter end of line or file we are done\n\tcase EOL:\n\t\tfallthrough\n\tcase EOF:\n\t\treturn _tokens, nil\n\t}\n\n\t// any other token is invalid\n\tp.undo(_token)\n\treturn _tokens, p.err(ErrInvalidPatternError)\n} // pattern()\n\n// eol attempts to consume the next Lexer token to read the end of line or end\n// of file. If a EOL or EOF is not reached , eol will return an error.\nfunc (p *parser) eol() Error {\n\t// are we at the end of the line?\n\t_token, _err := p.next()\n\tif _err != nil {\n\t\treturn _err\n\t}\n\n\t// have we encountered whitespace only?\n\tswitch _token.Type {\n\t// if we're at the end of the line or file, we're done\n\tcase EOL:\n\t\tfallthrough\n\tcase EOF:\n\t\tp.undo(_token)\n\t\treturn nil\n\t}\n\n\t// otherwise, we have an invalid pattern\n\tp.undo(_token)\n\treturn p.err(ErrInvalidPatternError)\n} // eol()\n\n// next returns the next token from the Lexer, or an error if there is a\n// problem reading from the input stream.\nfunc (p *parser) next() (*Token, Error) {\n\t// do we have any previously read tokens?\n\t_length := len(p._undo)\n\tif _length > 0 {\n\t\t_token := p._undo[_length-1]\n\t\tp._undo = p._undo[:_length-1]\n\t\treturn _token, nil\n\t}\n\n\t// otherwise, attempt to retrieve the next token from the lexer\n\treturn p._lexer.Next()\n} // next()\n\n// skip reads Tokens from the input until the end of line or end of file is\n// reached. If there is a problem reading tokens, an Error is returned.\nfunc (p *parser) skip() Error {\n\t// skip to the next end of line or end of file token\n\tfor {\n\t\t_token, _err := p.next()\n\t\tif _err != nil {\n\t\t\treturn _err\n\t\t}\n\n\t\t// if we have an end of line or file token, then we can stop\n\t\tswitch _token.Type {\n\t\tcase EOL:\n\t\t\tfallthrough\n\t\tcase EOF:\n\t\t\treturn nil\n\t\t}\n\t}\n} // skip()\n\n// undo returns the given Token t to the parser input stream to be retrieved\n// again on a subsequent call to next.\nfunc (p *parser) undo(t *Token) {\n\t// add this token to the list of previously read tokens\n\t//      - initialise the undo list if required\n\tif p._undo == nil {\n\t\tp._undo = make([]*Token, 0, 1)\n\t}\n\tp._undo = append(p._undo, t)\n} // undo()\n\n// err returns an Error for the error e, capturing the current parser Position.\nfunc (p *parser) err(e error) Error {\n\t// convert the error to include the parser position\n\treturn NewError(e, p.Position())\n} // err()\n\n// errors returns the response from the parser error handler to the Error e. If\n// no error handler has been configured for this parser, errors returns true.\nfunc (p *parser) errors(e Error) bool {\n\t// do we have an error handler?\n\tif p._error == nil {\n\t\treturn true\n\t}\n\n\t// pass the error through to the error handler\n\t//      - if this returns false, parsing will stop\n\treturn p._error(e)\n} // errors()\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/pattern.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\nimport (\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/danwakefield/fnmatch\"\n)\n\n// Pattern represents per-line patterns within a .gitignore file\ntype Pattern interface {\n\tMatch\n\n\t// Match returns true if the given path matches the name pattern. If the\n\t// pattern is meant for directories only, and the path is not a directory,\n\t// Match will return false. The matching is performed by fnmatch(). It\n\t// is assumed path is relative to the base path of the owning GitIgnore.\n\tMatch(string, bool) bool\n}\n\n// pattern is the base implementation of a .gitignore pattern\ntype pattern struct {\n\t_negated   bool\n\t_anchored  bool\n\t_directory bool\n\t_string    string\n\t_fnmatch   string\n\t_position  Position\n} // pattern()\n\n// matchType classifies name patterns for fast-path matching.\ntype matchType int\n\nconst (\n\tmatchComplex matchType = iota // requires fnmatch\n\tmatchExact                    // no glob chars → string ==\n\tmatchSuffix                   // leading * + literal tail → HasSuffix\n)\n\n// name represents patterns matching a file or path name (i.e. the last\n// component of a path)\ntype name struct {\n\tpattern\n\t_matchType matchType\n\t_literal   string\n} // name{}\n\n// path represents a pattern that contains at least one path separator within\n// the pattern (i.e. not at the start or end of the pattern)\ntype path struct {\n\tpattern\n\t_depth int\n} // path{}\n\n// any represents a pattern that contains at least one \"any\" token \"**\"\n// allowing for recursive matching.\ntype any struct {\n\tpattern\n\t_tokens []*Token\n} // any{}\n\n// NewPattern returns a Pattern from the ordered slice of Tokens. The tokens are\n// assumed to represent a well-formed .gitignore pattern. A Pattern may be\n// negated, anchored to the start of the path (relative to the base directory\n// of tie containing .gitignore), or match directories only.\nfunc NewPattern(tokens []*Token) Pattern {\n\t// if we have no tokens there is no pattern\n\tif len(tokens) == 0 {\n\t\treturn nil\n\t}\n\n\t// extract the pattern position from first token\n\t_position := tokens[0].Position\n\t_string := tokenset(tokens).String()\n\n\t// is this a negated pattern?\n\t_negated := false\n\tif tokens[0].Type == NEGATION {\n\t\t_negated = true\n\t\ttokens = tokens[1:]\n\t}\n\n\t// is this pattern anchored to the start of the path?\n\t_anchored := false\n\tif tokens[0].Type == SEPARATOR {\n\t\t_anchored = true\n\t\ttokens = tokens[1:]\n\t}\n\n\t// is this pattern for directories only?\n\t_directory := false\n\t_last := len(tokens) - 1\n\tif len(tokens) != 0 {\n\t\tif tokens[_last].Type == SEPARATOR {\n\t\t\t_directory = true\n\t\t\ttokens = tokens[:_last]\n\t\t}\n\t}\n\n\t// build the pattern expression\n\t_fnmatch := tokenset(tokens).String()\n\t_pattern := &pattern{\n\t\t_negated:   _negated,\n\t\t_anchored:  _anchored,\n\t\t_position:  _position,\n\t\t_directory: _directory,\n\t\t_string:    _string,\n\t\t_fnmatch:   _fnmatch,\n\t}\n\treturn _pattern.compile(tokens)\n} // NewPattern()\n\n// compile generates a specific Pattern (i.e. name, path or any)\n// represented by the list of tokens.\nfunc (p *pattern) compile(tokens []*Token) Pattern {\n\t// what tokens do we have in this pattern?\n\t//      - ANY token means we can match to any depth\n\t//      - SEPARATOR means we have path rather than file matching\n\t_separator := false\n\tfor _, _token := range tokens {\n\t\tswitch _token.Type {\n\t\tcase ANY:\n\t\t\treturn p.any(tokens)\n\t\tcase SEPARATOR:\n\t\t\t_separator = true\n\t\t}\n\t}\n\n\t// should we perform path or name/file matching?\n\tif _separator {\n\t\treturn p.path(tokens)\n\t} else {\n\t\treturn p.name(tokens)\n\t}\n} // compile()\n\n// Ignore returns true if the pattern describes files or paths that should be\n// ignored.\nfunc (p *pattern) Ignore() bool { return !p._negated }\n\n// Include returns true if the pattern describes files or paths that should be\n// included (i.e. not ignored)\nfunc (p *pattern) Include() bool { return p._negated }\n\n// Position returns the position of the first token of this pattern.\nfunc (p *pattern) Position() Position { return p._position }\n\n// String returns the string representation of the pattern.\nfunc (p *pattern) String() string { return p._string }\n\n//\n// name patterns\n//      - designed to match trailing file/directory names only\n//\n\n// containsGlob reports whether s contains any fnmatch special characters.\nfunc containsGlob(s string) bool {\n\treturn strings.ContainsAny(s, \"*?[\\\\\")\n}\n\n// name returns a Pattern designed to match file or directory names, with no\n// path elements.\nfunc (p *pattern) name(tokens []*Token) Pattern {\n\tn := &name{pattern: *p}\n\n\t// classify the fnmatch expression for fast-path dispatch\n\tswitch {\n\tcase !containsGlob(p._fnmatch):\n\t\t// exact literal (e.g. \"node_modules\", \".DS_Store\")\n\t\tn._matchType = matchExact\n\t\tn._literal = p._fnmatch\n\tcase p._fnmatch[0] == '*' && !containsGlob(p._fnmatch[1:]):\n\t\t// suffix match (e.g. \"*.o\", \"*.pyc\")\n\t\tn._matchType = matchSuffix\n\t\tn._literal = p._fnmatch[1:]\n\tdefault:\n\t\tn._matchType = matchComplex\n\t}\n\n\treturn n\n} // name()\n\n// Match returns true if the given path matches the name pattern. If the\n// pattern is meant for directories only, and the path is not a directory,\n// Match will return false. The matching is performed by fnmatch(). It\n// is assumed path is relative to the base path of the owning GitIgnore.\nfunc (n *name) Match(path string, isdir bool) bool {\n\t// are we expecting a directory?\n\tif n._directory && !isdir {\n\t\treturn false\n\t}\n\n\t// determine the string to match against\n\t_target := path\n\tif !n._anchored {\n\t\t_, _target = filepath.Split(path)\n\t}\n\n\t// fast-path dispatch avoids expensive fnmatch for simple patterns\n\tswitch n._matchType {\n\tcase matchExact:\n\t\treturn _target == n._literal\n\tcase matchSuffix:\n\t\treturn strings.HasSuffix(_target, n._literal)\n\tdefault:\n\t\treturn fnmatch.Match(n._fnmatch, _target, 0)\n\t}\n} // Match()\n\n//\n// path patterns\n//      - designed to match complete or partial paths (not just filenames)\n//\n\n// path returns a Pattern designed to match paths that include at least one\n// path separator '/' neither at the end nor the start of the pattern.\nfunc (p *pattern) path(tokens []*Token) Pattern {\n\t// how many directory components are we expecting?\n\t_depth := 0\n\tfor _, _token := range tokens {\n\t\tif _token.Type == SEPARATOR {\n\t\t\t_depth++\n\t\t}\n\t}\n\n\t// return the pattern instance\n\treturn &path{pattern: *p, _depth: _depth}\n} // path()\n\n// Match returns true if the given path matches the path pattern. If the\n// pattern is meant for directories only, and the path is not a directory,\n// Match will return false. The matching is performed by fnmatch()\n// with flags set to FNM_PATHNAME. It is assumed path is relative to the\n// base path of the owning GitIgnore.\nfunc (p *path) Match(path string, isdir bool) bool {\n\t// are we expecting a directory\n\tif p._directory && !isdir {\n\t\treturn false\n\t}\n\n\treturn fnmatch.Match(p._fnmatch, path, fnmatch.FNM_PATHNAME)\n} // Match()\n\n//\n// \"any\" patterns\n//\n\n// any returns a Pattern designed to match paths that include at least one\n// any pattern '**', specifying recursive matching.\nfunc (p *pattern) any(tokens []*Token) Pattern {\n\t// consider only the non-SEPARATOR tokens, as these will be matched\n\t// against the path components\n\t_tokens := make([]*Token, 0)\n\tfor _, _token := range tokens {\n\t\tif _token.Type != SEPARATOR {\n\t\t\t_tokens = append(_tokens, _token)\n\t\t}\n\t}\n\n\treturn &any{*p, _tokens}\n} // any()\n\n// Match returns true if the given path matches the any pattern. If the\n// pattern is meant for directories only, and the path is not a directory,\n// Match will return false. The matching is performed by recursively applying\n// fnmatch() with flags set to FNM_PATHNAME. It is assumed path is relative to\n// the base path of the owning GitIgnore.\nfunc (a *any) Match(path string, isdir bool) bool {\n\t// are we expecting a directory?\n\tif a._directory && !isdir {\n\t\treturn false\n\t}\n\n\t// split the path into components\n\t_parts := strings.Split(path, string(_SEPARATOR))\n\n\t// attempt to match the parts against the pattern tokens\n\treturn a.match(_parts, a._tokens)\n} // Match()\n\n// match performs the recursive matching for 'any' patterns. An 'any'\n// token '**' may match any path component, or no path component.\nfunc (a *any) match(path []string, tokens []*Token) bool {\n\t// if we have no more tokens, then we have matched this path\n\t// if there are also no more path elements, otherwise there's no match\n\tif len(tokens) == 0 {\n\t\treturn len(path) == 0\n\t}\n\n\t// what token are we trying to match?\n\t_token := tokens[0]\n\tswitch _token.Type {\n\tcase ANY:\n\t\tif len(path) == 0 {\n\t\t\treturn a.match(path, tokens[1:])\n\t\t} else {\n\t\t\treturn a.match(path, tokens[1:]) || a.match(path[1:], tokens)\n\t\t}\n\n\tdefault:\n\t\t// if we have a non-ANY token, then we must have a non-empty path\n\t\tif len(path) != 0 {\n\t\t\t// if the current path element matches this token,\n\t\t\t// we match if the remainder of the path matches the\n\t\t\t// remaining tokens\n\t\t\tif fnmatch.Match(_token.Token(), path[0], fnmatch.FNM_PATHNAME) {\n\t\t\t\treturn a.match(path[1:], tokens[1:])\n\t\t\t}\n\t\t}\n\t}\n\n\t// if we are here, then we have no match\n\treturn false\n} // match()\n\n// ensure the patterns confirm to the Pattern interface\nvar _ Pattern = &name{}\nvar _ Pattern = &path{}\nvar _ Pattern = &any{}\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/position.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\nimport (\n\t\"fmt\"\n)\n\n// Position represents the position of the .gitignore parser, and the position\n// of a .gitignore pattern within the parsed stream.\ntype Position struct {\n\tFile   string\n\tLine   int\n\tColumn int\n\tOffset int\n}\n\n// String returns a string representation of the current position.\nfunc (p Position) String() string {\n\t_prefix := \"\"\n\tif p.File != \"\" {\n\t\t_prefix = p.File + \": \"\n\t}\n\n\tif p.Line == 0 {\n\t\treturn fmt.Sprintf(\"%s+%d\", _prefix, p.Offset)\n\t} else if p.Column == 0 {\n\t\treturn fmt.Sprintf(\"%s%d\", _prefix, p.Line)\n\t} else {\n\t\treturn fmt.Sprintf(\"%s%d:%d\", _prefix, p.Line, p.Column)\n\t}\n} // String()\n\n// Zero returns true if the Position represents the zero Position\nfunc (p Position) Zero() bool {\n\treturn p.Line+p.Column+p.Offset == 0\n} // Zero()\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/repository.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n)\n\nconst File = \".gitignore\"\n\n// repository is the implementation of the set of .gitignore files within a\n// repository hierarchy\ntype repository struct {\n\tignore\n\t_errors  func(e Error) bool\n\t_cache   Cache\n\t_file    string\n\t_exclude GitIgnore\n} // repository{}\n\n// NewRepository returns a GitIgnore instance representing a git repository\n// with root directory base. If base is not a directory, or base cannot be\n// read, NewRepository will return an error.\n//\n// Internally, NewRepository uses NewRepositoryWithFile.\nfunc NewRepository(base string) (GitIgnore, error) {\n\treturn NewRepositoryWithFile(base, File)\n} // NewRepository()\n\n// NewRepositoryWithFile returns a GitIgnore instance representing a git\n// repository with root directory base. The repository will use file as\n// the name of the files within the repository from which to load the\n// .gitignore patterns. If file is the empty string, NewRepositoryWithFile\n// uses \".gitignore\". If the ignore file name is \".gitignore\", the returned\n// GitIgnore instance will also consider patterns listed in\n// $GIT_DIR/info/exclude when performing repository matching.\n//\n// Internally, NewRepositoryWithFile uses NewRepositoryWithErrors.\nfunc NewRepositoryWithFile(base, file string) (GitIgnore, error) {\n\t// define an error handler to catch any file access errors\n\t//\t\t- record the first encountered error\n\tvar _error Error\n\t_errors := func(e Error) bool {\n\t\tif _error == nil {\n\t\t\t_error = e\n\t\t}\n\t\treturn true\n\t}\n\n\t// attempt to retrieve the repository represented by this file\n\t_repository := NewRepositoryWithErrors(base, file, _errors)\n\n\t// did we encounter an error?\n\t//\t\t- if the error has a zero Position then it was encountered\n\t//\t\t  before parsing was attempted, so we return that error\n\tif _error != nil {\n\t\tif _error.Position().Zero() {\n\t\t\treturn nil, _error.Underlying()\n\t\t}\n\t}\n\n\t// otherwise, we ignore the parser errors\n\treturn _repository, nil\n} // NewRepositoryWithFile()\n\n// NewRepositoryWithErrors returns a GitIgnore instance representing a git\n// repository with a root directory base. As with NewRepositoryWithFile, file\n// specifies the name of the files within the repository containing the\n// .gitignore patterns, and defaults to \".gitignore\" if file is not specified.\n// If the ignore file name is \".gitignore\", the returned GitIgnore instance\n// will also consider patterns listed in $GIT_DIR/info/exclude when performing\n// repository matching.\n//\n// If errors is given, it will be invoked for each error encountered while\n// matching a path against the repository GitIgnore (such as file permission\n// denied, or errors during .gitignore parsing). See Match below.\n//\n// Internally, NewRepositoryWithErrors uses NewRepositoryWithCache.\nfunc NewRepositoryWithErrors(base, file string, errors func(e Error) bool) GitIgnore {\n\treturn NewRepositoryWithCache(base, file, NewCache(), errors)\n} // NewRepositoryWithErrors()\n\n// NewRepositoryWithCache returns a GitIgnore instance representing a git\n// repository with a root directory base. As with NewRepositoryWithErrors,\n// file specifies the name of the files within the repository containing the\n// .gitignore patterns, and defaults to \".gitignore\" if file is not specified.\n// If the ignore file name is \".gitignore\", the returned GitIgnore instance\n// will also consider patterns listed in $GIT_DIR/info/exclude when performing\n// repository matching.\n//\n// NewRepositoryWithCache will attempt to load each .gitignore within the\n// repository only once, using NewWithCache to store the corresponding\n// GitIgnore instance in cache. If cache is given as nil,\n// NewRepositoryWithCache will create a Cache instance for this repository.\n//\n// If errors is given, it will be invoked for each error encountered while\n// matching a path against the repository GitIgnore (such as file permission\n// denied, or errors during .gitignore parsing). See Match below.\nfunc NewRepositoryWithCache(base, file string, cache Cache, errors func(e Error) bool) GitIgnore {\n\t// do we have an error handler?\n\t_errors := errors\n\tif _errors == nil {\n\t\t_errors = func(e Error) bool { return true }\n\t}\n\n\t// extract the absolute path of the base directory\n\t_base, _err := filepath.Abs(base)\n\tif _err != nil {\n\t\t_errors(NewError(_err, Position{}))\n\t\treturn nil\n\t}\n\n\t// ensure the given base is a directory\n\t_info, _err := os.Stat(_base)\n\tif _info != nil {\n\t\tif !_info.IsDir() {\n\t\t\t_err = ErrInvalidDirectoryError\n\t\t}\n\t}\n\tif _err != nil {\n\t\t_errors(NewError(_err, Position{}))\n\t\treturn nil\n\t}\n\n\t// if we haven't been given a base file name, use the default\n\tif file == \"\" {\n\t\tfile = File\n\t}\n\n\t// are we matching .gitignore files?\n\t//\t\t- if we are, we also consider $GIT_DIR/info/exclude\n\tvar _exclude GitIgnore\n\tif file == File {\n\t\t_exclude, _err = exclude(_base)\n\t\tif _err != nil {\n\t\t\t_errors(NewError(_err, Position{}))\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// create the repository instance\n\t_ignore := ignore{_base: _base}\n\t_repository := &repository{\n\t\tignore:   _ignore,\n\t\t_errors:  _errors,\n\t\t_exclude: _exclude,\n\t\t_cache:   cache,\n\t\t_file:    file,\n\t}\n\n\treturn _repository\n} // NewRepositoryWithCache()\n\n// Match attempts to match the path against this repository. Matching proceeds\n// according to normal gitignore rules, where .gtignore files in the same\n// directory as path, take precedence over .gitignore files higher up the\n// path hierarchy, and child files and directories are ignored if the parent\n// is ignored. If the path is matched by a gitignore pattern in the repository,\n// a Match is returned detailing the matched pattern. The returned Match\n// can be used to determine if the path should be ignored or included according\n// to the repository.\n//\n// If an error is encountered during matching, the repository error handler\n// (if configured via NewRepositoryWithErrors or NewRepositoryWithCache), will\n// be called. If the error handler returns false, matching will terminate and\n// Match will return nil. If handler returns true, Match will continue\n// processing in an attempt to match path.\n//\n// Match will raise an error and return nil if the absolute path cannot be\n// determined, or if its not possible to determine if path represents a file\n// or a directory.\n//\n// If path is not located under the root of this repository, Match returns nil.\nfunc (r *repository) Match(path string) Match {\n\t// ensure we have the absolute path for the given file\n\t_path, _err := filepath.Abs(path)\n\tif _err != nil {\n\t\tr._errors(NewError(_err, Position{}))\n\t\treturn nil\n\t}\n\n\t// is the path a file or a directory?\n\t_info, _err := os.Stat(_path)\n\tif _err != nil {\n\t\tr._errors(NewError(_err, Position{}))\n\t\treturn nil\n\t}\n\t_isdir := _info.IsDir()\n\n\t// attempt to match the absolute path\n\treturn r.Absolute(_path, _isdir)\n} // Match()\n\n// Absolute attempts to match an absolute path against this repository. If the\n// path is not located under the base directory of this repository, or is not\n// matched by this repository, nil is returned.\nfunc (r *repository) Absolute(path string, isdir bool) Match {\n\t// does the file share the same directory as this ignore file?\n\tif !strings.HasPrefix(path, r.Base()) {\n\t\treturn nil\n\t}\n\n\t// extract the relative path of this file\n\t_prefix := len(r.Base()) + 1\n\t_rel := string(path[_prefix:])\n\treturn r.Relative(_rel, isdir)\n} // Absolute()\n\n// Relative attempts to match a path relative to the repository base directory.\n// If the path is not matched by the repository, nil is returned.\nfunc (r *repository) Relative(path string, isdir bool) Match {\n\t// if there's no path, then there's nothing to match\n\t_path := filepath.Clean(path)\n\tif _path == \".\" {\n\t\treturn nil\n\t}\n\n\t// repository matching:\n\t//\t\t- a child path cannot be considered if its parent is ignored\n\t//\t\t- a .gitignore in a lower directory overrides a .gitignore in a\n\t//\t\t  higher directory\n\n\t// first, is the parent directory ignored?\n\t//\t\t- extract the parent directory from the current path\n\t_parent, _local := filepath.Split(_path)\n\t_match := r.Relative(_parent, true)\n\tif _match != nil {\n\t\tif _match.Ignore() {\n\t\t\treturn _match\n\t\t}\n\t}\n\t_parent = filepath.Clean(_parent)\n\n\t// the parent directory isn't ignored, so we now look at the original path\n\t//\t\t- we consider .gitignore files in the current directory first, then\n\t//\t\t  move up the path hierarchy\n\tvar _last string\n\tfor {\n\t\t_file := filepath.Join(r._base, _parent, r._file)\n\t\t_ignore := NewWithCache(_file, r._cache, r._errors)\n\t\tif _ignore != nil {\n\t\t\t_match := _ignore.Relative(_local, isdir)\n\t\t\tif _match != nil {\n\t\t\t\treturn _match\n\t\t\t}\n\t\t}\n\n\t\t// if there's no parent, then we're done\n\t\t//\t\t- since we use filepath.Clean() we look for \".\"\n\t\tif _parent == \".\" {\n\t\t\tbreak\n\t\t}\n\n\t\t// we don't have a match for this file, so we progress up the\n\t\t// path hierarchy\n\t\t//\t\t- we are manually building _local using the .gitignore\n\t\t//\t\t  separator \"/\", which is how we handle operating system\n\t\t//\t\t  file system differences\n\t\t_parent, _last = filepath.Split(_parent)\n\t\t_parent = filepath.Clean(_parent)\n\t\t_local = _last + string(_SEPARATOR) + _local\n\t}\n\n\t// do we have a global exclude file? (i.e. GIT_DIR/info/exclude)\n\tif r._exclude != nil {\n\t\treturn r._exclude.Relative(path, isdir)\n\t}\n\n\t// we have no match\n\treturn nil\n} // Relative()\n\n// ensure repository satisfies the GitIgnore interface\nvar _ GitIgnore = &repository{}\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/rune.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\nconst (\n\t// define the sentinel runes of the lexer\n\t_EOF       = rune(0)\n\t_CR        = rune('\\r')\n\t_NEWLINE   = rune('\\n')\n\t_COMMENT   = rune('#')\n\t_SEPARATOR = rune('/')\n\t_ESCAPE    = rune('\\\\')\n\t_SPACE     = rune(' ')\n\t_TAB       = rune('\\t')\n\t_NEGATION  = rune('!')\n\t_WILDCARD  = rune('*')\n)\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/token.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\nimport (\n\t\"fmt\"\n)\n\n// Token represents a parsed token from a .gitignore stream, encapsulating the\n// token type, the runes comprising the token, and the position within the\n// stream of the first rune of the token.\ntype Token struct {\n\tType TokenType\n\tWord []rune\n\tPosition\n}\n\n// NewToken returns a Token instance of the given t, represented by the\n// word runes, at the stream position pos. If the token type is not know, the\n// returned instance will have type BAD.\nfunc NewToken(t TokenType, word []rune, pos Position) *Token {\n\t// ensure the type is valid\n\tif t < ILLEGAL || t > BAD {\n\t\tt = BAD\n\t}\n\n\t// return the token\n\treturn &Token{Type: t, Word: word, Position: pos}\n} // NewToken()\n\n// Name returns a string representation of the Token type.\nfunc (t *Token) Name() string {\n\treturn t.Type.String()\n} // Name()\n\n// Token returns the string representation of the Token word.\nfunc (t *Token) Token() string {\n\treturn string(t.Word)\n} // Token()\n\n// String returns a string representation of the Token, encapsulating its\n// position in the input stream, its name (i.e. type), and its runes.\nfunc (t *Token) String() string {\n\treturn fmt.Sprintf(\"%s: %s %q\", t.Position.String(), t.Name(), t.Token())\n} // String()\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/tokenset.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\n// tokenset represents an ordered list of Tokens\ntype tokenset []*Token\n\n// String() returns a concatenated string of all runes represented by the\n// list of tokens.\nfunc (t tokenset) String() string {\n\t// concatenate the tokens into a single string\n\t_rtn := \"\"\n\tfor _, _t := range []*Token(t) {\n\t\t_rtn = _rtn + _t.Token()\n\t}\n\treturn _rtn\n} // String()\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/go-gitignore/tokentype.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage gitignore\n\ntype TokenType int\n\nconst (\n\tILLEGAL TokenType = iota\n\tEOF\n\tEOL\n\tWHITESPACE\n\tCOMMENT\n\tSEPARATOR\n\tNEGATION\n\tPATTERN\n\tANY\n\tBAD\n)\n\n// String returns a string representation of the Token type.\nfunc (t TokenType) String() string {\n\tswitch t {\n\tcase ILLEGAL:\n\t\treturn \"ILLEGAL\"\n\tcase EOF:\n\t\treturn \"EOF\"\n\tcase EOL:\n\t\treturn \"EOL\"\n\tcase WHITESPACE:\n\t\treturn \"WHITESPACE\"\n\tcase COMMENT:\n\t\treturn \"COMMENT\"\n\tcase SEPARATOR:\n\t\treturn \"SEPARATOR\"\n\tcase NEGATION:\n\t\treturn \"NEGATION\"\n\tcase PATTERN:\n\t\treturn \"PATTERN\"\n\tcase ANY:\n\t\treturn \"ANY\"\n\tdefault:\n\t\treturn \"BAD TOKEN\"\n\t}\n} // String()\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/hidden.go",
    "content": "// SPDX-License-Identifier: MIT\n//go:build !windows\n\npackage gocodewalker\n\nimport (\n\t\"io/fs\"\n\t\"os\"\n)\n\n// IsHidden Returns true if file is hidden\nfunc IsHidden(file os.FileInfo, directory string) (bool, error) {\n\treturn IsHiddenDirEntry(fs.FileInfoToDirEntry(file), directory)\n}\n\n// IsHiddenDirEntry is similar to [IsHidden], excepts it accepts [fs.DirEntry] as its argument\nfunc IsHiddenDirEntry(file fs.DirEntry, directory string) (bool, error) {\n\treturn file.Name()[0:1] == \".\", nil\n}\n"
  },
  {
    "path": "vendor/github.com/boyter/gocodewalker/hidden_windows.go",
    "content": "// SPDX-License-Identifier: MIT\n//go:build windows\n\npackage gocodewalker\n\nimport (\n\t\"io/fs\"\n\t\"os\"\n\t\"path\"\n\t\"syscall\"\n)\n\n// IsHidden Returns true if file is hidden\nfunc IsHidden(file os.FileInfo, directory string) (bool, error) {\n\treturn IsHiddenDirEntry(fs.FileInfoToDirEntry(file), directory)\n}\n\n// IsHiddenDirEntry is similar to [IsHidden], excepts it accepts [fs.DirEntry] as its argument\nfunc IsHiddenDirEntry(file fs.DirEntry, directory string) (bool, error) {\n\tfullpath := path.Join(directory, file.Name())\n\tpointer, err := syscall.UTF16PtrFromString(fullpath)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tattributes, err := syscall.GetFileAttributes(pointer)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\treturn attributes&syscall.FILE_ATTRIBUTE_HIDDEN != 0, nil\n}\n"
  },
  {
    "path": "vendor/github.com/boyter/simplecache/.gitignore",
    "content": ".idea"
  },
  {
    "path": "vendor/github.com/boyter/simplecache/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2021 Ben Boyter\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 (including the next paragraph) 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/boyter/simplecache/README.md",
    "content": "# SimpleCache\n\n[![Scc Count Badge](https://sloc.xyz/github/boyter/simplecache/)](https://github.com/boyter/simplecache/)\n\nA simple thread safe cache implementation using Go generics.\n\n## Why?\n\nWhile many excellent cache solutions exist, what I often want for smaller projects is a map, with some expiration \nabilities over it. That is intended to fill that role. This is because different types can have\ndifferent caching needs, such as a small group of items that should never expire, items that should exist in cache\nforever only being removed when the cache is full. Or some combination.\n\nMost operations should be `o(1)` as well as all being thread safe.\n\n### What isn't it\n\n1. A generic cache for anything E.G. redis/memcached\n2. Aiming for extreme performance under load\n3. Implementing any sort of persistence\n\n# Usage\n\nImport `github.com/boyter/simplecache`\n\n```go\nsc := simplecache.New[string]()\n\n_ = sc.Set(\"key-1\", \"some value\")\n\nv, ok := sc.Get(\"key-1\")\nif ok {\n\tfmt.Println(v) // prints \"some value\"\n}\nv, ok = sc.Get(\"key-99\")\nif ok {\n\tfmt.Println(v) // not run \"key-99\" was never added\n}\n```\n\nNote that a default cache has an limit of 100,000 items, once the next item is added beyond this limit 5 random \nentries will be checked, and one of them removed based on the default LFU algorithm. \n\nYou can configure this through the use of options, as indicated below\n\n```go\noMi := 1000\noEp := simplecache.LRU\noEs := 5\noMA := time.Second * 60\n\nsc := simplecache.New[string](simplecache.Option{\n    MaxItems:        &oMi, // max number of items the cache will hold, evicting on Set, nil for no limit\n    EvictionPolicy:  &oEp, // Which eviction policy should be applied LRU or LFU\n    EvictionSamples: &oEs, // How many random samples to take from the items to find the best to expire\n    MaxAge:          &oMA, // Max age an item can live on Get when past this will be deleted, nil for no expiry\n})\n```\n\n# Benchmarks?\n\nI don't have any. It's a Go map with some locking. It should be fine. Being 5% faster or slower than any other\ncache isn't the point here.\n"
  },
  {
    "path": "vendor/github.com/boyter/simplecache/simplecache.go",
    "content": "// SPDX-License-Identifier: MIT\n\npackage simplecache\n\nimport (\n\t\"errors\"\n\t\"math\"\n\t\"sync\"\n\t\"time\"\n)\n\ntype CacheEvictionPolicy int\n\nconst (\n\tLRU CacheEvictionPolicy = iota\n\tLFU\n)\n\nvar ErrInvalidEvictionPolicy = errors.New(\"invalid eviction policy\")\n\n// cacheEntry is a generic structure to hold cached items\ntype cacheEntry[T any] struct {\n\tentry   T\n\thits    int64\n\tage     time.Time\n\tlastUse time.Time\n}\n\n// Cache is a generic cache implementation using a map\n// not designed for raw performance but to be simple to configure\ntype Cache[T any] struct {\n\titems           map[string]cacheEntry[T]\n\tmutex           sync.Mutex\n\tmaxItems        int // 0 indicates no limits IE never expires unless age limits kick in\n\tevictionPolicy  CacheEvictionPolicy\n\tevictionSamples int            // how many random samples do we look for when expiring\n\tmaxAge          *time.Duration // at what point should it be evicted no matter what\n}\n\n// CacheInterface is an interface for the Cache type mostly for mocking purposes\ntype CacheInterface[T any] interface {\n\t// Set adds or updates an item in the cache\n\tSet(key string, value T) error\n\n\t// Get retrieves an item from the cache by key, returning the value and a boolean indicating if the value was found\n\tGet(key string) (T, bool)\n\n\t// Delete removes an item from the cache by key\n\tDelete(key string)\n\n\t// Clear removes all items from the cache\n\tClear()\n\n\t// Sum returns the count of items in the cache\n\tSum() int\n}\n\ntype Option struct {\n\tMaxItems        *int\n\tEvictionPolicy  *CacheEvictionPolicy\n\tEvictionSamples *int\n\tMaxAge          *time.Duration\n}\n\n// New creates and returns a new Cache\nfunc New[T any](opts ...Option) *Cache[T] {\n\tsc := &Cache[T]{\n\t\titems:           make(map[string]cacheEntry[T]),\n\t\tmutex:           sync.Mutex{},\n\t\tmaxItems:        100_000, // 0 indicates no limits\n\t\tevictionPolicy:  LFU,\n\t\tevictionSamples: 5,\n\t\tmaxAge:          nil, // by default no expiration\n\t}\n\n\tfor _, opt := range opts {\n\t\tif opt.MaxItems != nil {\n\t\t\tsc.maxItems = *opt.MaxItems\n\t\t}\n\t\tif opt.EvictionPolicy != nil {\n\t\t\tsc.evictionPolicy = *opt.EvictionPolicy\n\t\t}\n\t\tif opt.EvictionSamples != nil {\n\t\t\tsc.evictionSamples = *opt.EvictionSamples\n\t\t}\n\t\tif opt.MaxAge != nil {\n\t\t\tsc.maxAge = opt.MaxAge\n\t\t}\n\t}\n\n\treturn sc\n}\n\n// Set adds or updates an item in the cache with a given key\nfunc (c *Cache[T]) Set(key string, value T) error {\n\tc.mutex.Lock()\n\tdefer c.mutex.Unlock()\n\n\tif c.maxItems > 0 && len(c.items) >= c.maxItems {\n\t\t// now we need to expire things based on our settings\n\t\tswitch c.evictionPolicy {\n\t\tcase LRU:\n\t\t\tc.evictLRU()\n\t\tcase LFU:\n\t\t\tc.evictLFU()\n\t\tdefault:\n\t\t\treturn ErrInvalidEvictionPolicy\n\t\t}\n\t}\n\n\tc.items[key] = cacheEntry[T]{\n\t\tentry:   value,\n\t\thits:    0,\n\t\tage:     time.Now(),\n\t\tlastUse: time.Now(),\n\t}\n\n\treturn nil\n}\n\n// evictLFU is a simple LRU eviction where we check which item was last used\n// from the random sample we iterate over and then remove it\nfunc (c *Cache[T]) evictLRU() {\n\tcount := 0\n\tpKey := \"\"\n\toldest := time.Now()\n\n\tfor k, v := range c.items { // iterating over a map is random in Go\n\t\tcount++\n\t\tif v.age.Before(oldest) {\n\t\t\toldest = v.age\n\t\t\tpKey = k\n\t\t}\n\n\t\tif count >= c.evictionSamples {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tdelete(c.items, pKey)\n}\n\n// evictLFU is a simple LFU eviction where we check which item has the least number of cache hits\n// from the random sample we iterate over and remove it\nfunc (c *Cache[T]) evictLFU() {\n\tcount := 0\n\tpKey := \"\"\n\tpHit := int64(math.MaxInt64)\n\n\tfor k, v := range c.items { // iterating over a map is random in Go\n\t\tcount++\n\t\tif v.hits < pHit {\n\t\t\tpKey = k\n\t\t}\n\n\t\tif count > c.evictionSamples {\n\t\t\tbreak\n\t\t}\n\t}\n\tdelete(c.items, pKey)\n}\n\n// Get retrieves an item from the cache by key, also incrementing the hit count\nfunc (c *Cache[T]) Get(key string) (T, bool) {\n\tc.mutex.Lock()\n\tdefer c.mutex.Unlock()\n\n\tentry, found := c.items[key]\n\tif found {\n\t\tif c.maxAge != nil { // should it be expired?\n\t\t\tif entry.lastUse.Before(time.Now().Add(-*c.maxAge)) {\n\t\t\t\tdelete(c.items, key)\n\t\t\t\tvar zero T\n\t\t\t\treturn zero, false\n\t\t\t}\n\t\t}\n\n\t\tentry.hits++\n\t\tentry.lastUse = time.Now()\n\t\tc.items[key] = entry // Update the hit count in the cache\n\t\treturn entry.entry, true\n\t}\n\n\tvar zero T\n\treturn zero, false\n}\n\n// Delete removes an item from the cache by key\nfunc (c *Cache[T]) Delete(key string) {\n\tc.mutex.Lock()\n\tdefer c.mutex.Unlock()\n\n\tdelete(c.items, key)\n}\n\n// Clear removes all entries from the cache\nfunc (c *Cache[T]) Clear() {\n\tc.mutex.Lock()\n\tdefer c.mutex.Unlock()\n\n\tc.items = make(map[string]cacheEntry[T])\n}\n\n// Sum returns the count of items in the cache\nfunc (c *Cache[T]) Sum() int {\n\tc.mutex.Lock()\n\tdefer c.mutex.Unlock()\n\n\treturn len(c.items)\n}\n"
  },
  {
    "path": "vendor/github.com/buger/jsonparser/.gitignore",
    "content": "\n*.test\n\n*.out\n\n*.mprof\n\n.idea\n\nvendor/github.com/buger/goterm/\nprof.cpu\nprof.mem\n"
  },
  {
    "path": "vendor/github.com/buger/jsonparser/.travis.yml",
    "content": "language: go\narch:\n    - amd64\n    - ppc64le\ngo:\n    - 1.7.x\n    - 1.8.x\n    - 1.9.x\n    - 1.10.x\n    - 1.11.x\nscript: go test -v ./.\n"
  },
  {
    "path": "vendor/github.com/buger/jsonparser/Dockerfile",
    "content": "FROM golang:1.6\n\nRUN go get github.com/Jeffail/gabs\nRUN go get github.com/bitly/go-simplejson\nRUN go get github.com/pquerna/ffjson\nRUN go get github.com/antonholmquist/jason\nRUN go get github.com/mreiferson/go-ujson\nRUN go get -tags=unsafe -u github.com/ugorji/go/codec\nRUN go get github.com/mailru/easyjson\n\nWORKDIR /go/src/github.com/buger/jsonparser\nADD . /go/src/github.com/buger/jsonparser"
  },
  {
    "path": "vendor/github.com/buger/jsonparser/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2016 Leonid Bugaev\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/buger/jsonparser/Makefile",
    "content": "SOURCE = parser.go\nCONTAINER = jsonparser\nSOURCE_PATH = /go/src/github.com/buger/jsonparser\nBENCHMARK = JsonParser\nBENCHTIME = 5s\nTEST = .\nDRUN = docker run -v `pwd`:$(SOURCE_PATH) -i -t $(CONTAINER)\n\nbuild:\n\tdocker build -t $(CONTAINER) .\n\nrace:\n\t$(DRUN) --env GORACE=\"halt_on_error=1\" go test ./. $(ARGS) -v -race -timeout 15s\n\nbench:\n\t$(DRUN) go test $(LDFLAGS) -test.benchmem -bench $(BENCHMARK) ./benchmark/ $(ARGS) -benchtime $(BENCHTIME) -v\n\nbench_local:\n\t$(DRUN) go test $(LDFLAGS) -test.benchmem -bench . $(ARGS) -benchtime $(BENCHTIME) -v\n\nprofile:\n\t$(DRUN) go test $(LDFLAGS) -test.benchmem -bench $(BENCHMARK) ./benchmark/ $(ARGS) -memprofile mem.mprof -v\n\t$(DRUN) go test $(LDFLAGS) -test.benchmem -bench $(BENCHMARK) ./benchmark/ $(ARGS) -cpuprofile cpu.out -v\n\t$(DRUN) go test $(LDFLAGS) -test.benchmem -bench $(BENCHMARK) ./benchmark/ $(ARGS) -c\n\ntest:\n\t$(DRUN) go test $(LDFLAGS) ./ -run $(TEST) -timeout 10s $(ARGS) -v\n\nfmt:\n\t$(DRUN) go fmt ./...\n\nvet:\n\t$(DRUN) go vet ./.\n\nbash:\n\t$(DRUN) /bin/bash"
  },
  {
    "path": "vendor/github.com/buger/jsonparser/README.md",
    "content": "[![Go Report Card](https://goreportcard.com/badge/github.com/buger/jsonparser)](https://goreportcard.com/report/github.com/buger/jsonparser) ![License](https://img.shields.io/dub/l/vibe-d.svg)\n# Alternative JSON parser for Go (10x times faster standard library)\n\nIt does not require you to know the structure of the payload (eg. create structs), and allows accessing fields by providing the path to them. It is up to **10 times faster** than standard `encoding/json` package (depending on payload size and usage), **allocates no memory**. See benchmarks below.\n\n## Rationale\nOriginally I made this for a project that relies on a lot of 3rd party APIs that can be unpredictable and complex.\nI love simplicity and prefer to avoid external dependecies. `encoding/json` requires you to know exactly your data structures, or if you prefer to use `map[string]interface{}` instead, it will be very slow and hard to manage.\nI investigated what's on the market and found that most libraries are just wrappers around `encoding/json`, there is few options with own parsers (`ffjson`, `easyjson`), but they still requires you to create data structures.\n\n\nGoal of this project is to push JSON parser to the performance limits and not sacrifice with compliance and developer user experience.\n\n## Example\nFor the given JSON our goal is to extract the user's full name, number of github followers and avatar.\n\n```go\nimport \"github.com/buger/jsonparser\"\n\n...\n\ndata := []byte(`{\n  \"person\": {\n    \"name\": {\n      \"first\": \"Leonid\",\n      \"last\": \"Bugaev\",\n      \"fullName\": \"Leonid Bugaev\"\n    },\n    \"github\": {\n      \"handle\": \"buger\",\n      \"followers\": 109\n    },\n    \"avatars\": [\n      { \"url\": \"https://avatars1.githubusercontent.com/u/14009?v=3&s=460\", \"type\": \"thumbnail\" }\n    ]\n  },\n  \"company\": {\n    \"name\": \"Acme\"\n  }\n}`)\n\n// You can specify key path by providing arguments to Get function\njsonparser.Get(data, \"person\", \"name\", \"fullName\")\n\n// There is `GetInt` and `GetBoolean` helpers if you exactly know key data type\njsonparser.GetInt(data, \"person\", \"github\", \"followers\")\n\n// When you try to get object, it will return you []byte slice pointer to data containing it\n// In `company` it will be `{\"name\": \"Acme\"}`\njsonparser.Get(data, \"company\")\n\n// If the key doesn't exist it will throw an error\nvar size int64\nif value, err := jsonparser.GetInt(data, \"company\", \"size\"); err == nil {\n  size = value\n}\n\n// You can use `ArrayEach` helper to iterate items [item1, item2 .... itemN]\njsonparser.ArrayEach(data, func(value []byte, dataType jsonparser.ValueType, offset int, err error) {\n\tfmt.Println(jsonparser.Get(value, \"url\"))\n}, \"person\", \"avatars\")\n\n// Or use can access fields by index!\njsonparser.GetString(data, \"person\", \"avatars\", \"[0]\", \"url\")\n\n// You can use `ObjectEach` helper to iterate objects { \"key1\":object1, \"key2\":object2, .... \"keyN\":objectN }\njsonparser.ObjectEach(data, func(key []byte, value []byte, dataType jsonparser.ValueType, offset int) error {\n        fmt.Printf(\"Key: '%s'\\n Value: '%s'\\n Type: %s\\n\", string(key), string(value), dataType)\n\treturn nil\n}, \"person\", \"name\")\n\n// The most efficient way to extract multiple keys is `EachKey`\n\npaths := [][]string{\n  []string{\"person\", \"name\", \"fullName\"},\n  []string{\"person\", \"avatars\", \"[0]\", \"url\"},\n  []string{\"company\", \"url\"},\n}\njsonparser.EachKey(data, func(idx int, value []byte, vt jsonparser.ValueType, err error){\n  switch idx {\n  case 0: // []string{\"person\", \"name\", \"fullName\"}\n    ...\n  case 1: // []string{\"person\", \"avatars\", \"[0]\", \"url\"}\n    ...\n  case 2: // []string{\"company\", \"url\"},\n    ...\n  }\n}, paths...)\n\n// For more information see docs below\n```\n\n## Need to speedup your app?\n\nI'm available for consulting and can help you push your app performance to the limits. Ping me at: leonsbox@gmail.com.\n\n## Reference\n\nLibrary API is really simple. You just need the `Get` method to perform any operation. The rest is just helpers around it.\n\nYou also can view API at [godoc.org](https://godoc.org/github.com/buger/jsonparser)\n\n\n### **`Get`**\n```go\nfunc Get(data []byte, keys ...string) (value []byte, dataType jsonparser.ValueType, offset int, err error)\n```\nReceives data structure, and key path to extract value from.\n\nReturns:\n* `value` - Pointer to original data structure containing key value, or just empty slice if nothing found or error\n* `dataType` - \tCan be: `NotExist`, `String`, `Number`, `Object`, `Array`, `Boolean` or `Null`\n* `offset` - Offset from provided data structure where key value ends. Used mostly internally, for example for `ArrayEach` helper.\n* `err` - If the key is not found or any other parsing issue, it should return error. If key not found it also sets `dataType` to `NotExist`\n\nAccepts multiple keys to specify path to JSON value (in case of quering nested structures).\nIf no keys are provided it will try to extract the closest JSON value (simple ones or object/array), useful for reading streams or arrays, see `ArrayEach` implementation.\n\nNote that keys can be an array indexes: `jsonparser.GetInt(\"person\", \"avatars\", \"[0]\", \"url\")`, pretty cool, yeah?\n\n### **`GetString`**\n```go\nfunc GetString(data []byte, keys ...string) (val string, err error)\n```\nReturns strings properly handing escaped and unicode characters. Note that this will cause additional memory allocations.\n\n### **`GetUnsafeString`**\nIf you need string in your app, and ready to sacrifice with support of escaped symbols in favor of speed. It returns string mapped to existing byte slice memory, without any allocations:\n```go\ns, _, := jsonparser.GetUnsafeString(data, \"person\", \"name\", \"title\")\nswitch s {\n  case 'CEO':\n    ...\n  case 'Engineer'\n    ...\n  ...\n}\n```\nNote that `unsafe` here means that your string will exist until GC will free underlying byte slice, for most of cases it means that you can use this string only in current context, and should not pass it anywhere externally: through channels or any other way.\n\n\n### **`GetBoolean`**, **`GetInt`** and **`GetFloat`**\n```go\nfunc GetBoolean(data []byte, keys ...string) (val bool, err error)\n\nfunc GetFloat(data []byte, keys ...string) (val float64, err error)\n\nfunc GetInt(data []byte, keys ...string) (val int64, err error)\n```\nIf you know the key type, you can use the helpers above.\nIf key data type do not match, it will return error.\n\n### **`ArrayEach`**\n```go\nfunc ArrayEach(data []byte, cb func(value []byte, dataType jsonparser.ValueType, offset int, err error), keys ...string)\n```\nNeeded for iterating arrays, accepts a callback function with the same return arguments as `Get`.\n\n### **`ObjectEach`**\n```go\nfunc ObjectEach(data []byte, callback func(key []byte, value []byte, dataType ValueType, offset int) error, keys ...string) (err error)\n```\nNeeded for iterating object, accepts a callback function. Example:\n```go\nvar handler func([]byte, []byte, jsonparser.ValueType, int) error\nhandler = func(key []byte, value []byte, dataType jsonparser.ValueType, offset int) error {\n\t//do stuff here\n}\njsonparser.ObjectEach(myJson, handler)\n```\n\n\n### **`EachKey`**\n```go\nfunc EachKey(data []byte, cb func(idx int, value []byte, dataType jsonparser.ValueType, err error), paths ...[]string)\n```\nWhen you need to read multiple keys, and you do not afraid of low-level API `EachKey` is your friend. It read payload only single time, and calls callback function once path is found. For example when you call multiple times `Get`, it has to process payload multiple times, each time you call it. Depending on payload `EachKey` can be multiple times faster than `Get`. Path can use nested keys as well!\n\n```go\npaths := [][]string{\n\t[]string{\"uuid\"},\n\t[]string{\"tz\"},\n\t[]string{\"ua\"},\n\t[]string{\"st\"},\n}\nvar data SmallPayload\n\njsonparser.EachKey(smallFixture, func(idx int, value []byte, vt jsonparser.ValueType, err error){\n\tswitch idx {\n\tcase 0:\n\t\tdata.Uuid, _ = value\n\tcase 1:\n\t\tv, _ := jsonparser.ParseInt(value)\n\t\tdata.Tz = int(v)\n\tcase 2:\n\t\tdata.Ua, _ = value\n\tcase 3:\n\t\tv, _ := jsonparser.ParseInt(value)\n\t\tdata.St = int(v)\n\t}\n}, paths...)\n```\n\n### **`Set`**\n```go\nfunc Set(data []byte, setValue []byte, keys ...string) (value []byte, err error)\n```\nReceives existing data structure, key path to set, and value to set at that key. *This functionality is experimental.*\n\nReturns:\n* `value` - Pointer to original data structure with updated or added key value.\n* `err` - If any parsing issue, it should return error.\n\nAccepts multiple keys to specify path to JSON value (in case of updating or creating  nested structures).\n\nNote that keys can be an array indexes: `jsonparser.Set(data, []byte(\"http://github.com\"), \"person\", \"avatars\", \"[0]\", \"url\")`\n\n### **`Delete`**\n```go\nfunc Delete(data []byte, keys ...string) value []byte\n```\nReceives existing data structure, and key path to delete. *This functionality is experimental.*\n\nReturns:\n* `value` - Pointer to original data structure with key path deleted if it can be found. If there is no key path, then the whole data structure is deleted.\n\nAccepts multiple keys to specify path to JSON value (in case of updating or creating  nested structures).\n\nNote that keys can be an array indexes: `jsonparser.Delete(data, \"person\", \"avatars\", \"[0]\", \"url\")`\n\n\n## What makes it so fast?\n* It does not rely on `encoding/json`, `reflection` or `interface{}`, the only real package dependency is `bytes`.\n* Operates with JSON payload on byte level, providing you pointers to the original data structure: no memory allocation.\n* No automatic type conversions, by default everything is a []byte, but it provides you value type, so you can convert by yourself (there is few helpers included).\n* Does not parse full record, only keys you specified\n\n\n## Benchmarks\n\nThere are 3 benchmark types, trying to simulate real-life usage for small, medium and large JSON payloads.\nFor each metric, the lower value is better. Time/op is in nanoseconds. Values better than standard encoding/json marked as bold text.\nBenchmarks run on standard Linode 1024 box.\n\nCompared libraries:\n* https://golang.org/pkg/encoding/json\n* https://github.com/Jeffail/gabs\n* https://github.com/a8m/djson\n* https://github.com/bitly/go-simplejson\n* https://github.com/antonholmquist/jason\n* https://github.com/mreiferson/go-ujson\n* https://github.com/ugorji/go/codec\n* https://github.com/pquerna/ffjson\n* https://github.com/mailru/easyjson\n* https://github.com/buger/jsonparser\n\n#### TLDR\nIf you want to skip next sections we have 2 winner: `jsonparser` and `easyjson`.\n`jsonparser` is up to 10 times faster than standard `encoding/json` package (depending on payload size and usage), and almost infinitely (literally) better in memory consumption because it operates with data on byte level, and provide direct slice pointers.\n`easyjson` wins in CPU in medium tests and frankly i'm impressed with this package: it is remarkable results considering that it is almost drop-in replacement for `encoding/json` (require some code generation).\n\nIt's hard to fully compare `jsonparser` and `easyjson` (or `ffson`), they a true parsers and fully process record, unlike `jsonparser` which parse only keys you specified.\n\nIf you searching for replacement of `encoding/json` while keeping structs, `easyjson` is an amazing choice. If you want to process dynamic JSON, have memory constrains, or more control over your data you should try `jsonparser`.\n\n`jsonparser` performance heavily depends on usage, and it works best when you do not need to process full record, only some keys. The more calls you need to make, the slower it will be, in contrast `easyjson` (or `ffjson`, `encoding/json`) parser record only 1 time, and then you can make as many calls as you want.\n\nWith great power comes great responsibility! :)\n\n\n#### Small payload\n\nEach test processes 190 bytes of http log as a JSON record.\nIt should read multiple fields.\nhttps://github.com/buger/jsonparser/blob/master/benchmark/benchmark_small_payload_test.go\n\nLibrary | time/op | bytes/op | allocs/op \n ------ | ------- | -------- | -------\nencoding/json struct | 7879 | 880 | 18 \nencoding/json interface{} | 8946 | 1521 | 38\nJeffail/gabs | 10053 | 1649 | 46\nbitly/go-simplejson | 10128 | 2241 | 36 \nantonholmquist/jason | 27152 | 7237 | 101 \ngithub.com/ugorji/go/codec | 8806 | 2176 | 31 \nmreiferson/go-ujson | **7008** | **1409** | 37 \na8m/djson | 3862 | 1249 | 30 \npquerna/ffjson | **3769** | **624** | **15** \nmailru/easyjson | **2002** | **192** | **9** \nbuger/jsonparser | **1367** | **0** | **0** \nbuger/jsonparser (EachKey API) | **809** | **0** | **0** \n\nWinners are ffjson, easyjson and jsonparser, where jsonparser is up to 9.8x faster than encoding/json and 4.6x faster than ffjson, and slightly faster than easyjson.\nIf you look at memory allocation, jsonparser has no rivals, as it makes no data copy and operates with raw []byte structures and pointers to it.\n\n#### Medium payload\n\nEach test processes a 2.4kb JSON record (based on Clearbit API).\nIt should read multiple nested fields and 1 array.\n\nhttps://github.com/buger/jsonparser/blob/master/benchmark/benchmark_medium_payload_test.go\n\n| Library | time/op | bytes/op | allocs/op |\n| ------- | ------- | -------- | --------- |\n| encoding/json struct | 57749 | 1336 | 29 |\n| encoding/json interface{} | 79297 | 10627 | 215 |\n| Jeffail/gabs | 83807 | 11202 | 235 |\n| bitly/go-simplejson | 88187 | 17187 | 220 |\n| antonholmquist/jason | 94099 | 19013 | 247 |\n| github.com/ugorji/go/codec | 114719 | 6712 | 152 |\n| mreiferson/go-ujson | **56972** | 11547 | 270 |\n| a8m/djson | 28525 | 10196 | 198 | \n| pquerna/ffjson | **20298** | **856** | **20** |\n| mailru/easyjson | **10512** | **336** | **12** |\n| buger/jsonparser | **15955** | **0** | **0** |\n| buger/jsonparser (EachKey API) | **8916** | **0** | **0** |\n\nThe difference between ffjson and jsonparser in CPU usage is smaller, while the memory consumption difference is growing. On the other hand `easyjson` shows remarkable performance for medium payload.\n\n`gabs`, `go-simplejson` and `jason` are based on encoding/json and map[string]interface{} and actually only helpers for unstructured JSON, their performance correlate with `encoding/json interface{}`, and they will skip next round.\n`go-ujson` while have its own parser, shows same performance as `encoding/json`, also skips next round. Same situation with `ugorji/go/codec`, but it showed unexpectedly bad performance for complex payloads.\n\n\n#### Large payload\n\nEach test processes a 24kb JSON record (based on Discourse API)\nIt should read 2 arrays, and for each item in array get a few fields.\nBasically it means processing a full JSON file.\n\nhttps://github.com/buger/jsonparser/blob/master/benchmark/benchmark_large_payload_test.go\n\n| Library | time/op | bytes/op | allocs/op |\n| --- | --- | --- | --- |\n| encoding/json struct | 748336 | 8272 | 307 |\n| encoding/json interface{} | 1224271 | 215425 | 3395 |\n| a8m/djson | 510082 | 213682 | 2845 |\n| pquerna/ffjson | **312271** | **7792** | **298** |\n| mailru/easyjson | **154186** | **6992** | **288** |\n| buger/jsonparser | **85308** | **0** | **0** |\n\n`jsonparser` now is a winner, but do not forget that it is way more lightweight parser than `ffson` or `easyjson`, and they have to parser all the data, while `jsonparser` parse only what you need. All `ffjson`, `easysjon` and `jsonparser` have their own parsing code, and does not depend on `encoding/json` or `interface{}`, thats one of the reasons why they are so fast. `easyjson` also use a bit of `unsafe` package to reduce memory consuption (in theory it can lead to some unexpected GC issue, but i did not tested enough)\n\nAlso last benchmark did not included `EachKey` test, because in this particular case we need to read lot of Array values, and using `ArrayEach` is more efficient. \n\n## Questions and support\n\nAll bug-reports and suggestions should go though Github Issues.\n\n## Contributing\n\n1. Fork it\n2. Create your feature branch (git checkout -b my-new-feature)\n3. Commit your changes (git commit -am 'Added some feature')\n4. Push to the branch (git push origin my-new-feature)\n5. Create new Pull Request\n\n## Development\n\nAll my development happens using Docker, and repo include some Make tasks to simplify development.\n\n* `make build` - builds docker image, usually can be called only once\n* `make test` - run tests\n* `make fmt` - run go fmt\n* `make bench` - run benchmarks (if you need to run only single benchmark modify `BENCHMARK` variable in make file)\n* `make profile` - runs benchmark and generate 3 files-  `cpu.out`, `mem.mprof` and `benchmark.test` binary, which can be used for `go tool pprof`\n* `make bash` - enter container (i use it for running `go tool pprof` above)\n"
  },
  {
    "path": "vendor/github.com/buger/jsonparser/bytes.go",
    "content": "package jsonparser\n\nimport (\n\tbio \"bytes\"\n)\n\n// minInt64 '-9223372036854775808' is the smallest representable number in int64\nconst minInt64 = `9223372036854775808`\n\n// About 2x faster then strconv.ParseInt because it only supports base 10, which is enough for JSON\nfunc parseInt(bytes []byte) (v int64, ok bool, overflow bool) {\n\tif len(bytes) == 0 {\n\t\treturn 0, false, false\n\t}\n\n\tvar neg bool = false\n\tif bytes[0] == '-' {\n\t\tneg = true\n\t\tbytes = bytes[1:]\n\t}\n\n\tvar b int64 = 0\n\tfor _, c := range bytes {\n\t\tif c >= '0' && c <= '9' {\n\t\t\tb = (10 * v) + int64(c-'0')\n\t\t} else {\n\t\t\treturn 0, false, false\n\t\t}\n\t\tif overflow = (b < v); overflow {\n\t\t\tbreak\n\t\t}\n\t\tv = b\n\t}\n\n\tif overflow {\n\t\tif neg && bio.Equal(bytes, []byte(minInt64)) {\n\t\t\treturn b, true, false\n\t\t}\n\t\treturn 0, false, true\n\t}\n\n\tif neg {\n\t\treturn -v, true, false\n\t} else {\n\t\treturn v, true, false\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/buger/jsonparser/bytes_safe.go",
    "content": "// +build appengine appenginevm\n\npackage jsonparser\n\nimport (\n\t\"strconv\"\n)\n\n// See fastbytes_unsafe.go for explanation on why *[]byte is used (signatures must be consistent with those in that file)\n\nfunc equalStr(b *[]byte, s string) bool {\n\treturn string(*b) == s\n}\n\nfunc parseFloat(b *[]byte) (float64, error) {\n\treturn strconv.ParseFloat(string(*b), 64)\n}\n\nfunc bytesToString(b *[]byte) string {\n\treturn string(*b)\n}\n\nfunc StringToBytes(s string) []byte {\n\treturn []byte(s)\n}\n"
  },
  {
    "path": "vendor/github.com/buger/jsonparser/bytes_unsafe.go",
    "content": "// +build !appengine,!appenginevm\n\npackage jsonparser\n\nimport (\n\t\"reflect\"\n\t\"strconv\"\n\t\"unsafe\"\n\t\"runtime\"\n)\n\n//\n// The reason for using *[]byte rather than []byte in parameters is an optimization. As of Go 1.6,\n// the compiler cannot perfectly inline the function when using a non-pointer slice. That is,\n// the non-pointer []byte parameter version is slower than if its function body is manually\n// inlined, whereas the pointer []byte version is equally fast to the manually inlined\n// version. Instruction count in assembly taken from \"go tool compile\" confirms this difference.\n//\n// TODO: Remove hack after Go 1.7 release\n//\nfunc equalStr(b *[]byte, s string) bool {\n\treturn *(*string)(unsafe.Pointer(b)) == s\n}\n\nfunc parseFloat(b *[]byte) (float64, error) {\n\treturn strconv.ParseFloat(*(*string)(unsafe.Pointer(b)), 64)\n}\n\n// A hack until issue golang/go#2632 is fixed.\n// See: https://github.com/golang/go/issues/2632\nfunc bytesToString(b *[]byte) string {\n\treturn *(*string)(unsafe.Pointer(b))\n}\n\nfunc StringToBytes(s string) []byte {\n\tb := make([]byte, 0, 0)\n\tbh := (*reflect.SliceHeader)(unsafe.Pointer(&b))\n\tsh := (*reflect.StringHeader)(unsafe.Pointer(&s))\n\tbh.Data = sh.Data\n\tbh.Cap = sh.Len\n\tbh.Len = sh.Len\n\truntime.KeepAlive(s)\n\treturn b\n}\n"
  },
  {
    "path": "vendor/github.com/buger/jsonparser/escape.go",
    "content": "package jsonparser\n\nimport (\n\t\"bytes\"\n\t\"unicode/utf8\"\n)\n\n// JSON Unicode stuff: see https://tools.ietf.org/html/rfc7159#section-7\n\nconst supplementalPlanesOffset = 0x10000\nconst highSurrogateOffset = 0xD800\nconst lowSurrogateOffset = 0xDC00\n\nconst basicMultilingualPlaneReservedOffset = 0xDFFF\nconst basicMultilingualPlaneOffset = 0xFFFF\n\nfunc combineUTF16Surrogates(high, low rune) rune {\n\treturn supplementalPlanesOffset + (high-highSurrogateOffset)<<10 + (low - lowSurrogateOffset)\n}\n\nconst badHex = -1\n\nfunc h2I(c byte) int {\n\tswitch {\n\tcase c >= '0' && c <= '9':\n\t\treturn int(c - '0')\n\tcase c >= 'A' && c <= 'F':\n\t\treturn int(c - 'A' + 10)\n\tcase c >= 'a' && c <= 'f':\n\t\treturn int(c - 'a' + 10)\n\t}\n\treturn badHex\n}\n\n// decodeSingleUnicodeEscape decodes a single \\uXXXX escape sequence. The prefix \\u is assumed to be present and\n// is not checked.\n// In JSON, these escapes can either come alone or as part of \"UTF16 surrogate pairs\" that must be handled together.\n// This function only handles one; decodeUnicodeEscape handles this more complex case.\nfunc decodeSingleUnicodeEscape(in []byte) (rune, bool) {\n\t// We need at least 6 characters total\n\tif len(in) < 6 {\n\t\treturn utf8.RuneError, false\n\t}\n\n\t// Convert hex to decimal\n\th1, h2, h3, h4 := h2I(in[2]), h2I(in[3]), h2I(in[4]), h2I(in[5])\n\tif h1 == badHex || h2 == badHex || h3 == badHex || h4 == badHex {\n\t\treturn utf8.RuneError, false\n\t}\n\n\t// Compose the hex digits\n\treturn rune(h1<<12 + h2<<8 + h3<<4 + h4), true\n}\n\n// isUTF16EncodedRune checks if a rune is in the range for non-BMP characters,\n// which is used to describe UTF16 chars.\n// Source: https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane\nfunc isUTF16EncodedRune(r rune) bool {\n\treturn highSurrogateOffset <= r && r <= basicMultilingualPlaneReservedOffset\n}\n\nfunc decodeUnicodeEscape(in []byte) (rune, int) {\n\tif r, ok := decodeSingleUnicodeEscape(in); !ok {\n\t\t// Invalid Unicode escape\n\t\treturn utf8.RuneError, -1\n\t} else if r <= basicMultilingualPlaneOffset && !isUTF16EncodedRune(r) {\n\t\t// Valid Unicode escape in Basic Multilingual Plane\n\t\treturn r, 6\n\t} else if r2, ok := decodeSingleUnicodeEscape(in[6:]); !ok { // Note: previous decodeSingleUnicodeEscape success guarantees at least 6 bytes remain\n\t\t// UTF16 \"high surrogate\" without manditory valid following Unicode escape for the \"low surrogate\"\n\t\treturn utf8.RuneError, -1\n\t} else if r2 < lowSurrogateOffset {\n\t\t// Invalid UTF16 \"low surrogate\"\n\t\treturn utf8.RuneError, -1\n\t} else {\n\t\t// Valid UTF16 surrogate pair\n\t\treturn combineUTF16Surrogates(r, r2), 12\n\t}\n}\n\n// backslashCharEscapeTable: when '\\X' is found for some byte X, it is to be replaced with backslashCharEscapeTable[X]\nvar backslashCharEscapeTable = [...]byte{\n\t'\"':  '\"',\n\t'\\\\': '\\\\',\n\t'/':  '/',\n\t'b':  '\\b',\n\t'f':  '\\f',\n\t'n':  '\\n',\n\t'r':  '\\r',\n\t't':  '\\t',\n}\n\n// unescapeToUTF8 unescapes the single escape sequence starting at 'in' into 'out' and returns\n// how many characters were consumed from 'in' and emitted into 'out'.\n// If a valid escape sequence does not appear as a prefix of 'in', (-1, -1) to signal the error.\nfunc unescapeToUTF8(in, out []byte) (inLen int, outLen int) {\n\tif len(in) < 2 || in[0] != '\\\\' {\n\t\t// Invalid escape due to insufficient characters for any escape or no initial backslash\n\t\treturn -1, -1\n\t}\n\n\t// https://tools.ietf.org/html/rfc7159#section-7\n\tswitch e := in[1]; e {\n\tcase '\"', '\\\\', '/', 'b', 'f', 'n', 'r', 't':\n\t\t// Valid basic 2-character escapes (use lookup table)\n\t\tout[0] = backslashCharEscapeTable[e]\n\t\treturn 2, 1\n\tcase 'u':\n\t\t// Unicode escape\n\t\tif r, inLen := decodeUnicodeEscape(in); inLen == -1 {\n\t\t\t// Invalid Unicode escape\n\t\t\treturn -1, -1\n\t\t} else {\n\t\t\t// Valid Unicode escape; re-encode as UTF8\n\t\t\toutLen := utf8.EncodeRune(out, r)\n\t\t\treturn inLen, outLen\n\t\t}\n\t}\n\n\treturn -1, -1\n}\n\n// unescape unescapes the string contained in 'in' and returns it as a slice.\n// If 'in' contains no escaped characters:\n//   Returns 'in'.\n// Else, if 'out' is of sufficient capacity (guaranteed if cap(out) >= len(in)):\n//   'out' is used to build the unescaped string and is returned with no extra allocation\n// Else:\n//   A new slice is allocated and returned.\nfunc Unescape(in, out []byte) ([]byte, error) {\n\tfirstBackslash := bytes.IndexByte(in, '\\\\')\n\tif firstBackslash == -1 {\n\t\treturn in, nil\n\t}\n\n\t// Get a buffer of sufficient size (allocate if needed)\n\tif cap(out) < len(in) {\n\t\tout = make([]byte, len(in))\n\t} else {\n\t\tout = out[0:len(in)]\n\t}\n\n\t// Copy the first sequence of unescaped bytes to the output and obtain a buffer pointer (subslice)\n\tcopy(out, in[:firstBackslash])\n\tin = in[firstBackslash:]\n\tbuf := out[firstBackslash:]\n\n\tfor len(in) > 0 {\n\t\t// Unescape the next escaped character\n\t\tinLen, bufLen := unescapeToUTF8(in, buf)\n\t\tif inLen == -1 {\n\t\t\treturn nil, MalformedStringEscapeError\n\t\t}\n\n\t\tin = in[inLen:]\n\t\tbuf = buf[bufLen:]\n\n\t\t// Copy everything up until the next backslash\n\t\tnextBackslash := bytes.IndexByte(in, '\\\\')\n\t\tif nextBackslash == -1 {\n\t\t\tcopy(buf, in)\n\t\t\tbuf = buf[len(in):]\n\t\t\tbreak\n\t\t} else {\n\t\t\tcopy(buf, in[:nextBackslash])\n\t\t\tbuf = buf[nextBackslash:]\n\t\t\tin = in[nextBackslash:]\n\t\t}\n\t}\n\n\t// Trim the out buffer to the amount that was actually emitted\n\treturn out[:len(out)-len(buf)], nil\n}\n"
  },
  {
    "path": "vendor/github.com/buger/jsonparser/fuzz.go",
    "content": "package jsonparser\n\nfunc FuzzParseString(data []byte) int {\n\tr, err := ParseString(data)\n\tif err != nil || r == \"\" {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\nfunc FuzzEachKey(data []byte) int {\n\tpaths := [][]string{\n\t\t{\"name\"},\n\t\t{\"order\"},\n\t\t{\"nested\", \"a\"},\n\t\t{\"nested\", \"b\"},\n\t\t{\"nested2\", \"a\"},\n\t\t{\"nested\", \"nested3\", \"b\"},\n\t\t{\"arr\", \"[1]\", \"b\"},\n\t\t{\"arrInt\", \"[3]\"},\n\t\t{\"arrInt\", \"[5]\"},\n\t\t{\"nested\"},\n\t\t{\"arr\", \"[\"},\n\t\t{\"a\\n\", \"b\\n\"},\n\t}\n\tEachKey(data, func(idx int, value []byte, vt ValueType, err error) {}, paths...)\n\treturn 1\n}\n\nfunc FuzzDelete(data []byte) int {\n\tDelete(data, \"test\")\n\treturn 1\n}\n\nfunc FuzzSet(data []byte) int {\n\t_, err := Set(data, []byte(`\"new value\"`), \"test\")\n\tif err != nil {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\nfunc FuzzObjectEach(data []byte) int {\n\t_ = ObjectEach(data, func(key, value []byte, valueType ValueType, off int) error {\n\t\treturn nil\n\t})\n\treturn 1\n}\n\nfunc FuzzParseFloat(data []byte) int {\n\t_, err := ParseFloat(data)\n\tif err != nil {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\nfunc FuzzParseInt(data []byte) int {\n\t_, err := ParseInt(data)\n\tif err != nil {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\nfunc FuzzParseBool(data []byte) int {\n\t_, err := ParseBoolean(data)\n\tif err != nil {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\nfunc FuzzTokenStart(data []byte) int {\n\t_ = tokenStart(data)\n\treturn 1\n}\n\nfunc FuzzGetString(data []byte) int {\n\t_, err := GetString(data, \"test\")\n\tif err != nil {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\nfunc FuzzGetFloat(data []byte) int {\n\t_, err := GetFloat(data, \"test\")\n\tif err != nil {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\nfunc FuzzGetInt(data []byte) int {\n\t_, err := GetInt(data, \"test\")\n\tif err != nil {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\nfunc FuzzGetBoolean(data []byte) int {\n\t_, err := GetBoolean(data, \"test\")\n\tif err != nil {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\nfunc FuzzGetUnsafeString(data []byte) int {\n\t_, err := GetUnsafeString(data, \"test\")\n\tif err != nil {\n\t\treturn 0\n\t}\n\treturn 1\n}\n"
  },
  {
    "path": "vendor/github.com/buger/jsonparser/oss-fuzz-build.sh",
    "content": "#!/bin/bash -eu\n\ngit clone https://github.com/dvyukov/go-fuzz-corpus\nzip corpus.zip go-fuzz-corpus/json/corpus/*\n\ncp corpus.zip $OUT/fuzzparsestring_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzParseString fuzzparsestring\n\ncp corpus.zip $OUT/fuzzeachkey_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzEachKey fuzzeachkey\n\ncp corpus.zip $OUT/fuzzdelete_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzDelete fuzzdelete\n\ncp corpus.zip $OUT/fuzzset_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzSet fuzzset\n\ncp corpus.zip $OUT/fuzzobjecteach_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzObjectEach fuzzobjecteach\n\ncp corpus.zip $OUT/fuzzparsefloat_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzParseFloat fuzzparsefloat\n\ncp corpus.zip $OUT/fuzzparseint_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzParseInt fuzzparseint\n\ncp corpus.zip $OUT/fuzzparsebool_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzParseBool fuzzparsebool\n\ncp corpus.zip $OUT/fuzztokenstart_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzTokenStart fuzztokenstart\n\ncp corpus.zip $OUT/fuzzgetstring_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzGetString fuzzgetstring\n\ncp corpus.zip $OUT/fuzzgetfloat_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzGetFloat fuzzgetfloat\n\ncp corpus.zip $OUT/fuzzgetint_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzGetInt fuzzgetint\n\ncp corpus.zip $OUT/fuzzgetboolean_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzGetBoolean fuzzgetboolean\n\ncp corpus.zip $OUT/fuzzgetunsafestring_seed_corpus.zip\ncompile_go_fuzzer github.com/buger/jsonparser FuzzGetUnsafeString fuzzgetunsafestring\n\n"
  },
  {
    "path": "vendor/github.com/buger/jsonparser/parser.go",
    "content": "package jsonparser\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n)\n\n// Errors\nvar (\n\tKeyPathNotFoundError       = errors.New(\"Key path not found\")\n\tUnknownValueTypeError      = errors.New(\"Unknown value type\")\n\tMalformedJsonError         = errors.New(\"Malformed JSON error\")\n\tMalformedStringError       = errors.New(\"Value is string, but can't find closing '\\\"' symbol\")\n\tMalformedArrayError        = errors.New(\"Value is array, but can't find closing ']' symbol\")\n\tMalformedObjectError       = errors.New(\"Value looks like object, but can't find closing '}' symbol\")\n\tMalformedValueError        = errors.New(\"Value looks like Number/Boolean/None, but can't find its end: ',' or '}' symbol\")\n\tOverflowIntegerError       = errors.New(\"Value is number, but overflowed while parsing\")\n\tMalformedStringEscapeError = errors.New(\"Encountered an invalid escape sequence in a string\")\n)\n\n// How much stack space to allocate for unescaping JSON strings; if a string longer\n// than this needs to be escaped, it will result in a heap allocation\nconst unescapeStackBufSize = 64\n\nfunc tokenEnd(data []byte) int {\n\tfor i, c := range data {\n\t\tswitch c {\n\t\tcase ' ', '\\n', '\\r', '\\t', ',', '}', ']':\n\t\t\treturn i\n\t\t}\n\t}\n\n\treturn len(data)\n}\n\nfunc findTokenStart(data []byte, token byte) int {\n\tfor i := len(data) - 1; i >= 0; i-- {\n\t\tswitch data[i] {\n\t\tcase token:\n\t\t\treturn i\n\t\tcase '[', '{':\n\t\t\treturn 0\n\t\t}\n\t}\n\n\treturn 0\n}\n\nfunc findKeyStart(data []byte, key string) (int, error) {\n\ti := 0\n\tln := len(data)\n\tif ln > 0 && (data[0] == '{' || data[0] == '[') {\n\t\ti = 1\n\t}\n\tvar stackbuf [unescapeStackBufSize]byte // stack-allocated array for allocation-free unescaping of small strings\n\n\tif ku, err := Unescape(StringToBytes(key), stackbuf[:]); err == nil {\n\t\tkey = bytesToString(&ku)\n\t}\n\n\tfor i < ln {\n\t\tswitch data[i] {\n\t\tcase '\"':\n\t\t\ti++\n\t\t\tkeyBegin := i\n\n\t\t\tstrEnd, keyEscaped := stringEnd(data[i:])\n\t\t\tif strEnd == -1 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\ti += strEnd\n\t\t\tkeyEnd := i - 1\n\n\t\t\tvalueOffset := nextToken(data[i:])\n\t\t\tif valueOffset == -1 {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\ti += valueOffset\n\n\t\t\t// if string is a key, and key level match\n\t\t\tk := data[keyBegin:keyEnd]\n\t\t\t// for unescape: if there are no escape sequences, this is cheap; if there are, it is a\n\t\t\t// bit more expensive, but causes no allocations unless len(key) > unescapeStackBufSize\n\t\t\tif keyEscaped {\n\t\t\t\tif ku, err := Unescape(k, stackbuf[:]); err != nil {\n\t\t\t\t\tbreak\n\t\t\t\t} else {\n\t\t\t\t\tk = ku\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif data[i] == ':' && len(key) == len(k) && bytesToString(&k) == key {\n\t\t\t\treturn keyBegin - 1, nil\n\t\t\t}\n\n\t\tcase '[':\n\t\t\tend := blockEnd(data[i:], data[i], ']')\n\t\t\tif end != -1 {\n\t\t\t\ti = i + end\n\t\t\t}\n\t\tcase '{':\n\t\t\tend := blockEnd(data[i:], data[i], '}')\n\t\t\tif end != -1 {\n\t\t\t\ti = i + end\n\t\t\t}\n\t\t}\n\t\ti++\n\t}\n\n\treturn -1, KeyPathNotFoundError\n}\n\nfunc tokenStart(data []byte) int {\n\tfor i := len(data) - 1; i >= 0; i-- {\n\t\tswitch data[i] {\n\t\tcase '\\n', '\\r', '\\t', ',', '{', '[':\n\t\t\treturn i\n\t\t}\n\t}\n\n\treturn 0\n}\n\n// Find position of next character which is not whitespace\nfunc nextToken(data []byte) int {\n\tfor i, c := range data {\n\t\tswitch c {\n\t\tcase ' ', '\\n', '\\r', '\\t':\n\t\t\tcontinue\n\t\tdefault:\n\t\t\treturn i\n\t\t}\n\t}\n\n\treturn -1\n}\n\n// Find position of last character which is not whitespace\nfunc lastToken(data []byte) int {\n\tfor i := len(data) - 1; i >= 0; i-- {\n\t\tswitch data[i] {\n\t\tcase ' ', '\\n', '\\r', '\\t':\n\t\t\tcontinue\n\t\tdefault:\n\t\t\treturn i\n\t\t}\n\t}\n\n\treturn -1\n}\n\n// Tries to find the end of string\n// Support if string contains escaped quote symbols.\nfunc stringEnd(data []byte) (int, bool) {\n\tescaped := false\n\tfor i, c := range data {\n\t\tif c == '\"' {\n\t\t\tif !escaped {\n\t\t\t\treturn i + 1, false\n\t\t\t} else {\n\t\t\t\tj := i - 1\n\t\t\t\tfor {\n\t\t\t\t\tif j < 0 || data[j] != '\\\\' {\n\t\t\t\t\t\treturn i + 1, true // even number of backslashes\n\t\t\t\t\t}\n\t\t\t\t\tj--\n\t\t\t\t\tif j < 0 || data[j] != '\\\\' {\n\t\t\t\t\t\tbreak // odd number of backslashes\n\t\t\t\t\t}\n\t\t\t\t\tj--\n\n\t\t\t\t}\n\t\t\t}\n\t\t} else if c == '\\\\' {\n\t\t\tescaped = true\n\t\t}\n\t}\n\n\treturn -1, escaped\n}\n\n// Find end of the data structure, array or object.\n// For array openSym and closeSym will be '[' and ']', for object '{' and '}'\nfunc blockEnd(data []byte, openSym byte, closeSym byte) int {\n\tlevel := 0\n\ti := 0\n\tln := len(data)\n\n\tfor i < ln {\n\t\tswitch data[i] {\n\t\tcase '\"': // If inside string, skip it\n\t\t\tse, _ := stringEnd(data[i+1:])\n\t\t\tif se == -1 {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\ti += se\n\t\tcase openSym: // If open symbol, increase level\n\t\t\tlevel++\n\t\tcase closeSym: // If close symbol, increase level\n\t\t\tlevel--\n\n\t\t\t// If we have returned to the original level, we're done\n\t\t\tif level == 0 {\n\t\t\t\treturn i + 1\n\t\t\t}\n\t\t}\n\t\ti++\n\t}\n\n\treturn -1\n}\n\nfunc searchKeys(data []byte, keys ...string) int {\n\tkeyLevel := 0\n\tlevel := 0\n\ti := 0\n\tln := len(data)\n\tlk := len(keys)\n\tlastMatched := true\n\n\tif lk == 0 {\n\t\treturn 0\n\t}\n\n\tvar stackbuf [unescapeStackBufSize]byte // stack-allocated array for allocation-free unescaping of small strings\n\n\tfor i < ln {\n\t\tswitch data[i] {\n\t\tcase '\"':\n\t\t\ti++\n\t\t\tkeyBegin := i\n\n\t\t\tstrEnd, keyEscaped := stringEnd(data[i:])\n\t\t\tif strEnd == -1 {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\ti += strEnd\n\t\t\tkeyEnd := i - 1\n\n\t\t\tvalueOffset := nextToken(data[i:])\n\t\t\tif valueOffset == -1 {\n\t\t\t\treturn -1\n\t\t\t}\n\n\t\t\ti += valueOffset\n\n\t\t\t// if string is a key\n\t\t\tif data[i] == ':' {\n\t\t\t\tif level < 1 {\n\t\t\t\t\treturn -1\n\t\t\t\t}\n\n\t\t\t\tkey := data[keyBegin:keyEnd]\n\n\t\t\t\t// for unescape: if there are no escape sequences, this is cheap; if there are, it is a\n\t\t\t\t// bit more expensive, but causes no allocations unless len(key) > unescapeStackBufSize\n\t\t\t\tvar keyUnesc []byte\n\t\t\t\tif !keyEscaped {\n\t\t\t\t\tkeyUnesc = key\n\t\t\t\t} else if ku, err := Unescape(key, stackbuf[:]); err != nil {\n\t\t\t\t\treturn -1\n\t\t\t\t} else {\n\t\t\t\t\tkeyUnesc = ku\n\t\t\t\t}\n\n\t\t\t\tif level <= len(keys) {\n\t\t\t\t\tif equalStr(&keyUnesc, keys[level-1]) {\n\t\t\t\t\t\tlastMatched = true\n\n\t\t\t\t\t\t// if key level match\n\t\t\t\t\t\tif keyLevel == level-1 {\n\t\t\t\t\t\t\tkeyLevel++\n\t\t\t\t\t\t\t// If we found all keys in path\n\t\t\t\t\t\t\tif keyLevel == lk {\n\t\t\t\t\t\t\t\treturn i + 1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlastMatched = false\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn -1\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ti--\n\t\t\t}\n\t\tcase '{':\n\n\t\t\t// in case parent key is matched then only we will increase the level otherwise can directly\n\t\t\t// can move to the end of this block\n\t\t\tif !lastMatched {\n\t\t\t\tend := blockEnd(data[i:], '{', '}')\n\t\t\t\tif end == -1 {\n\t\t\t\t\treturn -1\n\t\t\t\t}\n\t\t\t\ti += end - 1\n\t\t\t} else {\n\t\t\t\tlevel++\n\t\t\t}\n\t\tcase '}':\n\t\t\tlevel--\n\t\t\tif level == keyLevel {\n\t\t\t\tkeyLevel--\n\t\t\t}\n\t\tcase '[':\n\t\t\t// If we want to get array element by index\n\t\t\tif keyLevel == level && keys[level][0] == '[' {\n\t\t\t\tvar keyLen = len(keys[level])\n\t\t\t\tif keyLen < 3 || keys[level][0] != '[' || keys[level][keyLen-1] != ']' {\n\t\t\t\t\treturn -1\n\t\t\t\t}\n\t\t\t\taIdx, err := strconv.Atoi(keys[level][1 : keyLen-1])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn -1\n\t\t\t\t}\n\t\t\t\tvar curIdx int\n\t\t\t\tvar valueFound []byte\n\t\t\t\tvar valueOffset int\n\t\t\t\tvar curI = i\n\t\t\t\tArrayEach(data[i:], func(value []byte, dataType ValueType, offset int, err error) {\n\t\t\t\t\tif curIdx == aIdx {\n\t\t\t\t\t\tvalueFound = value\n\t\t\t\t\t\tvalueOffset = offset\n\t\t\t\t\t\tif dataType == String {\n\t\t\t\t\t\t\tvalueOffset = valueOffset - 2\n\t\t\t\t\t\t\tvalueFound = data[curI+valueOffset : curI+valueOffset+len(value)+2]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcurIdx += 1\n\t\t\t\t})\n\n\t\t\t\tif valueFound == nil {\n\t\t\t\t\treturn -1\n\t\t\t\t} else {\n\t\t\t\t\tsubIndex := searchKeys(valueFound, keys[level+1:]...)\n\t\t\t\t\tif subIndex < 0 {\n\t\t\t\t\t\treturn -1\n\t\t\t\t\t}\n\t\t\t\t\treturn i + valueOffset + subIndex\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Do not search for keys inside arrays\n\t\t\t\tif arraySkip := blockEnd(data[i:], '[', ']'); arraySkip == -1 {\n\t\t\t\t\treturn -1\n\t\t\t\t} else {\n\t\t\t\t\ti += arraySkip - 1\n\t\t\t\t}\n\t\t\t}\n\t\tcase ':': // If encountered, JSON data is malformed\n\t\t\treturn -1\n\t\t}\n\n\t\ti++\n\t}\n\n\treturn -1\n}\n\nfunc sameTree(p1, p2 []string) bool {\n\tminLen := len(p1)\n\tif len(p2) < minLen {\n\t\tminLen = len(p2)\n\t}\n\n\tfor pi_1, p_1 := range p1[:minLen] {\n\t\tif p2[pi_1] != p_1 {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc EachKey(data []byte, cb func(int, []byte, ValueType, error), paths ...[]string) int {\n\tvar x struct{}\n\tpathFlags := make([]bool, len(paths))\n\tvar level, pathsMatched, i int\n\tln := len(data)\n\n\tvar maxPath int\n\tfor _, p := range paths {\n\t\tif len(p) > maxPath {\n\t\t\tmaxPath = len(p)\n\t\t}\n\t}\n\n\tpathsBuf := make([]string, maxPath)\n\n\tfor i < ln {\n\t\tswitch data[i] {\n\t\tcase '\"':\n\t\t\ti++\n\t\t\tkeyBegin := i\n\n\t\t\tstrEnd, keyEscaped := stringEnd(data[i:])\n\t\t\tif strEnd == -1 {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\ti += strEnd\n\n\t\t\tkeyEnd := i - 1\n\n\t\t\tvalueOffset := nextToken(data[i:])\n\t\t\tif valueOffset == -1 {\n\t\t\t\treturn -1\n\t\t\t}\n\n\t\t\ti += valueOffset\n\n\t\t\t// if string is a key, and key level match\n\t\t\tif data[i] == ':' {\n\t\t\t\tmatch := -1\n\t\t\t\tkey := data[keyBegin:keyEnd]\n\n\t\t\t\t// for unescape: if there are no escape sequences, this is cheap; if there are, it is a\n\t\t\t\t// bit more expensive, but causes no allocations unless len(key) > unescapeStackBufSize\n\t\t\t\tvar keyUnesc []byte\n\t\t\t\tif !keyEscaped {\n\t\t\t\t\tkeyUnesc = key\n\t\t\t\t} else {\n\t\t\t\t\tvar stackbuf [unescapeStackBufSize]byte\n\t\t\t\t\tif ku, err := Unescape(key, stackbuf[:]); err != nil {\n\t\t\t\t\t\treturn -1\n\t\t\t\t\t} else {\n\t\t\t\t\t\tkeyUnesc = ku\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif maxPath >= level {\n\t\t\t\t\tif level < 1 {\n\t\t\t\t\t\tcb(-1, nil, Unknown, MalformedJsonError)\n\t\t\t\t\t\treturn -1\n\t\t\t\t\t}\n\n\t\t\t\t\tpathsBuf[level-1] = bytesToString(&keyUnesc)\n\t\t\t\t\tfor pi, p := range paths {\n\t\t\t\t\t\tif len(p) != level || pathFlags[pi] || !equalStr(&keyUnesc, p[level-1]) || !sameTree(p, pathsBuf[:level]) {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmatch = pi\n\n\t\t\t\t\t\tpathsMatched++\n\t\t\t\t\t\tpathFlags[pi] = true\n\n\t\t\t\t\t\tv, dt, _, e := Get(data[i+1:])\n\t\t\t\t\t\tcb(pi, v, dt, e)\n\n\t\t\t\t\t\tif pathsMatched == len(paths) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif pathsMatched == len(paths) {\n\t\t\t\t\t\treturn i\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif match == -1 {\n\t\t\t\t\ttokenOffset := nextToken(data[i+1:])\n\t\t\t\t\ti += tokenOffset\n\n\t\t\t\t\tif data[i] == '{' {\n\t\t\t\t\t\tblockSkip := blockEnd(data[i:], '{', '}')\n\t\t\t\t\t\ti += blockSkip + 1\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif i < ln {\n\t\t\t\t\tswitch data[i] {\n\t\t\t\t\tcase '{', '}', '[', '\"':\n\t\t\t\t\t\ti--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ti--\n\t\t\t}\n\t\tcase '{':\n\t\t\tlevel++\n\t\tcase '}':\n\t\t\tlevel--\n\t\tcase '[':\n\t\t\tvar ok bool\n\t\t\tarrIdxFlags := make(map[int]struct{})\n\t\t\tpIdxFlags := make([]bool, len(paths))\n\n\t\t\tif level < 0 {\n\t\t\t\tcb(-1, nil, Unknown, MalformedJsonError)\n\t\t\t\treturn -1\n\t\t\t}\n\n\t\t\tfor pi, p := range paths {\n\t\t\t\tif len(p) < level+1 || pathFlags[pi] || p[level][0] != '[' || !sameTree(p, pathsBuf[:level]) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif len(p[level]) >= 2 {\n\t\t\t\t\taIdx, _ := strconv.Atoi(p[level][1 : len(p[level])-1])\n\t\t\t\t\tarrIdxFlags[aIdx] = x\n\t\t\t\t\tpIdxFlags[pi] = true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif len(arrIdxFlags) > 0 {\n\t\t\t\tlevel++\n\n\t\t\t\tvar curIdx int\n\t\t\t\tarrOff, _ := ArrayEach(data[i:], func(value []byte, dataType ValueType, offset int, err error) {\n\t\t\t\t\tif _, ok = arrIdxFlags[curIdx]; ok {\n\t\t\t\t\t\tfor pi, p := range paths {\n\t\t\t\t\t\t\tif pIdxFlags[pi] {\n\t\t\t\t\t\t\t\taIdx, _ := strconv.Atoi(p[level-1][1 : len(p[level-1])-1])\n\n\t\t\t\t\t\t\t\tif curIdx == aIdx {\n\t\t\t\t\t\t\t\t\tof := searchKeys(value, p[level:]...)\n\n\t\t\t\t\t\t\t\t\tpathsMatched++\n\t\t\t\t\t\t\t\t\tpathFlags[pi] = true\n\n\t\t\t\t\t\t\t\t\tif of != -1 {\n\t\t\t\t\t\t\t\t\t\tv, dt, _, e := Get(value[of:])\n\t\t\t\t\t\t\t\t\t\tcb(pi, v, dt, e)\n\t\t\t\t\t\t\t\t\t}\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\n\t\t\t\t\tcurIdx += 1\n\t\t\t\t})\n\n\t\t\t\tif pathsMatched == len(paths) {\n\t\t\t\t\treturn i\n\t\t\t\t}\n\n\t\t\t\ti += arrOff - 1\n\t\t\t} else {\n\t\t\t\t// Do not search for keys inside arrays\n\t\t\t\tif arraySkip := blockEnd(data[i:], '[', ']'); arraySkip == -1 {\n\t\t\t\t\treturn -1\n\t\t\t\t} else {\n\t\t\t\t\ti += arraySkip - 1\n\t\t\t\t}\n\t\t\t}\n\t\tcase ']':\n\t\t\tlevel--\n\t\t}\n\n\t\ti++\n\t}\n\n\treturn -1\n}\n\n// Data types available in valid JSON data.\ntype ValueType int\n\nconst (\n\tNotExist = ValueType(iota)\n\tString\n\tNumber\n\tObject\n\tArray\n\tBoolean\n\tNull\n\tUnknown\n)\n\nfunc (vt ValueType) String() string {\n\tswitch vt {\n\tcase NotExist:\n\t\treturn \"non-existent\"\n\tcase String:\n\t\treturn \"string\"\n\tcase Number:\n\t\treturn \"number\"\n\tcase Object:\n\t\treturn \"object\"\n\tcase Array:\n\t\treturn \"array\"\n\tcase Boolean:\n\t\treturn \"boolean\"\n\tcase Null:\n\t\treturn \"null\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\nvar (\n\ttrueLiteral  = []byte(\"true\")\n\tfalseLiteral = []byte(\"false\")\n\tnullLiteral  = []byte(\"null\")\n)\n\nfunc createInsertComponent(keys []string, setValue []byte, comma, object bool) []byte {\n\tisIndex := string(keys[0][0]) == \"[\"\n\toffset := 0\n\tlk := calcAllocateSpace(keys, setValue, comma, object)\n\tbuffer := make([]byte, lk, lk)\n\tif comma {\n\t\toffset += WriteToBuffer(buffer[offset:], \",\")\n\t}\n\tif isIndex && !comma {\n\t\toffset += WriteToBuffer(buffer[offset:], \"[\")\n\t} else {\n\t\tif object {\n\t\t\toffset += WriteToBuffer(buffer[offset:], \"{\")\n\t\t}\n\t\tif !isIndex {\n\t\t\toffset += WriteToBuffer(buffer[offset:], \"\\\"\")\n\t\t\toffset += WriteToBuffer(buffer[offset:], keys[0])\n\t\t\toffset += WriteToBuffer(buffer[offset:], \"\\\":\")\n\t\t}\n\t}\n\n\tfor i := 1; i < len(keys); i++ {\n\t\tif string(keys[i][0]) == \"[\" {\n\t\t\toffset += WriteToBuffer(buffer[offset:], \"[\")\n\t\t} else {\n\t\t\toffset += WriteToBuffer(buffer[offset:], \"{\\\"\")\n\t\t\toffset += WriteToBuffer(buffer[offset:], keys[i])\n\t\t\toffset += WriteToBuffer(buffer[offset:], \"\\\":\")\n\t\t}\n\t}\n\toffset += WriteToBuffer(buffer[offset:], string(setValue))\n\tfor i := len(keys) - 1; i > 0; i-- {\n\t\tif string(keys[i][0]) == \"[\" {\n\t\t\toffset += WriteToBuffer(buffer[offset:], \"]\")\n\t\t} else {\n\t\t\toffset += WriteToBuffer(buffer[offset:], \"}\")\n\t\t}\n\t}\n\tif isIndex && !comma {\n\t\toffset += WriteToBuffer(buffer[offset:], \"]\")\n\t}\n\tif object && !isIndex {\n\t\toffset += WriteToBuffer(buffer[offset:], \"}\")\n\t}\n\treturn buffer\n}\n\nfunc calcAllocateSpace(keys []string, setValue []byte, comma, object bool) int {\n\tisIndex := string(keys[0][0]) == \"[\"\n\tlk := 0\n\tif comma {\n\t\t// ,\n\t\tlk += 1\n\t}\n\tif isIndex && !comma {\n\t\t// []\n\t\tlk += 2\n\t} else {\n\t\tif object {\n\t\t\t// {\n\t\t\tlk += 1\n\t\t}\n\t\tif !isIndex {\n\t\t\t// \"keys[0]\"\n\t\t\tlk += len(keys[0]) + 3\n\t\t}\n\t}\n\n\n\tlk += len(setValue)\n\tfor i := 1; i < len(keys); i++ {\n\t\tif string(keys[i][0]) == \"[\" {\n\t\t\t// []\n\t\t\tlk += 2\n\t\t} else {\n\t\t\t// {\"keys[i]\":setValue}\n\t\t\tlk += len(keys[i]) + 5\n\t\t}\n\t}\n\n\tif object && !isIndex {\n\t\t// }\n\t\tlk += 1\n\t}\n\n\treturn lk\n}\n\nfunc WriteToBuffer(buffer []byte, str string) int {\n\tcopy(buffer, str)\n\treturn len(str)\n}\n\n/*\n\nDel - Receives existing data structure, path to delete.\n\nReturns:\n`data` - return modified data\n\n*/\nfunc Delete(data []byte, keys ...string) []byte {\n\tlk := len(keys)\n\tif lk == 0 {\n\t\treturn data[:0]\n\t}\n\n\tarray := false\n\tif len(keys[lk-1]) > 0 && string(keys[lk-1][0]) == \"[\" {\n\t\tarray = true\n\t}\n\n\tvar startOffset, keyOffset int\n\tendOffset := len(data)\n\tvar err error\n\tif !array {\n\t\tif len(keys) > 1 {\n\t\t\t_, _, startOffset, endOffset, err = internalGet(data, keys[:lk-1]...)\n\t\t\tif err == KeyPathNotFoundError {\n\t\t\t\t// problem parsing the data\n\t\t\t\treturn data\n\t\t\t}\n\t\t}\n\n\t\tkeyOffset, err = findKeyStart(data[startOffset:endOffset], keys[lk-1])\n\t\tif err == KeyPathNotFoundError {\n\t\t\t// problem parsing the data\n\t\t\treturn data\n\t\t}\n\t\tkeyOffset += startOffset\n\t\t_, _, _, subEndOffset, _ := internalGet(data[startOffset:endOffset], keys[lk-1])\n\t\tendOffset = startOffset + subEndOffset\n\t\ttokEnd := tokenEnd(data[endOffset:])\n\t\ttokStart := findTokenStart(data[:keyOffset], \",\"[0])\n\n\t\tif data[endOffset+tokEnd] == \",\"[0] {\n\t\t\tendOffset += tokEnd + 1\n\t\t} else if data[endOffset+tokEnd] == \" \"[0] && len(data) > endOffset+tokEnd+1 && data[endOffset+tokEnd+1] == \",\"[0] {\n\t\t\tendOffset += tokEnd + 2\n\t\t} else if data[endOffset+tokEnd] == \"}\"[0] && data[tokStart] == \",\"[0] {\n\t\t\tkeyOffset = tokStart\n\t\t}\n\t} else {\n\t\t_, _, keyOffset, endOffset, err = internalGet(data, keys...)\n\t\tif err == KeyPathNotFoundError {\n\t\t\t// problem parsing the data\n\t\t\treturn data\n\t\t}\n\n\t\ttokEnd := tokenEnd(data[endOffset:])\n\t\ttokStart := findTokenStart(data[:keyOffset], \",\"[0])\n\n\t\tif data[endOffset+tokEnd] == \",\"[0] {\n\t\t\tendOffset += tokEnd + 1\n\t\t} else if data[endOffset+tokEnd] == \"]\"[0] && data[tokStart] == \",\"[0] {\n\t\t\tkeyOffset = tokStart\n\t\t}\n\t}\n\n\t// We need to remove remaining trailing comma if we delete las element in the object\n\tprevTok := lastToken(data[:keyOffset])\n\tremainedValue := data[endOffset:]\n\n\tvar newOffset int\n\tif nextToken(remainedValue) > -1 && remainedValue[nextToken(remainedValue)] == '}' && data[prevTok] == ',' {\n\t\tnewOffset = prevTok\n\t} else {\n\t\tnewOffset = prevTok + 1\n\t}\n\n\t// We have to make a copy here if we don't want to mangle the original data, because byte slices are\n\t// accessed by reference and not by value\n\tdataCopy := make([]byte, len(data))\n\tcopy(dataCopy, data)\n\tdata = append(dataCopy[:newOffset], dataCopy[endOffset:]...)\n\n\treturn data\n}\n\n/*\n\nSet - Receives existing data structure, path to set, and data to set at that key.\n\nReturns:\n`value` - modified byte array\n`err` - On any parsing error\n\n*/\nfunc Set(data []byte, setValue []byte, keys ...string) (value []byte, err error) {\n\t// ensure keys are set\n\tif len(keys) == 0 {\n\t\treturn nil, KeyPathNotFoundError\n\t}\n\n\t_, _, startOffset, endOffset, err := internalGet(data, keys...)\n\tif err != nil {\n\t\tif err != KeyPathNotFoundError {\n\t\t\t// problem parsing the data\n\t\t\treturn nil, err\n\t\t}\n\t\t// full path doesnt exist\n\t\t// does any subpath exist?\n\t\tvar depth int\n\t\tfor i := range keys {\n\t\t\t_, _, start, end, sErr := internalGet(data, keys[:i+1]...)\n\t\t\tif sErr != nil {\n\t\t\t\tbreak\n\t\t\t} else {\n\t\t\t\tendOffset = end\n\t\t\t\tstartOffset = start\n\t\t\t\tdepth++\n\t\t\t}\n\t\t}\n\t\tcomma := true\n\t\tobject := false\n\t\tif endOffset == -1 {\n\t\t\tfirstToken := nextToken(data)\n\t\t\t// We can't set a top-level key if data isn't an object\n\t\t\tif firstToken < 0 || data[firstToken] != '{' {\n\t\t\t\treturn nil, KeyPathNotFoundError\n\t\t\t}\n\t\t\t// Don't need a comma if the input is an empty object\n\t\t\tsecondToken := firstToken + 1 + nextToken(data[firstToken+1:])\n\t\t\tif data[secondToken] == '}' {\n\t\t\t\tcomma = false\n\t\t\t}\n\t\t\t// Set the top level key at the end (accounting for any trailing whitespace)\n\t\t\t// This assumes last token is valid like '}', could check and return error\n\t\t\tendOffset = lastToken(data)\n\t\t}\n\t\tdepthOffset := endOffset\n\t\tif depth != 0 {\n\t\t\t// if subpath is a non-empty object, add to it\n\t\t\t// or if subpath is a non-empty array, add to it\n\t\t\tif (data[startOffset] == '{' && data[startOffset+1+nextToken(data[startOffset+1:])] != '}') ||\n\t\t\t\t(data[startOffset] == '[' && data[startOffset+1+nextToken(data[startOffset+1:])] == '{') && keys[depth:][0][0] == 91 {\n\t\t\t\tdepthOffset--\n\t\t\t\tstartOffset = depthOffset\n\t\t\t\t// otherwise, over-write it with a new object\n\t\t\t} else {\n\t\t\t\tcomma = false\n\t\t\t\tobject = true\n\t\t\t}\n\t\t} else {\n\t\t\tstartOffset = depthOffset\n\t\t}\n\t\tvalue = append(data[:startOffset], append(createInsertComponent(keys[depth:], setValue, comma, object), data[depthOffset:]...)...)\n\t} else {\n\t\t// path currently exists\n\t\tstartComponent := data[:startOffset]\n\t\tendComponent := data[endOffset:]\n\n\t\tvalue = make([]byte, len(startComponent)+len(endComponent)+len(setValue))\n\t\tnewEndOffset := startOffset + len(setValue)\n\t\tcopy(value[0:startOffset], startComponent)\n\t\tcopy(value[startOffset:newEndOffset], setValue)\n\t\tcopy(value[newEndOffset:], endComponent)\n\t}\n\treturn value, nil\n}\n\nfunc getType(data []byte, offset int) ([]byte, ValueType, int, error) {\n\tvar dataType ValueType\n\tendOffset := offset\n\n\t// if string value\n\tif data[offset] == '\"' {\n\t\tdataType = String\n\t\tif idx, _ := stringEnd(data[offset+1:]); idx != -1 {\n\t\t\tendOffset += idx + 1\n\t\t} else {\n\t\t\treturn nil, dataType, offset, MalformedStringError\n\t\t}\n\t} else if data[offset] == '[' { // if array value\n\t\tdataType = Array\n\t\t// break label, for stopping nested loops\n\t\tendOffset = blockEnd(data[offset:], '[', ']')\n\n\t\tif endOffset == -1 {\n\t\t\treturn nil, dataType, offset, MalformedArrayError\n\t\t}\n\n\t\tendOffset += offset\n\t} else if data[offset] == '{' { // if object value\n\t\tdataType = Object\n\t\t// break label, for stopping nested loops\n\t\tendOffset = blockEnd(data[offset:], '{', '}')\n\n\t\tif endOffset == -1 {\n\t\t\treturn nil, dataType, offset, MalformedObjectError\n\t\t}\n\n\t\tendOffset += offset\n\t} else {\n\t\t// Number, Boolean or None\n\t\tend := tokenEnd(data[endOffset:])\n\n\t\tif end == -1 {\n\t\t\treturn nil, dataType, offset, MalformedValueError\n\t\t}\n\n\t\tvalue := data[offset : endOffset+end]\n\n\t\tswitch data[offset] {\n\t\tcase 't', 'f': // true or false\n\t\t\tif bytes.Equal(value, trueLiteral) || bytes.Equal(value, falseLiteral) {\n\t\t\t\tdataType = Boolean\n\t\t\t} else {\n\t\t\t\treturn nil, Unknown, offset, UnknownValueTypeError\n\t\t\t}\n\t\tcase 'u', 'n': // undefined or null\n\t\t\tif bytes.Equal(value, nullLiteral) {\n\t\t\t\tdataType = Null\n\t\t\t} else {\n\t\t\t\treturn nil, Unknown, offset, UnknownValueTypeError\n\t\t\t}\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-':\n\t\t\tdataType = Number\n\t\tdefault:\n\t\t\treturn nil, Unknown, offset, UnknownValueTypeError\n\t\t}\n\n\t\tendOffset += end\n\t}\n\treturn data[offset:endOffset], dataType, endOffset, nil\n}\n\n/*\nGet - Receives data structure, and key path to extract value from.\n\nReturns:\n`value` - Pointer to original data structure containing key value, or just empty slice if nothing found or error\n`dataType` -    Can be: `NotExist`, `String`, `Number`, `Object`, `Array`, `Boolean` or `Null`\n`offset` - Offset from provided data structure where key value ends. Used mostly internally, for example for `ArrayEach` helper.\n`err` - If key not found or any other parsing issue it should return error. If key not found it also sets `dataType` to `NotExist`\n\nAccept multiple keys to specify path to JSON value (in case of quering nested structures).\nIf no keys provided it will try to extract closest JSON value (simple ones or object/array), useful for reading streams or arrays, see `ArrayEach` implementation.\n*/\nfunc Get(data []byte, keys ...string) (value []byte, dataType ValueType, offset int, err error) {\n\ta, b, _, d, e := internalGet(data, keys...)\n\treturn a, b, d, e\n}\n\nfunc internalGet(data []byte, keys ...string) (value []byte, dataType ValueType, offset, endOffset int, err error) {\n\tif len(keys) > 0 {\n\t\tif offset = searchKeys(data, keys...); offset == -1 {\n\t\t\treturn nil, NotExist, -1, -1, KeyPathNotFoundError\n\t\t}\n\t}\n\n\t// Go to closest value\n\tnO := nextToken(data[offset:])\n\tif nO == -1 {\n\t\treturn nil, NotExist, offset, -1, MalformedJsonError\n\t}\n\n\toffset += nO\n\tvalue, dataType, endOffset, err = getType(data, offset)\n\tif err != nil {\n\t\treturn value, dataType, offset, endOffset, err\n\t}\n\n\t// Strip quotes from string values\n\tif dataType == String {\n\t\tvalue = value[1 : len(value)-1]\n\t}\n\n\treturn value[:len(value):len(value)], dataType, offset, endOffset, nil\n}\n\n// ArrayEach is used when iterating arrays, accepts a callback function with the same return arguments as `Get`.\nfunc ArrayEach(data []byte, cb func(value []byte, dataType ValueType, offset int, err error), keys ...string) (offset int, err error) {\n\tif len(data) == 0 {\n\t\treturn -1, MalformedObjectError\n\t}\n\n\tnT := nextToken(data)\n\tif nT == -1 {\n\t\treturn -1, MalformedJsonError\n\t}\n\n\toffset = nT + 1\n\n\tif len(keys) > 0 {\n\t\tif offset = searchKeys(data, keys...); offset == -1 {\n\t\t\treturn offset, KeyPathNotFoundError\n\t\t}\n\n\t\t// Go to closest value\n\t\tnO := nextToken(data[offset:])\n\t\tif nO == -1 {\n\t\t\treturn offset, MalformedJsonError\n\t\t}\n\n\t\toffset += nO\n\n\t\tif data[offset] != '[' {\n\t\t\treturn offset, MalformedArrayError\n\t\t}\n\n\t\toffset++\n\t}\n\n\tnO := nextToken(data[offset:])\n\tif nO == -1 {\n\t\treturn offset, MalformedJsonError\n\t}\n\n\toffset += nO\n\n\tif data[offset] == ']' {\n\t\treturn offset, nil\n\t}\n\n\tfor true {\n\t\tv, t, o, e := Get(data[offset:])\n\n\t\tif e != nil {\n\t\t\treturn offset, e\n\t\t}\n\n\t\tif o == 0 {\n\t\t\tbreak\n\t\t}\n\n\t\tif t != NotExist {\n\t\t\tcb(v, t, offset+o-len(v), e)\n\t\t}\n\n\t\tif e != nil {\n\t\t\tbreak\n\t\t}\n\n\t\toffset += o\n\n\t\tskipToToken := nextToken(data[offset:])\n\t\tif skipToToken == -1 {\n\t\t\treturn offset, MalformedArrayError\n\t\t}\n\t\toffset += skipToToken\n\n\t\tif data[offset] == ']' {\n\t\t\tbreak\n\t\t}\n\n\t\tif data[offset] != ',' {\n\t\t\treturn offset, MalformedArrayError\n\t\t}\n\n\t\toffset++\n\t}\n\n\treturn offset, nil\n}\n\n// ObjectEach iterates over the key-value pairs of a JSON object, invoking a given callback for each such entry\nfunc ObjectEach(data []byte, callback func(key []byte, value []byte, dataType ValueType, offset int) error, keys ...string) (err error) {\n\toffset := 0\n\n\t// Descend to the desired key, if requested\n\tif len(keys) > 0 {\n\t\tif off := searchKeys(data, keys...); off == -1 {\n\t\t\treturn KeyPathNotFoundError\n\t\t} else {\n\t\t\toffset = off\n\t\t}\n\t}\n\n\t// Validate and skip past opening brace\n\tif off := nextToken(data[offset:]); off == -1 {\n\t\treturn MalformedObjectError\n\t} else if offset += off; data[offset] != '{' {\n\t\treturn MalformedObjectError\n\t} else {\n\t\toffset++\n\t}\n\n\t// Skip to the first token inside the object, or stop if we find the ending brace\n\tif off := nextToken(data[offset:]); off == -1 {\n\t\treturn MalformedJsonError\n\t} else if offset += off; data[offset] == '}' {\n\t\treturn nil\n\t}\n\n\t// Loop pre-condition: data[offset] points to what should be either the next entry's key, or the closing brace (if it's anything else, the JSON is malformed)\n\tfor offset < len(data) {\n\t\t// Step 1: find the next key\n\t\tvar key []byte\n\n\t\t// Check what the the next token is: start of string, end of object, or something else (error)\n\t\tswitch data[offset] {\n\t\tcase '\"':\n\t\t\toffset++ // accept as string and skip opening quote\n\t\tcase '}':\n\t\t\treturn nil // we found the end of the object; stop and return success\n\t\tdefault:\n\t\t\treturn MalformedObjectError\n\t\t}\n\n\t\t// Find the end of the key string\n\t\tvar keyEscaped bool\n\t\tif off, esc := stringEnd(data[offset:]); off == -1 {\n\t\t\treturn MalformedJsonError\n\t\t} else {\n\t\t\tkey, keyEscaped = data[offset:offset+off-1], esc\n\t\t\toffset += off\n\t\t}\n\n\t\t// Unescape the string if needed\n\t\tif keyEscaped {\n\t\t\tvar stackbuf [unescapeStackBufSize]byte // stack-allocated array for allocation-free unescaping of small strings\n\t\t\tif keyUnescaped, err := Unescape(key, stackbuf[:]); err != nil {\n\t\t\t\treturn MalformedStringEscapeError\n\t\t\t} else {\n\t\t\t\tkey = keyUnescaped\n\t\t\t}\n\t\t}\n\n\t\t// Step 2: skip the colon\n\t\tif off := nextToken(data[offset:]); off == -1 {\n\t\t\treturn MalformedJsonError\n\t\t} else if offset += off; data[offset] != ':' {\n\t\t\treturn MalformedJsonError\n\t\t} else {\n\t\t\toffset++\n\t\t}\n\n\t\t// Step 3: find the associated value, then invoke the callback\n\t\tif value, valueType, off, err := Get(data[offset:]); err != nil {\n\t\t\treturn err\n\t\t} else if err := callback(key, value, valueType, offset+off); err != nil { // Invoke the callback here!\n\t\t\treturn err\n\t\t} else {\n\t\t\toffset += off\n\t\t}\n\n\t\t// Step 4: skip over the next comma to the following token, or stop if we hit the ending brace\n\t\tif off := nextToken(data[offset:]); off == -1 {\n\t\t\treturn MalformedArrayError\n\t\t} else {\n\t\t\toffset += off\n\t\t\tswitch data[offset] {\n\t\t\tcase '}':\n\t\t\t\treturn nil // Stop if we hit the close brace\n\t\t\tcase ',':\n\t\t\t\toffset++ // Ignore the comma\n\t\t\tdefault:\n\t\t\t\treturn MalformedObjectError\n\t\t\t}\n\t\t}\n\n\t\t// Skip to the next token after the comma\n\t\tif off := nextToken(data[offset:]); off == -1 {\n\t\t\treturn MalformedArrayError\n\t\t} else {\n\t\t\toffset += off\n\t\t}\n\t}\n\n\treturn MalformedObjectError // we shouldn't get here; it's expected that we will return via finding the ending brace\n}\n\n// GetUnsafeString returns the value retrieved by `Get`, use creates string without memory allocation by mapping string to slice memory. It does not handle escape symbols.\nfunc GetUnsafeString(data []byte, keys ...string) (val string, err error) {\n\tv, _, _, e := Get(data, keys...)\n\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\n\treturn bytesToString(&v), nil\n}\n\n// GetString returns the value retrieved by `Get`, cast to a string if possible, trying to properly handle escape and utf8 symbols\n// If key data type do not match, it will return an error.\nfunc GetString(data []byte, keys ...string) (val string, err error) {\n\tv, t, _, e := Get(data, keys...)\n\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\n\tif t != String {\n\t\treturn \"\", fmt.Errorf(\"Value is not a string: %s\", string(v))\n\t}\n\n\t// If no escapes return raw content\n\tif bytes.IndexByte(v, '\\\\') == -1 {\n\t\treturn string(v), nil\n\t}\n\n\treturn ParseString(v)\n}\n\n// GetFloat returns the value retrieved by `Get`, cast to a float64 if possible.\n// The offset is the same as in `Get`.\n// If key data type do not match, it will return an error.\nfunc GetFloat(data []byte, keys ...string) (val float64, err error) {\n\tv, t, _, e := Get(data, keys...)\n\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\n\tif t != Number {\n\t\treturn 0, fmt.Errorf(\"Value is not a number: %s\", string(v))\n\t}\n\n\treturn ParseFloat(v)\n}\n\n// GetInt returns the value retrieved by `Get`, cast to a int64 if possible.\n// If key data type do not match, it will return an error.\nfunc GetInt(data []byte, keys ...string) (val int64, err error) {\n\tv, t, _, e := Get(data, keys...)\n\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\n\tif t != Number {\n\t\treturn 0, fmt.Errorf(\"Value is not a number: %s\", string(v))\n\t}\n\n\treturn ParseInt(v)\n}\n\n// GetBoolean returns the value retrieved by `Get`, cast to a bool if possible.\n// The offset is the same as in `Get`.\n// If key data type do not match, it will return error.\nfunc GetBoolean(data []byte, keys ...string) (val bool, err error) {\n\tv, t, _, e := Get(data, keys...)\n\n\tif e != nil {\n\t\treturn false, e\n\t}\n\n\tif t != Boolean {\n\t\treturn false, fmt.Errorf(\"Value is not a boolean: %s\", string(v))\n\t}\n\n\treturn ParseBoolean(v)\n}\n\n// ParseBoolean parses a Boolean ValueType into a Go bool (not particularly useful, but here for completeness)\nfunc ParseBoolean(b []byte) (bool, error) {\n\tswitch {\n\tcase bytes.Equal(b, trueLiteral):\n\t\treturn true, nil\n\tcase bytes.Equal(b, falseLiteral):\n\t\treturn false, nil\n\tdefault:\n\t\treturn false, MalformedValueError\n\t}\n}\n\n// ParseString parses a String ValueType into a Go string (the main parsing work is unescaping the JSON string)\nfunc ParseString(b []byte) (string, error) {\n\tvar stackbuf [unescapeStackBufSize]byte // stack-allocated array for allocation-free unescaping of small strings\n\tif bU, err := Unescape(b, stackbuf[:]); err != nil {\n\t\treturn \"\", MalformedValueError\n\t} else {\n\t\treturn string(bU), nil\n\t}\n}\n\n// ParseNumber parses a Number ValueType into a Go float64\nfunc ParseFloat(b []byte) (float64, error) {\n\tif v, err := parseFloat(&b); err != nil {\n\t\treturn 0, MalformedValueError\n\t} else {\n\t\treturn v, nil\n\t}\n}\n\n// ParseInt parses a Number ValueType into a Go int64\nfunc ParseInt(b []byte) (int64, error) {\n\tif v, ok, overflow := parseInt(b); !ok {\n\t\tif overflow {\n\t\t\treturn 0, OverflowIntegerError\n\t\t}\n\t\treturn 0, MalformedValueError\n\t} else {\n\t\treturn v, nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/clipperhouse/uax29/v2/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2020 Matt Sherman\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/clipperhouse/uax29/v2/graphemes/README.md",
    "content": "An implementation of grapheme cluster boundaries from [Unicode text segmentation](https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries) (UAX 29), for Unicode version 15.0.0.\n\n## Quick start\n\n```\ngo get \"github.com/clipperhouse/uax29/v2/graphemes\"\n```\n\n```go\nimport \"github.com/clipperhouse/uax29/v2/graphemes\"\n\ntext := \"Hello, 世界. Nice dog! 👍🐶\"\n\ntokens := graphemes.FromString(text)\n\nfor tokens.Next() {                     // Next() returns true until end of data\n\tfmt.Println(tokens.Value())         // Do something with the current grapheme\n}\n```\n\n[![Documentation](https://pkg.go.dev/badge/github.com/clipperhouse/uax29/v2/graphemes.svg)](https://pkg.go.dev/github.com/clipperhouse/uax29/v2/graphemes)\n\n_A grapheme is a “single visible character”, which might be a simple as a single letter, or a complex emoji that consists of several Unicode code points._\n\n## Conformance\n\nWe use the Unicode [test suite](https://unicode.org/reports/tr41/tr41-26.html#Tests29). Status:\n\n![Go](https://github.com/clipperhouse/uax29/actions/workflows/gotest.yml/badge.svg)\n\n## APIs\n\n### If you have a `string`\n\n```go\ntext := \"Hello, 世界. Nice dog! 👍🐶\"\n\ntokens := graphemes.FromString(text)\n\nfor tokens.Next() {                     // Next() returns true until end of data\n\tfmt.Println(tokens.Value())         // Do something with the current grapheme\n}\n```\n\n### If you have an `io.Reader`\n\n`FromReader` embeds a [`bufio.Scanner`](https://pkg.go.dev/bufio#Scanner), so just use those methods.\n\n```go\nr := getYourReader()                        // from a file or network maybe\ntokens := graphemes.FromReader(r)\n\nfor tokens.Scan() {                         // Scan() returns true until error or EOF\n\tfmt.Println(tokens.Text())              // Do something with the current grapheme\n}\n\nif tokens.Err() != nil {                    // Check the error\n\tlog.Fatal(tokens.Err())\n}\n```\n\n### If you have a `[]byte`\n\n```go\nb := []byte(\"Hello, 世界. Nice dog! 👍🐶\")\n\ntokens := graphemes.FromBytes(b)\n\nfor tokens.Next() {                     // Next() returns true until end of data\n\tfmt.Println(tokens.Value())         // Do something with the current grapheme\n}\n```\n\n### Performance\n\nOn a Mac M2 laptop, we see around 200MB/s, or around 100 million graphemes per second. You should see ~constant memory, and no allocations.\n\n### Invalid inputs\n\nInvalid UTF-8 input is considered undefined behavior. We test to ensure that bad inputs will not cause pathological outcomes, such as a panic or infinite loop. Callers should expect “garbage-in, garbage-out”.\n\nYour pipeline should probably include a call to [`utf8.Valid()`](https://pkg.go.dev/unicode/utf8#Valid).\n"
  },
  {
    "path": "vendor/github.com/clipperhouse/uax29/v2/graphemes/iterator.go",
    "content": "package graphemes\n\nimport \"github.com/clipperhouse/uax29/v2/internal/iterators\"\n\ntype Iterator[T iterators.Stringish] struct {\n\t*iterators.Iterator[T]\n}\n\nvar (\n\tsplitFuncString = splitFunc[string]\n\tsplitFuncBytes  = splitFunc[[]byte]\n)\n\n// FromString returns an iterator for the grapheme clusters in the input string.\n// Iterate while Next() is true, and access the grapheme via Value().\nfunc FromString(s string) Iterator[string] {\n\treturn Iterator[string]{\n\t\titerators.New(splitFuncString, s),\n\t}\n}\n\n// FromBytes returns an iterator for the grapheme clusters in the input bytes.\n// Iterate while Next() is true, and access the grapheme via Value().\nfunc FromBytes(b []byte) Iterator[[]byte] {\n\treturn Iterator[[]byte]{\n\t\titerators.New(splitFuncBytes, b),\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/clipperhouse/uax29/v2/graphemes/reader.go",
    "content": "// Package graphemes implements Unicode grapheme cluster boundaries: https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries\npackage graphemes\n\nimport (\n\t\"bufio\"\n\t\"io\"\n)\n\ntype Scanner struct {\n\t*bufio.Scanner\n}\n\n// FromReader returns a Scanner, to split graphemes per\n// https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries.\n//\n// It embeds a [bufio.Scanner], so you can use its methods.\n//\n// Iterate through graphemes by calling Scan() until false, then check Err().\nfunc FromReader(r io.Reader) *Scanner {\n\tsc := bufio.NewScanner(r)\n\tsc.Split(SplitFunc)\n\treturn &Scanner{\n\t\tScanner: sc,\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/clipperhouse/uax29/v2/graphemes/splitfunc.go",
    "content": "package graphemes\n\nimport (\n\t\"bufio\"\n\n\t\"github.com/clipperhouse/uax29/v2/internal/iterators\"\n)\n\n// is determines if lookup intersects propert(ies)\nfunc (lookup property) is(properties property) bool {\n\treturn (lookup & properties) != 0\n}\n\nconst _Ignore = _Extend\n\n// SplitFunc is a bufio.SplitFunc implementation of Unicode grapheme cluster segmentation, for use with bufio.Scanner.\n//\n// See https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries.\nvar SplitFunc bufio.SplitFunc = splitFunc[[]byte]\n\nfunc splitFunc[T iterators.Stringish](data T, atEOF bool) (advance int, token T, err error) {\n\tvar empty T\n\tif len(data) == 0 {\n\t\treturn 0, empty, nil\n\t}\n\n\t// These vars are stateful across loop iterations\n\tvar pos int\n\tvar lastExIgnore property = 0     // \"last excluding ignored categories\"\n\tvar lastLastExIgnore property = 0 // \"last one before that\"\n\tvar regionalIndicatorCount int\n\n\t// Rules are usually of the form Cat1 × Cat2; \"current\" refers to the first property\n\t// to the right of the ×, from which we look back or forward\n\n\tcurrent, w := lookup(data[pos:])\n\tif w == 0 {\n\t\tif !atEOF {\n\t\t\t// Rune extends past current data, request more\n\t\t\treturn 0, empty, nil\n\t\t}\n\t\tpos = len(data)\n\t\treturn pos, data[:pos], nil\n\t}\n\n\t// https://unicode.org/reports/tr29/#GB1\n\t// Start of text always advances\n\tpos += w\n\n\tfor {\n\t\teot := pos == len(data) // \"end of text\"\n\n\t\tif eot {\n\t\t\tif !atEOF {\n\t\t\t\t// Token extends past current data, request more\n\t\t\t\treturn 0, empty, nil\n\t\t\t}\n\n\t\t\t// https://unicode.org/reports/tr29/#GB2\n\t\t\tbreak\n\t\t}\n\n\t\t/*\n\t\t\tWe've switched the evaluation order of GB1↓ and GB2↑. It's ok:\n\t\t\tbecause we've checked for len(data) at the top of this function,\n\t\t\tsot and eot are mutually exclusive, order doesn't matter.\n\t\t*/\n\n\t\t// Rules are usually of the form Cat1 × Cat2; \"current\" refers to the first property\n\t\t// to the right of the ×, from which we look back or forward\n\n\t\t// Remember previous properties to avoid lookups/lookbacks\n\t\tlast := current\n\t\tif !last.is(_Ignore) {\n\t\t\tlastLastExIgnore = lastExIgnore\n\t\t\tlastExIgnore = last\n\t\t}\n\n\t\tcurrent, w = lookup(data[pos:])\n\t\tif w == 0 {\n\t\t\tif atEOF {\n\t\t\t\t// Just return the bytes, we can't do anything with them\n\t\t\t\tpos = len(data)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Rune extends past current data, request more\n\t\t\treturn 0, empty, nil\n\t\t}\n\n\t\t// Optimization: no rule can possibly apply\n\t\tif current|last == 0 { // i.e. both are zero\n\t\t\tbreak\n\t\t}\n\n\t\t// https://unicode.org/reports/tr29/#GB3\n\t\tif current.is(_LF) && last.is(_CR) {\n\t\t\tpos += w\n\t\t\tcontinue\n\t\t}\n\n\t\t// https://unicode.org/reports/tr29/#GB4\n\t\t// https://unicode.org/reports/tr29/#GB5\n\t\tif (current | last).is(_Control | _CR | _LF) {\n\t\t\tbreak\n\t\t}\n\n\t\t// https://unicode.org/reports/tr29/#GB6\n\t\tif current.is(_L|_V|_LV|_LVT) && last.is(_L) {\n\t\t\tpos += w\n\t\t\tcontinue\n\t\t}\n\n\t\t// https://unicode.org/reports/tr29/#GB7\n\t\tif current.is(_V|_T) && last.is(_LV|_V) {\n\t\t\tpos += w\n\t\t\tcontinue\n\t\t}\n\n\t\t// https://unicode.org/reports/tr29/#GB8\n\t\tif current.is(_T) && last.is(_LVT|_T) {\n\t\t\tpos += w\n\t\t\tcontinue\n\t\t}\n\n\t\t// https://unicode.org/reports/tr29/#GB9\n\t\tif current.is(_Extend | _ZWJ) {\n\t\t\tpos += w\n\t\t\tcontinue\n\t\t}\n\n\t\t// https://unicode.org/reports/tr29/#GB9a\n\t\tif current.is(_SpacingMark) {\n\t\t\tpos += w\n\t\t\tcontinue\n\t\t}\n\n\t\t// https://unicode.org/reports/tr29/#GB9b\n\t\tif last.is(_Prepend) {\n\t\t\tpos += w\n\t\t\tcontinue\n\t\t}\n\n\t\t// https://unicode.org/reports/tr29/#GB9c\n\t\t// TODO(clipperhouse):\n\t\t// It appears to be added in Unicode 15.1.0:\n\t\t// https://unicode.org/versions/Unicode15.1.0/#Migration\n\t\t// This package currently supports Unicode 15.0.0, so\n\t\t// out of scope for now\n\n\t\t// https://unicode.org/reports/tr29/#GB11\n\t\tif current.is(_ExtendedPictographic) && last.is(_ZWJ) && lastLastExIgnore.is(_ExtendedPictographic) {\n\t\t\tpos += w\n\t\t\tcontinue\n\t\t}\n\n\t\t// https://unicode.org/reports/tr29/#GB12\n\t\t// https://unicode.org/reports/tr29/#GB13\n\t\tif (current & last).is(_RegionalIndicator) {\n\t\t\tregionalIndicatorCount++\n\n\t\t\todd := regionalIndicatorCount%2 == 1\n\t\t\tif odd {\n\t\t\t\tpos += w\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t// If we fall through all the above rules, it's a grapheme cluster break\n\t\tbreak\n\t}\n\n\t// Return token\n\treturn pos, data[:pos], nil\n}\n"
  },
  {
    "path": "vendor/github.com/clipperhouse/uax29/v2/graphemes/trie.go",
    "content": "package graphemes\n\n// generated by github.com/clipperhouse/uax29/v2\n// from https://www.unicode.org/Public/15.0.0/ucd/auxiliary/GraphemeBreakProperty.txt\n\nimport \"github.com/clipperhouse/uax29/v2/internal/iterators\"\n\ntype property uint16\n\nconst (\n\t_CR property = 1 << iota\n\t_Control\n\t_Extend\n\t_ExtendedPictographic\n\t_L\n\t_LF\n\t_LV\n\t_LVT\n\t_Prepend\n\t_RegionalIndicator\n\t_SpacingMark\n\t_T\n\t_V\n\t_ZWJ\n)\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc lookup[T iterators.Stringish](s T) (v property, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn graphemesValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := graphemesIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := graphemesIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = graphemesIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := graphemesIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = graphemesIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = graphemesIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// graphemesTrie. Total size: 29120 bytes (28.44 KiB). Checksum: 80ad0c5ab9375f7.\n// type graphemesTrie struct { }\n\n// func newGraphemesTrie(i int) *graphemesTrie {\n// \treturn &graphemesTrie{}\n// }\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc lookupValue(n uint32, b byte) property {\n\tswitch {\n\tdefault:\n\t\treturn property(graphemesValues[n<<6+uint32(b)])\n\t}\n}\n\n// graphemesValues: 215 blocks, 13760 entries, 27520 bytes\n// The third block is the zero block.\nvar graphemesValues = [13760]property{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0002, 0x01: 0x0002, 0x02: 0x0002, 0x03: 0x0002, 0x04: 0x0002, 0x05: 0x0002,\n\t0x06: 0x0002, 0x07: 0x0002, 0x08: 0x0002, 0x09: 0x0002, 0x0a: 0x0020, 0x0b: 0x0002,\n\t0x0c: 0x0002, 0x0d: 0x0001, 0x0e: 0x0002, 0x0f: 0x0002, 0x10: 0x0002, 0x11: 0x0002,\n\t0x12: 0x0002, 0x13: 0x0002, 0x14: 0x0002, 0x15: 0x0002, 0x16: 0x0002, 0x17: 0x0002,\n\t0x18: 0x0002, 0x19: 0x0002, 0x1a: 0x0002, 0x1b: 0x0002, 0x1c: 0x0002, 0x1d: 0x0002,\n\t0x1e: 0x0002, 0x1f: 0x0002,\n\t// Block 0x1, offset 0x40\n\t0x7f: 0x0002,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0002, 0xc1: 0x0002, 0xc2: 0x0002, 0xc3: 0x0002, 0xc4: 0x0002, 0xc5: 0x0002,\n\t0xc6: 0x0002, 0xc7: 0x0002, 0xc8: 0x0002, 0xc9: 0x0002, 0xca: 0x0002, 0xcb: 0x0002,\n\t0xcc: 0x0002, 0xcd: 0x0002, 0xce: 0x0002, 0xcf: 0x0002, 0xd0: 0x0002, 0xd1: 0x0002,\n\t0xd2: 0x0002, 0xd3: 0x0002, 0xd4: 0x0002, 0xd5: 0x0002, 0xd6: 0x0002, 0xd7: 0x0002,\n\t0xd8: 0x0002, 0xd9: 0x0002, 0xda: 0x0002, 0xdb: 0x0002, 0xdc: 0x0002, 0xdd: 0x0002,\n\t0xde: 0x0002, 0xdf: 0x0002,\n\t0xe9: 0x0008,\n\t0xed: 0x0002, 0xee: 0x0008,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x0004, 0x101: 0x0004, 0x102: 0x0004, 0x103: 0x0004, 0x104: 0x0004, 0x105: 0x0004,\n\t0x106: 0x0004, 0x107: 0x0004, 0x108: 0x0004, 0x109: 0x0004, 0x10a: 0x0004, 0x10b: 0x0004,\n\t0x10c: 0x0004, 0x10d: 0x0004, 0x10e: 0x0004, 0x10f: 0x0004, 0x110: 0x0004, 0x111: 0x0004,\n\t0x112: 0x0004, 0x113: 0x0004, 0x114: 0x0004, 0x115: 0x0004, 0x116: 0x0004, 0x117: 0x0004,\n\t0x118: 0x0004, 0x119: 0x0004, 0x11a: 0x0004, 0x11b: 0x0004, 0x11c: 0x0004, 0x11d: 0x0004,\n\t0x11e: 0x0004, 0x11f: 0x0004, 0x120: 0x0004, 0x121: 0x0004, 0x122: 0x0004, 0x123: 0x0004,\n\t0x124: 0x0004, 0x125: 0x0004, 0x126: 0x0004, 0x127: 0x0004, 0x128: 0x0004, 0x129: 0x0004,\n\t0x12a: 0x0004, 0x12b: 0x0004, 0x12c: 0x0004, 0x12d: 0x0004, 0x12e: 0x0004, 0x12f: 0x0004,\n\t0x130: 0x0004, 0x131: 0x0004, 0x132: 0x0004, 0x133: 0x0004, 0x134: 0x0004, 0x135: 0x0004,\n\t0x136: 0x0004, 0x137: 0x0004, 0x138: 0x0004, 0x139: 0x0004, 0x13a: 0x0004, 0x13b: 0x0004,\n\t0x13c: 0x0004, 0x13d: 0x0004, 0x13e: 0x0004, 0x13f: 0x0004,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0004, 0x141: 0x0004, 0x142: 0x0004, 0x143: 0x0004, 0x144: 0x0004, 0x145: 0x0004,\n\t0x146: 0x0004, 0x147: 0x0004, 0x148: 0x0004, 0x149: 0x0004, 0x14a: 0x0004, 0x14b: 0x0004,\n\t0x14c: 0x0004, 0x14d: 0x0004, 0x14e: 0x0004, 0x14f: 0x0004, 0x150: 0x0004, 0x151: 0x0004,\n\t0x152: 0x0004, 0x153: 0x0004, 0x154: 0x0004, 0x155: 0x0004, 0x156: 0x0004, 0x157: 0x0004,\n\t0x158: 0x0004, 0x159: 0x0004, 0x15a: 0x0004, 0x15b: 0x0004, 0x15c: 0x0004, 0x15d: 0x0004,\n\t0x15e: 0x0004, 0x15f: 0x0004, 0x160: 0x0004, 0x161: 0x0004, 0x162: 0x0004, 0x163: 0x0004,\n\t0x164: 0x0004, 0x165: 0x0004, 0x166: 0x0004, 0x167: 0x0004, 0x168: 0x0004, 0x169: 0x0004,\n\t0x16a: 0x0004, 0x16b: 0x0004, 0x16c: 0x0004, 0x16d: 0x0004, 0x16e: 0x0004, 0x16f: 0x0004,\n\t// Block 0x6, offset 0x180\n\t0x183: 0x0004, 0x184: 0x0004, 0x185: 0x0004,\n\t0x186: 0x0004, 0x187: 0x0004, 0x188: 0x0004, 0x189: 0x0004,\n\t// Block 0x7, offset 0x1c0\n\t0x1d1: 0x0004,\n\t0x1d2: 0x0004, 0x1d3: 0x0004, 0x1d4: 0x0004, 0x1d5: 0x0004, 0x1d6: 0x0004, 0x1d7: 0x0004,\n\t0x1d8: 0x0004, 0x1d9: 0x0004, 0x1da: 0x0004, 0x1db: 0x0004, 0x1dc: 0x0004, 0x1dd: 0x0004,\n\t0x1de: 0x0004, 0x1df: 0x0004, 0x1e0: 0x0004, 0x1e1: 0x0004, 0x1e2: 0x0004, 0x1e3: 0x0004,\n\t0x1e4: 0x0004, 0x1e5: 0x0004, 0x1e6: 0x0004, 0x1e7: 0x0004, 0x1e8: 0x0004, 0x1e9: 0x0004,\n\t0x1ea: 0x0004, 0x1eb: 0x0004, 0x1ec: 0x0004, 0x1ed: 0x0004, 0x1ee: 0x0004, 0x1ef: 0x0004,\n\t0x1f0: 0x0004, 0x1f1: 0x0004, 0x1f2: 0x0004, 0x1f3: 0x0004, 0x1f4: 0x0004, 0x1f5: 0x0004,\n\t0x1f6: 0x0004, 0x1f7: 0x0004, 0x1f8: 0x0004, 0x1f9: 0x0004, 0x1fa: 0x0004, 0x1fb: 0x0004,\n\t0x1fc: 0x0004, 0x1fd: 0x0004, 0x1ff: 0x0004,\n\t// Block 0x8, offset 0x200\n\t0x201: 0x0004, 0x202: 0x0004, 0x204: 0x0004, 0x205: 0x0004,\n\t0x207: 0x0004,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0100, 0x241: 0x0100, 0x242: 0x0100, 0x243: 0x0100, 0x244: 0x0100, 0x245: 0x0100,\n\t0x250: 0x0004, 0x251: 0x0004,\n\t0x252: 0x0004, 0x253: 0x0004, 0x254: 0x0004, 0x255: 0x0004, 0x256: 0x0004, 0x257: 0x0004,\n\t0x258: 0x0004, 0x259: 0x0004, 0x25a: 0x0004, 0x25c: 0x0002,\n\t// Block 0xa, offset 0x280\n\t0x28b: 0x0004,\n\t0x28c: 0x0004, 0x28d: 0x0004, 0x28e: 0x0004, 0x28f: 0x0004, 0x290: 0x0004, 0x291: 0x0004,\n\t0x292: 0x0004, 0x293: 0x0004, 0x294: 0x0004, 0x295: 0x0004, 0x296: 0x0004, 0x297: 0x0004,\n\t0x298: 0x0004, 0x299: 0x0004, 0x29a: 0x0004, 0x29b: 0x0004, 0x29c: 0x0004, 0x29d: 0x0004,\n\t0x29e: 0x0004, 0x29f: 0x0004,\n\t0x2b0: 0x0004,\n\t// Block 0xb, offset 0x2c0\n\t0x2d6: 0x0004, 0x2d7: 0x0004,\n\t0x2d8: 0x0004, 0x2d9: 0x0004, 0x2da: 0x0004, 0x2db: 0x0004, 0x2dc: 0x0004, 0x2dd: 0x0100,\n\t0x2df: 0x0004, 0x2e0: 0x0004, 0x2e1: 0x0004, 0x2e2: 0x0004, 0x2e3: 0x0004,\n\t0x2e4: 0x0004, 0x2e7: 0x0004, 0x2e8: 0x0004,\n\t0x2ea: 0x0004, 0x2eb: 0x0004, 0x2ec: 0x0004, 0x2ed: 0x0004,\n\t// Block 0xc, offset 0x300\n\t0x30f: 0x0100, 0x311: 0x0004,\n\t0x330: 0x0004, 0x331: 0x0004, 0x332: 0x0004, 0x333: 0x0004, 0x334: 0x0004, 0x335: 0x0004,\n\t0x336: 0x0004, 0x337: 0x0004, 0x338: 0x0004, 0x339: 0x0004, 0x33a: 0x0004, 0x33b: 0x0004,\n\t0x33c: 0x0004, 0x33d: 0x0004, 0x33e: 0x0004, 0x33f: 0x0004,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0004, 0x341: 0x0004, 0x342: 0x0004, 0x343: 0x0004, 0x344: 0x0004, 0x345: 0x0004,\n\t0x346: 0x0004, 0x347: 0x0004, 0x348: 0x0004, 0x349: 0x0004, 0x34a: 0x0004,\n\t// Block 0xe, offset 0x380\n\t0x3a6: 0x0004, 0x3a7: 0x0004, 0x3a8: 0x0004, 0x3a9: 0x0004,\n\t0x3aa: 0x0004, 0x3ab: 0x0004, 0x3ac: 0x0004, 0x3ad: 0x0004, 0x3ae: 0x0004, 0x3af: 0x0004,\n\t0x3b0: 0x0004,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0x0004, 0x3ec: 0x0004, 0x3ed: 0x0004, 0x3ee: 0x0004, 0x3ef: 0x0004,\n\t0x3f0: 0x0004, 0x3f1: 0x0004, 0x3f2: 0x0004, 0x3f3: 0x0004,\n\t0x3fd: 0x0004,\n\t// Block 0x10, offset 0x400\n\t0x416: 0x0004, 0x417: 0x0004,\n\t0x418: 0x0004, 0x419: 0x0004, 0x41b: 0x0004, 0x41c: 0x0004, 0x41d: 0x0004,\n\t0x41e: 0x0004, 0x41f: 0x0004, 0x420: 0x0004, 0x421: 0x0004, 0x422: 0x0004, 0x423: 0x0004,\n\t0x425: 0x0004, 0x426: 0x0004, 0x427: 0x0004, 0x429: 0x0004,\n\t0x42a: 0x0004, 0x42b: 0x0004, 0x42c: 0x0004, 0x42d: 0x0004,\n\t// Block 0x11, offset 0x440\n\t0x459: 0x0004, 0x45a: 0x0004, 0x45b: 0x0004,\n\t// Block 0x12, offset 0x480\n\t0x490: 0x0100, 0x491: 0x0100,\n\t0x498: 0x0004, 0x499: 0x0004, 0x49a: 0x0004, 0x49b: 0x0004, 0x49c: 0x0004, 0x49d: 0x0004,\n\t0x49e: 0x0004, 0x49f: 0x0004,\n\t// Block 0x13, offset 0x4c0\n\t0x4ca: 0x0004, 0x4cb: 0x0004,\n\t0x4cc: 0x0004, 0x4cd: 0x0004, 0x4ce: 0x0004, 0x4cf: 0x0004, 0x4d0: 0x0004, 0x4d1: 0x0004,\n\t0x4d2: 0x0004, 0x4d3: 0x0004, 0x4d4: 0x0004, 0x4d5: 0x0004, 0x4d6: 0x0004, 0x4d7: 0x0004,\n\t0x4d8: 0x0004, 0x4d9: 0x0004, 0x4da: 0x0004, 0x4db: 0x0004, 0x4dc: 0x0004, 0x4dd: 0x0004,\n\t0x4de: 0x0004, 0x4df: 0x0004, 0x4e0: 0x0004, 0x4e1: 0x0004, 0x4e2: 0x0100, 0x4e3: 0x0004,\n\t0x4e4: 0x0004, 0x4e5: 0x0004, 0x4e6: 0x0004, 0x4e7: 0x0004, 0x4e8: 0x0004, 0x4e9: 0x0004,\n\t0x4ea: 0x0004, 0x4eb: 0x0004, 0x4ec: 0x0004, 0x4ed: 0x0004, 0x4ee: 0x0004, 0x4ef: 0x0004,\n\t0x4f0: 0x0004, 0x4f1: 0x0004, 0x4f2: 0x0004, 0x4f3: 0x0004, 0x4f4: 0x0004, 0x4f5: 0x0004,\n\t0x4f6: 0x0004, 0x4f7: 0x0004, 0x4f8: 0x0004, 0x4f9: 0x0004, 0x4fa: 0x0004, 0x4fb: 0x0004,\n\t0x4fc: 0x0004, 0x4fd: 0x0004, 0x4fe: 0x0004, 0x4ff: 0x0004,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0004, 0x501: 0x0004, 0x502: 0x0004, 0x503: 0x0400,\n\t0x53a: 0x0004, 0x53b: 0x0400,\n\t0x53c: 0x0004, 0x53e: 0x0400, 0x53f: 0x0400,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0400, 0x541: 0x0004, 0x542: 0x0004, 0x543: 0x0004, 0x544: 0x0004, 0x545: 0x0004,\n\t0x546: 0x0004, 0x547: 0x0004, 0x548: 0x0004, 0x549: 0x0400, 0x54a: 0x0400, 0x54b: 0x0400,\n\t0x54c: 0x0400, 0x54d: 0x0004, 0x54e: 0x0400, 0x54f: 0x0400, 0x551: 0x0004,\n\t0x552: 0x0004, 0x553: 0x0004, 0x554: 0x0004, 0x555: 0x0004, 0x556: 0x0004, 0x557: 0x0004,\n\t0x562: 0x0004, 0x563: 0x0004,\n\t// Block 0x16, offset 0x580\n\t0x581: 0x0004, 0x582: 0x0400, 0x583: 0x0400,\n\t0x5bc: 0x0004, 0x5be: 0x0004, 0x5bf: 0x0400,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0400, 0x5c1: 0x0004, 0x5c2: 0x0004, 0x5c3: 0x0004, 0x5c4: 0x0004,\n\t0x5c7: 0x0400, 0x5c8: 0x0400, 0x5cb: 0x0400,\n\t0x5cc: 0x0400, 0x5cd: 0x0004,\n\t0x5d7: 0x0004,\n\t0x5e2: 0x0004, 0x5e3: 0x0004,\n\t0x5fe: 0x0004,\n\t// Block 0x18, offset 0x600\n\t0x601: 0x0004, 0x602: 0x0004, 0x603: 0x0400,\n\t0x63c: 0x0004, 0x63e: 0x0400, 0x63f: 0x0400,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x0400, 0x641: 0x0004, 0x642: 0x0004,\n\t0x647: 0x0004, 0x648: 0x0004, 0x64b: 0x0004,\n\t0x64c: 0x0004, 0x64d: 0x0004, 0x651: 0x0004,\n\t0x670: 0x0004, 0x671: 0x0004, 0x675: 0x0004,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x0400, 0x681: 0x0004, 0x682: 0x0004, 0x683: 0x0004, 0x684: 0x0004, 0x685: 0x0004,\n\t0x687: 0x0004, 0x688: 0x0004, 0x689: 0x0400, 0x68b: 0x0400,\n\t0x68c: 0x0400, 0x68d: 0x0004,\n\t0x6a2: 0x0004, 0x6a3: 0x0004,\n\t0x6ba: 0x0004, 0x6bb: 0x0004,\n\t0x6bc: 0x0004, 0x6bd: 0x0004, 0x6be: 0x0004, 0x6bf: 0x0004,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x0004, 0x6c2: 0x0400, 0x6c3: 0x0400,\n\t0x6fc: 0x0004, 0x6fe: 0x0004, 0x6ff: 0x0004,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x0400, 0x701: 0x0004, 0x702: 0x0004, 0x703: 0x0004, 0x704: 0x0004,\n\t0x707: 0x0400, 0x708: 0x0400, 0x70b: 0x0400,\n\t0x70c: 0x0400, 0x70d: 0x0004,\n\t0x715: 0x0004, 0x716: 0x0004, 0x717: 0x0004,\n\t0x722: 0x0004, 0x723: 0x0004,\n\t// Block 0x1d, offset 0x740\n\t0x742: 0x0004,\n\t0x77e: 0x0004, 0x77f: 0x0400,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0004, 0x781: 0x0400, 0x782: 0x0400,\n\t0x786: 0x0400, 0x787: 0x0400, 0x788: 0x0400, 0x78a: 0x0400, 0x78b: 0x0400,\n\t0x78c: 0x0400, 0x78d: 0x0004,\n\t0x797: 0x0004,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0004, 0x7c1: 0x0400, 0x7c2: 0x0400, 0x7c3: 0x0400, 0x7c4: 0x0004,\n\t0x7fc: 0x0004, 0x7fe: 0x0004, 0x7ff: 0x0004,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0004, 0x801: 0x0400, 0x802: 0x0400, 0x803: 0x0400, 0x804: 0x0400,\n\t0x806: 0x0004, 0x807: 0x0004, 0x808: 0x0004, 0x80a: 0x0004, 0x80b: 0x0004,\n\t0x80c: 0x0004, 0x80d: 0x0004,\n\t0x815: 0x0004, 0x816: 0x0004,\n\t0x822: 0x0004, 0x823: 0x0004,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x0004, 0x842: 0x0400, 0x843: 0x0400,\n\t0x87c: 0x0004, 0x87e: 0x0400, 0x87f: 0x0004,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0400, 0x881: 0x0400, 0x882: 0x0004, 0x883: 0x0400, 0x884: 0x0400,\n\t0x886: 0x0004, 0x887: 0x0400, 0x888: 0x0400, 0x88a: 0x0400, 0x88b: 0x0400,\n\t0x88c: 0x0004, 0x88d: 0x0004,\n\t0x895: 0x0004, 0x896: 0x0004,\n\t0x8a2: 0x0004, 0x8a3: 0x0004,\n\t0x8b3: 0x0400,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0004, 0x8c1: 0x0004, 0x8c2: 0x0400, 0x8c3: 0x0400,\n\t0x8fb: 0x0004,\n\t0x8fc: 0x0004, 0x8fe: 0x0004, 0x8ff: 0x0400,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0400, 0x901: 0x0004, 0x902: 0x0004, 0x903: 0x0004, 0x904: 0x0004,\n\t0x906: 0x0400, 0x907: 0x0400, 0x908: 0x0400, 0x90a: 0x0400, 0x90b: 0x0400,\n\t0x90c: 0x0400, 0x90d: 0x0004, 0x90e: 0x0100,\n\t0x917: 0x0004,\n\t0x922: 0x0004, 0x923: 0x0004,\n\t// Block 0x25, offset 0x940\n\t0x941: 0x0004, 0x942: 0x0400, 0x943: 0x0400,\n\t// Block 0x26, offset 0x980\n\t0x98a: 0x0004,\n\t0x98f: 0x0004, 0x990: 0x0400, 0x991: 0x0400,\n\t0x992: 0x0004, 0x993: 0x0004, 0x994: 0x0004, 0x996: 0x0004,\n\t0x998: 0x0400, 0x999: 0x0400, 0x99a: 0x0400, 0x99b: 0x0400, 0x99c: 0x0400, 0x99d: 0x0400,\n\t0x99e: 0x0400, 0x99f: 0x0004,\n\t0x9b2: 0x0400, 0x9b3: 0x0400,\n\t// Block 0x27, offset 0x9c0\n\t0x9f1: 0x0004, 0x9f3: 0x0400, 0x9f4: 0x0004, 0x9f5: 0x0004,\n\t0x9f6: 0x0004, 0x9f7: 0x0004, 0x9f8: 0x0004, 0x9f9: 0x0004, 0x9fa: 0x0004,\n\t// Block 0x28, offset 0xa00\n\t0xa07: 0x0004, 0xa08: 0x0004, 0xa09: 0x0004, 0xa0a: 0x0004, 0xa0b: 0x0004,\n\t0xa0c: 0x0004, 0xa0d: 0x0004, 0xa0e: 0x0004,\n\t// Block 0x29, offset 0xa40\n\t0xa71: 0x0004, 0xa73: 0x0400, 0xa74: 0x0004, 0xa75: 0x0004,\n\t0xa76: 0x0004, 0xa77: 0x0004, 0xa78: 0x0004, 0xa79: 0x0004, 0xa7a: 0x0004, 0xa7b: 0x0004,\n\t0xa7c: 0x0004,\n\t// Block 0x2a, offset 0xa80\n\t0xa88: 0x0004, 0xa89: 0x0004, 0xa8a: 0x0004, 0xa8b: 0x0004,\n\t0xa8c: 0x0004, 0xa8d: 0x0004, 0xa8e: 0x0004,\n\t// Block 0x2b, offset 0xac0\n\t0xad8: 0x0004, 0xad9: 0x0004,\n\t0xaf5: 0x0004,\n\t0xaf7: 0x0004, 0xaf9: 0x0004,\n\t0xafe: 0x0400, 0xaff: 0x0400,\n\t// Block 0x2c, offset 0xb00\n\t0xb31: 0x0004, 0xb32: 0x0004, 0xb33: 0x0004, 0xb34: 0x0004, 0xb35: 0x0004,\n\t0xb36: 0x0004, 0xb37: 0x0004, 0xb38: 0x0004, 0xb39: 0x0004, 0xb3a: 0x0004, 0xb3b: 0x0004,\n\t0xb3c: 0x0004, 0xb3d: 0x0004, 0xb3e: 0x0004, 0xb3f: 0x0400,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x0004, 0xb41: 0x0004, 0xb42: 0x0004, 0xb43: 0x0004, 0xb44: 0x0004,\n\t0xb46: 0x0004, 0xb47: 0x0004,\n\t0xb4d: 0x0004, 0xb4e: 0x0004, 0xb4f: 0x0004, 0xb50: 0x0004, 0xb51: 0x0004,\n\t0xb52: 0x0004, 0xb53: 0x0004, 0xb54: 0x0004, 0xb55: 0x0004, 0xb56: 0x0004, 0xb57: 0x0004,\n\t0xb59: 0x0004, 0xb5a: 0x0004, 0xb5b: 0x0004, 0xb5c: 0x0004, 0xb5d: 0x0004,\n\t0xb5e: 0x0004, 0xb5f: 0x0004, 0xb60: 0x0004, 0xb61: 0x0004, 0xb62: 0x0004, 0xb63: 0x0004,\n\t0xb64: 0x0004, 0xb65: 0x0004, 0xb66: 0x0004, 0xb67: 0x0004, 0xb68: 0x0004, 0xb69: 0x0004,\n\t0xb6a: 0x0004, 0xb6b: 0x0004, 0xb6c: 0x0004, 0xb6d: 0x0004, 0xb6e: 0x0004, 0xb6f: 0x0004,\n\t0xb70: 0x0004, 0xb71: 0x0004, 0xb72: 0x0004, 0xb73: 0x0004, 0xb74: 0x0004, 0xb75: 0x0004,\n\t0xb76: 0x0004, 0xb77: 0x0004, 0xb78: 0x0004, 0xb79: 0x0004, 0xb7a: 0x0004, 0xb7b: 0x0004,\n\t0xb7c: 0x0004,\n\t// Block 0x2e, offset 0xb80\n\t0xb86: 0x0004,\n\t// Block 0x2f, offset 0xbc0\n\t0xbed: 0x0004, 0xbee: 0x0004, 0xbef: 0x0004,\n\t0xbf0: 0x0004, 0xbf1: 0x0400, 0xbf2: 0x0004, 0xbf3: 0x0004, 0xbf4: 0x0004, 0xbf5: 0x0004,\n\t0xbf6: 0x0004, 0xbf7: 0x0004, 0xbf9: 0x0004, 0xbfa: 0x0004, 0xbfb: 0x0400,\n\t0xbfc: 0x0400, 0xbfd: 0x0004, 0xbfe: 0x0004,\n\t// Block 0x30, offset 0xc00\n\t0xc16: 0x0400, 0xc17: 0x0400,\n\t0xc18: 0x0004, 0xc19: 0x0004,\n\t0xc1e: 0x0004, 0xc1f: 0x0004, 0xc20: 0x0004,\n\t0xc31: 0x0004, 0xc32: 0x0004, 0xc33: 0x0004, 0xc34: 0x0004,\n\t// Block 0x31, offset 0xc40\n\t0xc42: 0x0004, 0xc44: 0x0400, 0xc45: 0x0004,\n\t0xc46: 0x0004,\n\t0xc4d: 0x0004,\n\t0xc5d: 0x0004,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x0010, 0xc81: 0x0010, 0xc82: 0x0010, 0xc83: 0x0010, 0xc84: 0x0010, 0xc85: 0x0010,\n\t0xc86: 0x0010, 0xc87: 0x0010, 0xc88: 0x0010, 0xc89: 0x0010, 0xc8a: 0x0010, 0xc8b: 0x0010,\n\t0xc8c: 0x0010, 0xc8d: 0x0010, 0xc8e: 0x0010, 0xc8f: 0x0010, 0xc90: 0x0010, 0xc91: 0x0010,\n\t0xc92: 0x0010, 0xc93: 0x0010, 0xc94: 0x0010, 0xc95: 0x0010, 0xc96: 0x0010, 0xc97: 0x0010,\n\t0xc98: 0x0010, 0xc99: 0x0010, 0xc9a: 0x0010, 0xc9b: 0x0010, 0xc9c: 0x0010, 0xc9d: 0x0010,\n\t0xc9e: 0x0010, 0xc9f: 0x0010, 0xca0: 0x0010, 0xca1: 0x0010, 0xca2: 0x0010, 0xca3: 0x0010,\n\t0xca4: 0x0010, 0xca5: 0x0010, 0xca6: 0x0010, 0xca7: 0x0010, 0xca8: 0x0010, 0xca9: 0x0010,\n\t0xcaa: 0x0010, 0xcab: 0x0010, 0xcac: 0x0010, 0xcad: 0x0010, 0xcae: 0x0010, 0xcaf: 0x0010,\n\t0xcb0: 0x0010, 0xcb1: 0x0010, 0xcb2: 0x0010, 0xcb3: 0x0010, 0xcb4: 0x0010, 0xcb5: 0x0010,\n\t0xcb6: 0x0010, 0xcb7: 0x0010, 0xcb8: 0x0010, 0xcb9: 0x0010, 0xcba: 0x0010, 0xcbb: 0x0010,\n\t0xcbc: 0x0010, 0xcbd: 0x0010, 0xcbe: 0x0010, 0xcbf: 0x0010,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x0010, 0xcc1: 0x0010, 0xcc2: 0x0010, 0xcc3: 0x0010, 0xcc4: 0x0010, 0xcc5: 0x0010,\n\t0xcc6: 0x0010, 0xcc7: 0x0010, 0xcc8: 0x0010, 0xcc9: 0x0010, 0xcca: 0x0010, 0xccb: 0x0010,\n\t0xccc: 0x0010, 0xccd: 0x0010, 0xcce: 0x0010, 0xccf: 0x0010, 0xcd0: 0x0010, 0xcd1: 0x0010,\n\t0xcd2: 0x0010, 0xcd3: 0x0010, 0xcd4: 0x0010, 0xcd5: 0x0010, 0xcd6: 0x0010, 0xcd7: 0x0010,\n\t0xcd8: 0x0010, 0xcd9: 0x0010, 0xcda: 0x0010, 0xcdb: 0x0010, 0xcdc: 0x0010, 0xcdd: 0x0010,\n\t0xcde: 0x0010, 0xcdf: 0x0010, 0xce0: 0x1000, 0xce1: 0x1000, 0xce2: 0x1000, 0xce3: 0x1000,\n\t0xce4: 0x1000, 0xce5: 0x1000, 0xce6: 0x1000, 0xce7: 0x1000, 0xce8: 0x1000, 0xce9: 0x1000,\n\t0xcea: 0x1000, 0xceb: 0x1000, 0xcec: 0x1000, 0xced: 0x1000, 0xcee: 0x1000, 0xcef: 0x1000,\n\t0xcf0: 0x1000, 0xcf1: 0x1000, 0xcf2: 0x1000, 0xcf3: 0x1000, 0xcf4: 0x1000, 0xcf5: 0x1000,\n\t0xcf6: 0x1000, 0xcf7: 0x1000, 0xcf8: 0x1000, 0xcf9: 0x1000, 0xcfa: 0x1000, 0xcfb: 0x1000,\n\t0xcfc: 0x1000, 0xcfd: 0x1000, 0xcfe: 0x1000, 0xcff: 0x1000,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x1000, 0xd01: 0x1000, 0xd02: 0x1000, 0xd03: 0x1000, 0xd04: 0x1000, 0xd05: 0x1000,\n\t0xd06: 0x1000, 0xd07: 0x1000, 0xd08: 0x1000, 0xd09: 0x1000, 0xd0a: 0x1000, 0xd0b: 0x1000,\n\t0xd0c: 0x1000, 0xd0d: 0x1000, 0xd0e: 0x1000, 0xd0f: 0x1000, 0xd10: 0x1000, 0xd11: 0x1000,\n\t0xd12: 0x1000, 0xd13: 0x1000, 0xd14: 0x1000, 0xd15: 0x1000, 0xd16: 0x1000, 0xd17: 0x1000,\n\t0xd18: 0x1000, 0xd19: 0x1000, 0xd1a: 0x1000, 0xd1b: 0x1000, 0xd1c: 0x1000, 0xd1d: 0x1000,\n\t0xd1e: 0x1000, 0xd1f: 0x1000, 0xd20: 0x1000, 0xd21: 0x1000, 0xd22: 0x1000, 0xd23: 0x1000,\n\t0xd24: 0x1000, 0xd25: 0x1000, 0xd26: 0x1000, 0xd27: 0x1000, 0xd28: 0x0800, 0xd29: 0x0800,\n\t0xd2a: 0x0800, 0xd2b: 0x0800, 0xd2c: 0x0800, 0xd2d: 0x0800, 0xd2e: 0x0800, 0xd2f: 0x0800,\n\t0xd30: 0x0800, 0xd31: 0x0800, 0xd32: 0x0800, 0xd33: 0x0800, 0xd34: 0x0800, 0xd35: 0x0800,\n\t0xd36: 0x0800, 0xd37: 0x0800, 0xd38: 0x0800, 0xd39: 0x0800, 0xd3a: 0x0800, 0xd3b: 0x0800,\n\t0xd3c: 0x0800, 0xd3d: 0x0800, 0xd3e: 0x0800, 0xd3f: 0x0800,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0800, 0xd41: 0x0800, 0xd42: 0x0800, 0xd43: 0x0800, 0xd44: 0x0800, 0xd45: 0x0800,\n\t0xd46: 0x0800, 0xd47: 0x0800, 0xd48: 0x0800, 0xd49: 0x0800, 0xd4a: 0x0800, 0xd4b: 0x0800,\n\t0xd4c: 0x0800, 0xd4d: 0x0800, 0xd4e: 0x0800, 0xd4f: 0x0800, 0xd50: 0x0800, 0xd51: 0x0800,\n\t0xd52: 0x0800, 0xd53: 0x0800, 0xd54: 0x0800, 0xd55: 0x0800, 0xd56: 0x0800, 0xd57: 0x0800,\n\t0xd58: 0x0800, 0xd59: 0x0800, 0xd5a: 0x0800, 0xd5b: 0x0800, 0xd5c: 0x0800, 0xd5d: 0x0800,\n\t0xd5e: 0x0800, 0xd5f: 0x0800, 0xd60: 0x0800, 0xd61: 0x0800, 0xd62: 0x0800, 0xd63: 0x0800,\n\t0xd64: 0x0800, 0xd65: 0x0800, 0xd66: 0x0800, 0xd67: 0x0800, 0xd68: 0x0800, 0xd69: 0x0800,\n\t0xd6a: 0x0800, 0xd6b: 0x0800, 0xd6c: 0x0800, 0xd6d: 0x0800, 0xd6e: 0x0800, 0xd6f: 0x0800,\n\t0xd70: 0x0800, 0xd71: 0x0800, 0xd72: 0x0800, 0xd73: 0x0800, 0xd74: 0x0800, 0xd75: 0x0800,\n\t0xd76: 0x0800, 0xd77: 0x0800, 0xd78: 0x0800, 0xd79: 0x0800, 0xd7a: 0x0800, 0xd7b: 0x0800,\n\t0xd7c: 0x0800, 0xd7d: 0x0800, 0xd7e: 0x0800, 0xd7f: 0x0800,\n\t// Block 0x36, offset 0xd80\n\t0xd9d: 0x0004,\n\t0xd9e: 0x0004, 0xd9f: 0x0004,\n\t// Block 0x37, offset 0xdc0\n\t0xdd2: 0x0004, 0xdd3: 0x0004, 0xdd4: 0x0004, 0xdd5: 0x0400,\n\t0xdf2: 0x0004, 0xdf3: 0x0004, 0xdf4: 0x0400,\n\t// Block 0x38, offset 0xe00\n\t0xe12: 0x0004, 0xe13: 0x0004,\n\t0xe32: 0x0004, 0xe33: 0x0004,\n\t// Block 0x39, offset 0xe40\n\t0xe74: 0x0004, 0xe75: 0x0004,\n\t0xe76: 0x0400, 0xe77: 0x0004, 0xe78: 0x0004, 0xe79: 0x0004, 0xe7a: 0x0004, 0xe7b: 0x0004,\n\t0xe7c: 0x0004, 0xe7d: 0x0004, 0xe7e: 0x0400, 0xe7f: 0x0400,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x0400, 0xe81: 0x0400, 0xe82: 0x0400, 0xe83: 0x0400, 0xe84: 0x0400, 0xe85: 0x0400,\n\t0xe86: 0x0004, 0xe87: 0x0400, 0xe88: 0x0400, 0xe89: 0x0004, 0xe8a: 0x0004, 0xe8b: 0x0004,\n\t0xe8c: 0x0004, 0xe8d: 0x0004, 0xe8e: 0x0004, 0xe8f: 0x0004, 0xe90: 0x0004, 0xe91: 0x0004,\n\t0xe92: 0x0004, 0xe93: 0x0004,\n\t0xe9d: 0x0004,\n\t// Block 0x3b, offset 0xec0\n\t0xecb: 0x0004,\n\t0xecc: 0x0004, 0xecd: 0x0004, 0xece: 0x0002, 0xecf: 0x0004,\n\t// Block 0x3c, offset 0xf00\n\t0xf05: 0x0004,\n\t0xf06: 0x0004,\n\t0xf29: 0x0004,\n\t// Block 0x3d, offset 0xf40\n\t0xf60: 0x0004, 0xf61: 0x0004, 0xf62: 0x0004, 0xf63: 0x0400,\n\t0xf64: 0x0400, 0xf65: 0x0400, 0xf66: 0x0400, 0xf67: 0x0004, 0xf68: 0x0004, 0xf69: 0x0400,\n\t0xf6a: 0x0400, 0xf6b: 0x0400,\n\t0xf70: 0x0400, 0xf71: 0x0400, 0xf72: 0x0004, 0xf73: 0x0400, 0xf74: 0x0400, 0xf75: 0x0400,\n\t0xf76: 0x0400, 0xf77: 0x0400, 0xf78: 0x0400, 0xf79: 0x0004, 0xf7a: 0x0004, 0xf7b: 0x0004,\n\t// Block 0x3e, offset 0xf80\n\t0xf97: 0x0004,\n\t0xf98: 0x0004, 0xf99: 0x0400, 0xf9a: 0x0400, 0xf9b: 0x0004,\n\t// Block 0x3f, offset 0xfc0\n\t0xfd5: 0x0400, 0xfd6: 0x0004, 0xfd7: 0x0400,\n\t0xfd8: 0x0004, 0xfd9: 0x0004, 0xfda: 0x0004, 0xfdb: 0x0004, 0xfdc: 0x0004, 0xfdd: 0x0004,\n\t0xfde: 0x0004, 0xfe0: 0x0004, 0xfe2: 0x0004,\n\t0xfe5: 0x0004, 0xfe6: 0x0004, 0xfe7: 0x0004, 0xfe8: 0x0004, 0xfe9: 0x0004,\n\t0xfea: 0x0004, 0xfeb: 0x0004, 0xfec: 0x0004, 0xfed: 0x0400, 0xfee: 0x0400, 0xfef: 0x0400,\n\t0xff0: 0x0400, 0xff1: 0x0400, 0xff2: 0x0400, 0xff3: 0x0004, 0xff4: 0x0004, 0xff5: 0x0004,\n\t0xff6: 0x0004, 0xff7: 0x0004, 0xff8: 0x0004, 0xff9: 0x0004, 0xffa: 0x0004, 0xffb: 0x0004,\n\t0xffc: 0x0004, 0xfff: 0x0004,\n\t// Block 0x40, offset 0x1000\n\t0x1030: 0x0004, 0x1031: 0x0004, 0x1032: 0x0004, 0x1033: 0x0004, 0x1034: 0x0004, 0x1035: 0x0004,\n\t0x1036: 0x0004, 0x1037: 0x0004, 0x1038: 0x0004, 0x1039: 0x0004, 0x103a: 0x0004, 0x103b: 0x0004,\n\t0x103c: 0x0004, 0x103d: 0x0004, 0x103e: 0x0004, 0x103f: 0x0004,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x0004, 0x1041: 0x0004, 0x1042: 0x0004, 0x1043: 0x0004, 0x1044: 0x0004, 0x1045: 0x0004,\n\t0x1046: 0x0004, 0x1047: 0x0004, 0x1048: 0x0004, 0x1049: 0x0004, 0x104a: 0x0004, 0x104b: 0x0004,\n\t0x104c: 0x0004, 0x104d: 0x0004, 0x104e: 0x0004,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x0004, 0x1081: 0x0004, 0x1082: 0x0004, 0x1083: 0x0004, 0x1084: 0x0400,\n\t0x10b4: 0x0004, 0x10b5: 0x0004,\n\t0x10b6: 0x0004, 0x10b7: 0x0004, 0x10b8: 0x0004, 0x10b9: 0x0004, 0x10ba: 0x0004, 0x10bb: 0x0400,\n\t0x10bc: 0x0004, 0x10bd: 0x0400, 0x10be: 0x0400, 0x10bf: 0x0400,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x0400, 0x10c1: 0x0400, 0x10c2: 0x0004, 0x10c3: 0x0400, 0x10c4: 0x0400,\n\t0x10eb: 0x0004, 0x10ec: 0x0004, 0x10ed: 0x0004, 0x10ee: 0x0004, 0x10ef: 0x0004,\n\t0x10f0: 0x0004, 0x10f1: 0x0004, 0x10f2: 0x0004, 0x10f3: 0x0004,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0x0004, 0x1101: 0x0004, 0x1102: 0x0400,\n\t0x1121: 0x0400, 0x1122: 0x0004, 0x1123: 0x0004,\n\t0x1124: 0x0004, 0x1125: 0x0004, 0x1126: 0x0400, 0x1127: 0x0400, 0x1128: 0x0004, 0x1129: 0x0004,\n\t0x112a: 0x0400, 0x112b: 0x0004, 0x112c: 0x0004, 0x112d: 0x0004,\n\t// Block 0x45, offset 0x1140\n\t0x1166: 0x0004, 0x1167: 0x0400, 0x1168: 0x0004, 0x1169: 0x0004,\n\t0x116a: 0x0400, 0x116b: 0x0400, 0x116c: 0x0400, 0x116d: 0x0004, 0x116e: 0x0400, 0x116f: 0x0004,\n\t0x1170: 0x0004, 0x1171: 0x0004, 0x1172: 0x0400, 0x1173: 0x0400,\n\t// Block 0x46, offset 0x1180\n\t0x11a4: 0x0400, 0x11a5: 0x0400, 0x11a6: 0x0400, 0x11a7: 0x0400, 0x11a8: 0x0400, 0x11a9: 0x0400,\n\t0x11aa: 0x0400, 0x11ab: 0x0400, 0x11ac: 0x0004, 0x11ad: 0x0004, 0x11ae: 0x0004, 0x11af: 0x0004,\n\t0x11b0: 0x0004, 0x11b1: 0x0004, 0x11b2: 0x0004, 0x11b3: 0x0004, 0x11b4: 0x0400, 0x11b5: 0x0400,\n\t0x11b6: 0x0004, 0x11b7: 0x0004,\n\t// Block 0x47, offset 0x11c0\n\t0x11d0: 0x0004, 0x11d1: 0x0004,\n\t0x11d2: 0x0004, 0x11d4: 0x0004, 0x11d5: 0x0004, 0x11d6: 0x0004, 0x11d7: 0x0004,\n\t0x11d8: 0x0004, 0x11d9: 0x0004, 0x11da: 0x0004, 0x11db: 0x0004, 0x11dc: 0x0004, 0x11dd: 0x0004,\n\t0x11de: 0x0004, 0x11df: 0x0004, 0x11e0: 0x0004, 0x11e1: 0x0400, 0x11e2: 0x0004, 0x11e3: 0x0004,\n\t0x11e4: 0x0004, 0x11e5: 0x0004, 0x11e6: 0x0004, 0x11e7: 0x0004, 0x11e8: 0x0004,\n\t0x11ed: 0x0004,\n\t0x11f4: 0x0004,\n\t0x11f7: 0x0400, 0x11f8: 0x0004, 0x11f9: 0x0004,\n\t// Block 0x48, offset 0x1200\n\t0x120b: 0x0002,\n\t0x120c: 0x0004, 0x120d: 0x2000, 0x120e: 0x0002, 0x120f: 0x0002,\n\t0x1228: 0x0002, 0x1229: 0x0002,\n\t0x122a: 0x0002, 0x122b: 0x0002, 0x122c: 0x0002, 0x122d: 0x0002, 0x122e: 0x0002,\n\t0x123c: 0x0008,\n\t// Block 0x49, offset 0x1240\n\t0x1249: 0x0008,\n\t0x1260: 0x0002, 0x1261: 0x0002, 0x1262: 0x0002, 0x1263: 0x0002,\n\t0x1264: 0x0002, 0x1265: 0x0002, 0x1266: 0x0002, 0x1267: 0x0002, 0x1268: 0x0002, 0x1269: 0x0002,\n\t0x126a: 0x0002, 0x126b: 0x0002, 0x126c: 0x0002, 0x126d: 0x0002, 0x126e: 0x0002, 0x126f: 0x0002,\n\t// Block 0x4a, offset 0x1280\n\t0x1290: 0x0004, 0x1291: 0x0004,\n\t0x1292: 0x0004, 0x1293: 0x0004, 0x1294: 0x0004, 0x1295: 0x0004, 0x1296: 0x0004, 0x1297: 0x0004,\n\t0x1298: 0x0004, 0x1299: 0x0004, 0x129a: 0x0004, 0x129b: 0x0004, 0x129c: 0x0004, 0x129d: 0x0004,\n\t0x129e: 0x0004, 0x129f: 0x0004, 0x12a0: 0x0004, 0x12a1: 0x0004, 0x12a2: 0x0004, 0x12a3: 0x0004,\n\t0x12a4: 0x0004, 0x12a5: 0x0004, 0x12a6: 0x0004, 0x12a7: 0x0004, 0x12a8: 0x0004, 0x12a9: 0x0004,\n\t0x12aa: 0x0004, 0x12ab: 0x0004, 0x12ac: 0x0004, 0x12ad: 0x0004, 0x12ae: 0x0004, 0x12af: 0x0004,\n\t0x12b0: 0x0004,\n\t// Block 0x4b, offset 0x12c0\n\t0x12e2: 0x0008,\n\t0x12f9: 0x0008,\n\t// Block 0x4c, offset 0x1300\n\t0x1314: 0x0008, 0x1315: 0x0008, 0x1316: 0x0008, 0x1317: 0x0008,\n\t0x1318: 0x0008, 0x1319: 0x0008,\n\t0x1329: 0x0008,\n\t0x132a: 0x0008,\n\t// Block 0x4d, offset 0x1340\n\t0x135a: 0x0008, 0x135b: 0x0008,\n\t0x1368: 0x0008,\n\t// Block 0x4e, offset 0x1380\n\t0x1388: 0x0008,\n\t// Block 0x4f, offset 0x13c0\n\t0x13cf: 0x0008,\n\t0x13e9: 0x0008,\n\t0x13ea: 0x0008, 0x13eb: 0x0008, 0x13ec: 0x0008, 0x13ed: 0x0008, 0x13ee: 0x0008, 0x13ef: 0x0008,\n\t0x13f0: 0x0008, 0x13f1: 0x0008, 0x13f2: 0x0008, 0x13f3: 0x0008,\n\t0x13f8: 0x0008, 0x13f9: 0x0008, 0x13fa: 0x0008,\n\t// Block 0x50, offset 0x1400\n\t0x1402: 0x0008,\n\t// Block 0x51, offset 0x1440\n\t0x146a: 0x0008, 0x146b: 0x0008,\n\t0x1476: 0x0008,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0008,\n\t0x14bb: 0x0008,\n\t0x14bc: 0x0008, 0x14bd: 0x0008, 0x14be: 0x0008,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0008, 0x14c1: 0x0008, 0x14c2: 0x0008, 0x14c3: 0x0008, 0x14c4: 0x0008, 0x14c5: 0x0008,\n\t0x14c7: 0x0008, 0x14c8: 0x0008, 0x14c9: 0x0008, 0x14ca: 0x0008, 0x14cb: 0x0008,\n\t0x14cc: 0x0008, 0x14cd: 0x0008, 0x14ce: 0x0008, 0x14cf: 0x0008, 0x14d0: 0x0008, 0x14d1: 0x0008,\n\t0x14d2: 0x0008, 0x14d4: 0x0008, 0x14d5: 0x0008, 0x14d6: 0x0008, 0x14d7: 0x0008,\n\t0x14d8: 0x0008, 0x14d9: 0x0008, 0x14da: 0x0008, 0x14db: 0x0008, 0x14dc: 0x0008, 0x14dd: 0x0008,\n\t0x14de: 0x0008, 0x14df: 0x0008, 0x14e0: 0x0008, 0x14e1: 0x0008, 0x14e2: 0x0008, 0x14e3: 0x0008,\n\t0x14e4: 0x0008, 0x14e5: 0x0008, 0x14e6: 0x0008, 0x14e7: 0x0008, 0x14e8: 0x0008, 0x14e9: 0x0008,\n\t0x14ea: 0x0008, 0x14eb: 0x0008, 0x14ec: 0x0008, 0x14ed: 0x0008, 0x14ee: 0x0008, 0x14ef: 0x0008,\n\t0x14f0: 0x0008, 0x14f1: 0x0008, 0x14f2: 0x0008, 0x14f3: 0x0008, 0x14f4: 0x0008, 0x14f5: 0x0008,\n\t0x14f6: 0x0008, 0x14f7: 0x0008, 0x14f8: 0x0008, 0x14f9: 0x0008, 0x14fa: 0x0008, 0x14fb: 0x0008,\n\t0x14fc: 0x0008, 0x14fd: 0x0008, 0x14fe: 0x0008, 0x14ff: 0x0008,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x0008, 0x1501: 0x0008, 0x1502: 0x0008, 0x1503: 0x0008, 0x1504: 0x0008, 0x1505: 0x0008,\n\t0x1506: 0x0008, 0x1507: 0x0008, 0x1508: 0x0008, 0x1509: 0x0008, 0x150a: 0x0008, 0x150b: 0x0008,\n\t0x150c: 0x0008, 0x150d: 0x0008, 0x150e: 0x0008, 0x150f: 0x0008, 0x1510: 0x0008, 0x1511: 0x0008,\n\t0x1512: 0x0008, 0x1513: 0x0008, 0x1514: 0x0008, 0x1515: 0x0008, 0x1516: 0x0008, 0x1517: 0x0008,\n\t0x1518: 0x0008, 0x1519: 0x0008, 0x151a: 0x0008, 0x151b: 0x0008, 0x151c: 0x0008, 0x151d: 0x0008,\n\t0x151e: 0x0008, 0x151f: 0x0008, 0x1520: 0x0008, 0x1521: 0x0008, 0x1522: 0x0008, 0x1523: 0x0008,\n\t0x1524: 0x0008, 0x1525: 0x0008, 0x1526: 0x0008, 0x1527: 0x0008, 0x1528: 0x0008, 0x1529: 0x0008,\n\t0x152a: 0x0008, 0x152b: 0x0008, 0x152c: 0x0008, 0x152d: 0x0008, 0x152e: 0x0008, 0x152f: 0x0008,\n\t0x1530: 0x0008, 0x1531: 0x0008, 0x1532: 0x0008, 0x1533: 0x0008, 0x1534: 0x0008, 0x1535: 0x0008,\n\t0x1536: 0x0008, 0x1537: 0x0008, 0x1538: 0x0008, 0x1539: 0x0008, 0x153a: 0x0008, 0x153b: 0x0008,\n\t0x153c: 0x0008, 0x153d: 0x0008, 0x153e: 0x0008, 0x153f: 0x0008,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x0008, 0x1541: 0x0008, 0x1542: 0x0008, 0x1543: 0x0008, 0x1544: 0x0008, 0x1545: 0x0008,\n\t0x1550: 0x0008, 0x1551: 0x0008,\n\t0x1552: 0x0008, 0x1553: 0x0008, 0x1554: 0x0008, 0x1555: 0x0008, 0x1556: 0x0008, 0x1557: 0x0008,\n\t0x1558: 0x0008, 0x1559: 0x0008, 0x155a: 0x0008, 0x155b: 0x0008, 0x155c: 0x0008, 0x155d: 0x0008,\n\t0x155e: 0x0008, 0x155f: 0x0008, 0x1560: 0x0008, 0x1561: 0x0008, 0x1562: 0x0008, 0x1563: 0x0008,\n\t0x1564: 0x0008, 0x1565: 0x0008, 0x1566: 0x0008, 0x1567: 0x0008, 0x1568: 0x0008, 0x1569: 0x0008,\n\t0x156a: 0x0008, 0x156b: 0x0008, 0x156c: 0x0008, 0x156d: 0x0008, 0x156e: 0x0008, 0x156f: 0x0008,\n\t0x1570: 0x0008, 0x1571: 0x0008, 0x1572: 0x0008, 0x1573: 0x0008, 0x1574: 0x0008, 0x1575: 0x0008,\n\t0x1576: 0x0008, 0x1577: 0x0008, 0x1578: 0x0008, 0x1579: 0x0008, 0x157a: 0x0008, 0x157b: 0x0008,\n\t0x157c: 0x0008, 0x157d: 0x0008, 0x157e: 0x0008, 0x157f: 0x0008,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x0008, 0x1581: 0x0008, 0x1582: 0x0008, 0x1583: 0x0008, 0x1584: 0x0008, 0x1585: 0x0008,\n\t0x1588: 0x0008, 0x1589: 0x0008, 0x158a: 0x0008, 0x158b: 0x0008,\n\t0x158c: 0x0008, 0x158d: 0x0008, 0x158e: 0x0008, 0x158f: 0x0008, 0x1590: 0x0008, 0x1591: 0x0008,\n\t0x1592: 0x0008, 0x1594: 0x0008, 0x1596: 0x0008,\n\t0x159d: 0x0008,\n\t0x15a1: 0x0008,\n\t0x15a8: 0x0008,\n\t0x15b3: 0x0008, 0x15b4: 0x0008,\n\t// Block 0x57, offset 0x15c0\n\t0x15c4: 0x0008,\n\t0x15c7: 0x0008,\n\t0x15cc: 0x0008, 0x15ce: 0x0008,\n\t0x15d3: 0x0008, 0x15d4: 0x0008, 0x15d5: 0x0008, 0x15d7: 0x0008,\n\t0x15e3: 0x0008,\n\t0x15e4: 0x0008, 0x15e5: 0x0008, 0x15e6: 0x0008, 0x15e7: 0x0008,\n\t// Block 0x58, offset 0x1600\n\t0x1615: 0x0008, 0x1616: 0x0008, 0x1617: 0x0008,\n\t0x1621: 0x0008,\n\t0x1630: 0x0008,\n\t0x163f: 0x0008,\n\t// Block 0x59, offset 0x1640\n\t0x1674: 0x0008, 0x1675: 0x0008,\n\t// Block 0x5a, offset 0x1680\n\t0x1685: 0x0008,\n\t0x1686: 0x0008, 0x1687: 0x0008,\n\t0x169b: 0x0008, 0x169c: 0x0008,\n\t// Block 0x5b, offset 0x16c0\n\t0x16d0: 0x0008,\n\t0x16d5: 0x0008,\n\t// Block 0x5c, offset 0x1700\n\t0x172f: 0x0004,\n\t0x1730: 0x0004, 0x1731: 0x0004,\n\t// Block 0x5d, offset 0x1740\n\t0x177f: 0x0004,\n\t// Block 0x5e, offset 0x1780\n\t0x17a0: 0x0004, 0x17a1: 0x0004, 0x17a2: 0x0004, 0x17a3: 0x0004,\n\t0x17a4: 0x0004, 0x17a5: 0x0004, 0x17a6: 0x0004, 0x17a7: 0x0004, 0x17a8: 0x0004, 0x17a9: 0x0004,\n\t0x17aa: 0x0004, 0x17ab: 0x0004, 0x17ac: 0x0004, 0x17ad: 0x0004, 0x17ae: 0x0004, 0x17af: 0x0004,\n\t0x17b0: 0x0004, 0x17b1: 0x0004, 0x17b2: 0x0004, 0x17b3: 0x0004, 0x17b4: 0x0004, 0x17b5: 0x0004,\n\t0x17b6: 0x0004, 0x17b7: 0x0004, 0x17b8: 0x0004, 0x17b9: 0x0004, 0x17ba: 0x0004, 0x17bb: 0x0004,\n\t0x17bc: 0x0004, 0x17bd: 0x0004, 0x17be: 0x0004, 0x17bf: 0x0004,\n\t// Block 0x5f, offset 0x17c0\n\t0x17ea: 0x0004, 0x17eb: 0x0004, 0x17ec: 0x0004, 0x17ed: 0x0004, 0x17ee: 0x0004, 0x17ef: 0x0004,\n\t0x17f0: 0x0008,\n\t0x17fd: 0x0008,\n\t// Block 0x60, offset 0x1800\n\t0x1819: 0x0004, 0x181a: 0x0004,\n\t// Block 0x61, offset 0x1840\n\t0x1857: 0x0008,\n\t0x1859: 0x0008,\n\t// Block 0x62, offset 0x1880\n\t0x18af: 0x0004,\n\t0x18b0: 0x0004, 0x18b1: 0x0004, 0x18b2: 0x0004, 0x18b4: 0x0004, 0x18b5: 0x0004,\n\t0x18b6: 0x0004, 0x18b7: 0x0004, 0x18b8: 0x0004, 0x18b9: 0x0004, 0x18ba: 0x0004, 0x18bb: 0x0004,\n\t0x18bc: 0x0004, 0x18bd: 0x0004,\n\t// Block 0x63, offset 0x18c0\n\t0x18de: 0x0004, 0x18df: 0x0004,\n\t// Block 0x64, offset 0x1900\n\t0x1930: 0x0004, 0x1931: 0x0004,\n\t// Block 0x65, offset 0x1940\n\t0x1942: 0x0004,\n\t0x1946: 0x0004, 0x194b: 0x0004,\n\t0x1963: 0x0400,\n\t0x1964: 0x0400, 0x1965: 0x0004, 0x1966: 0x0004, 0x1967: 0x0400,\n\t0x196c: 0x0004,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0400, 0x1981: 0x0400,\n\t0x19b4: 0x0400, 0x19b5: 0x0400,\n\t0x19b6: 0x0400, 0x19b7: 0x0400, 0x19b8: 0x0400, 0x19b9: 0x0400, 0x19ba: 0x0400, 0x19bb: 0x0400,\n\t0x19bc: 0x0400, 0x19bd: 0x0400, 0x19be: 0x0400, 0x19bf: 0x0400,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0400, 0x19c1: 0x0400, 0x19c2: 0x0400, 0x19c3: 0x0400, 0x19c4: 0x0004, 0x19c5: 0x0004,\n\t0x19e0: 0x0004, 0x19e1: 0x0004, 0x19e2: 0x0004, 0x19e3: 0x0004,\n\t0x19e4: 0x0004, 0x19e5: 0x0004, 0x19e6: 0x0004, 0x19e7: 0x0004, 0x19e8: 0x0004, 0x19e9: 0x0004,\n\t0x19ea: 0x0004, 0x19eb: 0x0004, 0x19ec: 0x0004, 0x19ed: 0x0004, 0x19ee: 0x0004, 0x19ef: 0x0004,\n\t0x19f0: 0x0004, 0x19f1: 0x0004,\n\t0x19ff: 0x0004,\n\t// Block 0x68, offset 0x1a00\n\t0x1a26: 0x0004, 0x1a27: 0x0004, 0x1a28: 0x0004, 0x1a29: 0x0004,\n\t0x1a2a: 0x0004, 0x1a2b: 0x0004, 0x1a2c: 0x0004, 0x1a2d: 0x0004,\n\t// Block 0x69, offset 0x1a40\n\t0x1a47: 0x0004, 0x1a48: 0x0004, 0x1a49: 0x0004, 0x1a4a: 0x0004, 0x1a4b: 0x0004,\n\t0x1a4c: 0x0004, 0x1a4d: 0x0004, 0x1a4e: 0x0004, 0x1a4f: 0x0004, 0x1a50: 0x0004, 0x1a51: 0x0004,\n\t0x1a52: 0x0400, 0x1a53: 0x0400,\n\t0x1a60: 0x0010, 0x1a61: 0x0010, 0x1a62: 0x0010, 0x1a63: 0x0010,\n\t0x1a64: 0x0010, 0x1a65: 0x0010, 0x1a66: 0x0010, 0x1a67: 0x0010, 0x1a68: 0x0010, 0x1a69: 0x0010,\n\t0x1a6a: 0x0010, 0x1a6b: 0x0010, 0x1a6c: 0x0010, 0x1a6d: 0x0010, 0x1a6e: 0x0010, 0x1a6f: 0x0010,\n\t0x1a70: 0x0010, 0x1a71: 0x0010, 0x1a72: 0x0010, 0x1a73: 0x0010, 0x1a74: 0x0010, 0x1a75: 0x0010,\n\t0x1a76: 0x0010, 0x1a77: 0x0010, 0x1a78: 0x0010, 0x1a79: 0x0010, 0x1a7a: 0x0010, 0x1a7b: 0x0010,\n\t0x1a7c: 0x0010,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0004, 0x1a81: 0x0004, 0x1a82: 0x0004, 0x1a83: 0x0400,\n\t0x1ab3: 0x0004, 0x1ab4: 0x0400, 0x1ab5: 0x0400,\n\t0x1ab6: 0x0004, 0x1ab7: 0x0004, 0x1ab8: 0x0004, 0x1ab9: 0x0004, 0x1aba: 0x0400, 0x1abb: 0x0400,\n\t0x1abc: 0x0004, 0x1abd: 0x0004, 0x1abe: 0x0400, 0x1abf: 0x0400,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x0400,\n\t0x1ae5: 0x0004,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b29: 0x0004,\n\t0x1b2a: 0x0004, 0x1b2b: 0x0004, 0x1b2c: 0x0004, 0x1b2d: 0x0004, 0x1b2e: 0x0004, 0x1b2f: 0x0400,\n\t0x1b30: 0x0400, 0x1b31: 0x0004, 0x1b32: 0x0004, 0x1b33: 0x0400, 0x1b34: 0x0400, 0x1b35: 0x0004,\n\t0x1b36: 0x0004,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b43: 0x0004,\n\t0x1b4c: 0x0004, 0x1b4d: 0x0400,\n\t0x1b7c: 0x0004,\n\t// Block 0x6e, offset 0x1b80\n\t0x1bb0: 0x0004, 0x1bb2: 0x0004, 0x1bb3: 0x0004, 0x1bb4: 0x0004,\n\t0x1bb7: 0x0004, 0x1bb8: 0x0004,\n\t0x1bbe: 0x0004, 0x1bbf: 0x0004,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc1: 0x0004,\n\t0x1beb: 0x0400, 0x1bec: 0x0004, 0x1bed: 0x0004, 0x1bee: 0x0400, 0x1bef: 0x0400,\n\t0x1bf5: 0x0400,\n\t0x1bf6: 0x0004,\n\t// Block 0x70, offset 0x1c00\n\t0x1c23: 0x0400,\n\t0x1c24: 0x0400, 0x1c25: 0x0004, 0x1c26: 0x0400, 0x1c27: 0x0400, 0x1c28: 0x0004, 0x1c29: 0x0400,\n\t0x1c2a: 0x0400, 0x1c2c: 0x0400, 0x1c2d: 0x0004,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0x0040, 0x1c41: 0x0080, 0x1c42: 0x0080, 0x1c43: 0x0080, 0x1c44: 0x0080, 0x1c45: 0x0080,\n\t0x1c46: 0x0080, 0x1c47: 0x0080, 0x1c48: 0x0080, 0x1c49: 0x0080, 0x1c4a: 0x0080, 0x1c4b: 0x0080,\n\t0x1c4c: 0x0080, 0x1c4d: 0x0080, 0x1c4e: 0x0080, 0x1c4f: 0x0080, 0x1c50: 0x0080, 0x1c51: 0x0080,\n\t0x1c52: 0x0080, 0x1c53: 0x0080, 0x1c54: 0x0080, 0x1c55: 0x0080, 0x1c56: 0x0080, 0x1c57: 0x0080,\n\t0x1c58: 0x0080, 0x1c59: 0x0080, 0x1c5a: 0x0080, 0x1c5b: 0x0080, 0x1c5c: 0x0040, 0x1c5d: 0x0080,\n\t0x1c5e: 0x0080, 0x1c5f: 0x0080, 0x1c60: 0x0080, 0x1c61: 0x0080, 0x1c62: 0x0080, 0x1c63: 0x0080,\n\t0x1c64: 0x0080, 0x1c65: 0x0080, 0x1c66: 0x0080, 0x1c67: 0x0080, 0x1c68: 0x0080, 0x1c69: 0x0080,\n\t0x1c6a: 0x0080, 0x1c6b: 0x0080, 0x1c6c: 0x0080, 0x1c6d: 0x0080, 0x1c6e: 0x0080, 0x1c6f: 0x0080,\n\t0x1c70: 0x0080, 0x1c71: 0x0080, 0x1c72: 0x0080, 0x1c73: 0x0080, 0x1c74: 0x0080, 0x1c75: 0x0080,\n\t0x1c76: 0x0080, 0x1c77: 0x0080, 0x1c78: 0x0040, 0x1c79: 0x0080, 0x1c7a: 0x0080, 0x1c7b: 0x0080,\n\t0x1c7c: 0x0080, 0x1c7d: 0x0080, 0x1c7e: 0x0080, 0x1c7f: 0x0080,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x0080, 0x1c81: 0x0080, 0x1c82: 0x0080, 0x1c83: 0x0080, 0x1c84: 0x0080, 0x1c85: 0x0080,\n\t0x1c86: 0x0080, 0x1c87: 0x0080, 0x1c88: 0x0080, 0x1c89: 0x0080, 0x1c8a: 0x0080, 0x1c8b: 0x0080,\n\t0x1c8c: 0x0080, 0x1c8d: 0x0080, 0x1c8e: 0x0080, 0x1c8f: 0x0080, 0x1c90: 0x0080, 0x1c91: 0x0080,\n\t0x1c92: 0x0080, 0x1c93: 0x0080, 0x1c94: 0x0040, 0x1c95: 0x0080, 0x1c96: 0x0080, 0x1c97: 0x0080,\n\t0x1c98: 0x0080, 0x1c99: 0x0080, 0x1c9a: 0x0080, 0x1c9b: 0x0080, 0x1c9c: 0x0080, 0x1c9d: 0x0080,\n\t0x1c9e: 0x0080, 0x1c9f: 0x0080, 0x1ca0: 0x0080, 0x1ca1: 0x0080, 0x1ca2: 0x0080, 0x1ca3: 0x0080,\n\t0x1ca4: 0x0080, 0x1ca5: 0x0080, 0x1ca6: 0x0080, 0x1ca7: 0x0080, 0x1ca8: 0x0080, 0x1ca9: 0x0080,\n\t0x1caa: 0x0080, 0x1cab: 0x0080, 0x1cac: 0x0080, 0x1cad: 0x0080, 0x1cae: 0x0080, 0x1caf: 0x0080,\n\t0x1cb0: 0x0040, 0x1cb1: 0x0080, 0x1cb2: 0x0080, 0x1cb3: 0x0080, 0x1cb4: 0x0080, 0x1cb5: 0x0080,\n\t0x1cb6: 0x0080, 0x1cb7: 0x0080, 0x1cb8: 0x0080, 0x1cb9: 0x0080, 0x1cba: 0x0080, 0x1cbb: 0x0080,\n\t0x1cbc: 0x0080, 0x1cbd: 0x0080, 0x1cbe: 0x0080, 0x1cbf: 0x0080,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x0080, 0x1cc1: 0x0080, 0x1cc2: 0x0080, 0x1cc3: 0x0080, 0x1cc4: 0x0080, 0x1cc5: 0x0080,\n\t0x1cc6: 0x0080, 0x1cc7: 0x0080, 0x1cc8: 0x0080, 0x1cc9: 0x0080, 0x1cca: 0x0080, 0x1ccb: 0x0080,\n\t0x1ccc: 0x0040, 0x1ccd: 0x0080, 0x1cce: 0x0080, 0x1ccf: 0x0080, 0x1cd0: 0x0080, 0x1cd1: 0x0080,\n\t0x1cd2: 0x0080, 0x1cd3: 0x0080, 0x1cd4: 0x0080, 0x1cd5: 0x0080, 0x1cd6: 0x0080, 0x1cd7: 0x0080,\n\t0x1cd8: 0x0080, 0x1cd9: 0x0080, 0x1cda: 0x0080, 0x1cdb: 0x0080, 0x1cdc: 0x0080, 0x1cdd: 0x0080,\n\t0x1cde: 0x0080, 0x1cdf: 0x0080, 0x1ce0: 0x0080, 0x1ce1: 0x0080, 0x1ce2: 0x0080, 0x1ce3: 0x0080,\n\t0x1ce4: 0x0080, 0x1ce5: 0x0080, 0x1ce6: 0x0080, 0x1ce7: 0x0080, 0x1ce8: 0x0040, 0x1ce9: 0x0080,\n\t0x1cea: 0x0080, 0x1ceb: 0x0080, 0x1cec: 0x0080, 0x1ced: 0x0080, 0x1cee: 0x0080, 0x1cef: 0x0080,\n\t0x1cf0: 0x0080, 0x1cf1: 0x0080, 0x1cf2: 0x0080, 0x1cf3: 0x0080, 0x1cf4: 0x0080, 0x1cf5: 0x0080,\n\t0x1cf6: 0x0080, 0x1cf7: 0x0080, 0x1cf8: 0x0080, 0x1cf9: 0x0080, 0x1cfa: 0x0080, 0x1cfb: 0x0080,\n\t0x1cfc: 0x0080, 0x1cfd: 0x0080, 0x1cfe: 0x0080, 0x1cff: 0x0080,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0x0080, 0x1d01: 0x0080, 0x1d02: 0x0080, 0x1d03: 0x0080, 0x1d04: 0x0040, 0x1d05: 0x0080,\n\t0x1d06: 0x0080, 0x1d07: 0x0080, 0x1d08: 0x0080, 0x1d09: 0x0080, 0x1d0a: 0x0080, 0x1d0b: 0x0080,\n\t0x1d0c: 0x0080, 0x1d0d: 0x0080, 0x1d0e: 0x0080, 0x1d0f: 0x0080, 0x1d10: 0x0080, 0x1d11: 0x0080,\n\t0x1d12: 0x0080, 0x1d13: 0x0080, 0x1d14: 0x0080, 0x1d15: 0x0080, 0x1d16: 0x0080, 0x1d17: 0x0080,\n\t0x1d18: 0x0080, 0x1d19: 0x0080, 0x1d1a: 0x0080, 0x1d1b: 0x0080, 0x1d1c: 0x0080, 0x1d1d: 0x0080,\n\t0x1d1e: 0x0080, 0x1d1f: 0x0080, 0x1d20: 0x0040, 0x1d21: 0x0080, 0x1d22: 0x0080, 0x1d23: 0x0080,\n\t0x1d24: 0x0080, 0x1d25: 0x0080, 0x1d26: 0x0080, 0x1d27: 0x0080, 0x1d28: 0x0080, 0x1d29: 0x0080,\n\t0x1d2a: 0x0080, 0x1d2b: 0x0080, 0x1d2c: 0x0080, 0x1d2d: 0x0080, 0x1d2e: 0x0080, 0x1d2f: 0x0080,\n\t0x1d30: 0x0080, 0x1d31: 0x0080, 0x1d32: 0x0080, 0x1d33: 0x0080, 0x1d34: 0x0080, 0x1d35: 0x0080,\n\t0x1d36: 0x0080, 0x1d37: 0x0080, 0x1d38: 0x0080, 0x1d39: 0x0080, 0x1d3a: 0x0080, 0x1d3b: 0x0080,\n\t0x1d3c: 0x0040, 0x1d3d: 0x0080, 0x1d3e: 0x0080, 0x1d3f: 0x0080,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x0080, 0x1d41: 0x0080, 0x1d42: 0x0080, 0x1d43: 0x0080, 0x1d44: 0x0080, 0x1d45: 0x0080,\n\t0x1d46: 0x0080, 0x1d47: 0x0080, 0x1d48: 0x0080, 0x1d49: 0x0080, 0x1d4a: 0x0080, 0x1d4b: 0x0080,\n\t0x1d4c: 0x0080, 0x1d4d: 0x0080, 0x1d4e: 0x0080, 0x1d4f: 0x0080, 0x1d50: 0x0080, 0x1d51: 0x0080,\n\t0x1d52: 0x0080, 0x1d53: 0x0080, 0x1d54: 0x0080, 0x1d55: 0x0080, 0x1d56: 0x0080, 0x1d57: 0x0080,\n\t0x1d58: 0x0040, 0x1d59: 0x0080, 0x1d5a: 0x0080, 0x1d5b: 0x0080, 0x1d5c: 0x0080, 0x1d5d: 0x0080,\n\t0x1d5e: 0x0080, 0x1d5f: 0x0080, 0x1d60: 0x0080, 0x1d61: 0x0080, 0x1d62: 0x0080, 0x1d63: 0x0080,\n\t0x1d64: 0x0080, 0x1d65: 0x0080, 0x1d66: 0x0080, 0x1d67: 0x0080, 0x1d68: 0x0080, 0x1d69: 0x0080,\n\t0x1d6a: 0x0080, 0x1d6b: 0x0080, 0x1d6c: 0x0080, 0x1d6d: 0x0080, 0x1d6e: 0x0080, 0x1d6f: 0x0080,\n\t0x1d70: 0x0080, 0x1d71: 0x0080, 0x1d72: 0x0080, 0x1d73: 0x0080, 0x1d74: 0x0040, 0x1d75: 0x0080,\n\t0x1d76: 0x0080, 0x1d77: 0x0080, 0x1d78: 0x0080, 0x1d79: 0x0080, 0x1d7a: 0x0080, 0x1d7b: 0x0080,\n\t0x1d7c: 0x0080, 0x1d7d: 0x0080, 0x1d7e: 0x0080, 0x1d7f: 0x0080,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x0080, 0x1d81: 0x0080, 0x1d82: 0x0080, 0x1d83: 0x0080, 0x1d84: 0x0080, 0x1d85: 0x0080,\n\t0x1d86: 0x0080, 0x1d87: 0x0080, 0x1d88: 0x0080, 0x1d89: 0x0080, 0x1d8a: 0x0080, 0x1d8b: 0x0080,\n\t0x1d8c: 0x0080, 0x1d8d: 0x0080, 0x1d8e: 0x0080, 0x1d8f: 0x0080, 0x1d90: 0x0040, 0x1d91: 0x0080,\n\t0x1d92: 0x0080, 0x1d93: 0x0080, 0x1d94: 0x0080, 0x1d95: 0x0080, 0x1d96: 0x0080, 0x1d97: 0x0080,\n\t0x1d98: 0x0080, 0x1d99: 0x0080, 0x1d9a: 0x0080, 0x1d9b: 0x0080, 0x1d9c: 0x0080, 0x1d9d: 0x0080,\n\t0x1d9e: 0x0080, 0x1d9f: 0x0080, 0x1da0: 0x0080, 0x1da1: 0x0080, 0x1da2: 0x0080, 0x1da3: 0x0080,\n\t0x1da4: 0x0080, 0x1da5: 0x0080, 0x1da6: 0x0080, 0x1da7: 0x0080, 0x1da8: 0x0080, 0x1da9: 0x0080,\n\t0x1daa: 0x0080, 0x1dab: 0x0080, 0x1dac: 0x0040, 0x1dad: 0x0080, 0x1dae: 0x0080, 0x1daf: 0x0080,\n\t0x1db0: 0x0080, 0x1db1: 0x0080, 0x1db2: 0x0080, 0x1db3: 0x0080, 0x1db4: 0x0080, 0x1db5: 0x0080,\n\t0x1db6: 0x0080, 0x1db7: 0x0080, 0x1db8: 0x0080, 0x1db9: 0x0080, 0x1dba: 0x0080, 0x1dbb: 0x0080,\n\t0x1dbc: 0x0080, 0x1dbd: 0x0080, 0x1dbe: 0x0080, 0x1dbf: 0x0080,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0x0080, 0x1dc1: 0x0080, 0x1dc2: 0x0080, 0x1dc3: 0x0080, 0x1dc4: 0x0080, 0x1dc5: 0x0080,\n\t0x1dc6: 0x0080, 0x1dc7: 0x0080, 0x1dc8: 0x0040, 0x1dc9: 0x0080, 0x1dca: 0x0080, 0x1dcb: 0x0080,\n\t0x1dcc: 0x0080, 0x1dcd: 0x0080, 0x1dce: 0x0080, 0x1dcf: 0x0080, 0x1dd0: 0x0080, 0x1dd1: 0x0080,\n\t0x1dd2: 0x0080, 0x1dd3: 0x0080, 0x1dd4: 0x0080, 0x1dd5: 0x0080, 0x1dd6: 0x0080, 0x1dd7: 0x0080,\n\t0x1dd8: 0x0080, 0x1dd9: 0x0080, 0x1dda: 0x0080, 0x1ddb: 0x0080, 0x1ddc: 0x0080, 0x1ddd: 0x0080,\n\t0x1dde: 0x0080, 0x1ddf: 0x0080, 0x1de0: 0x0080, 0x1de1: 0x0080, 0x1de2: 0x0080, 0x1de3: 0x0080,\n\t0x1de4: 0x0040, 0x1de5: 0x0080, 0x1de6: 0x0080, 0x1de7: 0x0080, 0x1de8: 0x0080, 0x1de9: 0x0080,\n\t0x1dea: 0x0080, 0x1deb: 0x0080, 0x1dec: 0x0080, 0x1ded: 0x0080, 0x1dee: 0x0080, 0x1def: 0x0080,\n\t0x1df0: 0x0080, 0x1df1: 0x0080, 0x1df2: 0x0080, 0x1df3: 0x0080, 0x1df4: 0x0080, 0x1df5: 0x0080,\n\t0x1df6: 0x0080, 0x1df7: 0x0080, 0x1df8: 0x0080, 0x1df9: 0x0080, 0x1dfa: 0x0080, 0x1dfb: 0x0080,\n\t0x1dfc: 0x0080, 0x1dfd: 0x0080, 0x1dfe: 0x0080, 0x1dff: 0x0080,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0x0080, 0x1e01: 0x0080, 0x1e02: 0x0080, 0x1e03: 0x0080, 0x1e04: 0x0080, 0x1e05: 0x0080,\n\t0x1e06: 0x0080, 0x1e07: 0x0080, 0x1e08: 0x0040, 0x1e09: 0x0080, 0x1e0a: 0x0080, 0x1e0b: 0x0080,\n\t0x1e0c: 0x0080, 0x1e0d: 0x0080, 0x1e0e: 0x0080, 0x1e0f: 0x0080, 0x1e10: 0x0080, 0x1e11: 0x0080,\n\t0x1e12: 0x0080, 0x1e13: 0x0080, 0x1e14: 0x0080, 0x1e15: 0x0080, 0x1e16: 0x0080, 0x1e17: 0x0080,\n\t0x1e18: 0x0080, 0x1e19: 0x0080, 0x1e1a: 0x0080, 0x1e1b: 0x0080, 0x1e1c: 0x0080, 0x1e1d: 0x0080,\n\t0x1e1e: 0x0080, 0x1e1f: 0x0080, 0x1e20: 0x0080, 0x1e21: 0x0080, 0x1e22: 0x0080, 0x1e23: 0x0080,\n\t0x1e30: 0x1000, 0x1e31: 0x1000, 0x1e32: 0x1000, 0x1e33: 0x1000, 0x1e34: 0x1000, 0x1e35: 0x1000,\n\t0x1e36: 0x1000, 0x1e37: 0x1000, 0x1e38: 0x1000, 0x1e39: 0x1000, 0x1e3a: 0x1000, 0x1e3b: 0x1000,\n\t0x1e3c: 0x1000, 0x1e3d: 0x1000, 0x1e3e: 0x1000, 0x1e3f: 0x1000,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0x1000, 0x1e41: 0x1000, 0x1e42: 0x1000, 0x1e43: 0x1000, 0x1e44: 0x1000, 0x1e45: 0x1000,\n\t0x1e46: 0x1000, 0x1e4b: 0x0800,\n\t0x1e4c: 0x0800, 0x1e4d: 0x0800, 0x1e4e: 0x0800, 0x1e4f: 0x0800, 0x1e50: 0x0800, 0x1e51: 0x0800,\n\t0x1e52: 0x0800, 0x1e53: 0x0800, 0x1e54: 0x0800, 0x1e55: 0x0800, 0x1e56: 0x0800, 0x1e57: 0x0800,\n\t0x1e58: 0x0800, 0x1e59: 0x0800, 0x1e5a: 0x0800, 0x1e5b: 0x0800, 0x1e5c: 0x0800, 0x1e5d: 0x0800,\n\t0x1e5e: 0x0800, 0x1e5f: 0x0800, 0x1e60: 0x0800, 0x1e61: 0x0800, 0x1e62: 0x0800, 0x1e63: 0x0800,\n\t0x1e64: 0x0800, 0x1e65: 0x0800, 0x1e66: 0x0800, 0x1e67: 0x0800, 0x1e68: 0x0800, 0x1e69: 0x0800,\n\t0x1e6a: 0x0800, 0x1e6b: 0x0800, 0x1e6c: 0x0800, 0x1e6d: 0x0800, 0x1e6e: 0x0800, 0x1e6f: 0x0800,\n\t0x1e70: 0x0800, 0x1e71: 0x0800, 0x1e72: 0x0800, 0x1e73: 0x0800, 0x1e74: 0x0800, 0x1e75: 0x0800,\n\t0x1e76: 0x0800, 0x1e77: 0x0800, 0x1e78: 0x0800, 0x1e79: 0x0800, 0x1e7a: 0x0800, 0x1e7b: 0x0800,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e9e: 0x0004,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0x0004, 0x1ec1: 0x0004, 0x1ec2: 0x0004, 0x1ec3: 0x0004, 0x1ec4: 0x0004, 0x1ec5: 0x0004,\n\t0x1ec6: 0x0004, 0x1ec7: 0x0004, 0x1ec8: 0x0004, 0x1ec9: 0x0004, 0x1eca: 0x0004, 0x1ecb: 0x0004,\n\t0x1ecc: 0x0004, 0x1ecd: 0x0004, 0x1ece: 0x0004, 0x1ecf: 0x0004,\n\t0x1ee0: 0x0004, 0x1ee1: 0x0004, 0x1ee2: 0x0004, 0x1ee3: 0x0004,\n\t0x1ee4: 0x0004, 0x1ee5: 0x0004, 0x1ee6: 0x0004, 0x1ee7: 0x0004, 0x1ee8: 0x0004, 0x1ee9: 0x0004,\n\t0x1eea: 0x0004, 0x1eeb: 0x0004, 0x1eec: 0x0004, 0x1eed: 0x0004, 0x1eee: 0x0004, 0x1eef: 0x0004,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f3f: 0x0002,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f70: 0x0002, 0x1f71: 0x0002, 0x1f72: 0x0002, 0x1f73: 0x0002, 0x1f74: 0x0002, 0x1f75: 0x0002,\n\t0x1f76: 0x0002, 0x1f77: 0x0002, 0x1f78: 0x0002, 0x1f79: 0x0002, 0x1f7a: 0x0002, 0x1f7b: 0x0002,\n\t// Block 0x7e, offset 0x1f80\n\t0x1fbd: 0x0004,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fe0: 0x0004,\n\t// Block 0x80, offset 0x2000\n\t0x2036: 0x0004, 0x2037: 0x0004, 0x2038: 0x0004, 0x2039: 0x0004, 0x203a: 0x0004,\n\t// Block 0x81, offset 0x2040\n\t0x2041: 0x0004, 0x2042: 0x0004, 0x2043: 0x0004, 0x2045: 0x0004,\n\t0x2046: 0x0004,\n\t0x204c: 0x0004, 0x204d: 0x0004, 0x204e: 0x0004, 0x204f: 0x0004,\n\t0x2078: 0x0004, 0x2079: 0x0004, 0x207a: 0x0004,\n\t0x207f: 0x0004,\n\t// Block 0x82, offset 0x2080\n\t0x20a5: 0x0004, 0x20a6: 0x0004,\n\t// Block 0x83, offset 0x20c0\n\t0x20e4: 0x0004, 0x20e5: 0x0004, 0x20e6: 0x0004, 0x20e7: 0x0004,\n\t// Block 0x84, offset 0x2100\n\t0x212b: 0x0004, 0x212c: 0x0004,\n\t// Block 0x85, offset 0x2140\n\t0x217d: 0x0004, 0x217e: 0x0004, 0x217f: 0x0004,\n\t// Block 0x86, offset 0x2180\n\t0x2186: 0x0004, 0x2187: 0x0004, 0x2188: 0x0004, 0x2189: 0x0004, 0x218a: 0x0004, 0x218b: 0x0004,\n\t0x218c: 0x0004, 0x218d: 0x0004, 0x218e: 0x0004, 0x218f: 0x0004, 0x2190: 0x0004,\n\t// Block 0x87, offset 0x21c0\n\t0x21c2: 0x0004, 0x21c3: 0x0004, 0x21c4: 0x0004, 0x21c5: 0x0004,\n\t// Block 0x88, offset 0x2200\n\t0x2200: 0x0400, 0x2201: 0x0004, 0x2202: 0x0400,\n\t0x2238: 0x0004, 0x2239: 0x0004, 0x223a: 0x0004, 0x223b: 0x0004,\n\t0x223c: 0x0004, 0x223d: 0x0004, 0x223e: 0x0004, 0x223f: 0x0004,\n\t// Block 0x89, offset 0x2240\n\t0x2240: 0x0004, 0x2241: 0x0004, 0x2242: 0x0004, 0x2243: 0x0004, 0x2244: 0x0004, 0x2245: 0x0004,\n\t0x2246: 0x0004,\n\t0x2270: 0x0004, 0x2273: 0x0004, 0x2274: 0x0004,\n\t0x227f: 0x0004,\n\t// Block 0x8a, offset 0x2280\n\t0x2280: 0x0004, 0x2281: 0x0004, 0x2282: 0x0400,\n\t0x22b0: 0x0400, 0x22b1: 0x0400, 0x22b2: 0x0400, 0x22b3: 0x0004, 0x22b4: 0x0004, 0x22b5: 0x0004,\n\t0x22b6: 0x0004, 0x22b7: 0x0400, 0x22b8: 0x0400, 0x22b9: 0x0004, 0x22ba: 0x0004,\n\t0x22bd: 0x0100,\n\t// Block 0x8b, offset 0x22c0\n\t0x22c2: 0x0004,\n\t0x22cd: 0x0100,\n\t// Block 0x8c, offset 0x2300\n\t0x2300: 0x0004, 0x2301: 0x0004, 0x2302: 0x0004,\n\t0x2327: 0x0004, 0x2328: 0x0004, 0x2329: 0x0004,\n\t0x232a: 0x0004, 0x232b: 0x0004, 0x232c: 0x0400, 0x232d: 0x0004, 0x232e: 0x0004, 0x232f: 0x0004,\n\t0x2330: 0x0004, 0x2331: 0x0004, 0x2332: 0x0004, 0x2333: 0x0004, 0x2334: 0x0004,\n\t// Block 0x8d, offset 0x2340\n\t0x2345: 0x0400,\n\t0x2346: 0x0400,\n\t0x2373: 0x0004,\n\t// Block 0x8e, offset 0x2380\n\t0x2380: 0x0004, 0x2381: 0x0004, 0x2382: 0x0400,\n\t0x23b3: 0x0400, 0x23b4: 0x0400, 0x23b5: 0x0400,\n\t0x23b6: 0x0004, 0x23b7: 0x0004, 0x23b8: 0x0004, 0x23b9: 0x0004, 0x23ba: 0x0004, 0x23bb: 0x0004,\n\t0x23bc: 0x0004, 0x23bd: 0x0004, 0x23be: 0x0004, 0x23bf: 0x0400,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x0400, 0x23c2: 0x0100, 0x23c3: 0x0100,\n\t0x23c9: 0x0004, 0x23ca: 0x0004, 0x23cb: 0x0004,\n\t0x23cc: 0x0004, 0x23ce: 0x0400, 0x23cf: 0x0004,\n\t// Block 0x90, offset 0x2400\n\t0x242c: 0x0400, 0x242d: 0x0400, 0x242e: 0x0400, 0x242f: 0x0004,\n\t0x2430: 0x0004, 0x2431: 0x0004, 0x2432: 0x0400, 0x2433: 0x0400, 0x2434: 0x0004, 0x2435: 0x0400,\n\t0x2436: 0x0004, 0x2437: 0x0004,\n\t0x243e: 0x0004,\n\t// Block 0x91, offset 0x2440\n\t0x2441: 0x0004,\n\t// Block 0x92, offset 0x2480\n\t0x249f: 0x0004, 0x24a0: 0x0400, 0x24a1: 0x0400, 0x24a2: 0x0400, 0x24a3: 0x0004,\n\t0x24a4: 0x0004, 0x24a5: 0x0004, 0x24a6: 0x0004, 0x24a7: 0x0004, 0x24a8: 0x0004, 0x24a9: 0x0004,\n\t0x24aa: 0x0004,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x0004, 0x24c1: 0x0400, 0x24c2: 0x0400, 0x24c3: 0x0400, 0x24c4: 0x0400,\n\t0x24c7: 0x0400, 0x24c8: 0x0400, 0x24cb: 0x0400,\n\t0x24cc: 0x0400, 0x24cd: 0x0400,\n\t0x24d7: 0x0004,\n\t0x24e2: 0x0400, 0x24e3: 0x0400,\n\t0x24e6: 0x0004, 0x24e7: 0x0004, 0x24e8: 0x0004, 0x24e9: 0x0004,\n\t0x24ea: 0x0004, 0x24eb: 0x0004, 0x24ec: 0x0004,\n\t0x24f0: 0x0004, 0x24f1: 0x0004, 0x24f2: 0x0004, 0x24f3: 0x0004, 0x24f4: 0x0004,\n\t// Block 0x94, offset 0x2500\n\t0x2535: 0x0400,\n\t0x2536: 0x0400, 0x2537: 0x0400, 0x2538: 0x0004, 0x2539: 0x0004, 0x253a: 0x0004, 0x253b: 0x0004,\n\t0x253c: 0x0004, 0x253d: 0x0004, 0x253e: 0x0004, 0x253f: 0x0004,\n\t// Block 0x95, offset 0x2540\n\t0x2540: 0x0400, 0x2541: 0x0400, 0x2542: 0x0004, 0x2543: 0x0004, 0x2544: 0x0004, 0x2545: 0x0400,\n\t0x2546: 0x0004,\n\t0x255e: 0x0004,\n\t// Block 0x96, offset 0x2580\n\t0x25b0: 0x0004, 0x25b1: 0x0400, 0x25b2: 0x0400, 0x25b3: 0x0004, 0x25b4: 0x0004, 0x25b5: 0x0004,\n\t0x25b6: 0x0004, 0x25b7: 0x0004, 0x25b8: 0x0004, 0x25b9: 0x0400, 0x25ba: 0x0004, 0x25bb: 0x0400,\n\t0x25bc: 0x0400, 0x25bd: 0x0004, 0x25be: 0x0400, 0x25bf: 0x0004,\n\t// Block 0x97, offset 0x25c0\n\t0x25c0: 0x0004, 0x25c1: 0x0400, 0x25c2: 0x0004, 0x25c3: 0x0004,\n\t// Block 0x98, offset 0x2600\n\t0x262f: 0x0004,\n\t0x2630: 0x0400, 0x2631: 0x0400, 0x2632: 0x0004, 0x2633: 0x0004, 0x2634: 0x0004, 0x2635: 0x0004,\n\t0x2638: 0x0400, 0x2639: 0x0400, 0x263a: 0x0400, 0x263b: 0x0400,\n\t0x263c: 0x0004, 0x263d: 0x0004, 0x263e: 0x0400, 0x263f: 0x0004,\n\t// Block 0x99, offset 0x2640\n\t0x2640: 0x0004,\n\t0x265c: 0x0004, 0x265d: 0x0004,\n\t// Block 0x9a, offset 0x2680\n\t0x26b0: 0x0400, 0x26b1: 0x0400, 0x26b2: 0x0400, 0x26b3: 0x0004, 0x26b4: 0x0004, 0x26b5: 0x0004,\n\t0x26b6: 0x0004, 0x26b7: 0x0004, 0x26b8: 0x0004, 0x26b9: 0x0004, 0x26ba: 0x0004, 0x26bb: 0x0400,\n\t0x26bc: 0x0400, 0x26bd: 0x0004, 0x26be: 0x0400, 0x26bf: 0x0004,\n\t// Block 0x9b, offset 0x26c0\n\t0x26c0: 0x0004,\n\t// Block 0x9c, offset 0x2700\n\t0x272b: 0x0004, 0x272c: 0x0400, 0x272d: 0x0004, 0x272e: 0x0400, 0x272f: 0x0400,\n\t0x2730: 0x0004, 0x2731: 0x0004, 0x2732: 0x0004, 0x2733: 0x0004, 0x2734: 0x0004, 0x2735: 0x0004,\n\t0x2736: 0x0400, 0x2737: 0x0004,\n\t// Block 0x9d, offset 0x2740\n\t0x275d: 0x0004,\n\t0x275e: 0x0004, 0x275f: 0x0004, 0x2762: 0x0004, 0x2763: 0x0004,\n\t0x2764: 0x0004, 0x2765: 0x0004, 0x2766: 0x0400, 0x2767: 0x0004, 0x2768: 0x0004, 0x2769: 0x0004,\n\t0x276a: 0x0004, 0x276b: 0x0004,\n\t// Block 0x9e, offset 0x2780\n\t0x27ac: 0x0400, 0x27ad: 0x0400, 0x27ae: 0x0400, 0x27af: 0x0004,\n\t0x27b0: 0x0004, 0x27b1: 0x0004, 0x27b2: 0x0004, 0x27b3: 0x0004, 0x27b4: 0x0004, 0x27b5: 0x0004,\n\t0x27b6: 0x0004, 0x27b7: 0x0004, 0x27b8: 0x0400, 0x27b9: 0x0004, 0x27ba: 0x0004,\n\t// Block 0x9f, offset 0x27c0\n\t0x27f0: 0x0004, 0x27f1: 0x0400, 0x27f2: 0x0400, 0x27f3: 0x0400, 0x27f4: 0x0400, 0x27f5: 0x0400,\n\t0x27f7: 0x0400, 0x27f8: 0x0400, 0x27fb: 0x0004,\n\t0x27fc: 0x0004, 0x27fd: 0x0400, 0x27fe: 0x0004, 0x27ff: 0x0100,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0400, 0x2801: 0x0100, 0x2802: 0x0400, 0x2803: 0x0004,\n\t// Block 0xa1, offset 0x2840\n\t0x2851: 0x0400,\n\t0x2852: 0x0400, 0x2853: 0x0400, 0x2854: 0x0004, 0x2855: 0x0004, 0x2856: 0x0004, 0x2857: 0x0004,\n\t0x285a: 0x0004, 0x285b: 0x0004, 0x285c: 0x0400, 0x285d: 0x0400,\n\t0x285e: 0x0400, 0x285f: 0x0400, 0x2860: 0x0004,\n\t0x2864: 0x0400,\n\t// Block 0xa2, offset 0x2880\n\t0x2881: 0x0004, 0x2882: 0x0004, 0x2883: 0x0004, 0x2884: 0x0004, 0x2885: 0x0004,\n\t0x2886: 0x0004, 0x2887: 0x0004, 0x2888: 0x0004, 0x2889: 0x0004, 0x288a: 0x0004,\n\t0x28b3: 0x0004, 0x28b4: 0x0004, 0x28b5: 0x0004,\n\t0x28b6: 0x0004, 0x28b7: 0x0004, 0x28b8: 0x0004, 0x28b9: 0x0400, 0x28ba: 0x0100, 0x28bb: 0x0004,\n\t0x28bc: 0x0004, 0x28bd: 0x0004, 0x28be: 0x0004,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c7: 0x0004,\n\t0x28d1: 0x0004,\n\t0x28d2: 0x0004, 0x28d3: 0x0004, 0x28d4: 0x0004, 0x28d5: 0x0004, 0x28d6: 0x0004, 0x28d7: 0x0400,\n\t0x28d8: 0x0400, 0x28d9: 0x0004, 0x28da: 0x0004, 0x28db: 0x0004,\n\t// Block 0xa4, offset 0x2900\n\t0x2904: 0x0100, 0x2905: 0x0100,\n\t0x2906: 0x0100, 0x2907: 0x0100, 0x2908: 0x0100, 0x2909: 0x0100, 0x290a: 0x0004, 0x290b: 0x0004,\n\t0x290c: 0x0004, 0x290d: 0x0004, 0x290e: 0x0004, 0x290f: 0x0004, 0x2910: 0x0004, 0x2911: 0x0004,\n\t0x2912: 0x0004, 0x2913: 0x0004, 0x2914: 0x0004, 0x2915: 0x0004, 0x2916: 0x0004, 0x2917: 0x0400,\n\t0x2918: 0x0004, 0x2919: 0x0004,\n\t// Block 0xa5, offset 0x2940\n\t0x296f: 0x0400,\n\t0x2970: 0x0004, 0x2971: 0x0004, 0x2972: 0x0004, 0x2973: 0x0004, 0x2974: 0x0004, 0x2975: 0x0004,\n\t0x2976: 0x0004, 0x2978: 0x0004, 0x2979: 0x0004, 0x297a: 0x0004, 0x297b: 0x0004,\n\t0x297c: 0x0004, 0x297d: 0x0004, 0x297e: 0x0400, 0x297f: 0x0004,\n\t// Block 0xa6, offset 0x2980\n\t0x2992: 0x0004, 0x2993: 0x0004, 0x2994: 0x0004, 0x2995: 0x0004, 0x2996: 0x0004, 0x2997: 0x0004,\n\t0x2998: 0x0004, 0x2999: 0x0004, 0x299a: 0x0004, 0x299b: 0x0004, 0x299c: 0x0004, 0x299d: 0x0004,\n\t0x299e: 0x0004, 0x299f: 0x0004, 0x29a0: 0x0004, 0x29a1: 0x0004, 0x29a2: 0x0004, 0x29a3: 0x0004,\n\t0x29a4: 0x0004, 0x29a5: 0x0004, 0x29a6: 0x0004, 0x29a7: 0x0004, 0x29a9: 0x0400,\n\t0x29aa: 0x0004, 0x29ab: 0x0004, 0x29ac: 0x0004, 0x29ad: 0x0004, 0x29ae: 0x0004, 0x29af: 0x0004,\n\t0x29b0: 0x0004, 0x29b1: 0x0400, 0x29b2: 0x0004, 0x29b3: 0x0004, 0x29b4: 0x0400, 0x29b5: 0x0004,\n\t0x29b6: 0x0004,\n\t// Block 0xa7, offset 0x29c0\n\t0x29f1: 0x0004, 0x29f2: 0x0004, 0x29f3: 0x0004, 0x29f4: 0x0004, 0x29f5: 0x0004,\n\t0x29f6: 0x0004, 0x29fa: 0x0004,\n\t0x29fc: 0x0004, 0x29fd: 0x0004, 0x29ff: 0x0004,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a00: 0x0004, 0x2a01: 0x0004, 0x2a02: 0x0004, 0x2a03: 0x0004, 0x2a04: 0x0004, 0x2a05: 0x0004,\n\t0x2a06: 0x0100, 0x2a07: 0x0004,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a4a: 0x0400, 0x2a4b: 0x0400,\n\t0x2a4c: 0x0400, 0x2a4d: 0x0400, 0x2a4e: 0x0400, 0x2a50: 0x0004, 0x2a51: 0x0004,\n\t0x2a53: 0x0400, 0x2a54: 0x0400, 0x2a55: 0x0004, 0x2a56: 0x0400, 0x2a57: 0x0004,\n\t// Block 0xaa, offset 0x2a80\n\t0x2ab3: 0x0004, 0x2ab4: 0x0004, 0x2ab5: 0x0400,\n\t0x2ab6: 0x0400,\n\t// Block 0xab, offset 0x2ac0\n\t0x2ac0: 0x0004, 0x2ac1: 0x0004, 0x2ac2: 0x0100, 0x2ac3: 0x0400,\n\t0x2af4: 0x0400, 0x2af5: 0x0400,\n\t0x2af6: 0x0004, 0x2af7: 0x0004, 0x2af8: 0x0004, 0x2af9: 0x0004, 0x2afa: 0x0004,\n\t0x2afe: 0x0400, 0x2aff: 0x0400,\n\t// Block 0xac, offset 0x2b00\n\t0x2b00: 0x0004, 0x2b01: 0x0400, 0x2b02: 0x0004,\n\t// Block 0xad, offset 0x2b40\n\t0x2b70: 0x0002, 0x2b71: 0x0002, 0x2b72: 0x0002, 0x2b73: 0x0002, 0x2b74: 0x0002, 0x2b75: 0x0002,\n\t0x2b76: 0x0002, 0x2b77: 0x0002, 0x2b78: 0x0002, 0x2b79: 0x0002, 0x2b7a: 0x0002, 0x2b7b: 0x0002,\n\t0x2b7c: 0x0002, 0x2b7d: 0x0002, 0x2b7e: 0x0002, 0x2b7f: 0x0002,\n\t// Block 0xae, offset 0x2b80\n\t0x2b80: 0x0004,\n\t0x2b87: 0x0004, 0x2b88: 0x0004, 0x2b89: 0x0004, 0x2b8a: 0x0004, 0x2b8b: 0x0004,\n\t0x2b8c: 0x0004, 0x2b8d: 0x0004, 0x2b8e: 0x0004, 0x2b8f: 0x0004, 0x2b90: 0x0004, 0x2b91: 0x0004,\n\t0x2b92: 0x0004, 0x2b93: 0x0004, 0x2b94: 0x0004, 0x2b95: 0x0004,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bf0: 0x0004, 0x2bf1: 0x0004, 0x2bf2: 0x0004, 0x2bf3: 0x0004, 0x2bf4: 0x0004,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c30: 0x0004, 0x2c31: 0x0004, 0x2c32: 0x0004, 0x2c33: 0x0004, 0x2c34: 0x0004, 0x2c35: 0x0004,\n\t0x2c36: 0x0004,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c4f: 0x0004, 0x2c51: 0x0400,\n\t0x2c52: 0x0400, 0x2c53: 0x0400, 0x2c54: 0x0400, 0x2c55: 0x0400, 0x2c56: 0x0400, 0x2c57: 0x0400,\n\t0x2c58: 0x0400, 0x2c59: 0x0400, 0x2c5a: 0x0400, 0x2c5b: 0x0400, 0x2c5c: 0x0400, 0x2c5d: 0x0400,\n\t0x2c5e: 0x0400, 0x2c5f: 0x0400, 0x2c60: 0x0400, 0x2c61: 0x0400, 0x2c62: 0x0400, 0x2c63: 0x0400,\n\t0x2c64: 0x0400, 0x2c65: 0x0400, 0x2c66: 0x0400, 0x2c67: 0x0400, 0x2c68: 0x0400, 0x2c69: 0x0400,\n\t0x2c6a: 0x0400, 0x2c6b: 0x0400, 0x2c6c: 0x0400, 0x2c6d: 0x0400, 0x2c6e: 0x0400, 0x2c6f: 0x0400,\n\t0x2c70: 0x0400, 0x2c71: 0x0400, 0x2c72: 0x0400, 0x2c73: 0x0400, 0x2c74: 0x0400, 0x2c75: 0x0400,\n\t0x2c76: 0x0400, 0x2c77: 0x0400, 0x2c78: 0x0400, 0x2c79: 0x0400, 0x2c7a: 0x0400, 0x2c7b: 0x0400,\n\t0x2c7c: 0x0400, 0x2c7d: 0x0400, 0x2c7e: 0x0400, 0x2c7f: 0x0400,\n\t// Block 0xb2, offset 0x2c80\n\t0x2c80: 0x0400, 0x2c81: 0x0400, 0x2c82: 0x0400, 0x2c83: 0x0400, 0x2c84: 0x0400, 0x2c85: 0x0400,\n\t0x2c86: 0x0400, 0x2c87: 0x0400,\n\t0x2c8f: 0x0004, 0x2c90: 0x0004, 0x2c91: 0x0004,\n\t0x2c92: 0x0004,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2ce4: 0x0004,\n\t0x2cf0: 0x0400, 0x2cf1: 0x0400,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d1d: 0x0004,\n\t0x2d1e: 0x0004, 0x2d20: 0x0002, 0x2d21: 0x0002, 0x2d22: 0x0002, 0x2d23: 0x0002,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d40: 0x0004, 0x2d41: 0x0004, 0x2d42: 0x0004, 0x2d43: 0x0004, 0x2d44: 0x0004, 0x2d45: 0x0004,\n\t0x2d46: 0x0004, 0x2d47: 0x0004, 0x2d48: 0x0004, 0x2d49: 0x0004, 0x2d4a: 0x0004, 0x2d4b: 0x0004,\n\t0x2d4c: 0x0004, 0x2d4d: 0x0004, 0x2d4e: 0x0004, 0x2d4f: 0x0004, 0x2d50: 0x0004, 0x2d51: 0x0004,\n\t0x2d52: 0x0004, 0x2d53: 0x0004, 0x2d54: 0x0004, 0x2d55: 0x0004, 0x2d56: 0x0004, 0x2d57: 0x0004,\n\t0x2d58: 0x0004, 0x2d59: 0x0004, 0x2d5a: 0x0004, 0x2d5b: 0x0004, 0x2d5c: 0x0004, 0x2d5d: 0x0004,\n\t0x2d5e: 0x0004, 0x2d5f: 0x0004, 0x2d60: 0x0004, 0x2d61: 0x0004, 0x2d62: 0x0004, 0x2d63: 0x0004,\n\t0x2d64: 0x0004, 0x2d65: 0x0004, 0x2d66: 0x0004, 0x2d67: 0x0004, 0x2d68: 0x0004, 0x2d69: 0x0004,\n\t0x2d6a: 0x0004, 0x2d6b: 0x0004, 0x2d6c: 0x0004, 0x2d6d: 0x0004,\n\t0x2d70: 0x0004, 0x2d71: 0x0004, 0x2d72: 0x0004, 0x2d73: 0x0004, 0x2d74: 0x0004, 0x2d75: 0x0004,\n\t0x2d76: 0x0004, 0x2d77: 0x0004, 0x2d78: 0x0004, 0x2d79: 0x0004, 0x2d7a: 0x0004, 0x2d7b: 0x0004,\n\t0x2d7c: 0x0004, 0x2d7d: 0x0004, 0x2d7e: 0x0004, 0x2d7f: 0x0004,\n\t// Block 0xb6, offset 0x2d80\n\t0x2d80: 0x0004, 0x2d81: 0x0004, 0x2d82: 0x0004, 0x2d83: 0x0004, 0x2d84: 0x0004, 0x2d85: 0x0004,\n\t0x2d86: 0x0004,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2de5: 0x0004, 0x2de6: 0x0400, 0x2de7: 0x0004, 0x2de8: 0x0004, 0x2de9: 0x0004,\n\t0x2ded: 0x0400, 0x2dee: 0x0004, 0x2def: 0x0004,\n\t0x2df0: 0x0004, 0x2df1: 0x0004, 0x2df2: 0x0004, 0x2df3: 0x0002, 0x2df4: 0x0002, 0x2df5: 0x0002,\n\t0x2df6: 0x0002, 0x2df7: 0x0002, 0x2df8: 0x0002, 0x2df9: 0x0002, 0x2dfa: 0x0002, 0x2dfb: 0x0004,\n\t0x2dfc: 0x0004, 0x2dfd: 0x0004, 0x2dfe: 0x0004, 0x2dff: 0x0004,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e00: 0x0004, 0x2e01: 0x0004, 0x2e02: 0x0004, 0x2e05: 0x0004,\n\t0x2e06: 0x0004, 0x2e07: 0x0004, 0x2e08: 0x0004, 0x2e09: 0x0004, 0x2e0a: 0x0004, 0x2e0b: 0x0004,\n\t0x2e2a: 0x0004, 0x2e2b: 0x0004, 0x2e2c: 0x0004, 0x2e2d: 0x0004,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e42: 0x0004, 0x2e43: 0x0004, 0x2e44: 0x0004,\n\t// Block 0xba, offset 0x2e80\n\t0x2e80: 0x0004, 0x2e81: 0x0004, 0x2e82: 0x0004, 0x2e83: 0x0004, 0x2e84: 0x0004, 0x2e85: 0x0004,\n\t0x2e86: 0x0004, 0x2e87: 0x0004, 0x2e88: 0x0004, 0x2e89: 0x0004, 0x2e8a: 0x0004, 0x2e8b: 0x0004,\n\t0x2e8c: 0x0004, 0x2e8d: 0x0004, 0x2e8e: 0x0004, 0x2e8f: 0x0004, 0x2e90: 0x0004, 0x2e91: 0x0004,\n\t0x2e92: 0x0004, 0x2e93: 0x0004, 0x2e94: 0x0004, 0x2e95: 0x0004, 0x2e96: 0x0004, 0x2e97: 0x0004,\n\t0x2e98: 0x0004, 0x2e99: 0x0004, 0x2e9a: 0x0004, 0x2e9b: 0x0004, 0x2e9c: 0x0004, 0x2e9d: 0x0004,\n\t0x2e9e: 0x0004, 0x2e9f: 0x0004, 0x2ea0: 0x0004, 0x2ea1: 0x0004, 0x2ea2: 0x0004, 0x2ea3: 0x0004,\n\t0x2ea4: 0x0004, 0x2ea5: 0x0004, 0x2ea6: 0x0004, 0x2ea7: 0x0004, 0x2ea8: 0x0004, 0x2ea9: 0x0004,\n\t0x2eaa: 0x0004, 0x2eab: 0x0004, 0x2eac: 0x0004, 0x2ead: 0x0004, 0x2eae: 0x0004, 0x2eaf: 0x0004,\n\t0x2eb0: 0x0004, 0x2eb1: 0x0004, 0x2eb2: 0x0004, 0x2eb3: 0x0004, 0x2eb4: 0x0004, 0x2eb5: 0x0004,\n\t0x2eb6: 0x0004, 0x2ebb: 0x0004,\n\t0x2ebc: 0x0004, 0x2ebd: 0x0004, 0x2ebe: 0x0004, 0x2ebf: 0x0004,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ec0: 0x0004, 0x2ec1: 0x0004, 0x2ec2: 0x0004, 0x2ec3: 0x0004, 0x2ec4: 0x0004, 0x2ec5: 0x0004,\n\t0x2ec6: 0x0004, 0x2ec7: 0x0004, 0x2ec8: 0x0004, 0x2ec9: 0x0004, 0x2eca: 0x0004, 0x2ecb: 0x0004,\n\t0x2ecc: 0x0004, 0x2ecd: 0x0004, 0x2ece: 0x0004, 0x2ecf: 0x0004, 0x2ed0: 0x0004, 0x2ed1: 0x0004,\n\t0x2ed2: 0x0004, 0x2ed3: 0x0004, 0x2ed4: 0x0004, 0x2ed5: 0x0004, 0x2ed6: 0x0004, 0x2ed7: 0x0004,\n\t0x2ed8: 0x0004, 0x2ed9: 0x0004, 0x2eda: 0x0004, 0x2edb: 0x0004, 0x2edc: 0x0004, 0x2edd: 0x0004,\n\t0x2ede: 0x0004, 0x2edf: 0x0004, 0x2ee0: 0x0004, 0x2ee1: 0x0004, 0x2ee2: 0x0004, 0x2ee3: 0x0004,\n\t0x2ee4: 0x0004, 0x2ee5: 0x0004, 0x2ee6: 0x0004, 0x2ee7: 0x0004, 0x2ee8: 0x0004, 0x2ee9: 0x0004,\n\t0x2eea: 0x0004, 0x2eeb: 0x0004, 0x2eec: 0x0004,\n\t0x2ef5: 0x0004,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f04: 0x0004,\n\t0x2f1b: 0x0004, 0x2f1c: 0x0004, 0x2f1d: 0x0004,\n\t0x2f1e: 0x0004, 0x2f1f: 0x0004, 0x2f21: 0x0004, 0x2f22: 0x0004, 0x2f23: 0x0004,\n\t0x2f24: 0x0004, 0x2f25: 0x0004, 0x2f26: 0x0004, 0x2f27: 0x0004, 0x2f28: 0x0004, 0x2f29: 0x0004,\n\t0x2f2a: 0x0004, 0x2f2b: 0x0004, 0x2f2c: 0x0004, 0x2f2d: 0x0004, 0x2f2e: 0x0004, 0x2f2f: 0x0004,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f40: 0x0004, 0x2f41: 0x0004, 0x2f42: 0x0004, 0x2f43: 0x0004, 0x2f44: 0x0004, 0x2f45: 0x0004,\n\t0x2f46: 0x0004, 0x2f48: 0x0004, 0x2f49: 0x0004, 0x2f4a: 0x0004, 0x2f4b: 0x0004,\n\t0x2f4c: 0x0004, 0x2f4d: 0x0004, 0x2f4e: 0x0004, 0x2f4f: 0x0004, 0x2f50: 0x0004, 0x2f51: 0x0004,\n\t0x2f52: 0x0004, 0x2f53: 0x0004, 0x2f54: 0x0004, 0x2f55: 0x0004, 0x2f56: 0x0004, 0x2f57: 0x0004,\n\t0x2f58: 0x0004, 0x2f5b: 0x0004, 0x2f5c: 0x0004, 0x2f5d: 0x0004,\n\t0x2f5e: 0x0004, 0x2f5f: 0x0004, 0x2f60: 0x0004, 0x2f61: 0x0004, 0x2f63: 0x0004,\n\t0x2f64: 0x0004, 0x2f66: 0x0004, 0x2f67: 0x0004, 0x2f68: 0x0004, 0x2f69: 0x0004,\n\t0x2f6a: 0x0004,\n\t// Block 0xbe, offset 0x2f80\n\t0x2f8f: 0x0004,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2fee: 0x0004,\n\t// Block 0xc0, offset 0x3000\n\t0x302c: 0x0004, 0x302d: 0x0004, 0x302e: 0x0004, 0x302f: 0x0004,\n\t// Block 0xc1, offset 0x3040\n\t0x3050: 0x0004, 0x3051: 0x0004,\n\t0x3052: 0x0004, 0x3053: 0x0004, 0x3054: 0x0004, 0x3055: 0x0004, 0x3056: 0x0004,\n\t// Block 0xc2, offset 0x3080\n\t0x3084: 0x0004, 0x3085: 0x0004,\n\t0x3086: 0x0004, 0x3087: 0x0004, 0x3088: 0x0004, 0x3089: 0x0004, 0x308a: 0x0004,\n\t// Block 0xc3, offset 0x30c0\n\t0x30cd: 0x0008, 0x30ce: 0x0008, 0x30cf: 0x0008,\n\t0x30ef: 0x0008,\n\t// Block 0xc4, offset 0x3100\n\t0x312c: 0x0008, 0x312d: 0x0008, 0x312e: 0x0008, 0x312f: 0x0008,\n\t0x3130: 0x0008, 0x3131: 0x0008,\n\t0x313e: 0x0008, 0x313f: 0x0008,\n\t// Block 0xc5, offset 0x3140\n\t0x314e: 0x0008, 0x3151: 0x0008,\n\t0x3152: 0x0008, 0x3153: 0x0008, 0x3154: 0x0008, 0x3155: 0x0008, 0x3156: 0x0008, 0x3157: 0x0008,\n\t0x3158: 0x0008, 0x3159: 0x0008, 0x315a: 0x0008,\n\t0x316d: 0x0008, 0x316e: 0x0008, 0x316f: 0x0008,\n\t0x3170: 0x0008, 0x3171: 0x0008, 0x3172: 0x0008, 0x3173: 0x0008, 0x3174: 0x0008, 0x3175: 0x0008,\n\t0x3176: 0x0008, 0x3177: 0x0008, 0x3178: 0x0008, 0x3179: 0x0008, 0x317a: 0x0008, 0x317b: 0x0008,\n\t0x317c: 0x0008, 0x317d: 0x0008, 0x317e: 0x0008, 0x317f: 0x0008,\n\t// Block 0xc6, offset 0x3180\n\t0x3180: 0x0008, 0x3181: 0x0008, 0x3182: 0x0008, 0x3183: 0x0008, 0x3184: 0x0008, 0x3185: 0x0008,\n\t0x3186: 0x0008, 0x3187: 0x0008, 0x3188: 0x0008, 0x3189: 0x0008, 0x318a: 0x0008, 0x318b: 0x0008,\n\t0x318c: 0x0008, 0x318d: 0x0008, 0x318e: 0x0008, 0x318f: 0x0008, 0x3190: 0x0008, 0x3191: 0x0008,\n\t0x3192: 0x0008, 0x3193: 0x0008, 0x3194: 0x0008, 0x3195: 0x0008, 0x3196: 0x0008, 0x3197: 0x0008,\n\t0x3198: 0x0008, 0x3199: 0x0008, 0x319a: 0x0008, 0x319b: 0x0008, 0x319c: 0x0008, 0x319d: 0x0008,\n\t0x319e: 0x0008, 0x319f: 0x0008, 0x31a0: 0x0008, 0x31a1: 0x0008, 0x31a2: 0x0008, 0x31a3: 0x0008,\n\t0x31a4: 0x0008, 0x31a5: 0x0008, 0x31a6: 0x0200, 0x31a7: 0x0200, 0x31a8: 0x0200, 0x31a9: 0x0200,\n\t0x31aa: 0x0200, 0x31ab: 0x0200, 0x31ac: 0x0200, 0x31ad: 0x0200, 0x31ae: 0x0200, 0x31af: 0x0200,\n\t0x31b0: 0x0200, 0x31b1: 0x0200, 0x31b2: 0x0200, 0x31b3: 0x0200, 0x31b4: 0x0200, 0x31b5: 0x0200,\n\t0x31b6: 0x0200, 0x31b7: 0x0200, 0x31b8: 0x0200, 0x31b9: 0x0200, 0x31ba: 0x0200, 0x31bb: 0x0200,\n\t0x31bc: 0x0200, 0x31bd: 0x0200, 0x31be: 0x0200, 0x31bf: 0x0200,\n\t// Block 0xc7, offset 0x31c0\n\t0x31c1: 0x0008, 0x31c2: 0x0008, 0x31c3: 0x0008, 0x31c4: 0x0008, 0x31c5: 0x0008,\n\t0x31c6: 0x0008, 0x31c7: 0x0008, 0x31c8: 0x0008, 0x31c9: 0x0008, 0x31ca: 0x0008, 0x31cb: 0x0008,\n\t0x31cc: 0x0008, 0x31cd: 0x0008, 0x31ce: 0x0008, 0x31cf: 0x0008,\n\t0x31da: 0x0008,\n\t0x31ef: 0x0008,\n\t0x31f2: 0x0008, 0x31f3: 0x0008, 0x31f4: 0x0008, 0x31f5: 0x0008,\n\t0x31f6: 0x0008, 0x31f7: 0x0008, 0x31f8: 0x0008, 0x31f9: 0x0008, 0x31fa: 0x0008,\n\t0x31fc: 0x0008, 0x31fd: 0x0008, 0x31fe: 0x0008, 0x31ff: 0x0008,\n\t// Block 0xc8, offset 0x3200\n\t0x3209: 0x0008, 0x320a: 0x0008, 0x320b: 0x0008,\n\t0x320c: 0x0008, 0x320d: 0x0008, 0x320e: 0x0008, 0x320f: 0x0008, 0x3210: 0x0008, 0x3211: 0x0008,\n\t0x3212: 0x0008, 0x3213: 0x0008, 0x3214: 0x0008, 0x3215: 0x0008, 0x3216: 0x0008, 0x3217: 0x0008,\n\t0x3218: 0x0008, 0x3219: 0x0008, 0x321a: 0x0008, 0x321b: 0x0008, 0x321c: 0x0008, 0x321d: 0x0008,\n\t0x321e: 0x0008, 0x321f: 0x0008, 0x3220: 0x0008, 0x3221: 0x0008, 0x3222: 0x0008, 0x3223: 0x0008,\n\t0x3224: 0x0008, 0x3225: 0x0008, 0x3226: 0x0008, 0x3227: 0x0008, 0x3228: 0x0008, 0x3229: 0x0008,\n\t0x322a: 0x0008, 0x322b: 0x0008, 0x322c: 0x0008, 0x322d: 0x0008, 0x322e: 0x0008, 0x322f: 0x0008,\n\t0x3230: 0x0008, 0x3231: 0x0008, 0x3232: 0x0008, 0x3233: 0x0008, 0x3234: 0x0008, 0x3235: 0x0008,\n\t0x3236: 0x0008, 0x3237: 0x0008, 0x3238: 0x0008, 0x3239: 0x0008, 0x323a: 0x0008, 0x323b: 0x0008,\n\t0x323c: 0x0008, 0x323d: 0x0008, 0x323e: 0x0008, 0x323f: 0x0008,\n\t// Block 0xc9, offset 0x3240\n\t0x3240: 0x0008, 0x3241: 0x0008, 0x3242: 0x0008, 0x3243: 0x0008, 0x3244: 0x0008, 0x3245: 0x0008,\n\t0x3246: 0x0008, 0x3247: 0x0008, 0x3248: 0x0008, 0x3249: 0x0008, 0x324a: 0x0008, 0x324b: 0x0008,\n\t0x324c: 0x0008, 0x324d: 0x0008, 0x324e: 0x0008, 0x324f: 0x0008, 0x3250: 0x0008, 0x3251: 0x0008,\n\t0x3252: 0x0008, 0x3253: 0x0008, 0x3254: 0x0008, 0x3255: 0x0008, 0x3256: 0x0008, 0x3257: 0x0008,\n\t0x3258: 0x0008, 0x3259: 0x0008, 0x325a: 0x0008, 0x325b: 0x0008, 0x325c: 0x0008, 0x325d: 0x0008,\n\t0x325e: 0x0008, 0x325f: 0x0008, 0x3260: 0x0008, 0x3261: 0x0008, 0x3262: 0x0008, 0x3263: 0x0008,\n\t0x3264: 0x0008, 0x3265: 0x0008, 0x3266: 0x0008, 0x3267: 0x0008, 0x3268: 0x0008, 0x3269: 0x0008,\n\t0x326a: 0x0008, 0x326b: 0x0008, 0x326c: 0x0008, 0x326d: 0x0008, 0x326e: 0x0008, 0x326f: 0x0008,\n\t0x3270: 0x0008, 0x3271: 0x0008, 0x3272: 0x0008, 0x3273: 0x0008, 0x3274: 0x0008, 0x3275: 0x0008,\n\t0x3276: 0x0008, 0x3277: 0x0008, 0x3278: 0x0008, 0x3279: 0x0008, 0x327a: 0x0008, 0x327b: 0x0004,\n\t0x327c: 0x0004, 0x327d: 0x0004, 0x327e: 0x0004, 0x327f: 0x0004,\n\t// Block 0xca, offset 0x3280\n\t0x3280: 0x0008, 0x3281: 0x0008, 0x3282: 0x0008, 0x3283: 0x0008, 0x3284: 0x0008, 0x3285: 0x0008,\n\t0x3286: 0x0008, 0x3287: 0x0008, 0x3288: 0x0008, 0x3289: 0x0008, 0x328a: 0x0008, 0x328b: 0x0008,\n\t0x328c: 0x0008, 0x328d: 0x0008, 0x328e: 0x0008, 0x328f: 0x0008, 0x3290: 0x0008, 0x3291: 0x0008,\n\t0x3292: 0x0008, 0x3293: 0x0008, 0x3294: 0x0008, 0x3295: 0x0008, 0x3296: 0x0008, 0x3297: 0x0008,\n\t0x3298: 0x0008, 0x3299: 0x0008, 0x329a: 0x0008, 0x329b: 0x0008, 0x329c: 0x0008, 0x329d: 0x0008,\n\t0x329e: 0x0008, 0x329f: 0x0008, 0x32a0: 0x0008, 0x32a1: 0x0008, 0x32a2: 0x0008, 0x32a3: 0x0008,\n\t0x32a4: 0x0008, 0x32a5: 0x0008, 0x32a6: 0x0008, 0x32a7: 0x0008, 0x32a8: 0x0008, 0x32a9: 0x0008,\n\t0x32aa: 0x0008, 0x32ab: 0x0008, 0x32ac: 0x0008, 0x32ad: 0x0008, 0x32ae: 0x0008, 0x32af: 0x0008,\n\t0x32b0: 0x0008, 0x32b1: 0x0008, 0x32b2: 0x0008, 0x32b3: 0x0008, 0x32b4: 0x0008, 0x32b5: 0x0008,\n\t0x32b6: 0x0008, 0x32b7: 0x0008, 0x32b8: 0x0008, 0x32b9: 0x0008, 0x32ba: 0x0008, 0x32bb: 0x0008,\n\t0x32bc: 0x0008, 0x32bd: 0x0008,\n\t// Block 0xcb, offset 0x32c0\n\t0x32c6: 0x0008, 0x32c7: 0x0008, 0x32c8: 0x0008, 0x32c9: 0x0008, 0x32ca: 0x0008, 0x32cb: 0x0008,\n\t0x32cc: 0x0008, 0x32cd: 0x0008, 0x32ce: 0x0008, 0x32cf: 0x0008, 0x32d0: 0x0008, 0x32d1: 0x0008,\n\t0x32d2: 0x0008, 0x32d3: 0x0008, 0x32d4: 0x0008, 0x32d5: 0x0008, 0x32d6: 0x0008, 0x32d7: 0x0008,\n\t0x32d8: 0x0008, 0x32d9: 0x0008, 0x32da: 0x0008, 0x32db: 0x0008, 0x32dc: 0x0008, 0x32dd: 0x0008,\n\t0x32de: 0x0008, 0x32df: 0x0008, 0x32e0: 0x0008, 0x32e1: 0x0008, 0x32e2: 0x0008, 0x32e3: 0x0008,\n\t0x32e4: 0x0008, 0x32e5: 0x0008, 0x32e6: 0x0008, 0x32e7: 0x0008, 0x32e8: 0x0008, 0x32e9: 0x0008,\n\t0x32ea: 0x0008, 0x32eb: 0x0008, 0x32ec: 0x0008, 0x32ed: 0x0008, 0x32ee: 0x0008, 0x32ef: 0x0008,\n\t0x32f0: 0x0008, 0x32f1: 0x0008, 0x32f2: 0x0008, 0x32f3: 0x0008, 0x32f4: 0x0008, 0x32f5: 0x0008,\n\t0x32f6: 0x0008, 0x32f7: 0x0008, 0x32f8: 0x0008, 0x32f9: 0x0008, 0x32fa: 0x0008, 0x32fb: 0x0008,\n\t0x32fc: 0x0008, 0x32fd: 0x0008, 0x32fe: 0x0008, 0x32ff: 0x0008,\n\t// Block 0xcc, offset 0x3300\n\t0x3300: 0x0008, 0x3301: 0x0008, 0x3302: 0x0008, 0x3303: 0x0008, 0x3304: 0x0008, 0x3305: 0x0008,\n\t0x3306: 0x0008, 0x3307: 0x0008, 0x3308: 0x0008, 0x3309: 0x0008, 0x330a: 0x0008, 0x330b: 0x0008,\n\t0x330c: 0x0008, 0x330d: 0x0008, 0x330e: 0x0008, 0x330f: 0x0008,\n\t// Block 0xcd, offset 0x3340\n\t0x3374: 0x0008, 0x3375: 0x0008,\n\t0x3376: 0x0008, 0x3377: 0x0008, 0x3378: 0x0008, 0x3379: 0x0008, 0x337a: 0x0008, 0x337b: 0x0008,\n\t0x337c: 0x0008, 0x337d: 0x0008, 0x337e: 0x0008, 0x337f: 0x0008,\n\t// Block 0xce, offset 0x3380\n\t0x3395: 0x0008, 0x3396: 0x0008, 0x3397: 0x0008,\n\t0x3398: 0x0008, 0x3399: 0x0008, 0x339a: 0x0008, 0x339b: 0x0008, 0x339c: 0x0008, 0x339d: 0x0008,\n\t0x339e: 0x0008, 0x339f: 0x0008, 0x33a0: 0x0008, 0x33a1: 0x0008, 0x33a2: 0x0008, 0x33a3: 0x0008,\n\t0x33a4: 0x0008, 0x33a5: 0x0008, 0x33a6: 0x0008, 0x33a7: 0x0008, 0x33a8: 0x0008, 0x33a9: 0x0008,\n\t0x33aa: 0x0008, 0x33ab: 0x0008, 0x33ac: 0x0008, 0x33ad: 0x0008, 0x33ae: 0x0008, 0x33af: 0x0008,\n\t0x33b0: 0x0008, 0x33b1: 0x0008, 0x33b2: 0x0008, 0x33b3: 0x0008, 0x33b4: 0x0008, 0x33b5: 0x0008,\n\t0x33b6: 0x0008, 0x33b7: 0x0008, 0x33b8: 0x0008, 0x33b9: 0x0008, 0x33ba: 0x0008, 0x33bb: 0x0008,\n\t0x33bc: 0x0008, 0x33bd: 0x0008, 0x33be: 0x0008, 0x33bf: 0x0008,\n\t// Block 0xcf, offset 0x33c0\n\t0x33cc: 0x0008, 0x33cd: 0x0008, 0x33ce: 0x0008, 0x33cf: 0x0008,\n\t// Block 0xd0, offset 0x3400\n\t0x3408: 0x0008, 0x3409: 0x0008, 0x340a: 0x0008, 0x340b: 0x0008,\n\t0x340c: 0x0008, 0x340d: 0x0008, 0x340e: 0x0008, 0x340f: 0x0008,\n\t0x341a: 0x0008, 0x341b: 0x0008, 0x341c: 0x0008, 0x341d: 0x0008,\n\t0x341e: 0x0008, 0x341f: 0x0008,\n\t// Block 0xd1, offset 0x3440\n\t0x3448: 0x0008, 0x3449: 0x0008, 0x344a: 0x0008, 0x344b: 0x0008,\n\t0x344c: 0x0008, 0x344d: 0x0008, 0x344e: 0x0008, 0x344f: 0x0008,\n\t0x346e: 0x0008, 0x346f: 0x0008,\n\t0x3470: 0x0008, 0x3471: 0x0008, 0x3472: 0x0008, 0x3473: 0x0008, 0x3474: 0x0008, 0x3475: 0x0008,\n\t0x3476: 0x0008, 0x3477: 0x0008, 0x3478: 0x0008, 0x3479: 0x0008, 0x347a: 0x0008, 0x347b: 0x0008,\n\t0x347c: 0x0008, 0x347d: 0x0008, 0x347e: 0x0008, 0x347f: 0x0008,\n\t// Block 0xd2, offset 0x3480\n\t0x348c: 0x0008, 0x348d: 0x0008, 0x348e: 0x0008, 0x348f: 0x0008, 0x3490: 0x0008, 0x3491: 0x0008,\n\t0x3492: 0x0008, 0x3493: 0x0008, 0x3494: 0x0008, 0x3495: 0x0008, 0x3496: 0x0008, 0x3497: 0x0008,\n\t0x3498: 0x0008, 0x3499: 0x0008, 0x349a: 0x0008, 0x349b: 0x0008, 0x349c: 0x0008, 0x349d: 0x0008,\n\t0x349e: 0x0008, 0x349f: 0x0008, 0x34a0: 0x0008, 0x34a1: 0x0008, 0x34a2: 0x0008, 0x34a3: 0x0008,\n\t0x34a4: 0x0008, 0x34a5: 0x0008, 0x34a6: 0x0008, 0x34a7: 0x0008, 0x34a8: 0x0008, 0x34a9: 0x0008,\n\t0x34aa: 0x0008, 0x34ab: 0x0008, 0x34ac: 0x0008, 0x34ad: 0x0008, 0x34ae: 0x0008, 0x34af: 0x0008,\n\t0x34b0: 0x0008, 0x34b1: 0x0008, 0x34b2: 0x0008, 0x34b3: 0x0008, 0x34b4: 0x0008, 0x34b5: 0x0008,\n\t0x34b6: 0x0008, 0x34b7: 0x0008, 0x34b8: 0x0008, 0x34b9: 0x0008, 0x34ba: 0x0008,\n\t0x34bc: 0x0008, 0x34bd: 0x0008, 0x34be: 0x0008, 0x34bf: 0x0008,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x0008, 0x34c1: 0x0008, 0x34c2: 0x0008, 0x34c3: 0x0008, 0x34c4: 0x0008, 0x34c5: 0x0008,\n\t0x34c7: 0x0008, 0x34c8: 0x0008, 0x34c9: 0x0008, 0x34ca: 0x0008, 0x34cb: 0x0008,\n\t0x34cc: 0x0008, 0x34cd: 0x0008, 0x34ce: 0x0008, 0x34cf: 0x0008, 0x34d0: 0x0008, 0x34d1: 0x0008,\n\t0x34d2: 0x0008, 0x34d3: 0x0008, 0x34d4: 0x0008, 0x34d5: 0x0008, 0x34d6: 0x0008, 0x34d7: 0x0008,\n\t0x34d8: 0x0008, 0x34d9: 0x0008, 0x34da: 0x0008, 0x34db: 0x0008, 0x34dc: 0x0008, 0x34dd: 0x0008,\n\t0x34de: 0x0008, 0x34df: 0x0008, 0x34e0: 0x0008, 0x34e1: 0x0008, 0x34e2: 0x0008, 0x34e3: 0x0008,\n\t0x34e4: 0x0008, 0x34e5: 0x0008, 0x34e6: 0x0008, 0x34e7: 0x0008, 0x34e8: 0x0008, 0x34e9: 0x0008,\n\t0x34ea: 0x0008, 0x34eb: 0x0008, 0x34ec: 0x0008, 0x34ed: 0x0008, 0x34ee: 0x0008, 0x34ef: 0x0008,\n\t0x34f0: 0x0008, 0x34f1: 0x0008, 0x34f2: 0x0008, 0x34f3: 0x0008, 0x34f4: 0x0008, 0x34f5: 0x0008,\n\t0x34f6: 0x0008, 0x34f7: 0x0008, 0x34f8: 0x0008, 0x34f9: 0x0008, 0x34fa: 0x0008, 0x34fb: 0x0008,\n\t0x34fc: 0x0008, 0x34fd: 0x0008, 0x34fe: 0x0008, 0x34ff: 0x0008,\n\t// Block 0xd4, offset 0x3500\n\t0x3500: 0x0002, 0x3501: 0x0002, 0x3502: 0x0002, 0x3503: 0x0002, 0x3504: 0x0002, 0x3505: 0x0002,\n\t0x3506: 0x0002, 0x3507: 0x0002, 0x3508: 0x0002, 0x3509: 0x0002, 0x350a: 0x0002, 0x350b: 0x0002,\n\t0x350c: 0x0002, 0x350d: 0x0002, 0x350e: 0x0002, 0x350f: 0x0002, 0x3510: 0x0002, 0x3511: 0x0002,\n\t0x3512: 0x0002, 0x3513: 0x0002, 0x3514: 0x0002, 0x3515: 0x0002, 0x3516: 0x0002, 0x3517: 0x0002,\n\t0x3518: 0x0002, 0x3519: 0x0002, 0x351a: 0x0002, 0x351b: 0x0002, 0x351c: 0x0002, 0x351d: 0x0002,\n\t0x351e: 0x0002, 0x351f: 0x0002, 0x3520: 0x0004, 0x3521: 0x0004, 0x3522: 0x0004, 0x3523: 0x0004,\n\t0x3524: 0x0004, 0x3525: 0x0004, 0x3526: 0x0004, 0x3527: 0x0004, 0x3528: 0x0004, 0x3529: 0x0004,\n\t0x352a: 0x0004, 0x352b: 0x0004, 0x352c: 0x0004, 0x352d: 0x0004, 0x352e: 0x0004, 0x352f: 0x0004,\n\t0x3530: 0x0004, 0x3531: 0x0004, 0x3532: 0x0004, 0x3533: 0x0004, 0x3534: 0x0004, 0x3535: 0x0004,\n\t0x3536: 0x0004, 0x3537: 0x0004, 0x3538: 0x0004, 0x3539: 0x0004, 0x353a: 0x0004, 0x353b: 0x0004,\n\t0x353c: 0x0004, 0x353d: 0x0004, 0x353e: 0x0004, 0x353f: 0x0004,\n\t// Block 0xd5, offset 0x3540\n\t0x3540: 0x0002, 0x3541: 0x0002, 0x3542: 0x0002, 0x3543: 0x0002, 0x3544: 0x0002, 0x3545: 0x0002,\n\t0x3546: 0x0002, 0x3547: 0x0002, 0x3548: 0x0002, 0x3549: 0x0002, 0x354a: 0x0002, 0x354b: 0x0002,\n\t0x354c: 0x0002, 0x354d: 0x0002, 0x354e: 0x0002, 0x354f: 0x0002, 0x3550: 0x0002, 0x3551: 0x0002,\n\t0x3552: 0x0002, 0x3553: 0x0002, 0x3554: 0x0002, 0x3555: 0x0002, 0x3556: 0x0002, 0x3557: 0x0002,\n\t0x3558: 0x0002, 0x3559: 0x0002, 0x355a: 0x0002, 0x355b: 0x0002, 0x355c: 0x0002, 0x355d: 0x0002,\n\t0x355e: 0x0002, 0x355f: 0x0002, 0x3560: 0x0002, 0x3561: 0x0002, 0x3562: 0x0002, 0x3563: 0x0002,\n\t0x3564: 0x0002, 0x3565: 0x0002, 0x3566: 0x0002, 0x3567: 0x0002, 0x3568: 0x0002, 0x3569: 0x0002,\n\t0x356a: 0x0002, 0x356b: 0x0002, 0x356c: 0x0002, 0x356d: 0x0002, 0x356e: 0x0002, 0x356f: 0x0002,\n\t0x3570: 0x0002, 0x3571: 0x0002, 0x3572: 0x0002, 0x3573: 0x0002, 0x3574: 0x0002, 0x3575: 0x0002,\n\t0x3576: 0x0002, 0x3577: 0x0002, 0x3578: 0x0002, 0x3579: 0x0002, 0x357a: 0x0002, 0x357b: 0x0002,\n\t0x357c: 0x0002, 0x357d: 0x0002, 0x357e: 0x0002, 0x357f: 0x0002,\n\t// Block 0xd6, offset 0x3580\n\t0x3580: 0x0004, 0x3581: 0x0004, 0x3582: 0x0004, 0x3583: 0x0004, 0x3584: 0x0004, 0x3585: 0x0004,\n\t0x3586: 0x0004, 0x3587: 0x0004, 0x3588: 0x0004, 0x3589: 0x0004, 0x358a: 0x0004, 0x358b: 0x0004,\n\t0x358c: 0x0004, 0x358d: 0x0004, 0x358e: 0x0004, 0x358f: 0x0004, 0x3590: 0x0004, 0x3591: 0x0004,\n\t0x3592: 0x0004, 0x3593: 0x0004, 0x3594: 0x0004, 0x3595: 0x0004, 0x3596: 0x0004, 0x3597: 0x0004,\n\t0x3598: 0x0004, 0x3599: 0x0004, 0x359a: 0x0004, 0x359b: 0x0004, 0x359c: 0x0004, 0x359d: 0x0004,\n\t0x359e: 0x0004, 0x359f: 0x0004, 0x35a0: 0x0004, 0x35a1: 0x0004, 0x35a2: 0x0004, 0x35a3: 0x0004,\n\t0x35a4: 0x0004, 0x35a5: 0x0004, 0x35a6: 0x0004, 0x35a7: 0x0004, 0x35a8: 0x0004, 0x35a9: 0x0004,\n\t0x35aa: 0x0004, 0x35ab: 0x0004, 0x35ac: 0x0004, 0x35ad: 0x0004, 0x35ae: 0x0004, 0x35af: 0x0004,\n\t0x35b0: 0x0002, 0x35b1: 0x0002, 0x35b2: 0x0002, 0x35b3: 0x0002, 0x35b4: 0x0002, 0x35b5: 0x0002,\n\t0x35b6: 0x0002, 0x35b7: 0x0002, 0x35b8: 0x0002, 0x35b9: 0x0002, 0x35ba: 0x0002, 0x35bb: 0x0002,\n\t0x35bc: 0x0002, 0x35bd: 0x0002, 0x35be: 0x0002, 0x35bf: 0x0002,\n}\n\n// graphemesIndex: 25 blocks, 1600 entries, 1600 bytes\n// Block 0 is the zero block.\nvar graphemesIndex = [1600]property{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01,\n\t0xcc: 0x02, 0xcd: 0x03,\n\t0xd2: 0x04, 0xd6: 0x05, 0xd7: 0x06,\n\t0xd8: 0x07, 0xd9: 0x08, 0xdb: 0x09, 0xdc: 0x0a, 0xdd: 0x0b, 0xde: 0x0c, 0xdf: 0x0d,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x14, 0xf3: 0x16,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x0e, 0x121: 0x0f, 0x122: 0x10, 0x123: 0x11, 0x124: 0x12, 0x125: 0x13, 0x126: 0x14, 0x127: 0x15,\n\t0x128: 0x16, 0x129: 0x17, 0x12a: 0x16, 0x12b: 0x18, 0x12c: 0x19, 0x12d: 0x1a, 0x12e: 0x1b, 0x12f: 0x1c,\n\t0x130: 0x1d, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x21, 0x135: 0x22, 0x136: 0x23, 0x137: 0x24,\n\t0x138: 0x25, 0x139: 0x26, 0x13a: 0x27, 0x13b: 0x28, 0x13c: 0x29, 0x13d: 0x2a, 0x13e: 0x2b, 0x13f: 0x2c,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x2d, 0x141: 0x2e, 0x142: 0x2f, 0x144: 0x30, 0x145: 0x31, 0x146: 0x32, 0x147: 0x33,\n\t0x14d: 0x34,\n\t0x15c: 0x35, 0x15d: 0x36, 0x15e: 0x37, 0x15f: 0x38,\n\t0x160: 0x39, 0x162: 0x3a, 0x164: 0x3b,\n\t0x168: 0x3c, 0x169: 0x3d, 0x16a: 0x3e, 0x16b: 0x3f, 0x16c: 0x40, 0x16d: 0x41, 0x16e: 0x42, 0x16f: 0x43,\n\t0x170: 0x44, 0x173: 0x45, 0x177: 0x02,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x46, 0x181: 0x47, 0x183: 0x48, 0x184: 0x49, 0x186: 0x4a,\n\t0x18c: 0x4b, 0x18e: 0x4c, 0x18f: 0x4d,\n\t0x193: 0x4e, 0x196: 0x4f, 0x197: 0x50,\n\t0x198: 0x51, 0x199: 0x52, 0x19a: 0x53, 0x19b: 0x52, 0x19c: 0x54, 0x19d: 0x55, 0x19e: 0x56,\n\t0x1a4: 0x57,\n\t0x1ac: 0x58, 0x1ad: 0x59,\n\t0x1b3: 0x5a, 0x1b5: 0x5b, 0x1b7: 0x5c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x5d, 0x1c2: 0x5e,\n\t0x1ca: 0x5f,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x60, 0x21a: 0x61, 0x21b: 0x62,\n\t0x220: 0x63, 0x222: 0x64, 0x223: 0x65, 0x224: 0x66, 0x225: 0x67, 0x226: 0x68, 0x227: 0x69,\n\t0x228: 0x6a, 0x229: 0x6b, 0x22a: 0x6c, 0x22b: 0x6d, 0x22f: 0x6e,\n\t0x230: 0x6f, 0x231: 0x70, 0x232: 0x71, 0x233: 0x72, 0x234: 0x73, 0x235: 0x74, 0x236: 0x75, 0x237: 0x6f,\n\t0x238: 0x70, 0x239: 0x71, 0x23a: 0x72, 0x23b: 0x73, 0x23c: 0x74, 0x23d: 0x75, 0x23e: 0x6f, 0x23f: 0x70,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x71, 0x241: 0x72, 0x242: 0x73, 0x243: 0x74, 0x244: 0x75, 0x245: 0x6f, 0x246: 0x70, 0x247: 0x71,\n\t0x248: 0x72, 0x249: 0x73, 0x24a: 0x74, 0x24b: 0x75, 0x24c: 0x6f, 0x24d: 0x70, 0x24e: 0x71, 0x24f: 0x72,\n\t0x250: 0x73, 0x251: 0x74, 0x252: 0x75, 0x253: 0x6f, 0x254: 0x70, 0x255: 0x71, 0x256: 0x72, 0x257: 0x73,\n\t0x258: 0x74, 0x259: 0x75, 0x25a: 0x6f, 0x25b: 0x70, 0x25c: 0x71, 0x25d: 0x72, 0x25e: 0x73, 0x25f: 0x74,\n\t0x260: 0x75, 0x261: 0x6f, 0x262: 0x70, 0x263: 0x71, 0x264: 0x72, 0x265: 0x73, 0x266: 0x74, 0x267: 0x75,\n\t0x268: 0x6f, 0x269: 0x70, 0x26a: 0x71, 0x26b: 0x72, 0x26c: 0x73, 0x26d: 0x74, 0x26e: 0x75, 0x26f: 0x6f,\n\t0x270: 0x70, 0x271: 0x71, 0x272: 0x72, 0x273: 0x73, 0x274: 0x74, 0x275: 0x75, 0x276: 0x6f, 0x277: 0x70,\n\t0x278: 0x71, 0x279: 0x72, 0x27a: 0x73, 0x27b: 0x74, 0x27c: 0x75, 0x27d: 0x6f, 0x27e: 0x70, 0x27f: 0x71,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x72, 0x281: 0x73, 0x282: 0x74, 0x283: 0x75, 0x284: 0x6f, 0x285: 0x70, 0x286: 0x71, 0x287: 0x72,\n\t0x288: 0x73, 0x289: 0x74, 0x28a: 0x75, 0x28b: 0x6f, 0x28c: 0x70, 0x28d: 0x71, 0x28e: 0x72, 0x28f: 0x73,\n\t0x290: 0x74, 0x291: 0x75, 0x292: 0x6f, 0x293: 0x70, 0x294: 0x71, 0x295: 0x72, 0x296: 0x73, 0x297: 0x74,\n\t0x298: 0x75, 0x299: 0x6f, 0x29a: 0x70, 0x29b: 0x71, 0x29c: 0x72, 0x29d: 0x73, 0x29e: 0x74, 0x29f: 0x75,\n\t0x2a0: 0x6f, 0x2a1: 0x70, 0x2a2: 0x71, 0x2a3: 0x72, 0x2a4: 0x73, 0x2a5: 0x74, 0x2a6: 0x75, 0x2a7: 0x6f,\n\t0x2a8: 0x70, 0x2a9: 0x71, 0x2aa: 0x72, 0x2ab: 0x73, 0x2ac: 0x74, 0x2ad: 0x75, 0x2ae: 0x6f, 0x2af: 0x70,\n\t0x2b0: 0x71, 0x2b1: 0x72, 0x2b2: 0x73, 0x2b3: 0x74, 0x2b4: 0x75, 0x2b5: 0x6f, 0x2b6: 0x70, 0x2b7: 0x71,\n\t0x2b8: 0x72, 0x2b9: 0x73, 0x2ba: 0x74, 0x2bb: 0x75, 0x2bc: 0x6f, 0x2bd: 0x70, 0x2be: 0x71, 0x2bf: 0x72,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x73, 0x2c1: 0x74, 0x2c2: 0x75, 0x2c3: 0x6f, 0x2c4: 0x70, 0x2c5: 0x71, 0x2c6: 0x72, 0x2c7: 0x73,\n\t0x2c8: 0x74, 0x2c9: 0x75, 0x2ca: 0x6f, 0x2cb: 0x70, 0x2cc: 0x71, 0x2cd: 0x72, 0x2ce: 0x73, 0x2cf: 0x74,\n\t0x2d0: 0x75, 0x2d1: 0x6f, 0x2d2: 0x70, 0x2d3: 0x71, 0x2d4: 0x72, 0x2d5: 0x73, 0x2d6: 0x74, 0x2d7: 0x75,\n\t0x2d8: 0x6f, 0x2d9: 0x70, 0x2da: 0x71, 0x2db: 0x72, 0x2dc: 0x73, 0x2dd: 0x74, 0x2de: 0x76, 0x2df: 0x77,\n\t// Block 0xc, offset 0x300\n\t0x32c: 0x78,\n\t0x338: 0x79, 0x33b: 0x7a, 0x33e: 0x61, 0x33f: 0x7b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x7c,\n\t0x34b: 0x7d, 0x34d: 0x7e,\n\t0x368: 0x7f, 0x36b: 0x80,\n\t0x374: 0x81,\n\t0x37a: 0x82, 0x37b: 0x83, 0x37d: 0x84, 0x37e: 0x85,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x86, 0x381: 0x87, 0x382: 0x88, 0x383: 0x89, 0x384: 0x8a, 0x385: 0x8b, 0x386: 0x8c, 0x387: 0x8d,\n\t0x388: 0x8e, 0x389: 0x8f, 0x38b: 0x90, 0x38c: 0x21, 0x38d: 0x91,\n\t0x390: 0x92, 0x391: 0x93, 0x392: 0x94, 0x393: 0x95, 0x396: 0x96, 0x397: 0x97,\n\t0x398: 0x98, 0x399: 0x99, 0x39a: 0x9a, 0x39c: 0x9b,\n\t0x3a0: 0x9c, 0x3a4: 0x9d, 0x3a5: 0x9e, 0x3a7: 0x9f,\n\t0x3a8: 0xa0, 0x3a9: 0xa1, 0x3aa: 0xa2,\n\t0x3b0: 0xa3, 0x3b2: 0xa4, 0x3b4: 0xa5, 0x3b5: 0xa6, 0x3b6: 0xa7,\n\t0x3bb: 0xa8, 0x3bc: 0xa9, 0x3bd: 0xaa,\n\t// Block 0xf, offset 0x3c0\n\t0x3d0: 0xab, 0x3d1: 0xac,\n\t// Block 0x10, offset 0x400\n\t0x42b: 0xad, 0x42c: 0xae,\n\t0x43d: 0xaf, 0x43e: 0xb0, 0x43f: 0xb1,\n\t// Block 0x11, offset 0x440\n\t0x472: 0xb2,\n\t// Block 0x12, offset 0x480\n\t0x4bc: 0xb3, 0x4bd: 0xb4,\n\t// Block 0x13, offset 0x4c0\n\t0x4c5: 0xb5, 0x4c6: 0xb6,\n\t0x4c9: 0xb7,\n\t0x4e8: 0xb8, 0x4e9: 0xb9, 0x4ea: 0xba,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xbb, 0x502: 0xbc, 0x504: 0xae,\n\t0x50a: 0xbd, 0x50b: 0xbe,\n\t0x513: 0xbe,\n\t0x523: 0xbf, 0x525: 0xc0,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x52, 0x541: 0x52, 0x542: 0x52, 0x543: 0x52, 0x544: 0xc1, 0x545: 0xc2, 0x546: 0xc3, 0x547: 0xc4,\n\t0x548: 0xc5, 0x549: 0xc6, 0x54a: 0x52, 0x54b: 0x52, 0x54c: 0x52, 0x54d: 0x52, 0x54e: 0x52, 0x54f: 0xc7,\n\t0x550: 0x52, 0x551: 0x52, 0x552: 0x52, 0x553: 0x52, 0x554: 0xc8, 0x555: 0xc9, 0x556: 0x52, 0x557: 0x52,\n\t0x558: 0x52, 0x559: 0xca, 0x55a: 0x52, 0x55b: 0x52, 0x55d: 0xcb, 0x55f: 0xcc,\n\t0x560: 0xcd, 0x561: 0xce, 0x562: 0xcf, 0x563: 0x52, 0x564: 0xd0, 0x565: 0xd1, 0x566: 0x52, 0x567: 0x52,\n\t0x568: 0x52, 0x569: 0x52, 0x56a: 0x52, 0x56b: 0x52,\n\t0x570: 0x52, 0x571: 0x52, 0x572: 0x52, 0x573: 0x52, 0x574: 0x52, 0x575: 0x52, 0x576: 0x52, 0x577: 0x52,\n\t0x578: 0x52, 0x579: 0x52, 0x57a: 0x52, 0x57b: 0x52, 0x57c: 0x52, 0x57d: 0x52, 0x57e: 0x52, 0x57f: 0xc8,\n\t// Block 0x16, offset 0x580\n\t0x590: 0x0b, 0x591: 0x0c, 0x593: 0x0d, 0x596: 0x0e,\n\t0x59b: 0x0f, 0x59c: 0x10, 0x59d: 0x11, 0x59e: 0x12, 0x59f: 0x13,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0xd2, 0x5c1: 0x02, 0x5c2: 0xd3, 0x5c3: 0xd3, 0x5c4: 0x02, 0x5c5: 0x02, 0x5c6: 0x02, 0x5c7: 0xd4,\n\t0x5c8: 0xd3, 0x5c9: 0xd3, 0x5ca: 0xd3, 0x5cb: 0xd3, 0x5cc: 0xd3, 0x5cd: 0xd3, 0x5ce: 0xd3, 0x5cf: 0xd3,\n\t0x5d0: 0xd3, 0x5d1: 0xd3, 0x5d2: 0xd3, 0x5d3: 0xd3, 0x5d4: 0xd3, 0x5d5: 0xd3, 0x5d6: 0xd3, 0x5d7: 0xd3,\n\t0x5d8: 0xd3, 0x5d9: 0xd3, 0x5da: 0xd3, 0x5db: 0xd3, 0x5dc: 0xd3, 0x5dd: 0xd3, 0x5de: 0xd3, 0x5df: 0xd3,\n\t0x5e0: 0xd3, 0x5e1: 0xd3, 0x5e2: 0xd3, 0x5e3: 0xd3, 0x5e4: 0xd3, 0x5e5: 0xd3, 0x5e6: 0xd3, 0x5e7: 0xd3,\n\t0x5e8: 0xd3, 0x5e9: 0xd3, 0x5ea: 0xd3, 0x5eb: 0xd3, 0x5ec: 0xd3, 0x5ed: 0xd3, 0x5ee: 0xd3, 0x5ef: 0xd3,\n\t0x5f0: 0xd3, 0x5f1: 0xd3, 0x5f2: 0xd3, 0x5f3: 0xd3, 0x5f4: 0xd3, 0x5f5: 0xd3, 0x5f6: 0xd3, 0x5f7: 0xd3,\n\t0x5f8: 0xd3, 0x5f9: 0xd3, 0x5fa: 0xd3, 0x5fb: 0xd3, 0x5fc: 0xd3, 0x5fd: 0xd3, 0x5fe: 0xd3, 0x5ff: 0xd3,\n\t// Block 0x18, offset 0x600\n\t0x620: 0x15,\n}\n"
  },
  {
    "path": "vendor/github.com/clipperhouse/uax29/v2/internal/iterators/iterator.go",
    "content": "package iterators\n\ntype Stringish interface {\n\t[]byte | string\n}\n\ntype SplitFunc[T Stringish] func(T, bool) (int, T, error)\n\n// Iterator is a generic iterator for words that are either []byte or string.\n// Iterate while Next() is true, and access the word via Value().\ntype Iterator[T Stringish] struct {\n\tsplit SplitFunc[T]\n\tdata  T\n\tstart int\n\tpos   int\n}\n\n// New creates a new Iterator for the given data and SplitFunc.\nfunc New[T Stringish](split SplitFunc[T], data T) *Iterator[T] {\n\treturn &Iterator[T]{\n\t\tsplit: split,\n\t\tdata:  data,\n\t}\n}\n\n// SetText sets the text for the iterator to operate on, and resets all state.\nfunc (iter *Iterator[T]) SetText(data T) {\n\titer.data = data\n\titer.start = 0\n\titer.pos = 0\n}\n\n// Split sets the SplitFunc for the Iterator.\nfunc (iter *Iterator[T]) Split(split SplitFunc[T]) {\n\titer.split = split\n}\n\n// Next advances the iterator to the next token. It returns false when there\n// are no remaining tokens or an error occurred.\nfunc (iter *Iterator[T]) Next() bool {\n\tif iter.pos == len(iter.data) {\n\t\treturn false\n\t}\n\tif iter.pos > len(iter.data) {\n\t\tpanic(\"SplitFunc advanced beyond the end of the data\")\n\t}\n\n\titer.start = iter.pos\n\n\tadvance, _, err := iter.split(iter.data[iter.pos:], true)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tif advance <= 0 {\n\t\tpanic(\"SplitFunc returned a zero or negative advance\")\n\t}\n\n\titer.pos += advance\n\tif iter.pos > len(iter.data) {\n\t\tpanic(\"SplitFunc advanced beyond the end of the data\")\n\t}\n\n\treturn true\n}\n\n// Value returns the current token.\nfunc (iter *Iterator[T]) Value() T {\n\treturn iter.data[iter.start:iter.pos]\n}\n\n// Start returns the byte position of the current token in the original data.\nfunc (iter *Iterator[T]) Start() int {\n\treturn iter.start\n}\n\n// End returns the byte position after the current token in the original data.\nfunc (iter *Iterator[T]) End() int {\n\treturn iter.pos\n}\n\n// Reset resets the iterator to the beginning of the data.\nfunc (iter *Iterator[T]) Reset() {\n\titer.start = 0\n\titer.pos = 0\n}\n"
  },
  {
    "path": "vendor/github.com/danwakefield/fnmatch/.gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n*.exe\n*.test\n*.prof\n"
  },
  {
    "path": "vendor/github.com/danwakefield/fnmatch/LICENSE",
    "content": "Copyright (c) 2016, Daniel Wakefield\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/danwakefield/fnmatch/README.md",
    "content": "# fnmatch\nUpdated clone of kballards golang fnmatch gist (https://gist.github.com/kballard/272720)\n\n\n"
  },
  {
    "path": "vendor/github.com/danwakefield/fnmatch/fnmatch.go",
    "content": "// Provide string-matching based on fnmatch.3\npackage fnmatch\n\n// There are a few issues that I believe to be bugs, but this implementation is\n// based as closely as possible on BSD fnmatch. These bugs are present in the\n// source of BSD fnmatch, and so are replicated here. The issues are as follows:\n//\n// * FNM_PERIOD is no longer observed after the first * in a pattern\n//   This only applies to matches done with FNM_PATHNAME as well\n// * FNM_PERIOD doesn't apply to ranges. According to the documentation,\n//   a period must be matched explicitly, but a range will match it too\n\nimport (\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\nconst (\n\tFNM_NOESCAPE = (1 << iota)\n\tFNM_PATHNAME\n\tFNM_PERIOD\n\n\tFNM_LEADING_DIR\n\tFNM_CASEFOLD\n\n\tFNM_IGNORECASE = FNM_CASEFOLD\n\tFNM_FILE_NAME  = FNM_PATHNAME\n)\n\nfunc unpackRune(str *string) rune {\n\trune, size := utf8.DecodeRuneInString(*str)\n\t*str = (*str)[size:]\n\treturn rune\n}\n\n// Matches the pattern against the string, with the given flags,\n// and returns true if the match is successful.\n// This function should match fnmatch.3 as closely as possible.\nfunc Match(pattern, s string, flags int) bool {\n\t// The implementation for this function was patterned after the BSD fnmatch.c\n\t// source found at http://src.gnu-darwin.org/src/contrib/csup/fnmatch.c.html\n\tnoescape := (flags&FNM_NOESCAPE != 0)\n\tpathname := (flags&FNM_PATHNAME != 0)\n\tperiod := (flags&FNM_PERIOD != 0)\n\tleadingdir := (flags&FNM_LEADING_DIR != 0)\n\tcasefold := (flags&FNM_CASEFOLD != 0)\n\t// the following is some bookkeeping that the original fnmatch.c implementation did not do\n\t// We are forced to do this because we're not keeping indexes into C strings but rather\n\t// processing utf8-encoded strings. Use a custom unpacker to maintain our state for us\n\tsAtStart := true\n\tsLastAtStart := true\n\tsLastSlash := false\n\tsLastUnpacked := rune(0)\n\tunpackS := func() rune {\n\t\tsLastSlash = (sLastUnpacked == '/')\n\t\tsLastUnpacked = unpackRune(&s)\n\t\tsLastAtStart = sAtStart\n\t\tsAtStart = false\n\t\treturn sLastUnpacked\n\t}\n\tfor len(pattern) > 0 {\n\t\tc := unpackRune(&pattern)\n\t\tswitch c {\n\t\tcase '?':\n\t\t\tif len(s) == 0 {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tsc := unpackS()\n\t\t\tif pathname && sc == '/' {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif period && sc == '.' && (sLastAtStart || (pathname && sLastSlash)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase '*':\n\t\t\t// collapse multiple *'s\n\t\t\t// don't use unpackRune here, the only char we care to detect is ASCII\n\t\t\tfor len(pattern) > 0 && pattern[0] == '*' {\n\t\t\t\tpattern = pattern[1:]\n\t\t\t}\n\t\t\tif period && s[0] == '.' && (sAtStart || (pathname && sLastUnpacked == '/')) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t// optimize for patterns with * at end or before /\n\t\t\tif len(pattern) == 0 {\n\t\t\t\tif pathname {\n\t\t\t\t\treturn leadingdir || (strchr(s, '/') == -1)\n\t\t\t\t} else {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn !(pathname && strchr(s, '/') >= 0)\n\t\t\t} else if pathname && pattern[0] == '/' {\n\t\t\t\toffset := strchr(s, '/')\n\t\t\t\tif offset == -1 {\n\t\t\t\t\treturn false\n\t\t\t\t} else {\n\t\t\t\t\t// we already know our pattern and string have a /, skip past it\n\t\t\t\t\ts = s[offset:] // use unpackS here to maintain our bookkeeping state\n\t\t\t\t\tunpackS()\n\t\t\t\t\tpattern = pattern[1:] // we know / is one byte long\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// general case, recurse\n\t\t\tfor test := s; len(test) > 0; unpackRune(&test) {\n\t\t\t\t// I believe the (flags &^ FNM_PERIOD) is a bug when FNM_PATHNAME is specified\n\t\t\t\t// but this follows exactly from how fnmatch.c implements it\n\t\t\t\tif Match(pattern, test, (flags &^ FNM_PERIOD)) {\n\t\t\t\t\treturn true\n\t\t\t\t} else if pathname && test[0] == '/' {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\tcase '[':\n\t\t\tif len(s) == 0 {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif pathname && s[0] == '/' {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tsc := unpackS()\n\t\t\tif !rangematch(&pattern, sc, flags) {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase '\\\\':\n\t\t\tif !noescape {\n\t\t\t\tif len(pattern) > 0 {\n\t\t\t\t\tc = unpackRune(&pattern)\n\t\t\t\t}\n\t\t\t}\n\t\t\tfallthrough\n\t\tdefault:\n\t\t\tif len(s) == 0 {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tsc := unpackS()\n\t\t\tswitch {\n\t\t\tcase sc == c:\n\t\t\tcase casefold && unicode.ToLower(sc) == unicode.ToLower(c):\n\t\t\tdefault:\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn len(s) == 0 || (leadingdir && s[0] == '/')\n}\n\nfunc rangematch(pattern *string, test rune, flags int) bool {\n\tif len(*pattern) == 0 {\n\t\treturn false\n\t}\n\tcasefold := (flags&FNM_CASEFOLD != 0)\n\tnoescape := (flags&FNM_NOESCAPE != 0)\n\tif casefold {\n\t\ttest = unicode.ToLower(test)\n\t}\n\tvar negate, matched bool\n\tif (*pattern)[0] == '^' || (*pattern)[0] == '!' {\n\t\tnegate = true\n\t\t(*pattern) = (*pattern)[1:]\n\t}\n\tfor !matched && len(*pattern) > 1 && (*pattern)[0] != ']' {\n\t\tc := unpackRune(pattern)\n\t\tif !noescape && c == '\\\\' {\n\t\t\tif len(*pattern) > 1 {\n\t\t\t\tc = unpackRune(pattern)\n\t\t\t} else {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif casefold {\n\t\t\tc = unicode.ToLower(c)\n\t\t}\n\t\tif (*pattern)[0] == '-' && len(*pattern) > 1 && (*pattern)[1] != ']' {\n\t\t\tunpackRune(pattern) // skip the -\n\t\t\tc2 := unpackRune(pattern)\n\t\t\tif !noescape && c2 == '\\\\' {\n\t\t\t\tif len(*pattern) > 0 {\n\t\t\t\t\tc2 = unpackRune(pattern)\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif casefold {\n\t\t\t\tc2 = unicode.ToLower(c2)\n\t\t\t}\n\t\t\t// this really should be more intelligent, but it looks like\n\t\t\t// fnmatch.c does simple int comparisons, therefore we will as well\n\t\t\tif c <= test && test <= c2 {\n\t\t\t\tmatched = true\n\t\t\t}\n\t\t} else if c == test {\n\t\t\tmatched = true\n\t\t}\n\t}\n\t// skip past the rest of the pattern\n\tok := false\n\tfor !ok && len(*pattern) > 0 {\n\t\tc := unpackRune(pattern)\n\t\tif c == '\\\\' && len(*pattern) > 0 {\n\t\t\tunpackRune(pattern)\n\t\t} else if c == ']' {\n\t\t\tok = true\n\t\t}\n\t}\n\treturn ok && matched != negate\n}\n\n// define strchr because strings.Index() seems a bit overkill\n// returns the index of c in s, or -1 if there is no match\nfunc strchr(s string, c rune) int {\n\tfor i, sc := range s {\n\t\tif sc == c {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/CHANGELOG.md",
    "content": "# Changelog\n\n## [1.6.0](https://github.com/google/uuid/compare/v1.5.0...v1.6.0) (2024-01-16)\n\n\n### Features\n\n* add Max UUID constant ([#149](https://github.com/google/uuid/issues/149)) ([c58770e](https://github.com/google/uuid/commit/c58770eb495f55fe2ced6284f93c5158a62e53e3))\n\n\n### Bug Fixes\n\n* fix typo in version 7 uuid documentation ([#153](https://github.com/google/uuid/issues/153)) ([016b199](https://github.com/google/uuid/commit/016b199544692f745ffc8867b914129ecb47ef06))\n* Monotonicity in UUIDv7 ([#150](https://github.com/google/uuid/issues/150)) ([a2b2b32](https://github.com/google/uuid/commit/a2b2b32373ff0b1a312b7fdf6d38a977099698a6))\n\n## [1.5.0](https://github.com/google/uuid/compare/v1.4.0...v1.5.0) (2023-12-12)\n\n\n### Features\n\n* Validate UUID without creating new UUID ([#141](https://github.com/google/uuid/issues/141)) ([9ee7366](https://github.com/google/uuid/commit/9ee7366e66c9ad96bab89139418a713dc584ae29))\n\n## [1.4.0](https://github.com/google/uuid/compare/v1.3.1...v1.4.0) (2023-10-26)\n\n\n### Features\n\n* UUIDs slice type with Strings() convenience method ([#133](https://github.com/google/uuid/issues/133)) ([cd5fbbd](https://github.com/google/uuid/commit/cd5fbbdd02f3e3467ac18940e07e062be1f864b4))\n\n### Fixes\n\n* Clarify that Parse's job is to parse but not necessarily validate strings. (Documents current behavior)\n\n## [1.3.1](https://github.com/google/uuid/compare/v1.3.0...v1.3.1) (2023-08-18)\n\n\n### Bug Fixes\n\n* Use .EqualFold() to parse urn prefixed UUIDs ([#118](https://github.com/google/uuid/issues/118)) ([574e687](https://github.com/google/uuid/commit/574e6874943741fb99d41764c705173ada5293f0))\n\n## Changelog\n"
  },
  {
    "path": "vendor/github.com/google/uuid/CONTRIBUTING.md",
    "content": "# How to contribute\n\nWe definitely welcome patches and contribution to this project!\n\n### Tips\n\nCommits must be formatted according to the [Conventional Commits Specification](https://www.conventionalcommits.org).\n\nAlways try to include a test case! If it is not possible or not necessary,\nplease explain why in the pull request description.\n\n### Releasing\n\nCommits that would precipitate a SemVer change, as described in the Conventional\nCommits Specification, will trigger [`release-please`](https://github.com/google-github-actions/release-please-action)\nto create a release candidate pull request. Once submitted, `release-please`\nwill create a release.\n\nFor tips on how to work with `release-please`, see its documentation.\n\n### Legal requirements\n\nIn order to protect both you and ourselves, you will need to sign the\n[Contributor License Agreement](https://cla.developers.google.com/clas).\n\nYou may have already signed it for other Google projects.\n"
  },
  {
    "path": "vendor/github.com/google/uuid/CONTRIBUTORS",
    "content": "Paul Borman <borman@google.com>\nbmatsuo\nshawnps\ntheory\njboverfelt\ndsymonds\ncd1\nwallclockbuilder\ndansouza\n"
  },
  {
    "path": "vendor/github.com/google/uuid/LICENSE",
    "content": "Copyright (c) 2009,2014 Google Inc. 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/google/uuid/README.md",
    "content": "# uuid\nThe uuid package generates and inspects UUIDs based on\n[RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122)\nand DCE 1.1: Authentication and Security Services. \n\nThis package is based on the github.com/pborman/uuid package (previously named\ncode.google.com/p/go-uuid).  It differs from these earlier packages in that\na UUID is a 16 byte array rather than a byte slice.  One loss due to this\nchange is the ability to represent an invalid UUID (vs a NIL UUID).\n\n###### Install\n```sh\ngo get github.com/google/uuid\n```\n\n###### Documentation \n[![Go Reference](https://pkg.go.dev/badge/github.com/google/uuid.svg)](https://pkg.go.dev/github.com/google/uuid)\n\nFull `go doc` style documentation for the package can be viewed online without\ninstalling this package by using the GoDoc site here: \nhttp://pkg.go.dev/github.com/google/uuid\n"
  },
  {
    "path": "vendor/github.com/google/uuid/dce.go",
    "content": "// Copyright 2016 Google Inc.  All rights 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 uuid\n\nimport (\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"os\"\n)\n\n// A Domain represents a Version 2 domain\ntype Domain byte\n\n// Domain constants for DCE Security (Version 2) UUIDs.\nconst (\n\tPerson = Domain(0)\n\tGroup  = Domain(1)\n\tOrg    = Domain(2)\n)\n\n// NewDCESecurity returns a DCE Security (Version 2) UUID.\n//\n// The domain should be one of Person, Group or Org.\n// On a POSIX system the id should be the users UID for the Person\n// domain and the users GID for the Group.  The meaning of id for\n// the domain Org or on non-POSIX systems is site defined.\n//\n// For a given domain/id pair the same token may be returned for up to\n// 7 minutes and 10 seconds.\nfunc NewDCESecurity(domain Domain, id uint32) (UUID, error) {\n\tuuid, err := NewUUID()\n\tif err == nil {\n\t\tuuid[6] = (uuid[6] & 0x0f) | 0x20 // Version 2\n\t\tuuid[9] = byte(domain)\n\t\tbinary.BigEndian.PutUint32(uuid[0:], id)\n\t}\n\treturn uuid, err\n}\n\n// NewDCEPerson returns a DCE Security (Version 2) UUID in the person\n// domain with the id returned by os.Getuid.\n//\n//  NewDCESecurity(Person, uint32(os.Getuid()))\nfunc NewDCEPerson() (UUID, error) {\n\treturn NewDCESecurity(Person, uint32(os.Getuid()))\n}\n\n// NewDCEGroup returns a DCE Security (Version 2) UUID in the group\n// domain with the id returned by os.Getgid.\n//\n//  NewDCESecurity(Group, uint32(os.Getgid()))\nfunc NewDCEGroup() (UUID, error) {\n\treturn NewDCESecurity(Group, uint32(os.Getgid()))\n}\n\n// Domain returns the domain for a Version 2 UUID.  Domains are only defined\n// for Version 2 UUIDs.\nfunc (uuid UUID) Domain() Domain {\n\treturn Domain(uuid[9])\n}\n\n// ID returns the id for a Version 2 UUID. IDs are only defined for Version 2\n// UUIDs.\nfunc (uuid UUID) ID() uint32 {\n\treturn binary.BigEndian.Uint32(uuid[0:4])\n}\n\nfunc (d Domain) String() string {\n\tswitch d {\n\tcase Person:\n\t\treturn \"Person\"\n\tcase Group:\n\t\treturn \"Group\"\n\tcase Org:\n\t\treturn \"Org\"\n\t}\n\treturn fmt.Sprintf(\"Domain%d\", int(d))\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/doc.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\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 uuid generates and inspects UUIDs.\n//\n// UUIDs are based on RFC 4122 and DCE 1.1: Authentication and Security\n// Services.\n//\n// A UUID is a 16 byte (128 bit) array.  UUIDs may be used as keys to\n// maps or compared directly.\npackage uuid\n"
  },
  {
    "path": "vendor/github.com/google/uuid/hash.go",
    "content": "// Copyright 2016 Google Inc.  All rights 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 uuid\n\nimport (\n\t\"crypto/md5\"\n\t\"crypto/sha1\"\n\t\"hash\"\n)\n\n// Well known namespace IDs and UUIDs\nvar (\n\tNameSpaceDNS  = Must(Parse(\"6ba7b810-9dad-11d1-80b4-00c04fd430c8\"))\n\tNameSpaceURL  = Must(Parse(\"6ba7b811-9dad-11d1-80b4-00c04fd430c8\"))\n\tNameSpaceOID  = Must(Parse(\"6ba7b812-9dad-11d1-80b4-00c04fd430c8\"))\n\tNameSpaceX500 = Must(Parse(\"6ba7b814-9dad-11d1-80b4-00c04fd430c8\"))\n\tNil           UUID // empty UUID, all zeros\n\n\t// The Max UUID is special form of UUID that is specified to have all 128 bits set to 1.\n\tMax = UUID{\n\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n\t}\n)\n\n// NewHash returns a new UUID derived from the hash of space concatenated with\n// data generated by h.  The hash should be at least 16 byte in length.  The\n// first 16 bytes of the hash are used to form the UUID.  The version of the\n// UUID will be the lower 4 bits of version.  NewHash is used to implement\n// NewMD5 and NewSHA1.\nfunc NewHash(h hash.Hash, space UUID, data []byte, version int) UUID {\n\th.Reset()\n\th.Write(space[:]) //nolint:errcheck\n\th.Write(data)     //nolint:errcheck\n\ts := h.Sum(nil)\n\tvar uuid UUID\n\tcopy(uuid[:], s)\n\tuuid[6] = (uuid[6] & 0x0f) | uint8((version&0xf)<<4)\n\tuuid[8] = (uuid[8] & 0x3f) | 0x80 // RFC 4122 variant\n\treturn uuid\n}\n\n// NewMD5 returns a new MD5 (Version 3) UUID based on the\n// supplied name space and data.  It is the same as calling:\n//\n//  NewHash(md5.New(), space, data, 3)\nfunc NewMD5(space UUID, data []byte) UUID {\n\treturn NewHash(md5.New(), space, data, 3)\n}\n\n// NewSHA1 returns a new SHA1 (Version 5) UUID based on the\n// supplied name space and data.  It is the same as calling:\n//\n//  NewHash(sha1.New(), space, data, 5)\nfunc NewSHA1(space UUID, data []byte) UUID {\n\treturn NewHash(sha1.New(), space, data, 5)\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/marshal.go",
    "content": "// Copyright 2016 Google Inc.  All rights 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 uuid\n\nimport \"fmt\"\n\n// MarshalText implements encoding.TextMarshaler.\nfunc (uuid UUID) MarshalText() ([]byte, error) {\n\tvar js [36]byte\n\tencodeHex(js[:], uuid)\n\treturn js[:], nil\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler.\nfunc (uuid *UUID) UnmarshalText(data []byte) error {\n\tid, err := ParseBytes(data)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*uuid = id\n\treturn nil\n}\n\n// MarshalBinary implements encoding.BinaryMarshaler.\nfunc (uuid UUID) MarshalBinary() ([]byte, error) {\n\treturn uuid[:], nil\n}\n\n// UnmarshalBinary implements encoding.BinaryUnmarshaler.\nfunc (uuid *UUID) UnmarshalBinary(data []byte) error {\n\tif len(data) != 16 {\n\t\treturn fmt.Errorf(\"invalid UUID (got %d bytes)\", len(data))\n\t}\n\tcopy(uuid[:], data)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/node.go",
    "content": "// Copyright 2016 Google Inc.  All rights 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 uuid\n\nimport (\n\t\"sync\"\n)\n\nvar (\n\tnodeMu sync.Mutex\n\tifname string  // name of interface being used\n\tnodeID [6]byte // hardware for version 1 UUIDs\n\tzeroID [6]byte // nodeID with only 0's\n)\n\n// NodeInterface returns the name of the interface from which the NodeID was\n// derived.  The interface \"user\" is returned if the NodeID was set by\n// SetNodeID.\nfunc NodeInterface() string {\n\tdefer nodeMu.Unlock()\n\tnodeMu.Lock()\n\treturn ifname\n}\n\n// SetNodeInterface selects the hardware address to be used for Version 1 UUIDs.\n// If name is \"\" then the first usable interface found will be used or a random\n// Node ID will be generated.  If a named interface cannot be found then false\n// is returned.\n//\n// SetNodeInterface never fails when name is \"\".\nfunc SetNodeInterface(name string) bool {\n\tdefer nodeMu.Unlock()\n\tnodeMu.Lock()\n\treturn setNodeInterface(name)\n}\n\nfunc setNodeInterface(name string) bool {\n\tiname, addr := getHardwareInterface(name) // null implementation for js\n\tif iname != \"\" && addr != nil {\n\t\tifname = iname\n\t\tcopy(nodeID[:], addr)\n\t\treturn true\n\t}\n\n\t// We found no interfaces with a valid hardware address.  If name\n\t// does not specify a specific interface generate a random Node ID\n\t// (section 4.1.6)\n\tif name == \"\" {\n\t\tifname = \"random\"\n\t\trandomBits(nodeID[:])\n\t\treturn true\n\t}\n\treturn false\n}\n\n// NodeID returns a slice of a copy of the current Node ID, setting the Node ID\n// if not already set.\nfunc NodeID() []byte {\n\tdefer nodeMu.Unlock()\n\tnodeMu.Lock()\n\tif nodeID == zeroID {\n\t\tsetNodeInterface(\"\")\n\t}\n\tnid := nodeID\n\treturn nid[:]\n}\n\n// SetNodeID sets the Node ID to be used for Version 1 UUIDs.  The first 6 bytes\n// of id are used.  If id is less than 6 bytes then false is returned and the\n// Node ID is not set.\nfunc SetNodeID(id []byte) bool {\n\tif len(id) < 6 {\n\t\treturn false\n\t}\n\tdefer nodeMu.Unlock()\n\tnodeMu.Lock()\n\tcopy(nodeID[:], id)\n\tifname = \"user\"\n\treturn true\n}\n\n// NodeID returns the 6 byte node id encoded in uuid.  It returns nil if uuid is\n// not valid.  The NodeID is only well defined for version 1 and 2 UUIDs.\nfunc (uuid UUID) NodeID() []byte {\n\tvar node [6]byte\n\tcopy(node[:], uuid[10:])\n\treturn node[:]\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/node_js.go",
    "content": "// Copyright 2017 Google Inc.  All rights reserved.\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 js\n\npackage uuid\n\n// getHardwareInterface returns nil values for the JS version of the code.\n// This removes the \"net\" dependency, because it is not used in the browser.\n// Using the \"net\" library inflates the size of the transpiled JS code by 673k bytes.\nfunc getHardwareInterface(name string) (string, []byte) { return \"\", nil }\n"
  },
  {
    "path": "vendor/github.com/google/uuid/node_net.go",
    "content": "// Copyright 2017 Google Inc.  All rights reserved.\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 !js\n\npackage uuid\n\nimport \"net\"\n\nvar interfaces []net.Interface // cached list of interfaces\n\n// getHardwareInterface returns the name and hardware address of interface name.\n// If name is \"\" then the name and hardware address of one of the system's\n// interfaces is returned.  If no interfaces are found (name does not exist or\n// there are no interfaces) then \"\", nil is returned.\n//\n// Only addresses of at least 6 bytes are returned.\nfunc getHardwareInterface(name string) (string, []byte) {\n\tif interfaces == nil {\n\t\tvar err error\n\t\tinterfaces, err = net.Interfaces()\n\t\tif err != nil {\n\t\t\treturn \"\", nil\n\t\t}\n\t}\n\tfor _, ifs := range interfaces {\n\t\tif len(ifs.HardwareAddr) >= 6 && (name == \"\" || name == ifs.Name) {\n\t\t\treturn ifs.Name, ifs.HardwareAddr\n\t\t}\n\t}\n\treturn \"\", nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/null.go",
    "content": "// Copyright 2021 Google Inc.  All rights 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 uuid\n\nimport (\n\t\"bytes\"\n\t\"database/sql/driver\"\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\nvar jsonNull = []byte(\"null\")\n\n// NullUUID represents a UUID that may be null.\n// NullUUID implements the SQL driver.Scanner interface so\n// it can be used as a scan destination:\n//\n//  var u uuid.NullUUID\n//  err := db.QueryRow(\"SELECT name FROM foo WHERE id=?\", id).Scan(&u)\n//  ...\n//  if u.Valid {\n//     // use u.UUID\n//  } else {\n//     // NULL value\n//  }\n//\ntype NullUUID struct {\n\tUUID  UUID\n\tValid bool // Valid is true if UUID is not NULL\n}\n\n// Scan implements the SQL driver.Scanner interface.\nfunc (nu *NullUUID) Scan(value interface{}) error {\n\tif value == nil {\n\t\tnu.UUID, nu.Valid = Nil, false\n\t\treturn nil\n\t}\n\n\terr := nu.UUID.Scan(value)\n\tif err != nil {\n\t\tnu.Valid = false\n\t\treturn err\n\t}\n\n\tnu.Valid = true\n\treturn nil\n}\n\n// Value implements the driver Valuer interface.\nfunc (nu NullUUID) Value() (driver.Value, error) {\n\tif !nu.Valid {\n\t\treturn nil, nil\n\t}\n\t// Delegate to UUID Value function\n\treturn nu.UUID.Value()\n}\n\n// MarshalBinary implements encoding.BinaryMarshaler.\nfunc (nu NullUUID) MarshalBinary() ([]byte, error) {\n\tif nu.Valid {\n\t\treturn nu.UUID[:], nil\n\t}\n\n\treturn []byte(nil), nil\n}\n\n// UnmarshalBinary implements encoding.BinaryUnmarshaler.\nfunc (nu *NullUUID) UnmarshalBinary(data []byte) error {\n\tif len(data) != 16 {\n\t\treturn fmt.Errorf(\"invalid UUID (got %d bytes)\", len(data))\n\t}\n\tcopy(nu.UUID[:], data)\n\tnu.Valid = true\n\treturn nil\n}\n\n// MarshalText implements encoding.TextMarshaler.\nfunc (nu NullUUID) MarshalText() ([]byte, error) {\n\tif nu.Valid {\n\t\treturn nu.UUID.MarshalText()\n\t}\n\n\treturn jsonNull, nil\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler.\nfunc (nu *NullUUID) UnmarshalText(data []byte) error {\n\tid, err := ParseBytes(data)\n\tif err != nil {\n\t\tnu.Valid = false\n\t\treturn err\n\t}\n\tnu.UUID = id\n\tnu.Valid = true\n\treturn nil\n}\n\n// MarshalJSON implements json.Marshaler.\nfunc (nu NullUUID) MarshalJSON() ([]byte, error) {\n\tif nu.Valid {\n\t\treturn json.Marshal(nu.UUID)\n\t}\n\n\treturn jsonNull, nil\n}\n\n// UnmarshalJSON implements json.Unmarshaler.\nfunc (nu *NullUUID) UnmarshalJSON(data []byte) error {\n\tif bytes.Equal(data, jsonNull) {\n\t\t*nu = NullUUID{}\n\t\treturn nil // valid null UUID\n\t}\n\terr := json.Unmarshal(data, &nu.UUID)\n\tnu.Valid = err == nil\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/sql.go",
    "content": "// Copyright 2016 Google Inc.  All rights 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 uuid\n\nimport (\n\t\"database/sql/driver\"\n\t\"fmt\"\n)\n\n// Scan implements sql.Scanner so UUIDs can be read from databases transparently.\n// Currently, database types that map to string and []byte are supported. Please\n// consult database-specific driver documentation for matching types.\nfunc (uuid *UUID) Scan(src interface{}) error {\n\tswitch src := src.(type) {\n\tcase nil:\n\t\treturn nil\n\n\tcase string:\n\t\t// if an empty UUID comes from a table, we return a null UUID\n\t\tif src == \"\" {\n\t\t\treturn nil\n\t\t}\n\n\t\t// see Parse for required string format\n\t\tu, err := Parse(src)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"Scan: %v\", err)\n\t\t}\n\n\t\t*uuid = u\n\n\tcase []byte:\n\t\t// if an empty UUID comes from a table, we return a null UUID\n\t\tif len(src) == 0 {\n\t\t\treturn nil\n\t\t}\n\n\t\t// assumes a simple slice of bytes if 16 bytes\n\t\t// otherwise attempts to parse\n\t\tif len(src) != 16 {\n\t\t\treturn uuid.Scan(string(src))\n\t\t}\n\t\tcopy((*uuid)[:], src)\n\n\tdefault:\n\t\treturn fmt.Errorf(\"Scan: unable to scan type %T into UUID\", src)\n\t}\n\n\treturn nil\n}\n\n// Value implements sql.Valuer so that UUIDs can be written to databases\n// transparently. Currently, UUIDs map to strings. Please consult\n// database-specific driver documentation for matching types.\nfunc (uuid UUID) Value() (driver.Value, error) {\n\treturn uuid.String(), nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/time.go",
    "content": "// Copyright 2016 Google Inc.  All rights 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 uuid\n\nimport (\n\t\"encoding/binary\"\n\t\"sync\"\n\t\"time\"\n)\n\n// A Time represents a time as the number of 100's of nanoseconds since 15 Oct\n// 1582.\ntype Time int64\n\nconst (\n\tlillian    = 2299160          // Julian day of 15 Oct 1582\n\tunix       = 2440587          // Julian day of 1 Jan 1970\n\tepoch      = unix - lillian   // Days between epochs\n\tg1582      = epoch * 86400    // seconds between epochs\n\tg1582ns100 = g1582 * 10000000 // 100s of a nanoseconds between epochs\n)\n\nvar (\n\ttimeMu   sync.Mutex\n\tlasttime uint64 // last time we returned\n\tclockSeq uint16 // clock sequence for this run\n\n\ttimeNow = time.Now // for testing\n)\n\n// UnixTime converts t the number of seconds and nanoseconds using the Unix\n// epoch of 1 Jan 1970.\nfunc (t Time) UnixTime() (sec, nsec int64) {\n\tsec = int64(t - g1582ns100)\n\tnsec = (sec % 10000000) * 100\n\tsec /= 10000000\n\treturn sec, nsec\n}\n\n// GetTime returns the current Time (100s of nanoseconds since 15 Oct 1582) and\n// clock sequence as well as adjusting the clock sequence as needed.  An error\n// is returned if the current time cannot be determined.\nfunc GetTime() (Time, uint16, error) {\n\tdefer timeMu.Unlock()\n\ttimeMu.Lock()\n\treturn getTime()\n}\n\nfunc getTime() (Time, uint16, error) {\n\tt := timeNow()\n\n\t// If we don't have a clock sequence already, set one.\n\tif clockSeq == 0 {\n\t\tsetClockSequence(-1)\n\t}\n\tnow := uint64(t.UnixNano()/100) + g1582ns100\n\n\t// If time has gone backwards with this clock sequence then we\n\t// increment the clock sequence\n\tif now <= lasttime {\n\t\tclockSeq = ((clockSeq + 1) & 0x3fff) | 0x8000\n\t}\n\tlasttime = now\n\treturn Time(now), clockSeq, nil\n}\n\n// ClockSequence returns the current clock sequence, generating one if not\n// already set.  The clock sequence is only used for Version 1 UUIDs.\n//\n// The uuid package does not use global static storage for the clock sequence or\n// the last time a UUID was generated.  Unless SetClockSequence is used, a new\n// random clock sequence is generated the first time a clock sequence is\n// requested by ClockSequence, GetTime, or NewUUID.  (section 4.2.1.1)\nfunc ClockSequence() int {\n\tdefer timeMu.Unlock()\n\ttimeMu.Lock()\n\treturn clockSequence()\n}\n\nfunc clockSequence() int {\n\tif clockSeq == 0 {\n\t\tsetClockSequence(-1)\n\t}\n\treturn int(clockSeq & 0x3fff)\n}\n\n// SetClockSequence sets the clock sequence to the lower 14 bits of seq.  Setting to\n// -1 causes a new sequence to be generated.\nfunc SetClockSequence(seq int) {\n\tdefer timeMu.Unlock()\n\ttimeMu.Lock()\n\tsetClockSequence(seq)\n}\n\nfunc setClockSequence(seq int) {\n\tif seq == -1 {\n\t\tvar b [2]byte\n\t\trandomBits(b[:]) // clock sequence\n\t\tseq = int(b[0])<<8 | int(b[1])\n\t}\n\toldSeq := clockSeq\n\tclockSeq = uint16(seq&0x3fff) | 0x8000 // Set our variant\n\tif oldSeq != clockSeq {\n\t\tlasttime = 0\n\t}\n}\n\n// Time returns the time in 100s of nanoseconds since 15 Oct 1582 encoded in\n// uuid.  The time is only defined for version 1, 2, 6 and 7 UUIDs.\nfunc (uuid UUID) Time() Time {\n\tvar t Time\n\tswitch uuid.Version() {\n\tcase 6:\n\t\ttime := binary.BigEndian.Uint64(uuid[:8]) // Ignore uuid[6] version b0110\n\t\tt = Time(time)\n\tcase 7:\n\t\ttime := binary.BigEndian.Uint64(uuid[:8])\n\t\tt = Time((time>>16)*10000 + g1582ns100)\n\tdefault: // forward compatible\n\t\ttime := int64(binary.BigEndian.Uint32(uuid[0:4]))\n\t\ttime |= int64(binary.BigEndian.Uint16(uuid[4:6])) << 32\n\t\ttime |= int64(binary.BigEndian.Uint16(uuid[6:8])&0xfff) << 48\n\t\tt = Time(time)\n\t}\n\treturn t\n}\n\n// ClockSequence returns the clock sequence encoded in uuid.\n// The clock sequence is only well defined for version 1 and 2 UUIDs.\nfunc (uuid UUID) ClockSequence() int {\n\treturn int(binary.BigEndian.Uint16(uuid[8:10])) & 0x3fff\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/util.go",
    "content": "// Copyright 2016 Google Inc.  All rights 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 uuid\n\nimport (\n\t\"io\"\n)\n\n// randomBits completely fills slice b with random data.\nfunc randomBits(b []byte) {\n\tif _, err := io.ReadFull(rander, b); err != nil {\n\t\tpanic(err.Error()) // rand should never fail\n\t}\n}\n\n// xvalues returns the value of a byte as a hexadecimal digit or 255.\nvar xvalues = [256]byte{\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255,\n\t255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n}\n\n// xtob converts hex characters x1 and x2 into a byte.\nfunc xtob(x1, x2 byte) (byte, bool) {\n\tb1 := xvalues[x1]\n\tb2 := xvalues[x2]\n\treturn (b1 << 4) | b2, b1 != 255 && b2 != 255\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/uuid.go",
    "content": "// Copyright 2018 Google Inc.  All rights 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 uuid\n\nimport (\n\t\"bytes\"\n\t\"crypto/rand\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// A UUID is a 128 bit (16 byte) Universal Unique IDentifier as defined in RFC\n// 4122.\ntype UUID [16]byte\n\n// A Version represents a UUID's version.\ntype Version byte\n\n// A Variant represents a UUID's variant.\ntype Variant byte\n\n// Constants returned by Variant.\nconst (\n\tInvalid   = Variant(iota) // Invalid UUID\n\tRFC4122                   // The variant specified in RFC4122\n\tReserved                  // Reserved, NCS backward compatibility.\n\tMicrosoft                 // Reserved, Microsoft Corporation backward compatibility.\n\tFuture                    // Reserved for future definition.\n)\n\nconst randPoolSize = 16 * 16\n\nvar (\n\trander      = rand.Reader // random function\n\tpoolEnabled = false\n\tpoolMu      sync.Mutex\n\tpoolPos     = randPoolSize     // protected with poolMu\n\tpool        [randPoolSize]byte // protected with poolMu\n)\n\ntype invalidLengthError struct{ len int }\n\nfunc (err invalidLengthError) Error() string {\n\treturn fmt.Sprintf(\"invalid UUID length: %d\", err.len)\n}\n\n// IsInvalidLengthError is matcher function for custom error invalidLengthError\nfunc IsInvalidLengthError(err error) bool {\n\t_, ok := err.(invalidLengthError)\n\treturn ok\n}\n\n// Parse decodes s into a UUID or returns an error if it cannot be parsed.  Both\n// the standard UUID forms defined in RFC 4122\n// (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and\n// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) are decoded.  In addition,\n// Parse accepts non-standard strings such as the raw hex encoding\n// xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx and 38 byte \"Microsoft style\" encodings,\n// e.g.  {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.  Only the middle 36 bytes are\n// examined in the latter case.  Parse should not be used to validate strings as\n// it parses non-standard encodings as indicated above.\nfunc Parse(s string) (UUID, error) {\n\tvar uuid UUID\n\tswitch len(s) {\n\t// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tcase 36:\n\n\t// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tcase 36 + 9:\n\t\tif !strings.EqualFold(s[:9], \"urn:uuid:\") {\n\t\t\treturn uuid, fmt.Errorf(\"invalid urn prefix: %q\", s[:9])\n\t\t}\n\t\ts = s[9:]\n\n\t// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\n\tcase 36 + 2:\n\t\ts = s[1:]\n\n\t// xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\tcase 32:\n\t\tvar ok bool\n\t\tfor i := range uuid {\n\t\t\tuuid[i], ok = xtob(s[i*2], s[i*2+1])\n\t\t\tif !ok {\n\t\t\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t\t\t}\n\t\t}\n\t\treturn uuid, nil\n\tdefault:\n\t\treturn uuid, invalidLengthError{len(s)}\n\t}\n\t// s is now at least 36 bytes long\n\t// it must be of the form  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tif s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' {\n\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t}\n\tfor i, x := range [16]int{\n\t\t0, 2, 4, 6,\n\t\t9, 11,\n\t\t14, 16,\n\t\t19, 21,\n\t\t24, 26, 28, 30, 32, 34,\n\t} {\n\t\tv, ok := xtob(s[x], s[x+1])\n\t\tif !ok {\n\t\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t\t}\n\t\tuuid[i] = v\n\t}\n\treturn uuid, nil\n}\n\n// ParseBytes is like Parse, except it parses a byte slice instead of a string.\nfunc ParseBytes(b []byte) (UUID, error) {\n\tvar uuid UUID\n\tswitch len(b) {\n\tcase 36: // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tcase 36 + 9: // urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\t\tif !bytes.EqualFold(b[:9], []byte(\"urn:uuid:\")) {\n\t\t\treturn uuid, fmt.Errorf(\"invalid urn prefix: %q\", b[:9])\n\t\t}\n\t\tb = b[9:]\n\tcase 36 + 2: // {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\n\t\tb = b[1:]\n\tcase 32: // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\t\tvar ok bool\n\t\tfor i := 0; i < 32; i += 2 {\n\t\t\tuuid[i/2], ok = xtob(b[i], b[i+1])\n\t\t\tif !ok {\n\t\t\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t\t\t}\n\t\t}\n\t\treturn uuid, nil\n\tdefault:\n\t\treturn uuid, invalidLengthError{len(b)}\n\t}\n\t// s is now at least 36 bytes long\n\t// it must be of the form  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tif b[8] != '-' || b[13] != '-' || b[18] != '-' || b[23] != '-' {\n\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t}\n\tfor i, x := range [16]int{\n\t\t0, 2, 4, 6,\n\t\t9, 11,\n\t\t14, 16,\n\t\t19, 21,\n\t\t24, 26, 28, 30, 32, 34,\n\t} {\n\t\tv, ok := xtob(b[x], b[x+1])\n\t\tif !ok {\n\t\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t\t}\n\t\tuuid[i] = v\n\t}\n\treturn uuid, nil\n}\n\n// MustParse is like Parse but panics if the string cannot be parsed.\n// It simplifies safe initialization of global variables holding compiled UUIDs.\nfunc MustParse(s string) UUID {\n\tuuid, err := Parse(s)\n\tif err != nil {\n\t\tpanic(`uuid: Parse(` + s + `): ` + err.Error())\n\t}\n\treturn uuid\n}\n\n// FromBytes creates a new UUID from a byte slice. Returns an error if the slice\n// does not have a length of 16. The bytes are copied from the slice.\nfunc FromBytes(b []byte) (uuid UUID, err error) {\n\terr = uuid.UnmarshalBinary(b)\n\treturn uuid, err\n}\n\n// Must returns uuid if err is nil and panics otherwise.\nfunc Must(uuid UUID, err error) UUID {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn uuid\n}\n\n// Validate returns an error if s is not a properly formatted UUID in one of the following formats:\n//   xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n//   urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n//   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n//   {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\n// It returns an error if the format is invalid, otherwise nil.\nfunc Validate(s string) error {\n\tswitch len(s) {\n\t// Standard UUID format\n\tcase 36:\n\n\t// UUID with \"urn:uuid:\" prefix\n\tcase 36 + 9:\n\t\tif !strings.EqualFold(s[:9], \"urn:uuid:\") {\n\t\t\treturn fmt.Errorf(\"invalid urn prefix: %q\", s[:9])\n\t\t}\n\t\ts = s[9:]\n\n\t// UUID enclosed in braces\n\tcase 36 + 2:\n\t\tif s[0] != '{' || s[len(s)-1] != '}' {\n\t\t\treturn fmt.Errorf(\"invalid bracketed UUID format\")\n\t\t}\n\t\ts = s[1 : len(s)-1]\n\n\t// UUID without hyphens\n\tcase 32:\n\t\tfor i := 0; i < len(s); i += 2 {\n\t\t\t_, ok := xtob(s[i], s[i+1])\n\t\t\tif !ok {\n\t\t\t\treturn errors.New(\"invalid UUID format\")\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn invalidLengthError{len(s)}\n\t}\n\n\t// Check for standard UUID format\n\tif len(s) == 36 {\n\t\tif s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' {\n\t\t\treturn errors.New(\"invalid UUID format\")\n\t\t}\n\t\tfor _, x := range []int{0, 2, 4, 6, 9, 11, 14, 16, 19, 21, 24, 26, 28, 30, 32, 34} {\n\t\t\tif _, ok := xtob(s[x], s[x+1]); !ok {\n\t\t\t\treturn errors.New(\"invalid UUID format\")\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// String returns the string form of uuid, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n// , or \"\" if uuid is invalid.\nfunc (uuid UUID) String() string {\n\tvar buf [36]byte\n\tencodeHex(buf[:], uuid)\n\treturn string(buf[:])\n}\n\n// URN returns the RFC 2141 URN form of uuid,\n// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,  or \"\" if uuid is invalid.\nfunc (uuid UUID) URN() string {\n\tvar buf [36 + 9]byte\n\tcopy(buf[:], \"urn:uuid:\")\n\tencodeHex(buf[9:], uuid)\n\treturn string(buf[:])\n}\n\nfunc encodeHex(dst []byte, uuid UUID) {\n\thex.Encode(dst, uuid[:4])\n\tdst[8] = '-'\n\thex.Encode(dst[9:13], uuid[4:6])\n\tdst[13] = '-'\n\thex.Encode(dst[14:18], uuid[6:8])\n\tdst[18] = '-'\n\thex.Encode(dst[19:23], uuid[8:10])\n\tdst[23] = '-'\n\thex.Encode(dst[24:], uuid[10:])\n}\n\n// Variant returns the variant encoded in uuid.\nfunc (uuid UUID) Variant() Variant {\n\tswitch {\n\tcase (uuid[8] & 0xc0) == 0x80:\n\t\treturn RFC4122\n\tcase (uuid[8] & 0xe0) == 0xc0:\n\t\treturn Microsoft\n\tcase (uuid[8] & 0xe0) == 0xe0:\n\t\treturn Future\n\tdefault:\n\t\treturn Reserved\n\t}\n}\n\n// Version returns the version of uuid.\nfunc (uuid UUID) Version() Version {\n\treturn Version(uuid[6] >> 4)\n}\n\nfunc (v Version) String() string {\n\tif v > 15 {\n\t\treturn fmt.Sprintf(\"BAD_VERSION_%d\", v)\n\t}\n\treturn fmt.Sprintf(\"VERSION_%d\", v)\n}\n\nfunc (v Variant) String() string {\n\tswitch v {\n\tcase RFC4122:\n\t\treturn \"RFC4122\"\n\tcase Reserved:\n\t\treturn \"Reserved\"\n\tcase Microsoft:\n\t\treturn \"Microsoft\"\n\tcase Future:\n\t\treturn \"Future\"\n\tcase Invalid:\n\t\treturn \"Invalid\"\n\t}\n\treturn fmt.Sprintf(\"BadVariant%d\", int(v))\n}\n\n// SetRand sets the random number generator to r, which implements io.Reader.\n// If r.Read returns an error when the package requests random data then\n// a panic will be issued.\n//\n// Calling SetRand with nil sets the random number generator to the default\n// generator.\nfunc SetRand(r io.Reader) {\n\tif r == nil {\n\t\trander = rand.Reader\n\t\treturn\n\t}\n\trander = r\n}\n\n// EnableRandPool enables internal randomness pool used for Random\n// (Version 4) UUID generation. The pool contains random bytes read from\n// the random number generator on demand in batches. Enabling the pool\n// may improve the UUID generation throughput significantly.\n//\n// Since the pool is stored on the Go heap, this feature may be a bad fit\n// for security sensitive applications.\n//\n// Both EnableRandPool and DisableRandPool are not thread-safe and should\n// only be called when there is no possibility that New or any other\n// UUID Version 4 generation function will be called concurrently.\nfunc EnableRandPool() {\n\tpoolEnabled = true\n}\n\n// DisableRandPool disables the randomness pool if it was previously\n// enabled with EnableRandPool.\n//\n// Both EnableRandPool and DisableRandPool are not thread-safe and should\n// only be called when there is no possibility that New or any other\n// UUID Version 4 generation function will be called concurrently.\nfunc DisableRandPool() {\n\tpoolEnabled = false\n\tdefer poolMu.Unlock()\n\tpoolMu.Lock()\n\tpoolPos = randPoolSize\n}\n\n// UUIDs is a slice of UUID types.\ntype UUIDs []UUID\n\n// Strings returns a string slice containing the string form of each UUID in uuids.\nfunc (uuids UUIDs) Strings() []string {\n\tvar uuidStrs = make([]string, len(uuids))\n\tfor i, uuid := range uuids {\n\t\tuuidStrs[i] = uuid.String()\n\t}\n\treturn uuidStrs\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/version1.go",
    "content": "// Copyright 2016 Google Inc.  All rights 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 uuid\n\nimport (\n\t\"encoding/binary\"\n)\n\n// NewUUID returns a Version 1 UUID based on the current NodeID and clock\n// sequence, and the current time.  If the NodeID has not been set by SetNodeID\n// or SetNodeInterface then it will be set automatically.  If the NodeID cannot\n// be set NewUUID returns nil.  If clock sequence has not been set by\n// SetClockSequence then it will be set automatically.  If GetTime fails to\n// return the current NewUUID returns nil and an error.\n//\n// In most cases, New should be used.\nfunc NewUUID() (UUID, error) {\n\tvar uuid UUID\n\tnow, seq, err := GetTime()\n\tif err != nil {\n\t\treturn uuid, err\n\t}\n\n\ttimeLow := uint32(now & 0xffffffff)\n\ttimeMid := uint16((now >> 32) & 0xffff)\n\ttimeHi := uint16((now >> 48) & 0x0fff)\n\ttimeHi |= 0x1000 // Version 1\n\n\tbinary.BigEndian.PutUint32(uuid[0:], timeLow)\n\tbinary.BigEndian.PutUint16(uuid[4:], timeMid)\n\tbinary.BigEndian.PutUint16(uuid[6:], timeHi)\n\tbinary.BigEndian.PutUint16(uuid[8:], seq)\n\n\tnodeMu.Lock()\n\tif nodeID == zeroID {\n\t\tsetNodeInterface(\"\")\n\t}\n\tcopy(uuid[10:], nodeID[:])\n\tnodeMu.Unlock()\n\n\treturn uuid, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/version4.go",
    "content": "// Copyright 2016 Google Inc.  All rights 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 uuid\n\nimport \"io\"\n\n// New creates a new random UUID or panics.  New is equivalent to\n// the expression\n//\n//    uuid.Must(uuid.NewRandom())\nfunc New() UUID {\n\treturn Must(NewRandom())\n}\n\n// NewString creates a new random UUID and returns it as a string or panics.\n// NewString is equivalent to the expression\n//\n//    uuid.New().String()\nfunc NewString() string {\n\treturn Must(NewRandom()).String()\n}\n\n// NewRandom returns a Random (Version 4) UUID.\n//\n// The strength of the UUIDs is based on the strength of the crypto/rand\n// package.\n//\n// Uses the randomness pool if it was enabled with EnableRandPool.\n//\n// A note about uniqueness derived from the UUID Wikipedia entry:\n//\n//  Randomly generated UUIDs have 122 random bits.  One's annual risk of being\n//  hit by a meteorite is estimated to be one chance in 17 billion, that\n//  means the probability is about 0.00000000006 (6 × 10−11),\n//  equivalent to the odds of creating a few tens of trillions of UUIDs in a\n//  year and having one duplicate.\nfunc NewRandom() (UUID, error) {\n\tif !poolEnabled {\n\t\treturn NewRandomFromReader(rander)\n\t}\n\treturn newRandomFromPool()\n}\n\n// NewRandomFromReader returns a UUID based on bytes read from a given io.Reader.\nfunc NewRandomFromReader(r io.Reader) (UUID, error) {\n\tvar uuid UUID\n\t_, err := io.ReadFull(r, uuid[:])\n\tif err != nil {\n\t\treturn Nil, err\n\t}\n\tuuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4\n\tuuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10\n\treturn uuid, nil\n}\n\nfunc newRandomFromPool() (UUID, error) {\n\tvar uuid UUID\n\tpoolMu.Lock()\n\tif poolPos == randPoolSize {\n\t\t_, err := io.ReadFull(rander, pool[:])\n\t\tif err != nil {\n\t\t\tpoolMu.Unlock()\n\t\t\treturn Nil, err\n\t\t}\n\t\tpoolPos = 0\n\t}\n\tcopy(uuid[:], pool[poolPos:(poolPos+16)])\n\tpoolPos += 16\n\tpoolMu.Unlock()\n\n\tuuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4\n\tuuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10\n\treturn uuid, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/version6.go",
    "content": "// Copyright 2023 Google Inc.  All rights 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 uuid\n\nimport \"encoding/binary\"\n\n// UUID version 6 is a field-compatible version of UUIDv1, reordered for improved DB locality.\n// It is expected that UUIDv6 will primarily be used in contexts where there are existing v1 UUIDs.\n// Systems that do not involve legacy UUIDv1 SHOULD consider using UUIDv7 instead.\n//\n// see https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-03#uuidv6\n//\n// NewV6 returns a Version 6 UUID based on the current NodeID and clock\n// sequence, and the current time. If the NodeID has not been set by SetNodeID\n// or SetNodeInterface then it will be set automatically. If the NodeID cannot\n// be set NewV6 set NodeID is random bits automatically . If clock sequence has not been set by\n// SetClockSequence then it will be set automatically. If GetTime fails to\n// return the current NewV6 returns Nil and an error.\nfunc NewV6() (UUID, error) {\n\tvar uuid UUID\n\tnow, seq, err := GetTime()\n\tif err != nil {\n\t\treturn uuid, err\n\t}\n\n\t/*\n\t    0                   1                   2                   3\n\t    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t   |                           time_high                           |\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t   |           time_mid            |      time_low_and_version     |\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t   |clk_seq_hi_res |  clk_seq_low  |         node (0-1)            |\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t   |                         node (2-5)                            |\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t*/\n\n\tbinary.BigEndian.PutUint64(uuid[0:], uint64(now))\n\tbinary.BigEndian.PutUint16(uuid[8:], seq)\n\n\tuuid[6] = 0x60 | (uuid[6] & 0x0F)\n\tuuid[8] = 0x80 | (uuid[8] & 0x3F)\n\n\tnodeMu.Lock()\n\tif nodeID == zeroID {\n\t\tsetNodeInterface(\"\")\n\t}\n\tcopy(uuid[10:], nodeID[:])\n\tnodeMu.Unlock()\n\n\treturn uuid, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/version7.go",
    "content": "// Copyright 2023 Google Inc.  All rights 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 uuid\n\nimport (\n\t\"io\"\n)\n\n// UUID version 7 features a time-ordered value field derived from the widely\n// implemented and well known Unix Epoch timestamp source,\n// the number of milliseconds seconds since midnight 1 Jan 1970 UTC, leap seconds excluded.\n// As well as improved entropy characteristics over versions 1 or 6.\n//\n// see https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-03#name-uuid-version-7\n//\n// Implementations SHOULD utilize UUID version 7 over UUID version 1 and 6 if possible.\n//\n// NewV7 returns a Version 7 UUID based on the current time(Unix Epoch).\n// Uses the randomness pool if it was enabled with EnableRandPool.\n// On error, NewV7 returns Nil and an error\nfunc NewV7() (UUID, error) {\n\tuuid, err := NewRandom()\n\tif err != nil {\n\t\treturn uuid, err\n\t}\n\tmakeV7(uuid[:])\n\treturn uuid, nil\n}\n\n// NewV7FromReader returns a Version 7 UUID based on the current time(Unix Epoch).\n// it use NewRandomFromReader fill random bits.\n// On error, NewV7FromReader returns Nil and an error.\nfunc NewV7FromReader(r io.Reader) (UUID, error) {\n\tuuid, err := NewRandomFromReader(r)\n\tif err != nil {\n\t\treturn uuid, err\n\t}\n\n\tmakeV7(uuid[:])\n\treturn uuid, nil\n}\n\n// makeV7 fill 48 bits time (uuid[0] - uuid[5]), set version b0111 (uuid[6])\n// uuid[8] already has the right version number (Variant is 10)\n// see function NewV7 and NewV7FromReader\nfunc makeV7(uuid []byte) {\n\t/*\n\t\t 0                   1                   2                   3\n\t\t 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t\t|                           unix_ts_ms                          |\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t\t|          unix_ts_ms           |  ver  |  rand_a (12 bit seq)  |\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t\t|var|                        rand_b                             |\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t\t|                            rand_b                             |\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t*/\n\t_ = uuid[15] // bounds check\n\n\tt, s := getV7Time()\n\n\tuuid[0] = byte(t >> 40)\n\tuuid[1] = byte(t >> 32)\n\tuuid[2] = byte(t >> 24)\n\tuuid[3] = byte(t >> 16)\n\tuuid[4] = byte(t >> 8)\n\tuuid[5] = byte(t)\n\n\tuuid[6] = 0x70 | (0x0F & byte(s>>8))\n\tuuid[7] = byte(s)\n}\n\n// lastV7time is the last time we returned stored as:\n//\n//\t52 bits of time in milliseconds since epoch\n//\t12 bits of (fractional nanoseconds) >> 8\nvar lastV7time int64\n\nconst nanoPerMilli = 1000000\n\n// getV7Time returns the time in milliseconds and nanoseconds / 256.\n// The returned (milli << 12 + seq) is guarenteed to be greater than\n// (milli << 12 + seq) returned by any previous call to getV7Time.\nfunc getV7Time() (milli, seq int64) {\n\ttimeMu.Lock()\n\tdefer timeMu.Unlock()\n\n\tnano := timeNow().UnixNano()\n\tmilli = nano / nanoPerMilli\n\t// Sequence number is between 0 and 3906 (nanoPerMilli>>8)\n\tseq = (nano - milli*nanoPerMilli) >> 8\n\tnow := milli<<12 + seq\n\tif now <= lastV7time {\n\t\tnow = lastV7time + 1\n\t\tmilli = now >> 12\n\t\tseq = now & 0xfff\n\t}\n\tlastV7time = now\n\treturn milli, seq\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/mailru/easyjson/LICENSE",
    "content": "Copyright (c) 2016 Mail.Ru Group\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/mailru/easyjson/buffer/pool.go",
    "content": "// Package buffer implements a buffer for serialization, consisting of a chain of []byte-s to\n// reduce copying and to allow reuse of individual chunks.\npackage buffer\n\nimport (\n\t\"io\"\n\t\"net\"\n\t\"sync\"\n)\n\n// PoolConfig contains configuration for the allocation and reuse strategy.\ntype PoolConfig struct {\n\tStartSize  int // Minimum chunk size that is allocated.\n\tPooledSize int // Minimum chunk size that is reused, reusing chunks too small will result in overhead.\n\tMaxSize    int // Maximum chunk size that will be allocated.\n}\n\nvar config = PoolConfig{\n\tStartSize:  128,\n\tPooledSize: 512,\n\tMaxSize:    32768,\n}\n\n// Reuse pool: chunk size -> pool.\nvar buffers = map[int]*sync.Pool{}\n\nfunc initBuffers() {\n\tfor l := config.PooledSize; l <= config.MaxSize; l *= 2 {\n\t\tbuffers[l] = new(sync.Pool)\n\t}\n}\n\nfunc init() {\n\tinitBuffers()\n}\n\n// Init sets up a non-default pooling and allocation strategy. Should be run before serialization is done.\nfunc Init(cfg PoolConfig) {\n\tconfig = cfg\n\tinitBuffers()\n}\n\n// putBuf puts a chunk to reuse pool if it can be reused.\nfunc putBuf(buf []byte) {\n\tsize := cap(buf)\n\tif size < config.PooledSize {\n\t\treturn\n\t}\n\tif c := buffers[size]; c != nil {\n\t\tc.Put(buf[:0])\n\t}\n}\n\n// getBuf gets a chunk from reuse pool or creates a new one if reuse failed.\nfunc getBuf(size int) []byte {\n\tif size >= config.PooledSize {\n\t\tif c := buffers[size]; c != nil {\n\t\t\tv := c.Get()\n\t\t\tif v != nil {\n\t\t\t\treturn v.([]byte)\n\t\t\t}\n\t\t}\n\t}\n\treturn make([]byte, 0, size)\n}\n\n// Buffer is a buffer optimized for serialization without extra copying.\ntype Buffer struct {\n\n\t// Buf is the current chunk that can be used for serialization.\n\tBuf []byte\n\n\ttoPool []byte\n\tbufs   [][]byte\n}\n\n// EnsureSpace makes sure that the current chunk contains at least s free bytes,\n// possibly creating a new chunk.\nfunc (b *Buffer) EnsureSpace(s int) {\n\tif cap(b.Buf)-len(b.Buf) < s {\n\t\tb.ensureSpaceSlow(s)\n\t}\n}\n\nfunc (b *Buffer) ensureSpaceSlow(s int) {\n\tl := len(b.Buf)\n\tif l > 0 {\n\t\tif cap(b.toPool) != cap(b.Buf) {\n\t\t\t// Chunk was reallocated, toPool can be pooled.\n\t\t\tputBuf(b.toPool)\n\t\t}\n\t\tif cap(b.bufs) == 0 {\n\t\t\tb.bufs = make([][]byte, 0, 8)\n\t\t}\n\t\tb.bufs = append(b.bufs, b.Buf)\n\t\tl = cap(b.toPool) * 2\n\t} else {\n\t\tl = config.StartSize\n\t}\n\n\tif l > config.MaxSize {\n\t\tl = config.MaxSize\n\t}\n\tb.Buf = getBuf(l)\n\tb.toPool = b.Buf\n}\n\n// AppendByte appends a single byte to buffer.\nfunc (b *Buffer) AppendByte(data byte) {\n\tb.EnsureSpace(1)\n\tb.Buf = append(b.Buf, data)\n}\n\n// AppendBytes appends a byte slice to buffer.\nfunc (b *Buffer) AppendBytes(data []byte) {\n\tif len(data) <= cap(b.Buf)-len(b.Buf) {\n\t\tb.Buf = append(b.Buf, data...) // fast path\n\t} else {\n\t\tb.appendBytesSlow(data)\n\t}\n}\n\nfunc (b *Buffer) appendBytesSlow(data []byte) {\n\tfor len(data) > 0 {\n\t\tb.EnsureSpace(1)\n\n\t\tsz := cap(b.Buf) - len(b.Buf)\n\t\tif sz > len(data) {\n\t\t\tsz = len(data)\n\t\t}\n\n\t\tb.Buf = append(b.Buf, data[:sz]...)\n\t\tdata = data[sz:]\n\t}\n}\n\n// AppendString appends a string to buffer.\nfunc (b *Buffer) AppendString(data string) {\n\tif len(data) <= cap(b.Buf)-len(b.Buf) {\n\t\tb.Buf = append(b.Buf, data...) // fast path\n\t} else {\n\t\tb.appendStringSlow(data)\n\t}\n}\n\nfunc (b *Buffer) appendStringSlow(data string) {\n\tfor len(data) > 0 {\n\t\tb.EnsureSpace(1)\n\n\t\tsz := cap(b.Buf) - len(b.Buf)\n\t\tif sz > len(data) {\n\t\t\tsz = len(data)\n\t\t}\n\n\t\tb.Buf = append(b.Buf, data[:sz]...)\n\t\tdata = data[sz:]\n\t}\n}\n\n// Size computes the size of a buffer by adding sizes of every chunk.\nfunc (b *Buffer) Size() int {\n\tsize := len(b.Buf)\n\tfor _, buf := range b.bufs {\n\t\tsize += len(buf)\n\t}\n\treturn size\n}\n\n// DumpTo outputs the contents of a buffer to a writer and resets the buffer.\nfunc (b *Buffer) DumpTo(w io.Writer) (written int, err error) {\n\tbufs := net.Buffers(b.bufs)\n\tif len(b.Buf) > 0 {\n\t\tbufs = append(bufs, b.Buf)\n\t}\n\tn, err := bufs.WriteTo(w)\n\n\tfor _, buf := range b.bufs {\n\t\tputBuf(buf)\n\t}\n\tputBuf(b.toPool)\n\n\tb.bufs = nil\n\tb.Buf = nil\n\tb.toPool = nil\n\n\treturn int(n), err\n}\n\n// BuildBytes creates a single byte slice with all the contents of the buffer. Data is\n// copied if it does not fit in a single chunk. You can optionally provide one byte\n// slice as argument that it will try to reuse.\nfunc (b *Buffer) BuildBytes(reuse ...[]byte) []byte {\n\tif len(b.bufs) == 0 {\n\t\tret := b.Buf\n\t\tb.toPool = nil\n\t\tb.Buf = nil\n\t\treturn ret\n\t}\n\n\tvar ret []byte\n\tsize := b.Size()\n\n\t// If we got a buffer as argument and it is big enough, reuse it.\n\tif len(reuse) == 1 && cap(reuse[0]) >= size {\n\t\tret = reuse[0][:0]\n\t} else {\n\t\tret = make([]byte, 0, size)\n\t}\n\tfor _, buf := range b.bufs {\n\t\tret = append(ret, buf...)\n\t\tputBuf(buf)\n\t}\n\n\tret = append(ret, b.Buf...)\n\tputBuf(b.toPool)\n\n\tb.bufs = nil\n\tb.toPool = nil\n\tb.Buf = nil\n\n\treturn ret\n}\n\ntype readCloser struct {\n\toffset int\n\tbufs   [][]byte\n}\n\nfunc (r *readCloser) Read(p []byte) (n int, err error) {\n\tfor _, buf := range r.bufs {\n\t\t// Copy as much as we can.\n\t\tx := copy(p[n:], buf[r.offset:])\n\t\tn += x // Increment how much we filled.\n\n\t\t// Did we empty the whole buffer?\n\t\tif r.offset+x == len(buf) {\n\t\t\t// On to the next buffer.\n\t\t\tr.offset = 0\n\t\t\tr.bufs = r.bufs[1:]\n\n\t\t\t// We can release this buffer.\n\t\t\tputBuf(buf)\n\t\t} else {\n\t\t\tr.offset += x\n\t\t}\n\n\t\tif n == len(p) {\n\t\t\tbreak\n\t\t}\n\t}\n\t// No buffers left or nothing read?\n\tif len(r.bufs) == 0 {\n\t\terr = io.EOF\n\t}\n\treturn\n}\n\nfunc (r *readCloser) Close() error {\n\t// Release all remaining buffers.\n\tfor _, buf := range r.bufs {\n\t\tputBuf(buf)\n\t}\n\t// In case Close gets called multiple times.\n\tr.bufs = nil\n\n\treturn nil\n}\n\n// ReadCloser creates an io.ReadCloser with all the contents of the buffer.\nfunc (b *Buffer) ReadCloser() io.ReadCloser {\n\tret := &readCloser{0, append(b.bufs, b.Buf)}\n\n\tb.bufs = nil\n\tb.toPool = nil\n\tb.Buf = nil\n\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jwriter/writer.go",
    "content": "// Package jwriter contains a JSON writer.\npackage jwriter\n\nimport (\n\t\"io\"\n\t\"strconv\"\n\t\"unicode/utf8\"\n\n\t\"github.com/mailru/easyjson/buffer\"\n)\n\n// Flags describe various encoding options. The behavior may be actually implemented in the encoder, but\n// Flags field in Writer is used to set and pass them around.\ntype Flags int\n\nconst (\n\tNilMapAsEmpty   Flags = 1 << iota // Encode nil map as '{}' rather than 'null'.\n\tNilSliceAsEmpty                   // Encode nil slice as '[]' rather than 'null'.\n)\n\n// Writer is a JSON writer.\ntype Writer struct {\n\tFlags Flags\n\n\tError        error\n\tBuffer       buffer.Buffer\n\tNoEscapeHTML bool\n}\n\n// Size returns the size of the data that was written out.\nfunc (w *Writer) Size() int {\n\treturn w.Buffer.Size()\n}\n\n// DumpTo outputs the data to given io.Writer, resetting the buffer.\nfunc (w *Writer) DumpTo(out io.Writer) (written int, err error) {\n\treturn w.Buffer.DumpTo(out)\n}\n\n// BuildBytes returns writer data as a single byte slice. You can optionally provide one byte slice\n// as argument that it will try to reuse.\nfunc (w *Writer) BuildBytes(reuse ...[]byte) ([]byte, error) {\n\tif w.Error != nil {\n\t\treturn nil, w.Error\n\t}\n\n\treturn w.Buffer.BuildBytes(reuse...), nil\n}\n\n// ReadCloser returns an io.ReadCloser that can be used to read the data.\n// ReadCloser also resets the buffer.\nfunc (w *Writer) ReadCloser() (io.ReadCloser, error) {\n\tif w.Error != nil {\n\t\treturn nil, w.Error\n\t}\n\n\treturn w.Buffer.ReadCloser(), nil\n}\n\n// RawByte appends raw binary data to the buffer.\nfunc (w *Writer) RawByte(c byte) {\n\tw.Buffer.AppendByte(c)\n}\n\n// RawByte appends raw binary data to the buffer.\nfunc (w *Writer) RawString(s string) {\n\tw.Buffer.AppendString(s)\n}\n\n// Raw appends raw binary data to the buffer or sets the error if it is given. Useful for\n// calling with results of MarshalJSON-like functions.\nfunc (w *Writer) Raw(data []byte, err error) {\n\tswitch {\n\tcase w.Error != nil:\n\t\treturn\n\tcase err != nil:\n\t\tw.Error = err\n\tcase len(data) > 0:\n\t\tw.Buffer.AppendBytes(data)\n\tdefault:\n\t\tw.RawString(\"null\")\n\t}\n}\n\n// RawText encloses raw binary data in quotes and appends in to the buffer.\n// Useful for calling with results of MarshalText-like functions.\nfunc (w *Writer) RawText(data []byte, err error) {\n\tswitch {\n\tcase w.Error != nil:\n\t\treturn\n\tcase err != nil:\n\t\tw.Error = err\n\tcase len(data) > 0:\n\t\tw.String(string(data))\n\tdefault:\n\t\tw.RawString(\"null\")\n\t}\n}\n\n// Base64Bytes appends data to the buffer after base64 encoding it\nfunc (w *Writer) Base64Bytes(data []byte) {\n\tif data == nil {\n\t\tw.Buffer.AppendString(\"null\")\n\t\treturn\n\t}\n\tw.Buffer.AppendByte('\"')\n\tw.base64(data)\n\tw.Buffer.AppendByte('\"')\n}\n\nfunc (w *Writer) Uint8(n uint8) {\n\tw.Buffer.EnsureSpace(3)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint16(n uint16) {\n\tw.Buffer.EnsureSpace(5)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint32(n uint32) {\n\tw.Buffer.EnsureSpace(10)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint(n uint) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint64(n uint64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, n, 10)\n}\n\nfunc (w *Writer) Int8(n int8) {\n\tw.Buffer.EnsureSpace(4)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int16(n int16) {\n\tw.Buffer.EnsureSpace(6)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int32(n int32) {\n\tw.Buffer.EnsureSpace(11)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int(n int) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int64(n int64) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, n, 10)\n}\n\nfunc (w *Writer) Uint8Str(n uint8) {\n\tw.Buffer.EnsureSpace(3)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Uint16Str(n uint16) {\n\tw.Buffer.EnsureSpace(5)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Uint32Str(n uint32) {\n\tw.Buffer.EnsureSpace(10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) UintStr(n uint) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Uint64Str(n uint64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, n, 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) UintptrStr(n uintptr) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int8Str(n int8) {\n\tw.Buffer.EnsureSpace(4)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int16Str(n int16) {\n\tw.Buffer.EnsureSpace(6)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int32Str(n int32) {\n\tw.Buffer.EnsureSpace(11)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) IntStr(n int) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int64Str(n int64) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, n, 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Float32(n float32) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 32)\n}\n\nfunc (w *Writer) Float32Str(n float32) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 32)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Float64(n float64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, n, 'g', -1, 64)\n}\n\nfunc (w *Writer) Float64Str(n float64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 64)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Bool(v bool) {\n\tw.Buffer.EnsureSpace(5)\n\tif v {\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, \"true\"...)\n\t} else {\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, \"false\"...)\n\t}\n}\n\nconst chars = \"0123456789abcdef\"\n\nfunc getTable(falseValues ...int) [128]bool {\n\ttable := [128]bool{}\n\n\tfor i := 0; i < 128; i++ {\n\t\ttable[i] = true\n\t}\n\n\tfor _, v := range falseValues {\n\t\ttable[v] = false\n\t}\n\n\treturn table\n}\n\nvar (\n\thtmlEscapeTable   = getTable(0, 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, 31, '\"', '&', '<', '>', '\\\\')\n\thtmlNoEscapeTable = getTable(0, 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, 31, '\"', '\\\\')\n)\n\nfunc (w *Writer) String(s string) {\n\tw.Buffer.AppendByte('\"')\n\n\t// Portions of the string that contain no escapes are appended as\n\t// byte slices.\n\n\tp := 0 // last non-escape symbol\n\n\tescapeTable := &htmlEscapeTable\n\tif w.NoEscapeHTML {\n\t\tescapeTable = &htmlNoEscapeTable\n\t}\n\n\tfor i := 0; i < len(s); {\n\t\tc := s[i]\n\n\t\tif c < utf8.RuneSelf {\n\t\t\tif escapeTable[c] {\n\t\t\t\t// single-width character, no escaping is required\n\t\t\t\ti++\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tw.Buffer.AppendString(s[p:i])\n\t\t\tswitch c {\n\t\t\tcase '\\t':\n\t\t\t\tw.Buffer.AppendString(`\\t`)\n\t\t\tcase '\\r':\n\t\t\t\tw.Buffer.AppendString(`\\r`)\n\t\t\tcase '\\n':\n\t\t\t\tw.Buffer.AppendString(`\\n`)\n\t\t\tcase '\\\\':\n\t\t\t\tw.Buffer.AppendString(`\\\\`)\n\t\t\tcase '\"':\n\t\t\t\tw.Buffer.AppendString(`\\\"`)\n\t\t\tdefault:\n\t\t\t\tw.Buffer.AppendString(`\\u00`)\n\t\t\t\tw.Buffer.AppendByte(chars[c>>4])\n\t\t\t\tw.Buffer.AppendByte(chars[c&0xf])\n\t\t\t}\n\n\t\t\ti++\n\t\t\tp = i\n\t\t\tcontinue\n\t\t}\n\n\t\t// broken utf\n\t\truneValue, runeWidth := utf8.DecodeRuneInString(s[i:])\n\t\tif runeValue == utf8.RuneError && runeWidth == 1 {\n\t\t\tw.Buffer.AppendString(s[p:i])\n\t\t\tw.Buffer.AppendString(`\\ufffd`)\n\t\t\ti++\n\t\t\tp = i\n\t\t\tcontinue\n\t\t}\n\n\t\t// jsonp stuff - tab separator and line separator\n\t\tif runeValue == '\\u2028' || runeValue == '\\u2029' {\n\t\t\tw.Buffer.AppendString(s[p:i])\n\t\t\tw.Buffer.AppendString(`\\u202`)\n\t\t\tw.Buffer.AppendByte(chars[runeValue&0xf])\n\t\t\ti += runeWidth\n\t\t\tp = i\n\t\t\tcontinue\n\t\t}\n\t\ti += runeWidth\n\t}\n\tw.Buffer.AppendString(s[p:])\n\tw.Buffer.AppendByte('\"')\n}\n\nconst encode = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\nconst padChar = '='\n\nfunc (w *Writer) base64(in []byte) {\n\n\tif len(in) == 0 {\n\t\treturn\n\t}\n\n\tw.Buffer.EnsureSpace(((len(in)-1)/3 + 1) * 4)\n\n\tsi := 0\n\tn := (len(in) / 3) * 3\n\n\tfor si < n {\n\t\t// Convert 3x 8bit source bytes into 4 bytes\n\t\tval := uint(in[si+0])<<16 | uint(in[si+1])<<8 | uint(in[si+2])\n\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, encode[val>>18&0x3F], encode[val>>12&0x3F], encode[val>>6&0x3F], encode[val&0x3F])\n\n\t\tsi += 3\n\t}\n\n\tremain := len(in) - si\n\tif remain == 0 {\n\t\treturn\n\t}\n\n\t// Add the remaining small block\n\tval := uint(in[si+0]) << 16\n\tif remain == 2 {\n\t\tval |= uint(in[si+1]) << 8\n\t}\n\n\tw.Buffer.Buf = append(w.Buffer.Buf, encode[val>>18&0x3F], encode[val>>12&0x3F])\n\n\tswitch remain {\n\tcase 2:\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, encode[val>>6&0x3F], byte(padChar))\n\tcase 1:\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, byte(padChar), byte(padChar))\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2024 Anthropic, PBC\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/mark3labs/mcp-go/mcp/consts.go",
    "content": "package mcp\n\nconst (\n\tContentTypeText     = \"text\"\n\tContentTypeImage    = \"image\"\n\tContentTypeAudio    = \"audio\"\n\tContentTypeLink     = \"resource_link\"\n\tContentTypeResource = \"resource\"\n\n\tElicitationModeForm = \"form\"\n\tElicitationModeURL  = \"url\"\n)\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/mcp/errors.go",
    "content": "package mcp\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n)\n\n// Sentinel errors for common JSON-RPC error codes.\nvar (\n\t// ErrParseError indicates a JSON parsing error (code: PARSE_ERROR).\n\tErrParseError = errors.New(\"parse error\")\n\n\t// ErrInvalidRequest indicates an invalid JSON-RPC request (code: INVALID_REQUEST).\n\tErrInvalidRequest = errors.New(\"invalid request\")\n\n\t// ErrMethodNotFound indicates the requested method does not exist (code: METHOD_NOT_FOUND).\n\tErrMethodNotFound = errors.New(\"method not found\")\n\n\t// ErrInvalidParams indicates invalid method parameters (code: INVALID_PARAMS).\n\tErrInvalidParams = errors.New(\"invalid params\")\n\n\t// ErrInternalError indicates an internal JSON-RPC error (code: INTERNAL_ERROR).\n\tErrInternalError = errors.New(\"internal error\")\n\n\t// ErrRequestInterrupted indicates a request was cancelled or timed out (code: REQUEST_INTERRUPTED).\n\tErrRequestInterrupted = errors.New(\"request interrupted\")\n\n\t// ErrResourceNotFound indicates a requested resource was not found (code: RESOURCE_NOT_FOUND).\n\tErrResourceNotFound = errors.New(\"resource not found\")\n)\n\n// URLElicitationRequiredError is returned when the server requires URL elicitation to proceed.\ntype URLElicitationRequiredError struct {\n\tElicitations []ElicitationParams `json:\"elicitations\"`\n}\n\nfunc (e URLElicitationRequiredError) Error() string {\n\treturn fmt.Sprintf(\"URL elicitation required: %d elicitation(s) needed\", len(e.Elicitations))\n}\n\nfunc (e URLElicitationRequiredError) JSONRPCError() JSONRPCError {\n\treturn JSONRPCError{\n\t\tJSONRPC: JSONRPC_VERSION,\n\t\tError: JSONRPCErrorDetails{\n\t\t\tCode:    URL_ELICITATION_REQUIRED,\n\t\t\tMessage: e.Error(),\n\t\t\tData: map[string]any{\n\t\t\t\t\"elicitations\": e.Elicitations,\n\t\t\t},\n\t\t},\n\t}\n}\n\n// UnsupportedProtocolVersionError is returned when the server responds with\n// a protocol version that the client doesn't support.\ntype UnsupportedProtocolVersionError struct {\n\tVersion string\n}\n\nfunc (e UnsupportedProtocolVersionError) Error() string {\n\treturn fmt.Sprintf(\"unsupported protocol version: %q\", e.Version)\n}\n\n// Is implements the errors.Is interface for better error handling\nfunc (e URLElicitationRequiredError) Is(target error) bool {\n\t_, ok := target.(URLElicitationRequiredError)\n\treturn ok\n}\n\n// Is implements the errors.Is interface for better error handling\nfunc (e UnsupportedProtocolVersionError) Is(target error) bool {\n\t_, ok := target.(UnsupportedProtocolVersionError)\n\treturn ok\n}\n\n// IsUnsupportedProtocolVersion checks if an error is an UnsupportedProtocolVersionError\nfunc IsUnsupportedProtocolVersion(err error) bool {\n\t_, ok := err.(UnsupportedProtocolVersionError)\n\treturn ok\n}\n\n// AsError maps JSONRPCErrorDetails to a Go error.\n// Returns sentinel errors wrapped with custom messages for known codes.\n// Defaults to a generic error with the original message when the code is not mapped.\nfunc (e *JSONRPCErrorDetails) AsError() error {\n\tvar err error\n\n\tswitch e.Code {\n\tcase PARSE_ERROR:\n\t\terr = ErrParseError\n\tcase INVALID_REQUEST:\n\t\terr = ErrInvalidRequest\n\tcase METHOD_NOT_FOUND:\n\t\terr = ErrMethodNotFound\n\tcase INVALID_PARAMS:\n\t\terr = ErrInvalidParams\n\tcase INTERNAL_ERROR:\n\t\terr = ErrInternalError\n\tcase REQUEST_INTERRUPTED:\n\t\terr = ErrRequestInterrupted\n\tcase RESOURCE_NOT_FOUND:\n\t\terr = ErrResourceNotFound\n\tcase URL_ELICITATION_REQUIRED:\n\t\t// Attempt to reconstruct URLElicitationRequiredError from Data\n\t\tif e.Data != nil {\n\t\t\t// Round-trip through JSON to parse into struct\n\t\t\t// This handles both map[string]any (from unmarshal) and other forms\n\t\t\tif dataBytes, marshalErr := json.Marshal(e.Data); marshalErr == nil {\n\t\t\t\tvar data struct {\n\t\t\t\t\tElicitations []ElicitationParams `json:\"elicitations\"`\n\t\t\t\t}\n\t\t\t\tif unmarshalErr := json.Unmarshal(dataBytes, &data); unmarshalErr == nil {\n\t\t\t\t\treturn URLElicitationRequiredError{\n\t\t\t\t\t\tElicitations: data.Elicitations,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Fallback if data is missing or invalid\n\t\treturn URLElicitationRequiredError{}\n\tdefault:\n\t\treturn errors.New(e.Message)\n\t}\n\n\t// Wrap the sentinel error with the custom message if it differs from the sentinel.\n\tif e.Message != \"\" && e.Message != err.Error() {\n\t\treturn fmt.Errorf(\"%w: %s\", err, e.Message)\n\t}\n\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/mcp/prompts.go",
    "content": "package mcp\n\nimport \"net/http\"\n\n/* Prompts */\n\n// ListPromptsRequest is sent from the client to request a list of prompts and\n// prompt templates the server has.\ntype ListPromptsRequest struct {\n\tPaginatedRequest\n\tHeader http.Header `json:\"-\"`\n}\n\n// ListPromptsResult is the server's response to a prompts/list request from\n// the client.\ntype ListPromptsResult struct {\n\tPaginatedResult\n\tPrompts []Prompt `json:\"prompts\"`\n}\n\n// GetPromptRequest is used by the client to get a prompt provided by the\n// server.\ntype GetPromptRequest struct {\n\tRequest\n\tParams GetPromptParams `json:\"params\"`\n\tHeader http.Header     `json:\"-\"`\n}\n\ntype GetPromptParams struct {\n\t// The name of the prompt or prompt template.\n\tName string `json:\"name\"`\n\t// Arguments to use for templating the prompt.\n\tArguments map[string]string `json:\"arguments,omitempty\"`\n}\n\n// GetPromptResult is the server's response to a prompts/get request from the\n// client.\ntype GetPromptResult struct {\n\tResult\n\t// An optional description for the prompt.\n\tDescription string          `json:\"description,omitempty\"`\n\tMessages    []PromptMessage `json:\"messages\"`\n}\n\n// Prompt represents a prompt or prompt template that the server offers.\n// If Arguments is non-nil and non-empty, this indicates the prompt is a template\n// that requires argument values to be provided when calling prompts/get.\n// If Arguments is nil or empty, this is a static prompt that takes no arguments.\ntype Prompt struct {\n\t// Meta is a metadata object that is reserved by MCP for storing additional information.\n\tMeta *Meta `json:\"_meta,omitempty\"`\n\t// The name of the prompt or prompt template.\n\tName string `json:\"name\"`\n\t// An optional description of what this prompt provides\n\tDescription string `json:\"description,omitempty\"`\n\t// A list of arguments to use for templating the prompt.\n\t// The presence of arguments indicates this is a template prompt.\n\tArguments []PromptArgument `json:\"arguments,omitempty\"`\n\t// Icons provides visual identifiers for the prompt\n\tIcons []Icon `json:\"icons,omitempty\"`\n}\n\n// GetName returns the name of the prompt.\nfunc (p Prompt) GetName() string {\n\treturn p.Name\n}\n\n// PromptArgument describes an argument that a prompt template can accept.\n// When a prompt includes arguments, clients must provide values for all\n// required arguments when making a prompts/get request.\ntype PromptArgument struct {\n\t// The name of the argument.\n\tName string `json:\"name\"`\n\t// A human-readable description of the argument.\n\tDescription string `json:\"description,omitempty\"`\n\t// Whether this argument must be provided.\n\t// If true, clients must include this argument when calling prompts/get.\n\tRequired bool `json:\"required,omitempty\"`\n}\n\n// Role represents the sender or recipient of messages and data in a\n// conversation.\ntype Role string\n\nconst (\n\tRoleUser      Role = \"user\"\n\tRoleAssistant Role = \"assistant\"\n)\n\n// PromptMessage describes a message returned as part of a prompt.\n//\n// This is similar to `SamplingMessage`, but also supports the embedding of\n// resources from the MCP server.\ntype PromptMessage struct {\n\tRole    Role    `json:\"role\"`\n\tContent Content `json:\"content\"` // Can be TextContent, ImageContent, AudioContent or EmbeddedResource\n}\n\n// PromptListChangedNotification is an optional notification from the server\n// to the client, informing it that the list of prompts it offers has changed. This\n// may be issued by servers without any previous subscription from the client.\ntype PromptListChangedNotification struct {\n\tNotification\n}\n\n// PromptOption is a function that configures a Prompt.\n// It provides a flexible way to set various properties of a Prompt using the functional options pattern.\ntype PromptOption func(*Prompt)\n\n// ArgumentOption is a function that configures a PromptArgument.\n// It allows for flexible configuration of prompt arguments using the functional options pattern.\ntype ArgumentOption func(*PromptArgument)\n\n//\n// Core Prompt Functions\n//\n\n// NewPrompt creates a new Prompt with the given name and options.\n// The prompt will be configured based on the provided options.\n// Options are applied in order, allowing for flexible prompt configuration.\nfunc NewPrompt(name string, opts ...PromptOption) Prompt {\n\tprompt := Prompt{\n\t\tName: name,\n\t}\n\n\tfor _, opt := range opts {\n\t\topt(&prompt)\n\t}\n\n\treturn prompt\n}\n\n// WithPromptDescription adds a description to the Prompt.\n// The description should provide a clear, human-readable explanation of what the prompt does.\nfunc WithPromptDescription(description string) PromptOption {\n\treturn func(p *Prompt) {\n\t\tp.Description = description\n\t}\n}\n\n// WithPromptIcons adds icons to the Prompt.\n// Icons provide visual identifiers for the prompt.\nfunc WithPromptIcons(icons ...Icon) PromptOption {\n\treturn func(p *Prompt) {\n\t\tp.Icons = icons\n\t}\n}\n\n// WithArgument adds an argument to the prompt's argument list.\n// The argument will be configured based on the provided options.\nfunc WithArgument(name string, opts ...ArgumentOption) PromptOption {\n\treturn func(p *Prompt) {\n\t\targ := PromptArgument{\n\t\t\tName: name,\n\t\t}\n\n\t\tfor _, opt := range opts {\n\t\t\topt(&arg)\n\t\t}\n\n\t\tif p.Arguments == nil {\n\t\t\tp.Arguments = make([]PromptArgument, 0)\n\t\t}\n\t\tp.Arguments = append(p.Arguments, arg)\n\t}\n}\n\n//\n// Argument Options\n//\n\n// ArgumentDescription adds a description to a prompt argument.\n// The description should explain the purpose and expected values of the argument.\nfunc ArgumentDescription(desc string) ArgumentOption {\n\treturn func(arg *PromptArgument) {\n\t\targ.Description = desc\n\t}\n}\n\n// RequiredArgument marks an argument as required in the prompt.\n// Required arguments must be provided when getting the prompt.\nfunc RequiredArgument() ArgumentOption {\n\treturn func(arg *PromptArgument) {\n\t\targ.Required = true\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/mcp/resources.go",
    "content": "package mcp\n\nimport (\n\t\"time\"\n\n\t\"github.com/yosida95/uritemplate/v3\"\n)\n\n// ResourceOption is a function that configures a Resource.\n// It provides a flexible way to set various properties of a Resource using the functional options pattern.\ntype ResourceOption func(*Resource)\n\n// NewResource creates a new Resource with the given URI, name and options.\n// The resource will be configured based on the provided options.\n// Options are applied in order, allowing for flexible resource configuration.\nfunc NewResource(uri string, name string, opts ...ResourceOption) Resource {\n\tresource := Resource{\n\t\tURI:  uri,\n\t\tName: name,\n\t}\n\n\tfor _, opt := range opts {\n\t\topt(&resource)\n\t}\n\n\treturn resource\n}\n\n// WithResourceDescription adds a description to the Resource.\n// The description should provide a clear, human-readable explanation of what the resource represents.\nfunc WithResourceDescription(description string) ResourceOption {\n\treturn func(r *Resource) {\n\t\tr.Description = description\n\t}\n}\n\n// WithMIMEType sets the MIME type for the Resource.\n// This should indicate the format of the resource's contents.\nfunc WithMIMEType(mimeType string) ResourceOption {\n\treturn func(r *Resource) {\n\t\tr.MIMEType = mimeType\n\t}\n}\n\n// WithAnnotations returns a ResourceOption that sets the resource's Annotations fields.\n// It initializes Annotations if nil, sets Audience to the provided slice,\n// stores Priority as a pointer to the provided value, and sets LastModified to the provided timestamp.\nfunc WithAnnotations(audience []Role, priority float64, lastModified string) ResourceOption {\n\treturn func(r *Resource) {\n\t\tif r.Annotations == nil {\n\t\t\tr.Annotations = &Annotations{}\n\t\t}\n\t\tr.Annotations.Audience = audience\n\t\tr.Annotations.Priority = &priority\n\t\tr.Annotations.LastModified = lastModified\n\t}\n}\n\n// WithLastModified returns a ResourceOption that sets the resource's Annotations.LastModified\n// to the provided timestamp. If the resource's Annotations is nil, it will be initialized.\n// The timestamp is expected to be an ISO 8601 (RFC3339) formatted string (e.g., \"2025-01-12T15:00:58Z\").\nfunc WithLastModified(timestamp string) ResourceOption {\n\treturn func(r *Resource) {\n\t\tif r.Annotations == nil {\n\t\t\tr.Annotations = &Annotations{}\n\t\t}\n\t\tr.Annotations.LastModified = timestamp\n\t}\n}\n\n// ResourceTemplateOption is a function that configures a ResourceTemplate.\n// It provides a flexible way to set various properties of a ResourceTemplate using the functional options pattern.\ntype ResourceTemplateOption func(*ResourceTemplate)\n\n// NewResourceTemplate creates a new ResourceTemplate with the given URI template, name and options.\n// The template will be configured based on the provided options.\n// Options are applied in order, allowing for flexible template configuration.\nfunc NewResourceTemplate(uriTemplate string, name string, opts ...ResourceTemplateOption) ResourceTemplate {\n\ttemplate := ResourceTemplate{\n\t\tURITemplate: &URITemplate{Template: uritemplate.MustNew(uriTemplate)},\n\t\tName:        name,\n\t}\n\n\tfor _, opt := range opts {\n\t\topt(&template)\n\t}\n\n\treturn template\n}\n\n// WithTemplateDescription adds a description to the ResourceTemplate.\n// The description should provide a clear, human-readable explanation of what resources this template represents.\nfunc WithTemplateDescription(description string) ResourceTemplateOption {\n\treturn func(t *ResourceTemplate) {\n\t\tt.Description = description\n\t}\n}\n\n// WithTemplateMIMEType sets the MIME type for the ResourceTemplate.\n// This should only be set if all resources matching this template will have the same type.\nfunc WithTemplateMIMEType(mimeType string) ResourceTemplateOption {\n\treturn func(t *ResourceTemplate) {\n\t\tt.MIMEType = mimeType\n\t}\n}\n\n// WithTemplateAnnotations returns a ResourceTemplateOption that sets the template's\n// Annotations field, initializing it if nil, and setting Audience, Priority, and LastModified.\nfunc WithTemplateAnnotations(audience []Role, priority float64, lastModified string) ResourceTemplateOption {\n\treturn func(t *ResourceTemplate) {\n\t\tif t.Annotations == nil {\n\t\t\tt.Annotations = &Annotations{}\n\t\t}\n\t\tt.Annotations.Audience = audience\n\t\tt.Annotations.Priority = &priority\n\t\tt.Annotations.LastModified = lastModified\n\t}\n}\n\n// ValidateISO8601Timestamp verifies that timestamp is a valid ISO 8601 timestamp\n// using the RFC3339 layout. An empty string is considered valid. It returns nil\n// when the timestamp is valid, or the parsing error when it is not.\nfunc ValidateISO8601Timestamp(timestamp string) error {\n\tif timestamp == \"\" {\n\t\treturn nil // Empty is valid (optional field)\n\t}\n\t// Use time.RFC3339 for ISO 8601 compatibility\n\t_, err := time.Parse(time.RFC3339, timestamp)\n\treturn err\n}\n\n// WithResourceIcons adds icons to the Resource.\n// Icons provide visual identifiers for the resource.\nfunc WithResourceIcons(icons ...Icon) ResourceOption {\n\treturn func(r *Resource) {\n\t\tr.Icons = icons\n\t}\n}\n\n// WithTemplateIcons adds icons to the ResourceTemplate.\n// Icons provide visual identifiers for the resource template.\nfunc WithTemplateIcons(icons ...Icon) ResourceTemplateOption {\n\treturn func(rt *ResourceTemplate) {\n\t\trt.Icons = icons\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/mcp/tasks.go",
    "content": "package mcp\n\nimport (\n\t\"time\"\n)\n\n// TaskOption is a function that configures a Task.\n// It provides a flexible way to set various properties of a Task using the functional options pattern.\ntype TaskOption func(*Task)\n\n//\n// Core Task Functions\n//\n\n// NewTask creates a new Task with the given ID and options.\n// The task will be configured based on the provided options.\n// Options are applied in order, allowing for flexible task configuration.\nfunc NewTask(taskId string, opts ...TaskOption) Task {\n\tnow := time.Now().UTC().Format(time.RFC3339)\n\ttask := Task{\n\t\tTaskId:        taskId,\n\t\tStatus:        TaskStatusWorking,\n\t\tCreatedAt:     now,\n\t\tLastUpdatedAt: now,\n\t}\n\n\tfor _, opt := range opts {\n\t\topt(&task)\n\t}\n\n\treturn task\n}\n\n// WithTaskStatus sets the status of the task.\nfunc WithTaskStatus(status TaskStatus) TaskOption {\n\treturn func(t *Task) {\n\t\tt.Status = status\n\t}\n}\n\n// WithTaskStatusMessage sets a human-readable status message for the task.\nfunc WithTaskStatusMessage(message string) TaskOption {\n\treturn func(t *Task) {\n\t\tt.StatusMessage = message\n\t}\n}\n\n// WithTaskTTL sets the time-to-live for the task in milliseconds.\n// After this duration from creation, the task may be deleted.\nfunc WithTaskTTL(ttlMs int64) TaskOption {\n\treturn func(t *Task) {\n\t\tt.TTL = &ttlMs\n\t}\n}\n\n// WithTaskPollInterval sets the suggested polling interval in milliseconds.\nfunc WithTaskPollInterval(intervalMs int64) TaskOption {\n\treturn func(t *Task) {\n\t\tt.PollInterval = &intervalMs\n\t}\n}\n\n// WithTaskCreatedAt sets a specific creation timestamp for the task.\n// By default, NewTask uses the current time.\nfunc WithTaskCreatedAt(createdAt string) TaskOption {\n\treturn func(t *Task) {\n\t\tt.CreatedAt = createdAt\n\t}\n}\n\n//\n// Task Helper Functions\n//\n\n// NewTaskParams creates TaskParams with the given TTL.\nfunc NewTaskParams(ttlMs *int64) TaskParams {\n\treturn TaskParams{\n\t\tTTL: ttlMs,\n\t}\n}\n\n// NewCreateTaskResult creates a CreateTaskResult with the given task.\nfunc NewCreateTaskResult(task Task) CreateTaskResult {\n\treturn CreateTaskResult{\n\t\tTask: task,\n\t}\n}\n\n// NewGetTaskResult creates a GetTaskResult from a Task.\nfunc NewGetTaskResult(task Task) GetTaskResult {\n\treturn GetTaskResult{\n\t\tTask: task,\n\t}\n}\n\n// NewListTasksResult creates a ListTasksResult with the given tasks.\nfunc NewListTasksResult(tasks []Task) ListTasksResult {\n\treturn ListTasksResult{\n\t\tTasks: tasks,\n\t}\n}\n\n// NewCancelTaskResult creates a CancelTaskResult from a Task.\nfunc NewCancelTaskResult(task Task) CancelTaskResult {\n\treturn CancelTaskResult{\n\t\tTask: task,\n\t}\n}\n\n// NewTaskStatusNotification creates a notification for a task status change.\nfunc NewTaskStatusNotification(task Task) TaskStatusNotification {\n\treturn TaskStatusNotification{\n\t\tNotification: Notification{\n\t\t\tMethod: string(MethodNotificationTasksStatus),\n\t\t},\n\t\tParams: TaskStatusNotificationParams{\n\t\t\tTask: task,\n\t\t},\n\t}\n}\n\n//\n// Task Capability Helper Functions\n//\n\n// NewTasksCapability creates a TasksCapability with all operations enabled.\nfunc NewTasksCapability() *TasksCapability {\n\treturn &TasksCapability{\n\t\tList:   &struct{}{},\n\t\tCancel: &struct{}{},\n\t\tRequests: &TaskRequestsCapability{\n\t\t\tTools: &struct {\n\t\t\t\tCall *struct{} `json:\"call,omitempty\"`\n\t\t\t}{\n\t\t\t\tCall: &struct{}{},\n\t\t\t},\n\t\t},\n\t}\n}\n\n// NewTasksCapabilityWithToolsOnly creates a TasksCapability with only tool call support.\n// List and Cancel operations are not enabled with this capability.\nfunc NewTasksCapabilityWithToolsOnly() *TasksCapability {\n\treturn &TasksCapability{\n\t\tRequests: &TaskRequestsCapability{\n\t\t\tTools: &struct {\n\t\t\t\tCall *struct{} `json:\"call,omitempty\"`\n\t\t\t}{\n\t\t\t\tCall: &struct{}{},\n\t\t\t},\n\t\t},\n\t}\n}\n\n//\n// Related Task Metadata Functions\n//\n\n// RelatedTaskMetaKey is the metadata key for associating a message with a task.\nconst RelatedTaskMetaKey = \"io.modelcontextprotocol/related-task\"\n\n// RelatedTaskMeta creates the metadata for associating a message with a task.\n// The returned map contains a \"taskId\" field with the provided task ID.\nfunc RelatedTaskMeta(taskID string) map[string]any {\n\treturn map[string]any{\n\t\t\"taskId\": taskID,\n\t}\n}\n\n// WithRelatedTask returns a Meta with the related task ID set.\n// This is useful for associating task results with their originating task.\nfunc WithRelatedTask(taskID string) *Meta {\n\treturn &Meta{\n\t\tAdditionalFields: map[string]any{\n\t\t\tRelatedTaskMetaKey: RelatedTaskMeta(taskID),\n\t\t},\n\t}\n}\n\n//\n// Model Immediate Response Metadata Functions\n//\n\n// ModelImmediateResponseMetaKey is the metadata key for providing an immediate response to the model.\n// Servers can use this optional key in the _meta field of CreateTaskResult to provide\n// a string that should be passed as an immediate tool result to the model while the task\n// continues executing asynchronously in the background.\nconst ModelImmediateResponseMetaKey = \"io.modelcontextprotocol/model-immediate-response\"\n\n// WithModelImmediateResponse creates Meta with an immediate response message for the model.\n// This allows the model to continue processing while the task executes asynchronously.\n// The message parameter is a human-readable string that will be shown to the model.\n//\n// Example:\n//\n//\treturn &mcp.CreateTaskResult{\n//\t    Task: task,\n//\t    Result: mcp.Result{\n//\t        Meta: mcp.WithModelImmediateResponse(\"Processing your request. This may take a few minutes.\"),\n//\t    },\n//\t}\nfunc WithModelImmediateResponse(message string) *Meta {\n\treturn &Meta{\n\t\tAdditionalFields: map[string]any{\n\t\t\tModelImmediateResponseMetaKey: message,\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/mcp/tools.go",
    "content": "package mcp\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"reflect\"\n\t\"strconv\"\n\n\t\"github.com/invopop/jsonschema\"\n)\n\nvar errToolSchemaConflict = errors.New(\"provide either InputSchema or RawInputSchema, not both\")\n\n// ListToolsRequest is sent from the client to request a list of tools the\n// server has.\ntype ListToolsRequest struct {\n\tPaginatedRequest\n\tHeader http.Header `json:\"-\"`\n}\n\n// ListToolsResult is the server's response to a tools/list request from the\n// client.\ntype ListToolsResult struct {\n\tPaginatedResult\n\tTools []Tool `json:\"tools\"`\n}\n\n// CallToolResult is the server's response to a tool call.\n//\n// Any errors that originate from the tool SHOULD be reported inside the result\n// object, with `isError` set to true, _not_ as an MCP protocol-level error\n// response. Otherwise, the LLM would not be able to see that an error occurred\n// and self-correct.\n//\n// However, any errors in _finding_ the tool, an error indicating that the\n// server does not support tool calls, or any other exceptional conditions,\n// should be reported as an MCP error response.\ntype CallToolResult struct {\n\tResult\n\tContent []Content `json:\"content\"` // Can be TextContent, ImageContent, AudioContent, or EmbeddedResource\n\t// Structured content returned as a JSON object in the structuredContent field of a result.\n\t// For backwards compatibility, a tool that returns structured content SHOULD also return\n\t// functionally equivalent unstructured content.\n\tStructuredContent any `json:\"structuredContent,omitempty\"`\n\t// Whether the tool call ended in an error.\n\t//\n\t// If not set, this is assumed to be false (the call was successful).\n\tIsError bool `json:\"isError,omitempty\"`\n}\n\n// CallToolRequest is used by the client to invoke a tool provided by the server.\ntype CallToolRequest struct {\n\tRequest\n\tHeader http.Header    `json:\"-\"` // HTTP headers from the original request\n\tParams CallToolParams `json:\"params\"`\n}\n\ntype CallToolParams struct {\n\tName      string      `json:\"name\"`\n\tArguments any         `json:\"arguments,omitempty\"`\n\tMeta      *Meta       `json:\"_meta,omitempty\"`\n\tTask      *TaskParams `json:\"task,omitempty\"`\n}\n\n// GetArguments returns the Arguments as map[string]any for backward compatibility\n// If Arguments is not a map, it returns an empty map\nfunc (r CallToolRequest) GetArguments() map[string]any {\n\tif args, ok := r.Params.Arguments.(map[string]any); ok {\n\t\treturn args\n\t}\n\treturn nil\n}\n\n// GetRawArguments returns the Arguments as-is without type conversion\n// This allows users to access the raw arguments in any format\nfunc (r CallToolRequest) GetRawArguments() any {\n\treturn r.Params.Arguments\n}\n\n// BindArguments unmarshals the Arguments into the provided struct\n// This is useful for working with strongly-typed arguments\nfunc (r CallToolRequest) BindArguments(target any) error {\n\tif target == nil || reflect.ValueOf(target).Kind() != reflect.Ptr {\n\t\treturn fmt.Errorf(\"target must be a non-nil pointer\")\n\t}\n\n\t// Fast-path: already raw JSON\n\tif raw, ok := r.Params.Arguments.(json.RawMessage); ok {\n\t\treturn json.Unmarshal(raw, target)\n\t}\n\n\tdata, err := json.Marshal(r.Params.Arguments)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to marshal arguments: %w\", err)\n\t}\n\n\treturn json.Unmarshal(data, target)\n}\n\n// GetString returns a string argument by key, or the default value if not found\nfunc (r CallToolRequest) GetString(key string, defaultValue string) string {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tif str, ok := val.(string); ok {\n\t\t\treturn str\n\t\t}\n\t}\n\treturn defaultValue\n}\n\n// RequireString returns a string argument by key, or an error if not found or not a string\nfunc (r CallToolRequest) RequireString(key string) (string, error) {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tif str, ok := val.(string); ok {\n\t\t\treturn str, nil\n\t\t}\n\t\treturn \"\", fmt.Errorf(\"argument %q is not a string\", key)\n\t}\n\treturn \"\", fmt.Errorf(\"required argument %q not found\", key)\n}\n\n// GetInt returns an int argument by key, or the default value if not found\nfunc (r CallToolRequest) GetInt(key string, defaultValue int) int {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase int:\n\t\t\treturn v\n\t\tcase float64:\n\t\t\treturn int(v)\n\t\tcase string:\n\t\t\tif i, err := strconv.Atoi(v); err == nil {\n\t\t\t\treturn i\n\t\t\t}\n\t\t}\n\t}\n\treturn defaultValue\n}\n\n// RequireInt returns an int argument by key, or an error if not found or not convertible to int\nfunc (r CallToolRequest) RequireInt(key string) (int, error) {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase int:\n\t\t\treturn v, nil\n\t\tcase float64:\n\t\t\treturn int(v), nil\n\t\tcase string:\n\t\t\tif i, err := strconv.Atoi(v); err == nil {\n\t\t\t\treturn i, nil\n\t\t\t}\n\t\t\treturn 0, fmt.Errorf(\"argument %q cannot be converted to int\", key)\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"argument %q is not an int\", key)\n\t\t}\n\t}\n\treturn 0, fmt.Errorf(\"required argument %q not found\", key)\n}\n\n// GetFloat returns a float64 argument by key, or the default value if not found\nfunc (r CallToolRequest) GetFloat(key string, defaultValue float64) float64 {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase float64:\n\t\t\treturn v\n\t\tcase int:\n\t\t\treturn float64(v)\n\t\tcase string:\n\t\t\tif f, err := strconv.ParseFloat(v, 64); err == nil {\n\t\t\t\treturn f\n\t\t\t}\n\t\t}\n\t}\n\treturn defaultValue\n}\n\n// RequireFloat returns a float64 argument by key, or an error if not found or not convertible to float64\nfunc (r CallToolRequest) RequireFloat(key string) (float64, error) {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase float64:\n\t\t\treturn v, nil\n\t\tcase int:\n\t\t\treturn float64(v), nil\n\t\tcase string:\n\t\t\tif f, err := strconv.ParseFloat(v, 64); err == nil {\n\t\t\t\treturn f, nil\n\t\t\t}\n\t\t\treturn 0, fmt.Errorf(\"argument %q cannot be converted to float64\", key)\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"argument %q is not a float64\", key)\n\t\t}\n\t}\n\treturn 0, fmt.Errorf(\"required argument %q not found\", key)\n}\n\n// GetBool returns a bool argument by key, or the default value if not found\nfunc (r CallToolRequest) GetBool(key string, defaultValue bool) bool {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase bool:\n\t\t\treturn v\n\t\tcase string:\n\t\t\tif b, err := strconv.ParseBool(v); err == nil {\n\t\t\t\treturn b\n\t\t\t}\n\t\tcase int:\n\t\t\treturn v != 0\n\t\tcase float64:\n\t\t\treturn v != 0\n\t\t}\n\t}\n\treturn defaultValue\n}\n\n// RequireBool returns a bool argument by key, or an error if not found or not convertible to bool\nfunc (r CallToolRequest) RequireBool(key string) (bool, error) {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase bool:\n\t\t\treturn v, nil\n\t\tcase string:\n\t\t\tif b, err := strconv.ParseBool(v); err == nil {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\treturn false, fmt.Errorf(\"argument %q cannot be converted to bool\", key)\n\t\tcase int:\n\t\t\treturn v != 0, nil\n\t\tcase float64:\n\t\t\treturn v != 0, nil\n\t\tdefault:\n\t\t\treturn false, fmt.Errorf(\"argument %q is not a bool\", key)\n\t\t}\n\t}\n\treturn false, fmt.Errorf(\"required argument %q not found\", key)\n}\n\n// GetStringSlice returns a string slice argument by key, or the default value if not found\nfunc (r CallToolRequest) GetStringSlice(key string, defaultValue []string) []string {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase []string:\n\t\t\treturn v\n\t\tcase []any:\n\t\t\tresult := make([]string, 0, len(v))\n\t\t\tfor _, item := range v {\n\t\t\t\tif str, ok := item.(string); ok {\n\t\t\t\t\tresult = append(result, str)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result\n\t\t}\n\t}\n\treturn defaultValue\n}\n\n// RequireStringSlice returns a string slice argument by key, or an error if not found or not convertible to string slice\nfunc (r CallToolRequest) RequireStringSlice(key string) ([]string, error) {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase []string:\n\t\t\treturn v, nil\n\t\tcase []any:\n\t\t\tresult := make([]string, 0, len(v))\n\t\t\tfor i, item := range v {\n\t\t\t\tif str, ok := item.(string); ok {\n\t\t\t\t\tresult = append(result, str)\n\t\t\t\t} else {\n\t\t\t\t\treturn nil, fmt.Errorf(\"item %d in argument %q is not a string\", i, key)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result, nil\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"argument %q is not a string slice\", key)\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"required argument %q not found\", key)\n}\n\n// GetIntSlice returns an int slice argument by key, or the default value if not found\nfunc (r CallToolRequest) GetIntSlice(key string, defaultValue []int) []int {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase []int:\n\t\t\treturn v\n\t\tcase []any:\n\t\t\tresult := make([]int, 0, len(v))\n\t\t\tfor _, item := range v {\n\t\t\t\tswitch num := item.(type) {\n\t\t\t\tcase int:\n\t\t\t\t\tresult = append(result, num)\n\t\t\t\tcase float64:\n\t\t\t\t\tresult = append(result, int(num))\n\t\t\t\tcase string:\n\t\t\t\t\tif i, err := strconv.Atoi(num); err == nil {\n\t\t\t\t\t\tresult = append(result, i)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result\n\t\t}\n\t}\n\treturn defaultValue\n}\n\n// RequireIntSlice returns an int slice argument by key, or an error if not found or not convertible to int slice\nfunc (r CallToolRequest) RequireIntSlice(key string) ([]int, error) {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase []int:\n\t\t\treturn v, nil\n\t\tcase []any:\n\t\t\tresult := make([]int, 0, len(v))\n\t\t\tfor i, item := range v {\n\t\t\t\tswitch num := item.(type) {\n\t\t\t\tcase int:\n\t\t\t\t\tresult = append(result, num)\n\t\t\t\tcase float64:\n\t\t\t\t\tresult = append(result, int(num))\n\t\t\t\tcase string:\n\t\t\t\t\tif i, err := strconv.Atoi(num); err == nil {\n\t\t\t\t\t\tresult = append(result, i)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn nil, fmt.Errorf(\"item %d in argument %q cannot be converted to int\", i, key)\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, fmt.Errorf(\"item %d in argument %q is not an int\", i, key)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result, nil\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"argument %q is not an int slice\", key)\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"required argument %q not found\", key)\n}\n\n// GetFloatSlice returns a float64 slice argument by key, or the default value if not found\nfunc (r CallToolRequest) GetFloatSlice(key string, defaultValue []float64) []float64 {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase []float64:\n\t\t\treturn v\n\t\tcase []any:\n\t\t\tresult := make([]float64, 0, len(v))\n\t\t\tfor _, item := range v {\n\t\t\t\tswitch num := item.(type) {\n\t\t\t\tcase float64:\n\t\t\t\t\tresult = append(result, num)\n\t\t\t\tcase int:\n\t\t\t\t\tresult = append(result, float64(num))\n\t\t\t\tcase string:\n\t\t\t\t\tif f, err := strconv.ParseFloat(num, 64); err == nil {\n\t\t\t\t\t\tresult = append(result, f)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result\n\t\t}\n\t}\n\treturn defaultValue\n}\n\n// RequireFloatSlice returns a float64 slice argument by key, or an error if not found or not convertible to float64 slice\nfunc (r CallToolRequest) RequireFloatSlice(key string) ([]float64, error) {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase []float64:\n\t\t\treturn v, nil\n\t\tcase []any:\n\t\t\tresult := make([]float64, 0, len(v))\n\t\t\tfor i, item := range v {\n\t\t\t\tswitch num := item.(type) {\n\t\t\t\tcase float64:\n\t\t\t\t\tresult = append(result, num)\n\t\t\t\tcase int:\n\t\t\t\t\tresult = append(result, float64(num))\n\t\t\t\tcase string:\n\t\t\t\t\tif f, err := strconv.ParseFloat(num, 64); err == nil {\n\t\t\t\t\t\tresult = append(result, f)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn nil, fmt.Errorf(\"item %d in argument %q cannot be converted to float64\", i, key)\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, fmt.Errorf(\"item %d in argument %q is not a float64\", i, key)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result, nil\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"argument %q is not a float64 slice\", key)\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"required argument %q not found\", key)\n}\n\n// GetBoolSlice returns a bool slice argument by key, or the default value if not found\nfunc (r CallToolRequest) GetBoolSlice(key string, defaultValue []bool) []bool {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase []bool:\n\t\t\treturn v\n\t\tcase []any:\n\t\t\tresult := make([]bool, 0, len(v))\n\t\t\tfor _, item := range v {\n\t\t\t\tswitch b := item.(type) {\n\t\t\t\tcase bool:\n\t\t\t\t\tresult = append(result, b)\n\t\t\t\tcase string:\n\t\t\t\t\tif parsed, err := strconv.ParseBool(b); err == nil {\n\t\t\t\t\t\tresult = append(result, parsed)\n\t\t\t\t\t}\n\t\t\t\tcase int:\n\t\t\t\t\tresult = append(result, b != 0)\n\t\t\t\tcase float64:\n\t\t\t\t\tresult = append(result, b != 0)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result\n\t\t}\n\t}\n\treturn defaultValue\n}\n\n// RequireBoolSlice returns a bool slice argument by key, or an error if not found or not convertible to bool slice\nfunc (r CallToolRequest) RequireBoolSlice(key string) ([]bool, error) {\n\targs := r.GetArguments()\n\tif val, ok := args[key]; ok {\n\t\tswitch v := val.(type) {\n\t\tcase []bool:\n\t\t\treturn v, nil\n\t\tcase []any:\n\t\t\tresult := make([]bool, 0, len(v))\n\t\t\tfor i, item := range v {\n\t\t\t\tswitch b := item.(type) {\n\t\t\t\tcase bool:\n\t\t\t\t\tresult = append(result, b)\n\t\t\t\tcase string:\n\t\t\t\t\tif parsed, err := strconv.ParseBool(b); err == nil {\n\t\t\t\t\t\tresult = append(result, parsed)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn nil, fmt.Errorf(\"item %d in argument %q cannot be converted to bool\", i, key)\n\t\t\t\t\t}\n\t\t\t\tcase int:\n\t\t\t\t\tresult = append(result, b != 0)\n\t\t\t\tcase float64:\n\t\t\t\t\tresult = append(result, b != 0)\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, fmt.Errorf(\"item %d in argument %q is not a bool\", i, key)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result, nil\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"argument %q is not a bool slice\", key)\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"required argument %q not found\", key)\n}\n\n// MarshalJSON implements custom JSON marshaling for CallToolResult\nfunc (r CallToolResult) MarshalJSON() ([]byte, error) {\n\tm := make(map[string]any)\n\n\t// Marshal Meta if present\n\tif r.Meta != nil {\n\t\tm[\"_meta\"] = r.Meta\n\t}\n\n\t// Marshal Content array\n\tcontent := make([]any, len(r.Content))\n\tfor i, c := range r.Content {\n\t\tcontent[i] = c\n\t}\n\tm[\"content\"] = content\n\n\t// Marshal StructuredContent if present\n\tif r.StructuredContent != nil {\n\t\tm[\"structuredContent\"] = r.StructuredContent\n\t}\n\n\t// Marshal IsError if true\n\tif r.IsError {\n\t\tm[\"isError\"] = r.IsError\n\t}\n\n\treturn json.Marshal(m)\n}\n\n// UnmarshalJSON implements custom JSON unmarshaling for CallToolResult\nfunc (r *CallToolResult) UnmarshalJSON(data []byte) error {\n\tvar raw map[string]any\n\tif err := json.Unmarshal(data, &raw); err != nil {\n\t\treturn err\n\t}\n\n\t// Unmarshal Meta\n\tif meta, ok := raw[\"_meta\"]; ok {\n\t\tif metaMap, ok := meta.(map[string]any); ok {\n\t\t\tr.Meta = NewMetaFromMap(metaMap)\n\t\t}\n\t}\n\n\t// Unmarshal Content array\n\tif contentRaw, ok := raw[\"content\"]; ok {\n\t\tif contentArray, ok := contentRaw.([]any); ok {\n\t\t\tr.Content = make([]Content, len(contentArray))\n\t\t\tfor i, item := range contentArray {\n\t\t\t\titemBytes, err := json.Marshal(item)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tcontent, err := UnmarshalContent(itemBytes)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tr.Content[i] = content\n\t\t\t}\n\t\t}\n\t}\n\n\t// Unmarshal StructuredContent if present\n\tif structured, ok := raw[\"structuredContent\"]; ok {\n\t\tr.StructuredContent = structured\n\t}\n\n\t// Unmarshal IsError\n\tif isError, ok := raw[\"isError\"]; ok {\n\t\tif isErrorBool, ok := isError.(bool); ok {\n\t\t\tr.IsError = isErrorBool\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// ToolListChangedNotification is an optional notification from the server to\n// the client, informing it that the list of tools it offers has changed. This may\n// be issued by servers without any previous subscription from the client.\ntype ToolListChangedNotification struct {\n\tNotification\n}\n\n// TaskSupport indicates how a tool supports task augmentation.\ntype TaskSupport string\n\nconst (\n\t// TaskSupportForbidden means the tool cannot be invoked as a task (default).\n\tTaskSupportForbidden TaskSupport = \"forbidden\"\n\t// TaskSupportOptional means the tool can be invoked as a task or normally.\n\tTaskSupportOptional TaskSupport = \"optional\"\n\t// TaskSupportRequired means the tool must be invoked as a task.\n\tTaskSupportRequired TaskSupport = \"required\"\n)\n\n// ToolExecution describes execution behavior for a tool.\ntype ToolExecution struct {\n\t// TaskSupport indicates whether the tool supports task augmentation.\n\tTaskSupport TaskSupport `json:\"taskSupport,omitempty\"`\n}\n\n// Tool represents the definition for a tool the client can call.\ntype Tool struct {\n\t// Meta is a metadata object that is reserved by MCP for storing additional information.\n\tMeta *Meta `json:\"_meta,omitempty\"`\n\t// The name of the tool.\n\tName string `json:\"name\"`\n\t// A human-readable description of the tool.\n\tDescription string `json:\"description,omitempty\"`\n\t// A JSON Schema object defining the expected parameters for the tool.\n\tInputSchema ToolInputSchema `json:\"inputSchema\"`\n\t// Alternative to InputSchema - allows arbitrary JSON Schema to be provided\n\tRawInputSchema json.RawMessage `json:\"-\"` // Hide this from JSON marshaling\n\t// A JSON Schema object defining the expected output returned by the tool .\n\tOutputSchema ToolOutputSchema `json:\"outputSchema,omitempty\"`\n\t// Optional JSON Schema defining expected output structure\n\tRawOutputSchema json.RawMessage `json:\"-\"` // Hide this from JSON marshaling\n\t// Optional properties describing tool behavior\n\tAnnotations ToolAnnotation `json:\"annotations\"`\n\t// Support for deferred loading\n\tDeferLoading bool `json:\"defer_loading,omitempty\"`\n\t// Icons provides visual identifiers for the tool\n\tIcons []Icon `json:\"icons,omitempty\"`\n\t// Execution describes execution behavior for the tool\n\tExecution *ToolExecution `json:\"execution,omitempty\"`\n}\n\n// GetName returns the name of the tool.\nfunc (t Tool) GetName() string {\n\treturn t.Name\n}\n\n// MarshalJSON implements the json.Marshaler interface for Tool.\n// It handles marshaling either InputSchema or RawInputSchema based on which is set.\nfunc (t Tool) MarshalJSON() ([]byte, error) {\n\t// Create a map to build the JSON structure\n\tm := make(map[string]any, 5)\n\n\t// Add the name and description\n\tm[\"name\"] = t.Name\n\tif t.Description != \"\" {\n\t\tm[\"description\"] = t.Description\n\t}\n\n\t// Determine which input schema to use\n\tif t.RawInputSchema != nil {\n\t\tif t.InputSchema.Type != \"\" {\n\t\t\treturn nil, fmt.Errorf(\"tool %s has both InputSchema and RawInputSchema set: %w\", t.Name, errToolSchemaConflict)\n\t\t}\n\t\tm[\"inputSchema\"] = t.RawInputSchema\n\t} else {\n\t\t// Use the structured InputSchema\n\t\tm[\"inputSchema\"] = t.InputSchema\n\t}\n\n\t// Add output schema if present\n\tif t.RawOutputSchema != nil {\n\t\tif t.OutputSchema.Type != \"\" {\n\t\t\treturn nil, fmt.Errorf(\"tool %s has both OutputSchema and RawOutputSchema set: %w\", t.Name, errToolSchemaConflict)\n\t\t}\n\t\tm[\"outputSchema\"] = t.RawOutputSchema\n\t} else if t.OutputSchema.Type != \"\" { // If no output schema is specified, do not return anything\n\t\tm[\"outputSchema\"] = t.OutputSchema\n\t}\n\n\tm[\"annotations\"] = t.Annotations\n\n\tif t.DeferLoading {\n\t\tm[\"defer_loading\"] = t.DeferLoading\n\t}\n\n\t// Marshal Meta if present\n\tif t.Meta != nil {\n\t\tm[\"_meta\"] = t.Meta\n\t}\n\n\tif t.Icons != nil {\n\t\tm[\"icons\"] = t.Icons\n\t}\n\n\tif t.Execution != nil {\n\t\tm[\"execution\"] = t.Execution\n\t}\n\n\treturn json.Marshal(m)\n}\n\n// ToolArgumentsSchema represents a JSON Schema for tool arguments.\ntype ToolArgumentsSchema struct {\n\tDefs                 map[string]any `json:\"$defs,omitempty\"`\n\tType                 string         `json:\"type\"`\n\tProperties           map[string]any `json:\"properties\"`\n\tRequired             []string       `json:\"required,omitempty\"`\n\tAdditionalProperties any            `json:\"additionalProperties,omitempty\"`\n}\n\ntype ToolInputSchema ToolArgumentsSchema // For retro-compatibility\ntype ToolOutputSchema ToolArgumentsSchema\n\n// MarshalJSON implements the json.Marshaler interface for ToolInputSchema.\nfunc (tis ToolInputSchema) MarshalJSON() ([]byte, error) {\n\treturn toolArgumentsSchemaMarshalJSON(ToolArgumentsSchema(tis))\n}\n\n// MarshalJSON implements the json.Marshaler interface for ToolOutputSchema.\nfunc (tis ToolOutputSchema) MarshalJSON() ([]byte, error) {\n\treturn toolArgumentsSchemaMarshalJSON(ToolArgumentsSchema(tis))\n}\n\n// MarshalJSON implements the json.Marshaler interface for ToolArgumentsSchema.\nfunc (tis ToolArgumentsSchema) MarshalJSON() ([]byte, error) {\n\treturn toolArgumentsSchemaMarshalJSON(tis)\n}\n\n// UnmarshalJSON implements the json.Unmarshaler interface for ToolInputSchema.\nfunc (tis *ToolInputSchema) UnmarshalJSON(data []byte) error {\n\treturn toolArgumentsSchemaUnmarshalJSON(data, (*ToolArgumentsSchema)(tis))\n}\n\n// UnmarshalJSON implements the json.Unmarshaler interface for ToolOutputSchema.\nfunc (tis *ToolOutputSchema) UnmarshalJSON(data []byte) error {\n\treturn toolArgumentsSchemaUnmarshalJSON(data, (*ToolArgumentsSchema)(tis))\n}\n\n// UnmarshalJSON implements the json.Unmarshaler interface for ToolArgumentsSchema.\nfunc (tis *ToolArgumentsSchema) UnmarshalJSON(data []byte) error {\n\treturn toolArgumentsSchemaUnmarshalJSON(data, tis)\n}\n\n// toolArgumentsSchemaMarshalJSON handles the fields stored in ToolArgumentsSchema when json.Marshaler is called\nfunc toolArgumentsSchemaMarshalJSON(tis ToolArgumentsSchema) ([]byte, error) {\n\tm := make(map[string]any)\n\tm[\"type\"] = tis.Type\n\n\tif tis.Defs != nil {\n\t\tm[\"$defs\"] = tis.Defs\n\t}\n\n\t// Marshal Properties to '{}' rather than `nil` when its length equals zero\n\tif tis.Properties != nil {\n\t\tm[\"properties\"] = tis.Properties\n\t} else {\n\t\tm[\"properties\"] = map[string]any{}\n\t}\n\n\t// Marshal Required to '[]' rather than `nil` when its length equals zero\n\tif len(tis.Required) > 0 {\n\t\tm[\"required\"] = tis.Required\n\t} else {\n\t\tm[\"required\"] = []string{}\n\t}\n\n\tif tis.AdditionalProperties != nil {\n\t\tm[\"additionalProperties\"] = tis.AdditionalProperties\n\t}\n\n\treturn json.Marshal(m)\n}\n\n// It handles both \"$defs\" (JSON Schema 2019-09+) and \"definitions\" (JSON Schema draft-07)\n// by reading either field and storing it in the Defs field.\nfunc toolArgumentsSchemaUnmarshalJSON(data []byte, tis *ToolArgumentsSchema) error {\n\t// Use a temporary type to avoid infinite recursion\n\ttype Alias ToolArgumentsSchema\n\taux := &struct {\n\t\tDefinitions map[string]any `json:\"definitions,omitempty\"`\n\t\t*Alias\n\t}{\n\t\tAlias: (*Alias)(tis),\n\t}\n\n\tif err := json.Unmarshal(data, aux); err != nil {\n\t\treturn err\n\t}\n\n\t// If $defs wasn't provided but definitions was, use definitions\n\tif tis.Defs == nil && aux.Definitions != nil {\n\t\ttis.Defs = aux.Definitions\n\t}\n\n\treturn nil\n}\n\ntype ToolAnnotation struct {\n\t// Human-readable title for the tool\n\tTitle string `json:\"title,omitempty\"`\n\t// If true, the tool does not modify its environment\n\tReadOnlyHint *bool `json:\"readOnlyHint,omitempty\"`\n\t// If true, the tool may perform destructive updates\n\tDestructiveHint *bool `json:\"destructiveHint,omitempty\"`\n\t// If true, repeated calls with same args have no additional effect\n\tIdempotentHint *bool `json:\"idempotentHint,omitempty\"`\n\t// If true, tool interacts with external entities\n\tOpenWorldHint *bool `json:\"openWorldHint,omitempty\"`\n}\n\n// ToolOption is a function that configures a Tool.\n// It provides a flexible way to set various properties of a Tool using the functional options pattern.\ntype ToolOption func(*Tool)\n\n// PropertyOption is a function that configures a property in a Tool's input schema.\n// It allows for flexible configuration of JSON Schema properties using the functional options pattern.\ntype PropertyOption func(map[string]any)\n\n//\n// Core Tool Functions\n//\n\n// NewTool creates a new Tool with the given name and options.\n// The tool will have an object-type input schema with configurable properties.\n// Options are applied in order, allowing for flexible tool configuration.\nfunc NewTool(name string, opts ...ToolOption) Tool {\n\ttool := Tool{\n\t\tName: name,\n\t\tInputSchema: ToolInputSchema{\n\t\t\tType:       \"object\",\n\t\t\tProperties: make(map[string]any),\n\t\t\tRequired:   nil, // Will be omitted from JSON if empty\n\t\t},\n\t\tAnnotations: ToolAnnotation{\n\t\t\tTitle:           \"\",\n\t\t\tReadOnlyHint:    ToBoolPtr(false),\n\t\t\tDestructiveHint: ToBoolPtr(true),\n\t\t\tIdempotentHint:  ToBoolPtr(false),\n\t\t\tOpenWorldHint:   ToBoolPtr(true),\n\t\t},\n\t}\n\n\tfor _, opt := range opts {\n\t\topt(&tool)\n\t}\n\n\treturn tool\n}\n\n// NewToolWithRawSchema creates a new Tool with the given name and a raw JSON\n// Schema. This allows for arbitrary JSON Schema to be used for the tool's input\n// schema.\n//\n// NOTE a [Tool] built in such a way is incompatible with the [ToolOption] and\n// runtime errors will result from supplying a [ToolOption] to a [Tool] built\n// with this function.\nfunc NewToolWithRawSchema(name, description string, schema json.RawMessage) Tool {\n\ttool := Tool{\n\t\tName:           name,\n\t\tDescription:    description,\n\t\tRawInputSchema: schema,\n\t}\n\n\treturn tool\n}\n\n// WithDescription adds a description to the Tool.\n// The description should provide a clear, human-readable explanation of what the tool does.\nfunc WithDescription(description string) ToolOption {\n\treturn func(t *Tool) {\n\t\tt.Description = description\n\t}\n}\n\n// WithDeferLoading sets the defer_loading flag for the tool.\n// This is used to implement dynamic tool loading/searching patterns.\nfunc WithDeferLoading(deferLoading bool) ToolOption {\n\treturn func(t *Tool) {\n\t\tt.DeferLoading = deferLoading\n\t}\n}\n\n// WithInputSchema creates a ToolOption that sets the input schema for a tool.\n// It accepts any Go type, usually a struct, and automatically generates a JSON schema from it.\nfunc WithInputSchema[T any]() ToolOption {\n\treturn func(t *Tool) {\n\t\tvar zero T\n\n\t\t// Generate schema using invopop/jsonschema library\n\t\t// Configure reflector to generate clean, MCP-compatible schemas\n\t\treflector := jsonschema.Reflector{\n\t\t\tDoNotReference:            true, // Removes $defs map, outputs entire structure inline\n\t\t\tAnonymous:                 true, // Hides auto-generated Schema IDs\n\t\t\tAllowAdditionalProperties: true, // Removes additionalProperties: false\n\t\t}\n\t\tschema := reflector.Reflect(zero)\n\n\t\t// Clean up schema for MCP compliance\n\t\tschema.Version = \"\" // Remove $schema field\n\n\t\t// Convert to raw JSON for MCP\n\t\tmcpSchema, err := json.Marshal(schema)\n\t\tif err != nil {\n\t\t\t// Skip and maintain backward compatibility\n\t\t\treturn\n\t\t}\n\n\t\tt.InputSchema.Type = \"\"\n\t\tt.RawInputSchema = json.RawMessage(mcpSchema)\n\t}\n}\n\n// WithToolIcons adds icons to the Tool.\n// Icons provide visual identifiers for the tool.\nfunc WithToolIcons(icons ...Icon) ToolOption {\n\treturn func(t *Tool) {\n\t\tt.Icons = icons\n\t}\n}\n\n// WithTaskSupport sets the task support mode for the tool.\n// It configures whether the tool can be invoked as a task (asynchronously).\n// Valid values are TaskSupportForbidden (default), TaskSupportOptional, or TaskSupportRequired.\nfunc WithTaskSupport(support TaskSupport) ToolOption {\n\treturn func(t *Tool) {\n\t\tif t.Execution == nil {\n\t\t\tt.Execution = &ToolExecution{}\n\t\t}\n\t\tt.Execution.TaskSupport = support\n\t}\n}\n\n// WithRawInputSchema sets a raw JSON schema for the tool's input.\n// Use this when you need full control over the schema or when working with\n// complex schemas that can't be generated from Go types. The jsonschema library\n// can handle complex schemas and provides nice extension points, so be sure to\n// check that out before using this.\nfunc WithRawInputSchema(schema json.RawMessage) ToolOption {\n\treturn func(t *Tool) {\n\t\tt.RawInputSchema = schema\n\t}\n}\n\n// WithOutputSchema creates a ToolOption that sets the output schema for a tool.\n// It accepts any Go type, usually a struct, and automatically generates a JSON schema from it.\nfunc WithOutputSchema[T any]() ToolOption {\n\treturn func(t *Tool) {\n\t\tvar zero T\n\n\t\t// Generate schema using invopop/jsonschema library\n\t\t// Configure reflector to generate clean, MCP-compatible schemas\n\t\treflector := jsonschema.Reflector{\n\t\t\tDoNotReference:            true, // Removes $defs map, outputs entire structure inline\n\t\t\tAnonymous:                 true, // Hides auto-generated Schema IDs\n\t\t\tAllowAdditionalProperties: true, // Removes additionalProperties: false\n\t\t}\n\t\tschema := reflector.Reflect(zero)\n\n\t\t// Clean up schema for MCP compliance\n\t\tschema.Version = \"\" // Remove $schema field\n\n\t\t// Convert to raw JSON for MCP\n\t\tmcpSchema, err := json.Marshal(schema)\n\t\tif err != nil {\n\t\t\t// Skip and maintain backward compatibility\n\t\t\treturn\n\t\t}\n\n\t\t// Retrieve the schema from raw JSON\n\t\tif err := json.Unmarshal(mcpSchema, &t.OutputSchema); err != nil {\n\t\t\t// Skip and maintain backward compatibility\n\t\t\treturn\n\t\t}\n\n\t\t// Always set the type to \"object\" as of the current MCP spec\n\t\t// https://modelcontextprotocol.io/specification/2025-06-18/server/tools#output-schema\n\t\tt.OutputSchema.Type = \"object\"\n\t}\n}\n\n// WithRawOutputSchema sets a raw JSON schema for the tool's output.\n// Use this when you need full control over the schema or when working with\n// complex schemas that can't be generated from Go types. The jsonschema library\n// can handle complex schemas and provides nice extension points, so be sure to\n// check that out before using this.\nfunc WithRawOutputSchema(schema json.RawMessage) ToolOption {\n\treturn func(t *Tool) {\n\t\tt.RawOutputSchema = schema\n\t}\n}\n\n// WithToolAnnotation adds optional hints about the Tool.\nfunc WithToolAnnotation(annotation ToolAnnotation) ToolOption {\n\treturn func(t *Tool) {\n\t\tt.Annotations = annotation\n\t}\n}\n\n// WithTitleAnnotation sets the Title field of the Tool's Annotations.\n// It provides a human-readable title for the tool.\nfunc WithTitleAnnotation(title string) ToolOption {\n\treturn func(t *Tool) {\n\t\tt.Annotations.Title = title\n\t}\n}\n\n// WithReadOnlyHintAnnotation sets the ReadOnlyHint field of the Tool's Annotations.\n// If true, it indicates the tool does not modify its environment.\nfunc WithReadOnlyHintAnnotation(value bool) ToolOption {\n\treturn func(t *Tool) {\n\t\tt.Annotations.ReadOnlyHint = &value\n\t}\n}\n\n// WithDestructiveHintAnnotation sets the DestructiveHint field of the Tool's Annotations.\n// If true, it indicates the tool may perform destructive updates.\nfunc WithDestructiveHintAnnotation(value bool) ToolOption {\n\treturn func(t *Tool) {\n\t\tt.Annotations.DestructiveHint = &value\n\t}\n}\n\n// WithIdempotentHintAnnotation sets the IdempotentHint field of the Tool's Annotations.\n// If true, it indicates repeated calls with the same arguments have no additional effect.\nfunc WithIdempotentHintAnnotation(value bool) ToolOption {\n\treturn func(t *Tool) {\n\t\tt.Annotations.IdempotentHint = &value\n\t}\n}\n\n// WithOpenWorldHintAnnotation sets the OpenWorldHint field of the Tool's Annotations.\n// If true, it indicates the tool interacts with external entities.\nfunc WithOpenWorldHintAnnotation(value bool) ToolOption {\n\treturn func(t *Tool) {\n\t\tt.Annotations.OpenWorldHint = &value\n\t}\n}\n\n// WithSchemaAdditionalProperties sets the additionalProperties field on the tool's input schema.\n// It accepts false (disallow extra properties), true (allow any), or a schema map\n// to validate additional properties against.\nfunc WithSchemaAdditionalProperties(schema any) ToolOption {\n\treturn func(t *Tool) {\n\t\tt.InputSchema.AdditionalProperties = schema\n\t}\n}\n\n//\n// Common Property Options\n//\n\n// Description adds a description to a property in the JSON Schema.\n// The description should explain the purpose and expected values of the property.\nfunc Description(desc string) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"description\"] = desc\n\t}\n}\n\n// Required marks a property as required in the tool's input schema.\n// Required properties must be provided when using the tool.\nfunc Required() PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"required\"] = true\n\t}\n}\n\n// Title adds a display-friendly title to a property in the JSON Schema.\n// This title can be used by UI components to show a more readable property name.\nfunc Title(title string) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"title\"] = title\n\t}\n}\n\n//\n// String Property Options\n//\n\n// DefaultString sets the default value for a string property.\n// This value will be used if the property is not explicitly provided.\nfunc DefaultString(value string) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"default\"] = value\n\t}\n}\n\n// Enum specifies a list of allowed values for a string property.\n// The property value must be one of the specified enum values.\nfunc Enum(values ...string) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"enum\"] = values\n\t}\n}\n\n// MaxLength sets the maximum length for a string property.\n// The string value must not exceed this length.\nfunc MaxLength(max int) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"maxLength\"] = max\n\t}\n}\n\n// MinLength sets the minimum length for a string property.\n// The string value must be at least this length.\nfunc MinLength(min int) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"minLength\"] = min\n\t}\n}\n\n// Pattern sets a regex pattern that a string property must match.\n// The string value must conform to the specified regular expression.\nfunc Pattern(pattern string) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"pattern\"] = pattern\n\t}\n}\n\n//\n// Number Property Options\n//\n\n// DefaultNumber sets the default value for a number property.\n// This value will be used if the property is not explicitly provided.\nfunc DefaultNumber(value float64) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"default\"] = value\n\t}\n}\n\n// Max sets the maximum value for a number property.\n// The number value must not exceed this maximum.\nfunc Max(max float64) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"maximum\"] = max\n\t}\n}\n\n// Min sets the minimum value for a number property.\n// The number value must not be less than this minimum.\nfunc Min(min float64) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"minimum\"] = min\n\t}\n}\n\n// MultipleOf specifies that a number must be a multiple of the given value.\n// The number value must be divisible by this value.\nfunc MultipleOf(value float64) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"multipleOf\"] = value\n\t}\n}\n\n//\n// Boolean Property Options\n//\n\n// DefaultBool sets the default value for a boolean property.\n// This value will be used if the property is not explicitly provided.\nfunc DefaultBool(value bool) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"default\"] = value\n\t}\n}\n\n//\n// Array Property Options\n//\n\n// DefaultArray sets the default value for an array property.\n// This value will be used if the property is not explicitly provided.\nfunc DefaultArray[T any](value []T) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"default\"] = value\n\t}\n}\n\n//\n// Property Type Helpers\n//\n\n// WithBoolean adds a boolean property to the tool schema.\n// It accepts property options to configure the boolean property's behavior and constraints.\nfunc WithBoolean(name string, opts ...PropertyOption) ToolOption {\n\treturn func(t *Tool) {\n\t\tschema := map[string]any{\n\t\t\t\"type\": \"boolean\",\n\t\t}\n\n\t\tfor _, opt := range opts {\n\t\t\topt(schema)\n\t\t}\n\n\t\t// Remove required from property schema and add to InputSchema.required\n\t\tif required, ok := schema[\"required\"].(bool); ok && required {\n\t\t\tdelete(schema, \"required\")\n\t\t\tt.InputSchema.Required = append(t.InputSchema.Required, name)\n\t\t}\n\n\t\tt.InputSchema.Properties[name] = schema\n\t}\n}\n\n// WithNumber adds a number property to the tool schema.\n// It accepts property options to configure the number property's behavior and constraints.\nfunc WithNumber(name string, opts ...PropertyOption) ToolOption {\n\treturn func(t *Tool) {\n\t\tschema := map[string]any{\n\t\t\t\"type\": \"number\",\n\t\t}\n\n\t\tfor _, opt := range opts {\n\t\t\topt(schema)\n\t\t}\n\n\t\t// Remove required from property schema and add to InputSchema.required\n\t\tif required, ok := schema[\"required\"].(bool); ok && required {\n\t\t\tdelete(schema, \"required\")\n\t\t\tt.InputSchema.Required = append(t.InputSchema.Required, name)\n\t\t}\n\n\t\tt.InputSchema.Properties[name] = schema\n\t}\n}\n\n// WithString adds a string property to the tool schema.\n// It accepts property options to configure the string property's behavior and constraints.\nfunc WithString(name string, opts ...PropertyOption) ToolOption {\n\treturn func(t *Tool) {\n\t\tschema := map[string]any{\n\t\t\t\"type\": \"string\",\n\t\t}\n\n\t\tfor _, opt := range opts {\n\t\t\topt(schema)\n\t\t}\n\n\t\t// Remove required from property schema and add to InputSchema.required\n\t\tif required, ok := schema[\"required\"].(bool); ok && required {\n\t\t\tdelete(schema, \"required\")\n\t\t\tt.InputSchema.Required = append(t.InputSchema.Required, name)\n\t\t}\n\n\t\tt.InputSchema.Properties[name] = schema\n\t}\n}\n\n// WithObject adds an object property to the tool schema.\n// It accepts property options to configure the object property's behavior and constraints.\nfunc WithObject(name string, opts ...PropertyOption) ToolOption {\n\treturn func(t *Tool) {\n\t\tschema := map[string]any{\n\t\t\t\"type\":       \"object\",\n\t\t\t\"properties\": map[string]any{},\n\t\t}\n\n\t\tfor _, opt := range opts {\n\t\t\topt(schema)\n\t\t}\n\n\t\t// Remove required from property schema and add to InputSchema.required\n\t\tif required, ok := schema[\"required\"].(bool); ok && required {\n\t\t\tdelete(schema, \"required\")\n\t\t\tt.InputSchema.Required = append(t.InputSchema.Required, name)\n\t\t}\n\n\t\tt.InputSchema.Properties[name] = schema\n\t}\n}\n\n// WithArray returns a ToolOption that adds an array-typed property with the given name to a Tool's input schema.\n// It applies provided PropertyOption functions to configure the property's schema, moves a `required` flag\n// from the property schema into the Tool's InputSchema.Required slice when present, and registers the resulting\n// schema under InputSchema.Properties[name].\nfunc WithArray(name string, opts ...PropertyOption) ToolOption {\n\treturn func(t *Tool) {\n\t\tschema := map[string]any{\n\t\t\t\"type\": \"array\",\n\t\t}\n\n\t\tfor _, opt := range opts {\n\t\t\topt(schema)\n\t\t}\n\n\t\t// Remove required from property schema and add to InputSchema.required\n\t\tif required, ok := schema[\"required\"].(bool); ok && required {\n\t\t\tdelete(schema, \"required\")\n\t\t\tt.InputSchema.Required = append(t.InputSchema.Required, name)\n\t\t}\n\n\t\tt.InputSchema.Properties[name] = schema\n\t}\n}\n\n// WithAny adds an input property named name with no predefined JSON Schema type to the Tool's input schema.\n// The returned ToolOption applies the provided PropertyOption functions to the property's schema, moves a property-level\n// `required` flag into the Tool's InputSchema.Required list if present, and stores the resulting schema under InputSchema.Properties[name].\nfunc WithAny(name string, opts ...PropertyOption) ToolOption {\n\treturn func(t *Tool) {\n\t\tschema := map[string]any{}\n\n\t\tfor _, opt := range opts {\n\t\t\topt(schema)\n\t\t}\n\n\t\t// Remove required from property schema and add to InputSchema.required\n\t\tif required, ok := schema[\"required\"].(bool); ok && required {\n\t\t\tdelete(schema, \"required\")\n\t\t\tt.InputSchema.Required = append(t.InputSchema.Required, name)\n\t\t}\n\n\t\tt.InputSchema.Properties[name] = schema\n\t}\n}\n\n// Properties sets the \"properties\" map for an object schema.\n// The returned PropertyOption stores the provided map under the schema's \"properties\" key.\nfunc Properties(props map[string]any) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"properties\"] = props\n\t}\n}\n\n// AdditionalProperties specifies whether additional properties are allowed in the object\n// or defines a schema for additional properties\nfunc AdditionalProperties(schema any) PropertyOption {\n\treturn func(schemaMap map[string]any) {\n\t\tschemaMap[\"additionalProperties\"] = schema\n\t}\n}\n\n// MinProperties sets the minimum number of properties for an object\nfunc MinProperties(min int) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"minProperties\"] = min\n\t}\n}\n\n// MaxProperties sets the maximum number of properties for an object\nfunc MaxProperties(max int) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"maxProperties\"] = max\n\t}\n}\n\n// PropertyNames defines a schema for property names in an object\nfunc PropertyNames(schema map[string]any) PropertyOption {\n\treturn func(schemaMap map[string]any) {\n\t\tschemaMap[\"propertyNames\"] = schema\n\t}\n}\n\n// Items defines the schema for array items.\n// Accepts any schema definition for maximum flexibility.\n//\n// Example:\n//\n//\tItems(map[string]any{\n//\t    \"type\": \"object\",\n//\t    \"properties\": map[string]any{\n//\t        \"name\": map[string]any{\"type\": \"string\"},\n//\t        \"age\": map[string]any{\"type\": \"number\"},\n//\t    },\n//\t})\n//\n// For simple types, use ItemsString(), ItemsNumber(), ItemsBoolean() instead.\nfunc Items(schema any) PropertyOption {\n\treturn func(schemaMap map[string]any) {\n\t\tschemaMap[\"items\"] = schema\n\t}\n}\n\n// MinItems sets the minimum number of items for an array\nfunc MinItems(min int) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"minItems\"] = min\n\t}\n}\n\n// MaxItems sets the maximum number of items for an array\nfunc MaxItems(max int) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"maxItems\"] = max\n\t}\n}\n\n// UniqueItems specifies whether array items must be unique\nfunc UniqueItems(unique bool) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"uniqueItems\"] = unique\n\t}\n}\n\n// WithStringItems configures an array's items to be of type string.\n//\n// Supported options: Description(), DefaultString(), Enum(), MaxLength(), MinLength(), Pattern()\n// Note: Options like Required() are not valid for item schemas and will be ignored.\n//\n// Examples:\n//\n//\tmcp.WithArray(\"tags\", mcp.WithStringItems())\n//\tmcp.WithArray(\"colors\", mcp.WithStringItems(mcp.Enum(\"red\", \"green\", \"blue\")))\n//\tmcp.WithArray(\"names\", mcp.WithStringItems(mcp.MinLength(1), mcp.MaxLength(50)))\n//\n// Limitations: Only supports simple string arrays. Use Items() for complex objects.\nfunc WithStringItems(opts ...PropertyOption) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\titemSchema := map[string]any{\n\t\t\t\"type\": \"string\",\n\t\t}\n\n\t\tfor _, opt := range opts {\n\t\t\topt(itemSchema)\n\t\t}\n\n\t\tschema[\"items\"] = itemSchema\n\t}\n}\n\n// WithStringEnumItems configures an array's items to be of type string with a specified enum.\n// Example:\n//\n//\tmcp.WithArray(\"priority\", mcp.WithStringEnumItems([]string{\"low\", \"medium\", \"high\"}))\n//\n// Limitations: Only supports string enums. Use WithStringItems(Enum(...)) for more flexibility.\nfunc WithStringEnumItems(values []string) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\tschema[\"items\"] = map[string]any{\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": values,\n\t\t}\n\t}\n}\n\n// WithNumberItems configures an array's items to be of type number.\n//\n// Supported options: Description(), DefaultNumber(), Min(), Max(), MultipleOf()\n// Note: Options like Required() are not valid for item schemas and will be ignored.\n//\n// Examples:\n//\n//\tmcp.WithArray(\"scores\", mcp.WithNumberItems(mcp.Min(0), mcp.Max(100)))\n//\tmcp.WithArray(\"prices\", mcp.WithNumberItems(mcp.Min(0)))\n//\n// Limitations: Only supports simple number arrays. Use Items() for complex objects.\nfunc WithNumberItems(opts ...PropertyOption) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\titemSchema := map[string]any{\n\t\t\t\"type\": \"number\",\n\t\t}\n\n\t\tfor _, opt := range opts {\n\t\t\topt(itemSchema)\n\t\t}\n\n\t\tschema[\"items\"] = itemSchema\n\t}\n}\n\n// WithBooleanItems configures an array's items to be of type boolean.\n//\n// Supported options: Description(), DefaultBool()\n// Note: Options like Required() are not valid for item schemas and will be ignored.\n//\n// Examples:\n//\n//\tmcp.WithArray(\"flags\", mcp.WithBooleanItems())\n//\tmcp.WithArray(\"permissions\", mcp.WithBooleanItems(mcp.Description(\"User permissions\")))\n//\n// Limitations: Only supports simple boolean arrays. Use Items() for complex objects.\nfunc WithBooleanItems(opts ...PropertyOption) PropertyOption {\n\treturn func(schema map[string]any) {\n\t\titemSchema := map[string]any{\n\t\t\t\"type\": \"boolean\",\n\t\t}\n\n\t\tfor _, opt := range opts {\n\t\t\topt(itemSchema)\n\t\t}\n\n\t\tschema[\"items\"] = itemSchema\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/mcp/typed_tools.go",
    "content": "package mcp\n\nimport (\n\t\"context\"\n\t\"fmt\"\n)\n\n// TypedToolHandlerFunc is a function that handles a tool call with typed arguments\ntype TypedToolHandlerFunc[T any] func(ctx context.Context, request CallToolRequest, args T) (*CallToolResult, error)\n\n// StructuredToolHandlerFunc is a function that handles a tool call with typed arguments and returns structured output\ntype StructuredToolHandlerFunc[TArgs any, TResult any] func(ctx context.Context, request CallToolRequest, args TArgs) (TResult, error)\n\n// NewTypedToolHandler creates a ToolHandlerFunc that automatically binds arguments to a typed struct\nfunc NewTypedToolHandler[T any](handler TypedToolHandlerFunc[T]) func(ctx context.Context, request CallToolRequest) (*CallToolResult, error) {\n\treturn func(ctx context.Context, request CallToolRequest) (*CallToolResult, error) {\n\t\tvar args T\n\t\tif err := request.BindArguments(&args); err != nil {\n\t\t\treturn NewToolResultError(fmt.Sprintf(\"failed to bind arguments: %v\", err)), nil\n\t\t}\n\t\treturn handler(ctx, request, args)\n\t}\n}\n\n// NewStructuredToolHandler creates a ToolHandlerFunc that automatically binds arguments to a typed struct\n// and returns structured output. It automatically creates both structured and\n// text content (from the structured output) for backwards compatibility.\nfunc NewStructuredToolHandler[TArgs any, TResult any](handler StructuredToolHandlerFunc[TArgs, TResult]) func(ctx context.Context, request CallToolRequest) (*CallToolResult, error) {\n\treturn func(ctx context.Context, request CallToolRequest) (*CallToolResult, error) {\n\t\tvar args TArgs\n\t\tif err := request.BindArguments(&args); err != nil {\n\t\t\treturn NewToolResultError(fmt.Sprintf(\"failed to bind arguments: %v\", err)), nil\n\t\t}\n\n\t\tresult, err := handler(ctx, request, args)\n\t\tif err != nil {\n\t\t\treturn NewToolResultError(fmt.Sprintf(\"tool execution failed: %v\", err)), nil\n\t\t}\n\n\t\treturn NewToolResultStructuredOnly(result), nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/mcp/types.go",
    "content": "// Package mcp defines the core types and interfaces for the Model Context Protocol (MCP).\n// MCP is a protocol for communication between LLM-powered applications and their supporting services.\npackage mcp\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"maps\"\n\t\"net/http\"\n\t\"strconv\"\n\n\t\"github.com/yosida95/uritemplate/v3\"\n)\n\ntype MCPMethod string\n\nconst (\n\t// MethodInitialize initiates connection and negotiates protocol capabilities.\n\t// https://modelcontextprotocol.io/specification/2024-11-05/basic/lifecycle/#initialization\n\tMethodInitialize MCPMethod = \"initialize\"\n\n\t// MethodPing verifies connection liveness between client and server.\n\t// https://modelcontextprotocol.io/specification/2024-11-05/basic/utilities/ping/\n\tMethodPing MCPMethod = \"ping\"\n\n\t// MethodResourcesList lists all available server resources.\n\t// https://modelcontextprotocol.io/specification/2024-11-05/server/resources/\n\tMethodResourcesList MCPMethod = \"resources/list\"\n\n\t// MethodResourcesTemplatesList provides URI templates for constructing resource URIs.\n\t// https://modelcontextprotocol.io/specification/2024-11-05/server/resources/\n\tMethodResourcesTemplatesList MCPMethod = \"resources/templates/list\"\n\n\t// MethodResourcesRead retrieves content of a specific resource by URI.\n\t// https://modelcontextprotocol.io/specification/2024-11-05/server/resources/\n\tMethodResourcesRead MCPMethod = \"resources/read\"\n\n\t// MethodPromptsList lists all available prompt templates.\n\t// https://modelcontextprotocol.io/specification/2024-11-05/server/prompts/\n\tMethodPromptsList MCPMethod = \"prompts/list\"\n\n\t// MethodPromptsGet retrieves a specific prompt template with filled parameters.\n\t// https://modelcontextprotocol.io/specification/2024-11-05/server/prompts/\n\tMethodPromptsGet MCPMethod = \"prompts/get\"\n\n\t// MethodToolsList lists all available executable tools.\n\t// https://modelcontextprotocol.io/specification/2024-11-05/server/tools/\n\tMethodToolsList MCPMethod = \"tools/list\"\n\n\t// MethodToolsCall invokes a specific tool with provided parameters.\n\t// https://modelcontextprotocol.io/specification/2024-11-05/server/tools/\n\tMethodToolsCall MCPMethod = \"tools/call\"\n\n\t// MethodSetLogLevel configures the minimum log level for client\n\t// https://modelcontextprotocol.io/specification/2025-03-26/server/utilities/logging\n\tMethodSetLogLevel MCPMethod = \"logging/setLevel\"\n\n\t// MethodElicitationCreate requests additional information from the user during interactions.\n\t// https://modelcontextprotocol.io/docs/concepts/elicitation\n\tMethodElicitationCreate MCPMethod = \"elicitation/create\"\n\n\t// MethodNotificationElicitationComplete notifies when a URL mode elicitation completes.\n\tMethodNotificationElicitationComplete MCPMethod = \"notifications/elicitation/complete\"\n\n\t// MethodListRoots requests roots list from the client during interactions.\n\t// https://modelcontextprotocol.io/specification/2025-06-18/client/roots\n\tMethodListRoots MCPMethod = \"roots/list\"\n\n\t// MethodTasksGet retrieves the current status of a task.\n\t// https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/tasks\n\tMethodTasksGet MCPMethod = \"tasks/get\"\n\n\t// MethodTasksList lists all tasks for the current session.\n\t// https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/tasks\n\tMethodTasksList MCPMethod = \"tasks/list\"\n\n\t// MethodTasksResult retrieves the result of a completed task.\n\t// https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/tasks\n\tMethodTasksResult MCPMethod = \"tasks/result\"\n\n\t// MethodTasksCancel cancels an in-progress task.\n\t// https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/tasks\n\tMethodTasksCancel MCPMethod = \"tasks/cancel\"\n\n\t// MethodNotificationResourcesListChanged notifies when the list of available resources changes.\n\t// https://modelcontextprotocol.io/specification/2025-03-26/server/resources#list-changed-notification\n\tMethodNotificationResourcesListChanged = \"notifications/resources/list_changed\"\n\n\tMethodNotificationResourceUpdated = \"notifications/resources/updated\"\n\n\t// MethodNotificationPromptsListChanged notifies when the list of available prompt templates changes.\n\t// https://modelcontextprotocol.io/specification/2025-03-26/server/prompts#list-changed-notification\n\tMethodNotificationPromptsListChanged = \"notifications/prompts/list_changed\"\n\n\t// MethodNotificationToolsListChanged notifies when the list of available tools changes.\n\t// https://modelcontextprotocol.io/specification/2025-06-18/server/tools#list-changed-notification\n\tMethodNotificationToolsListChanged = \"notifications/tools/list_changed\"\n\n\t// MethodNotificationRootsListChanged notifies when the list of available roots changes.\n\t// https://modelcontextprotocol.io/specification/2025-06-18/client/roots#root-list-changes\n\tMethodNotificationRootsListChanged = \"notifications/roots/list_changed\"\n\n\t// MethodNotificationTasksStatus notifies when a task's status changes.\n\t// https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/tasks\n\tMethodNotificationTasksStatus = \"notifications/tasks/status\"\n\n\t// MethodCompletionComplete returns completion suggestions for a given argument\n\t// https://modelcontextprotocol.io/specification/2025-11-25/server/utilities/completion\n\tMethodCompletionComplete MCPMethod = \"completion/complete\"\n)\n\ntype URITemplate struct {\n\t*uritemplate.Template\n}\n\nfunc (t *URITemplate) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(t.Raw())\n}\n\nfunc (t *URITemplate) UnmarshalJSON(data []byte) error {\n\tvar raw string\n\tif err := json.Unmarshal(data, &raw); err != nil {\n\t\treturn err\n\t}\n\ttemplate, err := uritemplate.New(raw)\n\tif err != nil {\n\t\treturn err\n\t}\n\tt.Template = template\n\treturn nil\n}\n\n/* JSON-RPC types */\n\n// JSONRPCMessage represents either a JSONRPCRequest, JSONRPCNotification, JSONRPCResponse, or JSONRPCError\ntype JSONRPCMessage any\n\n// LATEST_PROTOCOL_VERSION is the most recent version of the MCP protocol.\nconst LATEST_PROTOCOL_VERSION = \"2025-11-25\"\n\n// ValidProtocolVersions lists all known valid MCP protocol versions.\nvar ValidProtocolVersions = []string{\n\tLATEST_PROTOCOL_VERSION,\n\t\"2025-06-18\",\n\t\"2025-03-26\",\n\t\"2024-11-05\",\n}\n\n// JSONRPC_VERSION is the version of JSON-RPC used by MCP.\nconst JSONRPC_VERSION = \"2.0\"\n\n// ProgressToken is used to associate progress notifications with the original request.\ntype ProgressToken any\n\n// Cursor is an opaque token used to represent a cursor for pagination.\ntype Cursor string\n\n// Meta is metadata attached to a request's parameters. This can include fields\n// formally defined by the protocol or other arbitrary data.\ntype Meta struct {\n\t// If specified, the caller is requesting out-of-band progress\n\t// notifications for this request (as represented by\n\t// notifications/progress). The value of this parameter is an\n\t// opaque token that will be attached to any subsequent\n\t// notifications. The receiver is not obligated to provide these\n\t// notifications.\n\tProgressToken ProgressToken\n\n\t// AdditionalFields are any fields present in the Meta that are not\n\t// otherwise defined in the protocol.\n\tAdditionalFields map[string]any\n}\n\nfunc (m *Meta) MarshalJSON() ([]byte, error) {\n\traw := make(map[string]any)\n\tif m.ProgressToken != nil {\n\t\traw[\"progressToken\"] = m.ProgressToken\n\t}\n\tmaps.Copy(raw, m.AdditionalFields)\n\n\treturn json.Marshal(raw)\n}\n\nfunc (m *Meta) UnmarshalJSON(data []byte) error {\n\traw := make(map[string]any)\n\tif err := json.Unmarshal(data, &raw); err != nil {\n\t\treturn err\n\t}\n\tm.ProgressToken = raw[\"progressToken\"]\n\tdelete(raw, \"progressToken\")\n\tm.AdditionalFields = raw\n\treturn nil\n}\n\nfunc NewMetaFromMap(m map[string]any) *Meta {\n\tprogressToken := m[\"progressToken\"]\n\tif progressToken != nil {\n\t\tdelete(m, \"progressToken\")\n\t}\n\n\treturn &Meta{\n\t\tProgressToken:    progressToken,\n\t\tAdditionalFields: m,\n\t}\n}\n\ntype Request struct {\n\tMethod string        `json:\"method\"`\n\tParams RequestParams `json:\"params,omitempty\"`\n}\n\ntype RequestParams struct {\n\tMeta *Meta `json:\"_meta,omitempty\"`\n}\n\ntype Params map[string]any\n\ntype Notification struct {\n\tMethod string             `json:\"method\"`\n\tParams NotificationParams `json:\"params,omitempty\"`\n}\n\ntype NotificationParams struct {\n\t// This parameter name is reserved by MCP to allow clients and\n\t// servers to attach additional metadata to their notifications.\n\tMeta map[string]any `json:\"_meta,omitempty\"`\n\n\t// Additional fields can be added to this map\n\tAdditionalFields map[string]any `json:\"-\"`\n}\n\n// MarshalJSON implements custom JSON marshaling\nfunc (p NotificationParams) MarshalJSON() ([]byte, error) {\n\t// Create a map to hold all fields\n\tm := make(map[string]any)\n\n\t// Add Meta if it exists\n\tif p.Meta != nil {\n\t\tm[\"_meta\"] = p.Meta\n\t}\n\n\t// Add all additional fields\n\tfor k, v := range p.AdditionalFields {\n\t\t// Ensure we don't override the _meta field\n\t\tif k != \"_meta\" {\n\t\t\tm[k] = v\n\t\t}\n\t}\n\n\treturn json.Marshal(m)\n}\n\n// UnmarshalJSON implements custom JSON unmarshaling\nfunc (p *NotificationParams) UnmarshalJSON(data []byte) error {\n\t// Create a map to hold all fields\n\tvar m map[string]any\n\tif err := json.Unmarshal(data, &m); err != nil {\n\t\treturn err\n\t}\n\n\t// Initialize maps if they're nil\n\tif p.Meta == nil {\n\t\tp.Meta = make(map[string]any)\n\t}\n\tif p.AdditionalFields == nil {\n\t\tp.AdditionalFields = make(map[string]any)\n\t}\n\n\t// Process all fields\n\tfor k, v := range m {\n\t\tif k == \"_meta\" {\n\t\t\t// Handle Meta field\n\t\t\tif meta, ok := v.(map[string]any); ok {\n\t\t\t\tp.Meta = meta\n\t\t\t}\n\t\t} else {\n\t\t\t// Handle additional fields\n\t\t\tp.AdditionalFields[k] = v\n\t\t}\n\t}\n\n\treturn nil\n}\n\ntype Result struct {\n\t// This result property is reserved by the protocol to allow clients and\n\t// servers to attach additional metadata to their responses.\n\tMeta *Meta `json:\"_meta,omitempty\"`\n}\n\n// RequestId is a uniquely identifying ID for a request in JSON-RPC.\n// It can be any JSON-serializable value, typically a number or string.\ntype RequestId struct {\n\tvalue any\n}\n\n// NewRequestId creates a new RequestId with the given value\nfunc NewRequestId(value any) RequestId {\n\treturn RequestId{value: value}\n}\n\n// Value returns the underlying value of the RequestId\nfunc (r RequestId) Value() any {\n\treturn r.value\n}\n\n// String returns a string representation of the RequestId\nfunc (r RequestId) String() string {\n\tswitch v := r.value.(type) {\n\tcase string:\n\t\treturn \"string:\" + v\n\tcase int64:\n\t\treturn \"int64:\" + strconv.FormatInt(v, 10)\n\tcase float64:\n\t\tif v == float64(int64(v)) {\n\t\t\treturn \"int64:\" + strconv.FormatInt(int64(v), 10)\n\t\t}\n\t\treturn \"float64:\" + strconv.FormatFloat(v, 'f', -1, 64)\n\tcase nil:\n\t\treturn \"<nil>\"\n\tdefault:\n\t\treturn \"unknown:\" + fmt.Sprintf(\"%v\", v)\n\t}\n}\n\n// IsNil returns true if the RequestId is nil\nfunc (r RequestId) IsNil() bool {\n\treturn r.value == nil\n}\n\nfunc (r RequestId) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(r.value)\n}\n\nfunc (r *RequestId) UnmarshalJSON(data []byte) error {\n\tif string(data) == \"null\" {\n\t\tr.value = nil\n\t\treturn nil\n\t}\n\n\t// Try unmarshaling as string first\n\tvar s string\n\tif err := json.Unmarshal(data, &s); err == nil {\n\t\tr.value = s\n\t\treturn nil\n\t}\n\n\t// JSON numbers are unmarshaled as float64 in Go\n\tvar f float64\n\tif err := json.Unmarshal(data, &f); err == nil {\n\t\tif f == float64(int64(f)) {\n\t\t\tr.value = int64(f)\n\t\t} else {\n\t\t\tr.value = f\n\t\t}\n\t\treturn nil\n\t}\n\n\treturn fmt.Errorf(\"invalid request id: %s\", string(data))\n}\n\n// JSONRPCRequest represents a request that expects a response.\ntype JSONRPCRequest struct {\n\tJSONRPC string    `json:\"jsonrpc\"`\n\tID      RequestId `json:\"id\"`\n\tParams  any       `json:\"params,omitempty\"`\n\tRequest\n}\n\n// JSONRPCNotification represents a notification which does not expect a response.\ntype JSONRPCNotification struct {\n\tJSONRPC string `json:\"jsonrpc\"`\n\tNotification\n}\n\n// JSONRPCResponse represents a successful (non-error) response to a request.\ntype JSONRPCResponse struct {\n\tJSONRPC string    `json:\"jsonrpc\"`\n\tID      RequestId `json:\"id\"`\n\tResult  any       `json:\"result\"`\n}\n\n// JSONRPCError represents a non-successful (error) response to a request.\ntype JSONRPCError struct {\n\tJSONRPC string              `json:\"jsonrpc\"`\n\tID      RequestId           `json:\"id\"`\n\tError   JSONRPCErrorDetails `json:\"error\"`\n}\n\n// JSONRPCErrorDetails represents a JSON-RPC error for Go error handling.\n// This is separate from the JSONRPCError type which represents the full JSON-RPC error response structure.\ntype JSONRPCErrorDetails struct {\n\t// The error type that occurred.\n\tCode int `json:\"code\"`\n\t// A short description of the error. The message SHOULD be limited\n\t// to a concise single sentence.\n\tMessage string `json:\"message\"`\n\t// Additional information about the error. The value of this member\n\t// is defined by the sender (e.g. detailed error information, nested errors etc.).\n\tData any `json:\"data,omitempty\"`\n}\n\n// Standard JSON-RPC error codes\nconst (\n\t// PARSE_ERROR indicates invalid JSON was received by the server.\n\tPARSE_ERROR = -32700\n\n\t// INVALID_REQUEST indicates the JSON sent is not a valid Request object.\n\tINVALID_REQUEST = -32600\n\n\t// METHOD_NOT_FOUND indicates the method does not exist/is not available.\n\tMETHOD_NOT_FOUND = -32601\n\n\t// INVALID_PARAMS indicates invalid method parameter(s).\n\tINVALID_PARAMS = -32602\n\n\t// INTERNAL_ERROR indicates internal JSON-RPC error.\n\tINTERNAL_ERROR = -32603\n\n\t// REQUEST_INTERRUPTED indicates a request was cancelled or timed out.\n\tREQUEST_INTERRUPTED = -32800\n)\n\n// MCP error codes\nconst (\n\t// RESOURCE_NOT_FOUND indicates that the requested resource was not found.\n\tRESOURCE_NOT_FOUND = -32002\n\n\t// URL_ELICITATION_REQUIRED is the error code for when URL elicitation is required.\n\tURL_ELICITATION_REQUIRED = -32042\n)\n\n/* Empty result */\n\n// EmptyResult represents a response that indicates success but carries no data.\ntype EmptyResult Result\n\n/* Cancellation */\n\n// CancelledNotification can be sent by either side to indicate that it is\n// cancelling a previously-issued request.\n//\n// The request SHOULD still be in-flight, but due to communication latency, it\n// is always possible that this notification MAY arrive after the request has\n// already finished.\n//\n// This notification indicates that the result will be unused, so any\n// associated processing SHOULD cease.\n//\n// A client MUST NOT attempt to cancel its `initialize` request.\ntype CancelledNotification struct {\n\tNotification\n\tParams CancelledNotificationParams `json:\"params\"`\n}\n\ntype CancelledNotificationParams struct {\n\t// The ID of the request to cancel.\n\t//\n\t// This MUST correspond to the ID of a request previously issued\n\t// in the same direction.\n\tRequestId RequestId `json:\"requestId\"`\n\n\t// An optional string describing the reason for the cancellation. This MAY\n\t// be logged or presented to the user.\n\tReason string `json:\"reason,omitempty\"`\n}\n\n/* Initialization */\n\n// InitializeRequest is sent from the client to the server when it first\n// connects, asking it to begin initialization.\ntype InitializeRequest struct {\n\tRequest\n\tParams InitializeParams `json:\"params\"`\n\tHeader http.Header      `json:\"-\"`\n}\n\ntype InitializeParams struct {\n\t// The latest version of the Model Context Protocol that the client supports.\n\t// The client MAY decide to support older versions as well.\n\tProtocolVersion string             `json:\"protocolVersion\"`\n\tCapabilities    ClientCapabilities `json:\"capabilities\"`\n\tClientInfo      Implementation     `json:\"clientInfo\"`\n}\n\n// InitializeResult is sent after receiving an initialize request from the\n// client.\ntype InitializeResult struct {\n\tResult\n\t// The version of the Model Context Protocol that the server wants to use.\n\t// This may not match the version that the client requested. If the client cannot\n\t// support this version, it MUST disconnect.\n\tProtocolVersion string             `json:\"protocolVersion\"`\n\tCapabilities    ServerCapabilities `json:\"capabilities\"`\n\tServerInfo      Implementation     `json:\"serverInfo\"`\n\t// Instructions describing how to use the server and its features.\n\t//\n\t// This can be used by clients to improve the LLM's understanding of\n\t// available tools, resources, etc. It can be thought of like a \"hint\" to the model.\n\t// For example, this information MAY be added to the system prompt.\n\tInstructions string `json:\"instructions,omitempty\"`\n}\n\n// InitializedNotification is sent from the client to the server after\n// initialization has finished.\ntype InitializedNotification struct {\n\tNotification\n}\n\n// ClientCapabilities represents capabilities a client may support. Known\n// capabilities are defined here, in this schema, but this is not a closed set: any\n// client can define its own, additional capabilities.\ntype ClientCapabilities struct {\n\t// Experimental, non-standard capabilities that the client supports.\n\tExperimental map[string]any `json:\"experimental,omitempty\"`\n\t// Present if the client supports listing roots.\n\tRoots *struct {\n\t\t// Whether the client supports notifications for changes to the roots list.\n\t\tListChanged bool `json:\"listChanged,omitempty\"`\n\t} `json:\"roots,omitempty\"`\n\t// Present if the client supports sampling from an LLM.\n\tSampling *struct{} `json:\"sampling,omitempty\"`\n\t// Present if the client supports elicitation requests from the server.\n\tElicitation *ElicitationCapability `json:\"elicitation,omitempty\"`\n\t// Present if the client supports task-based execution.\n\tTasks *TasksCapability `json:\"tasks,omitempty\"`\n}\n\n// ServerCapabilities represents capabilities that a server may support. Known\n// capabilities are defined here, in this schema, but this is not a closed set: any\n// server can define its own, additional capabilities.\ntype ServerCapabilities struct {\n\t// Experimental, non-standard capabilities that the server supports.\n\tExperimental map[string]any `json:\"experimental,omitempty\"`\n\t// Present if the server supports sending log messages to the client.\n\tLogging *struct{} `json:\"logging,omitempty\"`\n\t// Present if the server offers any prompt templates.\n\tPrompts *struct {\n\t\t// Whether this server supports notifications for changes to the prompt list.\n\t\tListChanged bool `json:\"listChanged,omitempty\"`\n\t} `json:\"prompts,omitempty\"`\n\t// Present if the server offers any resources to read.\n\tResources *struct {\n\t\t// Whether this server supports subscribing to resource updates.\n\t\tSubscribe bool `json:\"subscribe,omitempty\"`\n\t\t// Whether this server supports notifications for changes to the resource\n\t\t// list.\n\t\tListChanged bool `json:\"listChanged,omitempty\"`\n\t} `json:\"resources,omitempty\"`\n\t// Present if the server supports sending sampling requests to clients.\n\tSampling *struct{} `json:\"sampling,omitempty\"`\n\t// Present if the server offers any tools to call.\n\tTools *struct {\n\t\t// Whether this server supports notifications for changes to the tool list.\n\t\tListChanged bool `json:\"listChanged,omitempty\"`\n\t} `json:\"tools,omitempty\"`\n\t// Present if the server supports elicitation requests to the client.\n\tElicitation *ElicitationCapability `json:\"elicitation,omitempty\"`\n\t// Present if the server supports roots requests to the client.\n\tRoots *struct{} `json:\"roots,omitempty\"`\n\t// Present if the server supports task-based execution.\n\tTasks *TasksCapability `json:\"tasks,omitempty\"`\n\t// Present if the server supports completions requests to the client.\n\tCompletions *struct{} `json:\"completions,omitempty\"`\n}\n\n// Icon represents a visual identifier for MCP entities.\n//\n// Security considerations:\n//   - Clients MUST support at least image/png and image/jpeg MIME types\n//   - Clients SHOULD support image/svg+xml and image/webp\n//   - Icons should be treated as untrusted input\n//   - URI scheme validation (HTTPS or data URI only)\n//   - Size/dimension limits to prevent resource exhaustion\ntype Icon struct {\n\t// URI pointing to the icon resource (HTTPS URL or data URI)\n\tSrc string `json:\"src\"`\n\n\t// Optional MIME type (e.g., \"image/png\", \"image/svg+xml\")\n\tMIMEType string `json:\"mimeType,omitempty\"`\n\n\t// Optional size specifications (e.g., [\"48x48\"], [\"any\"] for SVG)\n\tSizes []string `json:\"sizes,omitempty\"`\n}\n\n// Implementation describes the name and version of an MCP implementation.\ntype Implementation struct {\n\tName        string `json:\"name\"`\n\tVersion     string `json:\"version\"`\n\tTitle       string `json:\"title,omitempty\"`\n\tDescription string `json:\"description,omitempty\"`\n\tWebsiteURL  string `json:\"websiteUrl,omitempty\"`\n\t// Icons provides visual identifiers for the implementation\n\tIcons []Icon `json:\"icons,omitempty\"`\n}\n\n/* Ping */\n\n// PingRequest represents a ping, issued by either the server or the client,\n// to check that the other party is still alive. The receiver must promptly respond,\n// or else may be disconnected.\ntype PingRequest struct {\n\tRequest\n\tHeader http.Header `json:\"-\"`\n}\n\n/* Progress notifications */\n\n// ProgressNotification is an out-of-band notification used to inform the\n// receiver of a progress update for a long-running request.\ntype ProgressNotification struct {\n\tNotification\n\tParams ProgressNotificationParams `json:\"params\"`\n}\n\ntype ProgressNotificationParams struct {\n\t// The progress token which was given in the initial request, used to\n\t// associate this notification with the request that is proceeding.\n\tProgressToken ProgressToken `json:\"progressToken\"`\n\t// The progress thus far. This should increase every time progress is made,\n\t// even if the total is unknown.\n\tProgress float64 `json:\"progress\"`\n\t// Total number of items to process (or total progress required), if known.\n\tTotal float64 `json:\"total,omitempty\"`\n\t// Message related to progress. This should provide relevant human-readable\n\t// progress information.\n\tMessage string `json:\"message,omitempty\"`\n}\n\n/* Pagination */\n\ntype PaginatedRequest struct {\n\tRequest\n\tParams PaginatedParams `json:\"params,omitempty\"`\n}\n\ntype PaginatedParams struct {\n\t// An opaque token representing the current pagination position.\n\t// If provided, the server should return results starting after this cursor.\n\tCursor Cursor `json:\"cursor,omitempty\"`\n}\n\ntype PaginatedResult struct {\n\tResult\n\t// An opaque token representing the pagination position after the last\n\t// returned result.\n\t// If present, there may be more results available.\n\tNextCursor Cursor `json:\"nextCursor,omitempty\"`\n}\n\n/* Resources */\n\n// ListResourcesRequest is sent from the client to request a list of resources\n// the server has.\ntype ListResourcesRequest struct {\n\tPaginatedRequest\n\tHeader http.Header `json:\"-\"`\n}\n\n// ListResourcesResult is the server's response to a resources/list request\n// from the client.\ntype ListResourcesResult struct {\n\tPaginatedResult\n\tResources []Resource `json:\"resources\"`\n}\n\n// ListResourceTemplatesRequest is sent from the client to request a list of\n// resource templates the server has.\ntype ListResourceTemplatesRequest struct {\n\tPaginatedRequest\n\tHeader http.Header `json:\"-\"`\n}\n\n// ListResourceTemplatesResult is the server's response to a\n// resources/templates/list request from the client.\ntype ListResourceTemplatesResult struct {\n\tPaginatedResult\n\tResourceTemplates []ResourceTemplate `json:\"resourceTemplates\"`\n}\n\n// ReadResourceRequest is sent from the client to the server, to read a\n// specific resource URI.\ntype ReadResourceRequest struct {\n\tRequest\n\tHeader http.Header        `json:\"-\"`\n\tParams ReadResourceParams `json:\"params\"`\n}\n\ntype ReadResourceParams struct {\n\t// The URI of the resource to read. The URI can use any protocol; it is up\n\t// to the server how to interpret it.\n\tURI string `json:\"uri\"`\n\t// Arguments to pass to the resource handler\n\tArguments map[string]any `json:\"arguments,omitempty\"`\n}\n\n// ReadResourceResult is the server's response to a resources/read request\n// from the client.\ntype ReadResourceResult struct {\n\tResult\n\tContents []ResourceContents `json:\"contents\"` // Can be TextResourceContents or BlobResourceContents\n}\n\n// ResourceListChangedNotification is an optional notification from the server\n// to the client, informing it that the list of resources it can read from has\n// changed. This may be issued by servers without any previous subscription from\n// the client.\ntype ResourceListChangedNotification struct {\n\tNotification\n}\n\n// SubscribeRequest is sent from the client to request resources/updated\n// notifications from the server whenever a particular resource changes.\ntype SubscribeRequest struct {\n\tRequest\n\tParams SubscribeParams `json:\"params\"`\n\tHeader http.Header     `json:\"-\"`\n}\n\ntype SubscribeParams struct {\n\t// The URI of the resource to subscribe to. The URI can use any protocol; it\n\t// is up to the server how to interpret it.\n\tURI string `json:\"uri\"`\n}\n\n// UnsubscribeRequest is sent from the client to request cancellation of\n// resources/updated notifications from the server. This should follow a previous\n// resources/subscribe request.\ntype UnsubscribeRequest struct {\n\tRequest\n\tParams UnsubscribeParams `json:\"params\"`\n\tHeader http.Header       `json:\"-\"`\n}\n\ntype UnsubscribeParams struct {\n\t// The URI of the resource to unsubscribe from.\n\tURI string `json:\"uri\"`\n}\n\n// ResourceUpdatedNotification is a notification from the server to the client,\n// informing it that a resource has changed and may need to be read again. This\n// should only be sent if the client previously sent a resources/subscribe request.\ntype ResourceUpdatedNotification struct {\n\tNotification\n\tParams ResourceUpdatedNotificationParams `json:\"params\"`\n}\ntype ResourceUpdatedNotificationParams struct {\n\t// The URI of the resource that has been updated. This might be a sub-\n\t// resource of the one that the client actually subscribed to.\n\tURI string `json:\"uri\"`\n}\n\n// Resource represents a known resource that the server is capable of reading.\ntype Resource struct {\n\tAnnotated\n\t// Meta is a metadata object that is reserved by MCP for storing additional information.\n\tMeta *Meta `json:\"_meta,omitempty\"`\n\t// The URI of this resource.\n\tURI string `json:\"uri\"`\n\t// A human-readable name for this resource.\n\t//\n\t// This can be used by clients to populate UI elements.\n\tName string `json:\"name\"`\n\t// A description of what this resource represents.\n\t//\n\t// This can be used by clients to improve the LLM's understanding of\n\t// available resources. It can be thought of like a \"hint\" to the model.\n\tDescription string `json:\"description,omitempty\"`\n\t// The MIME type of this resource, if known.\n\tMIMEType string `json:\"mimeType,omitempty\"`\n\t// Icons provides visual identifiers for the resource\n\tIcons []Icon `json:\"icons,omitempty\"`\n}\n\n// GetName returns the name of the resource.\nfunc (r Resource) GetName() string {\n\treturn r.Name\n}\n\n// ResourceTemplate represents a template description for resources available\n// on the server.\ntype ResourceTemplate struct {\n\tAnnotated\n\t// Meta is a metadata object that is reserved by MCP for storing additional information.\n\tMeta *Meta `json:\"_meta,omitempty\"`\n\t// A URI template (according to RFC 6570) that can be used to construct\n\t// resource URIs.\n\tURITemplate *URITemplate `json:\"uriTemplate\"`\n\t// A human-readable name for the type of resource this template refers to.\n\t//\n\t// This can be used by clients to populate UI elements.\n\tName string `json:\"name\"`\n\t// A description of what this template is for.\n\t//\n\t// This can be used by clients to improve the LLM's understanding of\n\t// available resources. It can be thought of like a \"hint\" to the model.\n\tDescription string `json:\"description,omitempty\"`\n\t// The MIME type for all resources that match this template. This should only\n\t// be included if all resources matching this template have the same type.\n\tMIMEType string `json:\"mimeType,omitempty\"`\n\t// Icons provides visual identifiers for the resource template\n\tIcons []Icon `json:\"icons,omitempty\"`\n}\n\n// GetName returns the name of the resourceTemplate.\nfunc (rt ResourceTemplate) GetName() string {\n\treturn rt.Name\n}\n\n// ResourceContents represents the contents of a specific resource or sub-\n// resource.\ntype ResourceContents interface {\n\tisResourceContents()\n}\n\ntype TextResourceContents struct {\n\t// Raw per‑resource metadata; pass‑through as defined by MCP. Not the same as mcp.Meta.\n\t// Allows _meta to be used for MCP-UI features for example. Does not assume any specific format.\n\tMeta map[string]any `json:\"_meta,omitempty\"`\n\t// The URI of this resource.\n\tURI string `json:\"uri\"`\n\t// The MIME type of this resource, if known.\n\tMIMEType string `json:\"mimeType,omitempty\"`\n\t// The text of the item. This must only be set if the item can actually be\n\t// represented as text (not binary data).\n\tText string `json:\"text\"`\n}\n\nfunc (TextResourceContents) isResourceContents() {}\n\ntype BlobResourceContents struct {\n\t// Raw per‑resource metadata; pass‑through as defined by MCP. Not the same as mcp.Meta.\n\t// Allows _meta to be used for MCP-UI features for example. Does not assume any specific format.\n\tMeta map[string]any `json:\"_meta,omitempty\"`\n\t// The URI of this resource.\n\tURI string `json:\"uri\"`\n\t// The MIME type of this resource, if known.\n\tMIMEType string `json:\"mimeType,omitempty\"`\n\t// A base64-encoded string representing the binary data of the item.\n\tBlob string `json:\"blob\"`\n}\n\nfunc (BlobResourceContents) isResourceContents() {}\n\n/* Logging */\n\n// SetLevelRequest is a request from the client to the server, to enable or\n// adjust logging.\ntype SetLevelRequest struct {\n\tRequest\n\tParams SetLevelParams `json:\"params\"`\n\tHeader http.Header    `json:\"-\"`\n}\n\ntype SetLevelParams struct {\n\t// The level of logging that the client wants to receive from the server.\n\t// The server should send all logs at this level and higher (i.e., more severe) to\n\t// the client as notifications/logging/message.\n\tLevel LoggingLevel `json:\"level\"`\n}\n\n// LoggingMessageNotification is a notification of a log message passed from\n// server to client. If no logging/setLevel request has been sent from the client,\n// the server MAY decide which messages to send automatically.\ntype LoggingMessageNotification struct {\n\tNotification\n\tParams LoggingMessageNotificationParams `json:\"params\"`\n}\n\ntype LoggingMessageNotificationParams struct {\n\t// The severity of this log message.\n\tLevel LoggingLevel `json:\"level\"`\n\t// An optional name of the logger issuing this message.\n\tLogger string `json:\"logger,omitempty\"`\n\t// The data to be logged, such as a string message or an object. Any JSON\n\t// serializable type is allowed here.\n\tData any `json:\"data\"`\n}\n\n// LoggingLevel represents the severity of a log message.\n//\n// These map to syslog message severities, as specified in RFC-5424:\n// https://datatracker.ietf.org/doc/html/rfc5424#section-6.2.1\ntype LoggingLevel string\n\nconst (\n\tLoggingLevelDebug     LoggingLevel = \"debug\"\n\tLoggingLevelInfo      LoggingLevel = \"info\"\n\tLoggingLevelNotice    LoggingLevel = \"notice\"\n\tLoggingLevelWarning   LoggingLevel = \"warning\"\n\tLoggingLevelError     LoggingLevel = \"error\"\n\tLoggingLevelCritical  LoggingLevel = \"critical\"\n\tLoggingLevelAlert     LoggingLevel = \"alert\"\n\tLoggingLevelEmergency LoggingLevel = \"emergency\"\n)\n\nvar levelToInt = map[LoggingLevel]int{\n\tLoggingLevelDebug:     0,\n\tLoggingLevelInfo:      1,\n\tLoggingLevelNotice:    2,\n\tLoggingLevelWarning:   3,\n\tLoggingLevelError:     4,\n\tLoggingLevelCritical:  5,\n\tLoggingLevelAlert:     6,\n\tLoggingLevelEmergency: 7,\n}\n\nfunc (l LoggingLevel) ShouldSendTo(minLevel LoggingLevel) bool {\n\tia, oka := levelToInt[l]\n\tib, okb := levelToInt[minLevel]\n\tif !oka || !okb {\n\t\treturn false\n\t}\n\treturn ia >= ib\n}\n\n/* Elicitation */\n\n// ElicitationRequest is a request from the server to the client to request additional\n// information from the user during an interaction.\ntype ElicitationRequest struct {\n\tRequest\n\tParams ElicitationParams `json:\"params\"`\n}\n\n// ElicitationParams contains the parameters for an elicitation request.\ntype ElicitationParams struct {\n\tMeta *Meta `json:\"_meta,omitempty\"`\n\t// Mode specifies the type of elicitation: \"form\" or \"url\". Defaults to \"form\".\n\tMode string `json:\"mode,omitempty\"`\n\t// A human-readable message explaining what information is being requested and why.\n\tMessage string `json:\"message\"`\n\n\t// Form mode fields\n\n\t// A JSON Schema defining the expected structure of the user's response.\n\tRequestedSchema any `json:\"requestedSchema,omitempty\"`\n\n\t// URL mode fields\n\n\t// ElicitationID is a unique identifier for the elicitation request.\n\tElicitationID string `json:\"elicitationId,omitempty\"`\n\t// URL is the URL to be opened by the user.\n\tURL string `json:\"url,omitempty\"`\n}\n\n// Validate checks if the elicitation parameters are valid.\nfunc (p ElicitationParams) Validate() error {\n\tmode := p.Mode\n\tif mode == \"\" {\n\t\tmode = ElicitationModeForm\n\t}\n\n\tswitch mode {\n\tcase ElicitationModeForm:\n\t\tif p.RequestedSchema == nil {\n\t\t\treturn fmt.Errorf(\"requestedSchema is required for form elicitation\")\n\t\t}\n\tcase ElicitationModeURL:\n\t\tif p.ElicitationID == \"\" {\n\t\t\treturn fmt.Errorf(\"elicitationId is required for url elicitation\")\n\t\t}\n\t\tif p.URL == \"\" {\n\t\t\treturn fmt.Errorf(\"url is required for url elicitation\")\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"invalid elicitation mode: %s\", mode)\n\t}\n\n\treturn nil\n}\n\n// ElicitationResult represents the result of an elicitation request.\ntype ElicitationResult struct {\n\tResult\n\tElicitationResponse\n}\n\n// ElicitationResponse represents the user's response to an elicitation request.\ntype ElicitationResponse struct {\n\t// Action indicates whether the user accepted, declined, or cancelled.\n\tAction ElicitationResponseAction `json:\"action\"`\n\t// Content contains the user's response data if they accepted.\n\t// Should conform to the requestedSchema from the ElicitationRequest.\n\tContent any `json:\"content,omitempty\"`\n}\n\n// ElicitationResponseAction indicates how the user responded to an elicitation request.\ntype ElicitationResponseAction string\n\nconst (\n\t// ElicitationResponseActionAccept indicates the user provided the requested information.\n\tElicitationResponseActionAccept ElicitationResponseAction = \"accept\"\n\t// ElicitationResponseActionDecline indicates the user explicitly declined to provide information.\n\tElicitationResponseActionDecline ElicitationResponseAction = \"decline\"\n\t// ElicitationResponseActionCancel indicates the user cancelled without making a choice.\n\tElicitationResponseActionCancel ElicitationResponseAction = \"cancel\"\n)\n\n/* Sampling */\n\nconst (\n\t// MethodSamplingCreateMessage allows servers to request LLM completions from clients\n\tMethodSamplingCreateMessage MCPMethod = \"sampling/createMessage\"\n)\n\n// CreateMessageRequest is a request from the server to sample an LLM via the\n// client. The client has full discretion over which model to select. The client\n// should also inform the user before beginning sampling, to allow them to inspect\n// the request (human in the loop) and decide whether to approve it.\ntype CreateMessageRequest struct {\n\tRequest\n\tCreateMessageParams `json:\"params\"`\n}\n\ntype CreateMessageParams struct {\n\tMessages         []SamplingMessage `json:\"messages\"`\n\tModelPreferences *ModelPreferences `json:\"modelPreferences,omitempty\"`\n\tSystemPrompt     string            `json:\"systemPrompt,omitempty\"`\n\tIncludeContext   string            `json:\"includeContext,omitempty\"`\n\tTemperature      float64           `json:\"temperature,omitempty\"`\n\tMaxTokens        int               `json:\"maxTokens\"`\n\tStopSequences    []string          `json:\"stopSequences,omitempty\"`\n\tMetadata         any               `json:\"metadata,omitempty\"`\n}\n\n// CreateMessageResult is the client's response to a sampling/create_message\n// request from the server. The client should inform the user before returning the\n// sampled message, to allow them to inspect the response (human in the loop) and\n// decide whether to allow the server to see it.\ntype CreateMessageResult struct {\n\tResult\n\tSamplingMessage\n\t// The name of the model that generated the message.\n\tModel string `json:\"model\"`\n\t// The reason why sampling stopped, if known.\n\tStopReason string `json:\"stopReason,omitempty\"`\n}\n\n// SamplingMessage describes a message issued to or received from an LLM API.\ntype SamplingMessage struct {\n\tRole    Role `json:\"role\"`\n\tContent any  `json:\"content\"` // Can be TextContent, ImageContent or AudioContent\n}\n\ntype Annotations struct {\n\t// Describes who the intended customer of this object or data is.\n\t//\n\t// It can include multiple entries to indicate content useful for multiple\n\t// audiences (e.g., `[\"user\", \"assistant\"]`).\n\tAudience []Role `json:\"audience,omitempty\"`\n\n\t// Describes how important this data is for operating the server.\n\t//\n\t// A value of 1 means \"most important,\" and indicates that the data is\n\t// effectively required, while 0 means \"least important,\" and indicates that\n\t// the data is entirely optional.\n\t// Priority ranges from 0.0 to 1.0 (1 = most important, 0 = least important).\n\tPriority *float64 `json:\"priority,omitempty\"`\n\t// ISO 8601 formatted timestamp (e.g., \"2025-01-12T15:00:58Z\")\n\tLastModified string `json:\"lastModified,omitempty\"`\n}\n\n// Annotated is the base for objects that include optional annotations for the\n// client. The client can use annotations to inform how objects are used or\n// displayed\ntype Annotated struct {\n\tAnnotations *Annotations `json:\"annotations,omitempty\"`\n}\n\ntype Content interface {\n\tisContent()\n}\n\n// TextContent represents text provided to or from an LLM.\n// It must have Type set to \"text\".\ntype TextContent struct {\n\tAnnotated\n\t// Meta is a metadata object that is reserved by MCP for storing additional information.\n\tMeta *Meta  `json:\"_meta,omitempty\"`\n\tType string `json:\"type\"` // Must be \"text\"\n\t// The text content of the message.\n\tText string `json:\"text\"`\n}\n\nfunc (TextContent) isContent() {}\n\n// ImageContent represents an image provided to or from an LLM.\n// It must have Type set to \"image\".\ntype ImageContent struct {\n\tAnnotated\n\t// Meta is a metadata object that is reserved by MCP for storing additional information.\n\tMeta *Meta  `json:\"_meta,omitempty\"`\n\tType string `json:\"type\"` // Must be \"image\"\n\t// The base64-encoded image data.\n\tData string `json:\"data\"`\n\t// The MIME type of the image. Different providers may support different image types.\n\tMIMEType string `json:\"mimeType\"`\n}\n\nfunc (ImageContent) isContent() {}\n\n// AudioContent represents the contents of audio, embedded into a prompt or tool call result.\n// It must have Type set to \"audio\".\ntype AudioContent struct {\n\tAnnotated\n\t// Meta is a metadata object that is reserved by MCP for storing additional information.\n\tMeta *Meta  `json:\"_meta,omitempty\"`\n\tType string `json:\"type\"` // Must be \"audio\"\n\t// The base64-encoded audio data.\n\tData string `json:\"data\"`\n\t// The MIME type of the audio. Different providers may support different audio types.\n\tMIMEType string `json:\"mimeType\"`\n}\n\nfunc (AudioContent) isContent() {}\n\n// ResourceLink represents a link to a resource that the client can access.\ntype ResourceLink struct {\n\tAnnotated\n\tType string `json:\"type\"` // Must be \"resource_link\"\n\t// The URI of the resource.\n\tURI string `json:\"uri\"`\n\t// The name of the resource.\n\tName string `json:\"name\"`\n\t// The description of the resource.\n\tDescription string `json:\"description\"`\n\t// The MIME type of the resource.\n\tMIMEType string `json:\"mimeType\"`\n}\n\nfunc (ResourceLink) isContent() {}\n\n// EmbeddedResource represents the contents of a resource, embedded into a prompt or tool call result.\n//\n// It is up to the client how best to render embedded resources for the\n// benefit of the LLM and/or the user.\ntype EmbeddedResource struct {\n\tAnnotated\n\t// Meta is a metadata object that is reserved by MCP for storing additional information.\n\tMeta     *Meta            `json:\"_meta,omitempty\"`\n\tType     string           `json:\"type\"`\n\tResource ResourceContents `json:\"resource\"`\n}\n\nfunc (EmbeddedResource) isContent() {}\n\n// ModelPreferences represents the server's preferences for model selection,\n// requested of the client during sampling.\n//\n// Because LLMs can vary along multiple dimensions, choosing the \"best\" modelis\n// rarely straightforward.  Different models excel in different areas—some are\n// faster but less capable, others are more capable but more expensive, and so\n// on. This interface allows servers to express their priorities across multiple\n// dimensions to help clients make an appropriate selection for their use case.\n//\n// These preferences are always advisory. The client MAY ignore them. It is also\n// up to the client to decide how to interpret these preferences and how to\n// balance them against other considerations.\ntype ModelPreferences struct {\n\t// Optional hints to use for model selection.\n\t//\n\t// If multiple hints are specified, the client MUST evaluate them in order\n\t// (such that the first match is taken).\n\t//\n\t// The client SHOULD prioritize these hints over the numeric priorities, but\n\t// MAY still use the priorities to select from ambiguous matches.\n\tHints []ModelHint `json:\"hints,omitempty\"`\n\n\t// How much to prioritize cost when selecting a model. A value of 0 means cost\n\t// is not important, while a value of 1 means cost is the most important\n\t// factor.\n\tCostPriority float64 `json:\"costPriority,omitempty\"`\n\n\t// How much to prioritize sampling speed (latency) when selecting a model. A\n\t// value of 0 means speed is not important, while a value of 1 means speed is\n\t// the most important factor.\n\tSpeedPriority float64 `json:\"speedPriority,omitempty\"`\n\n\t// How much to prioritize intelligence and capabilities when selecting a\n\t// model. A value of 0 means intelligence is not important, while a value of 1\n\t// means intelligence is the most important factor.\n\tIntelligencePriority float64 `json:\"intelligencePriority,omitempty\"`\n}\n\n// ModelHint represents hints to use for model selection.\n//\n// Keys not declared here are currently left unspecified by the spec and are up\n// to the client to interpret.\ntype ModelHint struct {\n\t// A hint for a model name.\n\t//\n\t// The client SHOULD treat this as a substring of a model name; for example:\n\t//  - `claude-3-5-sonnet` should match `claude-3-5-sonnet-20241022`\n\t//  - `sonnet` should match `claude-3-5-sonnet-20241022`, `claude-3-sonnet-20240229`, etc.\n\t//  - `claude` should match any Claude model\n\t//\n\t// The client MAY also map the string to a different provider's model name or\n\t// a different model family, as long as it fills a similar niche; for example:\n\t//  - `gemini-1.5-flash` could match `claude-3-haiku-20240307`\n\tName string `json:\"name,omitempty\"`\n}\n\n/* Autocomplete */\n\n// CompleteRequest is a request from the client to the server, to ask for completion options.\ntype CompleteRequest struct {\n\tRequest\n\tParams CompleteParams `json:\"params\"`\n\tHeader http.Header    `json:\"-\"`\n}\n\n// CompleteParams are the parameters for a completion/complete request\ntype CompleteParams struct {\n\tRef      any              `json:\"ref\"` // Can be PromptReference or ResourceReference\n\tArgument CompleteArgument `json:\"argument\"`\n\tContext  CompleteContext  `json:\"context\"`\n}\n\nfunc (p *CompleteParams) UnmarshalJSON(data []byte) error {\n\t// Use a temporary type to avoid infinite recursion on UnmarshalJSON\n\ttype Alias CompleteParams\n\taux := &struct {\n\t\t// Use RawMessage to delay unmarshalling until after the type is known\n\t\tRef json.RawMessage `json:\"ref\"`\n\t\t*Alias\n\t}{\n\t\tAlias: (*Alias)(p),\n\t}\n\tif err := json.Unmarshal(data, aux); err != nil {\n\t\treturn err\n\t}\n\t// Use a temporary \"type peek\" struct to determine the type\n\tvar typePeek struct {\n\t\tType string `json:\"type\"`\n\t}\n\tif err := json.Unmarshal(aux.Ref, &typePeek); err != nil {\n\t\treturn err\n\t}\n\tswitch typePeek.Type {\n\tcase \"ref/prompt\":\n\t\tvar prompt PromptReference\n\t\tif err := json.Unmarshal(aux.Ref, &prompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tp.Ref = prompt\n\tcase \"ref/resource\":\n\t\tvar resource ResourceReference\n\t\tif err := json.Unmarshal(aux.Ref, &resource); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tp.Ref = resource\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown reference type: %s\", typePeek.Type)\n\t}\n\treturn nil\n}\n\n// CompleteResult is the server's response to a completion/complete request\ntype CompleteResult struct {\n\tResult\n\tCompletion Completion `json:\"completion\"`\n}\n\n// CompleteArgument is an argument to a completion request\ntype CompleteArgument struct {\n\t// The name of the argument\n\tName string `json:\"name\"`\n\t// The value of the argument to use for completion matching.\n\tValue string `json:\"value\"`\n}\n\n// CompleteContext is the context about already-resolved arguments\ntype CompleteContext struct {\n\tArguments map[string]string `json:\"arguments\"`\n}\n\n// Completion is the server's response to a completion/complete request\ntype Completion struct {\n\t// An array of completion values. Must not exceed 100 items.\n\tValues []string `json:\"values\"`\n\t// The total number of completion options available. This can exceed the\n\t// number of values actually sent in the response.\n\tTotal int `json:\"total,omitempty\"`\n\t// Indicates whether there are additional completion options beyond those\n\t// provided in the current response, even if the exact total is unknown.\n\tHasMore bool `json:\"hasMore,omitempty\"`\n}\n\n// ResourceReference is a reference to a resource or resource template definition.\ntype ResourceReference struct {\n\tType string `json:\"type\"`\n\t// The URI or URI template of the resource.\n\tURI string `json:\"uri\"`\n}\n\n// PromptReference identifies a prompt.\ntype PromptReference struct {\n\tType string `json:\"type\"`\n\t// The name of the prompt or prompt template\n\tName string `json:\"name\"`\n}\n\n/* Roots */\n\n// ListRootsRequest is sent from the server to request a list of root URIs from the client. Roots allow\n// servers to ask for specific directories or files to operate on. A common example\n// for roots is providing a set of repositories or directories a server should operate\n// on.\n//\n// This request is typically used when the server needs to understand the file system\n// structure or access specific locations that the client has permission to read from.\ntype ListRootsRequest struct {\n\tRequest\n}\n\n// ListRootsResult is the client's response to a roots/list request from the server.\n// This result contains an array of Root objects, each representing a root directory\n// or file that the server can operate on.\ntype ListRootsResult struct {\n\tResult\n\tRoots []Root `json:\"roots\"`\n}\n\n// Root represents a root directory or file that the server can operate on.\ntype Root struct {\n\t// Meta is a metadata object that is reserved by MCP for storing additional information.\n\tMeta *Meta `json:\"_meta,omitempty\"`\n\t// The URI identifying the root. This *must* start with file:// for now.\n\t// This restriction may be relaxed in future versions of the protocol to allow\n\t// other URI schemes.\n\tURI string `json:\"uri\"`\n\t// An optional name for the root. This can be used to provide a human-readable\n\t// identifier for the root, which may be useful for display purposes or for\n\t// referencing the root in other parts of the application.\n\tName string `json:\"name,omitempty\"`\n}\n\n// RootsListChangedNotification is a notification from the client to the\n// server, informing it that the list of roots has changed.\n// This notification should be sent whenever the client adds, removes, or modifies any root.\n// The server should then request an updated list of roots using the ListRootsRequest.\ntype RootsListChangedNotification struct {\n\tNotification\n}\n\n/* Tasks */\n\n// TasksCapability represents the task capabilities that a client or server may support.\n// Tasks enable long-running, asynchronous operations with status polling.\ntype TasksCapability struct {\n\t// Whether the party supports the tasks/list operation.\n\tList *struct{} `json:\"list,omitempty\"`\n\t// Whether the party supports the tasks/cancel operation.\n\tCancel *struct{} `json:\"cancel,omitempty\"`\n\t// Requests that can be augmented with task metadata.\n\tRequests *TaskRequestsCapability `json:\"requests,omitempty\"`\n}\n\n// TaskRequestsCapability indicates which request types support task augmentation.\ntype TaskRequestsCapability struct {\n\t// Tool-related capabilities.\n\tTools *struct {\n\t\t// Whether tools/call can be augmented with task metadata.\n\t\tCall *struct{} `json:\"call,omitempty\"`\n\t} `json:\"tools,omitempty\"`\n\t// Sampling-related capabilities.\n\tSampling *struct {\n\t\t// Whether sampling/createMessage can be augmented with task metadata.\n\t\tCreateMessage *struct{} `json:\"createMessage,omitempty\"`\n\t} `json:\"sampling,omitempty\"`\n\t// Elicitation-related capabilities.\n\tElicitation *struct {\n\t\t// Whether elicitation/create can be augmented with task metadata.\n\t\tCreate *struct{} `json:\"create,omitempty\"`\n\t} `json:\"elicitation,omitempty\"`\n}\n\n// TaskStatus represents the execution state of a task.\ntype TaskStatus string\n\nconst (\n\t// TaskStatusWorking indicates the request is currently being processed.\n\tTaskStatusWorking TaskStatus = \"working\"\n\t// TaskStatusInputRequired indicates the receiver needs input from the requestor.\n\t// NOTE: This status is defined by the spec but not yet implemented in this SDK.\n\t// The input_required flow requires integration with elicitation which is planned\n\t// for a future release.\n\tTaskStatusInputRequired TaskStatus = \"input_required\"\n\t// TaskStatusCompleted indicates the request completed successfully.\n\tTaskStatusCompleted TaskStatus = \"completed\"\n\t// TaskStatusFailed indicates the request did not complete successfully.\n\tTaskStatusFailed TaskStatus = \"failed\"\n\t// TaskStatusCancelled indicates the request was cancelled before completion.\n\tTaskStatusCancelled TaskStatus = \"cancelled\"\n)\n\n// IsTerminal returns true if the task status is terminal (completed, failed, or cancelled).\nfunc (s TaskStatus) IsTerminal() bool {\n\treturn s == TaskStatusCompleted || s == TaskStatusFailed || s == TaskStatusCancelled\n}\n\n// Task represents the execution state of a request.\ntype Task struct {\n\t// Unique identifier for the task.\n\tTaskId string `json:\"taskId\"`\n\t// Current state of the task execution.\n\tStatus TaskStatus `json:\"status\"`\n\t// Optional human-readable message describing the current state.\n\tStatusMessage string `json:\"statusMessage,omitempty\"`\n\t// ISO 8601 timestamp when the task was created.\n\tCreatedAt string `json:\"createdAt\"`\n\t// ISO 8601 timestamp when the task was last updated.\n\tLastUpdatedAt string `json:\"lastUpdatedAt\"`\n\t// Time in milliseconds from creation before task may be deleted.\n\t// If null, the task has no expiration.\n\tTTL *int64 `json:\"ttl\"`\n\t// Suggested time in milliseconds between status checks.\n\tPollInterval *int64 `json:\"pollInterval,omitempty\"`\n}\n\n// GetName returns the task ID, implementing the Named interface for pagination.\nfunc (t Task) GetName() string {\n\treturn t.TaskId\n}\n\n// TaskParams represents the task metadata included when augmenting a request.\ntype TaskParams struct {\n\t// Requested duration in milliseconds to retain task from creation.\n\tTTL *int64 `json:\"ttl,omitempty\"`\n}\n\n// CreateTaskResult is returned immediately when a task-augmented request is accepted.\n// It contains task metadata rather than the actual operation result.\ntype CreateTaskResult struct {\n\tResult\n\tTask Task `json:\"task\"`\n}\n\n// GetTaskRequest retrieves the current status of a task.\ntype GetTaskRequest struct {\n\tRequest\n\tHeader http.Header   `json:\"-\"`\n\tParams GetTaskParams `json:\"params\"`\n}\n\ntype GetTaskParams struct {\n\tTaskId string `json:\"taskId\"`\n}\n\n// GetTaskResult returns the current state of a task.\ntype GetTaskResult struct {\n\tResult\n\tTask\n}\n\n// ListTasksRequest retrieves a paginated list of tasks.\ntype ListTasksRequest struct {\n\tPaginatedRequest\n\tHeader http.Header `json:\"-\"`\n}\n\n// ListTasksResult returns a list of tasks.\ntype ListTasksResult struct {\n\tPaginatedResult\n\tTasks []Task `json:\"tasks\"`\n}\n\n// TaskResultRequest retrieves the result of a completed task.\ntype TaskResultRequest struct {\n\tRequest\n\tHeader http.Header      `json:\"-\"`\n\tParams TaskResultParams `json:\"params\"`\n}\n\ntype TaskResultParams struct {\n\tTaskId string `json:\"taskId\"`\n}\n\n// TaskResultResult contains the actual operation result.\n// For task-augmented tool calls, this embeds the CallToolResult fields.\ntype TaskResultResult struct {\n\tResult\n\t// Tool call result fields (for task-augmented tool calls)\n\tContent           []Content `json:\"content,omitempty\"`\n\tStructuredContent any       `json:\"structuredContent,omitempty\"`\n\tIsError           bool      `json:\"isError,omitempty\"`\n}\n\n// CancelTaskRequest cancels an in-progress task.\ntype CancelTaskRequest struct {\n\tRequest\n\tHeader http.Header      `json:\"-\"`\n\tParams CancelTaskParams `json:\"params\"`\n}\n\ntype CancelTaskParams struct {\n\tTaskId string `json:\"taskId\"`\n}\n\n// CancelTaskResult returns the cancelled task state.\ntype CancelTaskResult struct {\n\tResult\n\tTask\n}\n\n// TaskStatusNotification is sent when a task's status changes.\ntype TaskStatusNotification struct {\n\tNotification\n\tParams TaskStatusNotificationParams `json:\"params\"`\n}\n\ntype TaskStatusNotificationParams struct {\n\tTask\n}\n\n// ClientRequest represents any request that can be sent from client to server.\ntype ClientRequest any\n\n// ClientNotification represents any notification that can be sent from client to server.\ntype ClientNotification any\n\n// ClientResult represents any result that can be sent from client to server.\ntype ClientResult any\n\n// ServerRequest represents any request that can be sent from server to client.\ntype ServerRequest any\n\n// ServerNotification represents any notification that can be sent from server to client.\ntype ServerNotification any\n\n// ServerResult represents any result that can be sent from server to client.\ntype ServerResult any\n\ntype Named interface {\n\tGetName() string\n}\n\n// MarshalJSON implements custom JSON marshaling for Content interface\nfunc MarshalContent(content Content) ([]byte, error) {\n\treturn json.Marshal(content)\n}\n\n// UnmarshalContent implements custom JSON unmarshaling for Content interface\nfunc UnmarshalContent(data []byte) (Content, error) {\n\tvar raw map[string]any\n\tif err := json.Unmarshal(data, &raw); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcontentType, ok := raw[\"type\"].(string)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"missing or invalid type field\")\n\t}\n\n\tswitch contentType {\n\tcase ContentTypeText:\n\t\tvar content TextContent\n\t\terr := json.Unmarshal(data, &content)\n\t\treturn content, err\n\tcase ContentTypeImage:\n\t\tvar content ImageContent\n\t\terr := json.Unmarshal(data, &content)\n\t\treturn content, err\n\tcase ContentTypeAudio:\n\t\tvar content AudioContent\n\t\terr := json.Unmarshal(data, &content)\n\t\treturn content, err\n\tcase ContentTypeLink:\n\t\tvar content ResourceLink\n\t\terr := json.Unmarshal(data, &content)\n\t\treturn content, err\n\tcase ContentTypeResource:\n\t\tvar content EmbeddedResource\n\t\terr := json.Unmarshal(data, &content)\n\t\treturn content, err\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown content type: %s\", contentType)\n\t}\n}\n\n// ElicitationCapability represents the elicitation capabilities of a client or server.\ntype ElicitationCapability struct {\n\tForm *struct{} `json:\"form,omitempty\"` // Supports form mode\n\tURL  *struct{} `json:\"url,omitempty\"`  // Supports URL mode\n}\n\n// NewElicitationCompleteNotification creates a new elicitation complete notification.\nfunc NewElicitationCompleteNotification(elicitationID string) JSONRPCNotification {\n\treturn JSONRPCNotification{\n\t\tJSONRPC: JSONRPC_VERSION,\n\t\tNotification: Notification{\n\t\t\tMethod: string(MethodNotificationElicitationComplete),\n\t\t\tParams: NotificationParams{\n\t\t\t\tAdditionalFields: map[string]any{\n\t\t\t\t\t\"elicitationId\": elicitationID,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/mcp/utils.go",
    "content": "package mcp\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/spf13/cast\"\n)\n\n// ClientRequest types\nvar (\n\t_ ClientRequest = (*PingRequest)(nil)\n\t_ ClientRequest = (*InitializeRequest)(nil)\n\t_ ClientRequest = (*CompleteRequest)(nil)\n\t_ ClientRequest = (*SetLevelRequest)(nil)\n\t_ ClientRequest = (*GetPromptRequest)(nil)\n\t_ ClientRequest = (*ListPromptsRequest)(nil)\n\t_ ClientRequest = (*ListResourcesRequest)(nil)\n\t_ ClientRequest = (*ReadResourceRequest)(nil)\n\t_ ClientRequest = (*SubscribeRequest)(nil)\n\t_ ClientRequest = (*UnsubscribeRequest)(nil)\n\t_ ClientRequest = (*CallToolRequest)(nil)\n\t_ ClientRequest = (*ListToolsRequest)(nil)\n)\n\n// ClientNotification types\nvar (\n\t_ ClientNotification = (*CancelledNotification)(nil)\n\t_ ClientNotification = (*ProgressNotification)(nil)\n\t_ ClientNotification = (*InitializedNotification)(nil)\n\t_ ClientNotification = (*RootsListChangedNotification)(nil)\n)\n\n// ClientResult types\nvar (\n\t_ ClientResult = (*EmptyResult)(nil)\n\t_ ClientResult = (*CreateMessageResult)(nil)\n\t_ ClientResult = (*ListRootsResult)(nil)\n)\n\n// ServerRequest types\nvar (\n\t_ ServerRequest = (*PingRequest)(nil)\n\t_ ServerRequest = (*CreateMessageRequest)(nil)\n\t_ ServerRequest = (*ListRootsRequest)(nil)\n)\n\n// ServerNotification types\nvar (\n\t_ ServerNotification = (*CancelledNotification)(nil)\n\t_ ServerNotification = (*ProgressNotification)(nil)\n\t_ ServerNotification = (*LoggingMessageNotification)(nil)\n\t_ ServerNotification = (*ResourceUpdatedNotification)(nil)\n\t_ ServerNotification = (*ResourceListChangedNotification)(nil)\n\t_ ServerNotification = (*ToolListChangedNotification)(nil)\n\t_ ServerNotification = (*PromptListChangedNotification)(nil)\n)\n\n// ServerResult types\nvar (\n\t_ ServerResult = (*EmptyResult)(nil)\n\t_ ServerResult = (*InitializeResult)(nil)\n\t_ ServerResult = (*CompleteResult)(nil)\n\t_ ServerResult = (*GetPromptResult)(nil)\n\t_ ServerResult = (*ListPromptsResult)(nil)\n\t_ ServerResult = (*ListResourcesResult)(nil)\n\t_ ServerResult = (*ReadResourceResult)(nil)\n\t_ ServerResult = (*CallToolResult)(nil)\n\t_ ServerResult = (*ListToolsResult)(nil)\n)\n\n// Helper functions for type assertions\n\n// asType attempts to cast the given interface to the given type\nfunc asType[T any](content any) (*T, bool) {\n\ttc, ok := content.(T)\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn &tc, true\n}\n\n// AsTextContent attempts to cast the given interface to TextContent\nfunc AsTextContent(content any) (*TextContent, bool) {\n\treturn asType[TextContent](content)\n}\n\n// AsImageContent attempts to cast the given interface to ImageContent\nfunc AsImageContent(content any) (*ImageContent, bool) {\n\treturn asType[ImageContent](content)\n}\n\n// AsAudioContent attempts to cast the given interface to AudioContent\nfunc AsAudioContent(content any) (*AudioContent, bool) {\n\treturn asType[AudioContent](content)\n}\n\n// AsEmbeddedResource attempts to cast the given interface to EmbeddedResource\nfunc AsEmbeddedResource(content any) (*EmbeddedResource, bool) {\n\treturn asType[EmbeddedResource](content)\n}\n\n// AsTextResourceContents attempts to cast the given interface to TextResourceContents\nfunc AsTextResourceContents(content any) (*TextResourceContents, bool) {\n\treturn asType[TextResourceContents](content)\n}\n\n// AsBlobResourceContents attempts to cast the given interface to BlobResourceContents\nfunc AsBlobResourceContents(content any) (*BlobResourceContents, bool) {\n\treturn asType[BlobResourceContents](content)\n}\n\n// Helper function for JSON-RPC\n\n// NewJSONRPCResponse creates a new JSONRPCResponse with the given id and result.\n// NOTE: This function expects a Result struct, but JSONRPCResponse.Result is typed as `any`.\n// The Result struct wraps the actual result data with optional metadata.\n// For direct result assignment, use NewJSONRPCResultResponse instead.\nfunc NewJSONRPCResponse(id RequestId, result Result) JSONRPCResponse {\n\treturn JSONRPCResponse{\n\t\tJSONRPC: JSONRPC_VERSION,\n\t\tID:      id,\n\t\tResult:  result,\n\t}\n}\n\n// NewJSONRPCResultResponse creates a new JSONRPCResponse with the given id and result.\n// This function accepts any type for the result, matching the JSONRPCResponse.Result field type.\nfunc NewJSONRPCResultResponse(id RequestId, result any) JSONRPCResponse {\n\treturn JSONRPCResponse{\n\t\tJSONRPC: JSONRPC_VERSION,\n\t\tID:      id,\n\t\tResult:  result,\n\t}\n}\n\n// NewJSONRPCErrorDetails creates a new JSONRPCErrorDetails with the given code, message, and data.\nfunc NewJSONRPCErrorDetails(code int, message string, data any) JSONRPCErrorDetails {\n\treturn JSONRPCErrorDetails{\n\t\tCode:    code,\n\t\tMessage: message,\n\t\tData:    data,\n\t}\n}\n\n// NewJSONRPCError creates a new JSONRPCResponse with the given id, code, and message\nfunc NewJSONRPCError(\n\tid RequestId,\n\tcode int,\n\tmessage string,\n\tdata any,\n) JSONRPCError {\n\treturn JSONRPCError{\n\t\tJSONRPC: JSONRPC_VERSION,\n\t\tID:      id,\n\t\tError:   NewJSONRPCErrorDetails(code, message, data),\n\t}\n}\n\n// NewProgressNotification\n// Helper function for creating a progress notification\nfunc NewProgressNotification(\n\ttoken ProgressToken,\n\tprogress float64,\n\ttotal *float64,\n\tmessage *string,\n) ProgressNotification {\n\tnotification := ProgressNotification{\n\t\tNotification: Notification{\n\t\t\tMethod: \"notifications/progress\",\n\t\t},\n\t\tParams: struct {\n\t\t\tProgressToken ProgressToken `json:\"progressToken\"`\n\t\t\tProgress      float64       `json:\"progress\"`\n\t\t\tTotal         float64       `json:\"total,omitempty\"`\n\t\t\tMessage       string        `json:\"message,omitempty\"`\n\t\t}{\n\t\t\tProgressToken: token,\n\t\t\tProgress:      progress,\n\t\t},\n\t}\n\tif total != nil {\n\t\tnotification.Params.Total = *total\n\t}\n\tif message != nil {\n\t\tnotification.Params.Message = *message\n\t}\n\treturn notification\n}\n\n// NewLoggingMessageNotification\n// Helper function for creating a logging message notification\nfunc NewLoggingMessageNotification(\n\tlevel LoggingLevel,\n\tlogger string,\n\tdata any,\n) LoggingMessageNotification {\n\treturn LoggingMessageNotification{\n\t\tNotification: Notification{\n\t\t\tMethod: \"notifications/message\",\n\t\t},\n\t\tParams: struct {\n\t\t\tLevel  LoggingLevel `json:\"level\"`\n\t\t\tLogger string       `json:\"logger,omitempty\"`\n\t\t\tData   any          `json:\"data\"`\n\t\t}{\n\t\t\tLevel:  level,\n\t\t\tLogger: logger,\n\t\t\tData:   data,\n\t\t},\n\t}\n}\n\n// NewPromptMessage\n// Helper function to create a new PromptMessage\nfunc NewPromptMessage(role Role, content Content) PromptMessage {\n\treturn PromptMessage{\n\t\tRole:    role,\n\t\tContent: content,\n\t}\n}\n\n// NewTextContent\n// Helper function to create a new TextContent\nfunc NewTextContent(text string) TextContent {\n\treturn TextContent{\n\t\tType: ContentTypeText,\n\t\tText: text,\n\t}\n}\n\n// NewImageContent\n// Helper function to create a new ImageContent\nfunc NewImageContent(data, mimeType string) ImageContent {\n\treturn ImageContent{\n\t\tType:     ContentTypeImage,\n\t\tData:     data,\n\t\tMIMEType: mimeType,\n\t}\n}\n\n// Helper function to create a new AudioContent\nfunc NewAudioContent(data, mimeType string) AudioContent {\n\treturn AudioContent{\n\t\tType:     ContentTypeAudio,\n\t\tData:     data,\n\t\tMIMEType: mimeType,\n\t}\n}\n\n// Helper function to create a new ResourceLink\nfunc NewResourceLink(uri, name, description, mimeType string) ResourceLink {\n\treturn ResourceLink{\n\t\tType:        ContentTypeLink,\n\t\tURI:         uri,\n\t\tName:        name,\n\t\tDescription: description,\n\t\tMIMEType:    mimeType,\n\t}\n}\n\n// Helper function to create a new EmbeddedResource\nfunc NewEmbeddedResource(resource ResourceContents) EmbeddedResource {\n\treturn EmbeddedResource{\n\t\tType:     ContentTypeResource,\n\t\tResource: resource,\n\t}\n}\n\n// NewToolResultText creates a new CallToolResult with a text content\nfunc NewToolResultText(text string) *CallToolResult {\n\treturn &CallToolResult{\n\t\tContent: []Content{\n\t\t\tTextContent{\n\t\t\t\tType: ContentTypeText,\n\t\t\t\tText: text,\n\t\t\t},\n\t\t},\n\t}\n}\n\n// NewToolResultJSON creates a new CallToolResult with a JSON content.\nfunc NewToolResultJSON[T any](data T) (*CallToolResult, error) {\n\tb, err := json.Marshal(data)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to marshal JSON: %w\", err)\n\t}\n\n\treturn &CallToolResult{\n\t\tContent: []Content{\n\t\t\tTextContent{\n\t\t\t\tType: ContentTypeText,\n\t\t\t\tText: string(b),\n\t\t\t},\n\t\t},\n\t\tStructuredContent: data,\n\t}, nil\n}\n\n// NewToolResultStructured creates a new CallToolResult with structured content.\n// It includes both the structured content and a text representation for backward compatibility.\nfunc NewToolResultStructured(structured any, fallbackText string) *CallToolResult {\n\treturn &CallToolResult{\n\t\tContent: []Content{\n\t\t\tTextContent{\n\t\t\t\tType: \"text\",\n\t\t\t\tText: fallbackText,\n\t\t\t},\n\t\t},\n\t\tStructuredContent: structured,\n\t}\n}\n\n// NewToolResultStructuredOnly creates a new CallToolResult with structured\n// content and creates a JSON string fallback for backwards compatibility.\n// This is useful when you want to provide structured data without any specific text fallback.\nfunc NewToolResultStructuredOnly(structured any) *CallToolResult {\n\tvar fallbackText string\n\t// Convert to JSON string for backward compatibility\n\tjsonBytes, err := json.Marshal(structured)\n\tif err != nil {\n\t\tfallbackText = fmt.Sprintf(\"Error serializing structured content: %v\", err)\n\t} else {\n\t\tfallbackText = string(jsonBytes)\n\t}\n\n\treturn &CallToolResult{\n\t\tContent: []Content{\n\t\t\tTextContent{\n\t\t\t\tType: \"text\",\n\t\t\t\tText: fallbackText,\n\t\t\t},\n\t\t},\n\t\tStructuredContent: structured,\n\t}\n}\n\n// NewToolResultImage creates a new CallToolResult with both text and image content\nfunc NewToolResultImage(text, imageData, mimeType string) *CallToolResult {\n\treturn &CallToolResult{\n\t\tContent: []Content{\n\t\t\tTextContent{\n\t\t\t\tType: ContentTypeText,\n\t\t\t\tText: text,\n\t\t\t},\n\t\t\tImageContent{\n\t\t\t\tType:     ContentTypeImage,\n\t\t\t\tData:     imageData,\n\t\t\t\tMIMEType: mimeType,\n\t\t\t},\n\t\t},\n\t}\n}\n\n// NewToolResultAudio creates a new CallToolResult with both text and audio content\nfunc NewToolResultAudio(text, audioData, mimeType string) *CallToolResult {\n\treturn &CallToolResult{\n\t\tContent: []Content{\n\t\t\tTextContent{\n\t\t\t\tType: ContentTypeText,\n\t\t\t\tText: text,\n\t\t\t},\n\t\t\tAudioContent{\n\t\t\t\tType:     ContentTypeAudio,\n\t\t\t\tData:     audioData,\n\t\t\t\tMIMEType: mimeType,\n\t\t\t},\n\t\t},\n\t}\n}\n\n// NewToolResultResource creates a new CallToolResult with an embedded resource\nfunc NewToolResultResource(\n\ttext string,\n\tresource ResourceContents,\n) *CallToolResult {\n\treturn &CallToolResult{\n\t\tContent: []Content{\n\t\t\tTextContent{\n\t\t\t\tType: ContentTypeText,\n\t\t\t\tText: text,\n\t\t\t},\n\t\t\tEmbeddedResource{\n\t\t\t\tType:     ContentTypeResource,\n\t\t\t\tResource: resource,\n\t\t\t},\n\t\t},\n\t}\n}\n\n// NewToolResultError creates a new CallToolResult with an error message.\n// Any errors that originate from the tool SHOULD be reported inside the result object.\nfunc NewToolResultError(text string) *CallToolResult {\n\treturn &CallToolResult{\n\t\tContent: []Content{\n\t\t\tTextContent{\n\t\t\t\tType: ContentTypeText,\n\t\t\t\tText: text,\n\t\t\t},\n\t\t},\n\t\tIsError: true,\n\t}\n}\n\n// NewToolResultErrorFromErr creates a new CallToolResult with an error message.\n// If an error is provided, its details will be appended to the text message.\n// Any errors that originate from the tool SHOULD be reported inside the result object.\nfunc NewToolResultErrorFromErr(text string, err error) *CallToolResult {\n\tif err != nil {\n\t\ttext = fmt.Sprintf(\"%s: %v\", text, err)\n\t}\n\treturn &CallToolResult{\n\t\tContent: []Content{\n\t\t\tTextContent{\n\t\t\t\tType: ContentTypeText,\n\t\t\t\tText: text,\n\t\t\t},\n\t\t},\n\t\tIsError: true,\n\t}\n}\n\n// NewToolResultErrorf creates a new CallToolResult with an error message.\n// The error message is formatted using the fmt package.\n// Any errors that originate from the tool SHOULD be reported inside the result object.\nfunc NewToolResultErrorf(format string, a ...any) *CallToolResult {\n\treturn &CallToolResult{\n\t\tContent: []Content{\n\t\t\tTextContent{\n\t\t\t\tType: ContentTypeText,\n\t\t\t\tText: fmt.Sprintf(format, a...),\n\t\t\t},\n\t\t},\n\t\tIsError: true,\n\t}\n}\n\n// NewListResourcesResult creates a new ListResourcesResult\nfunc NewListResourcesResult(\n\tresources []Resource,\n\tnextCursor Cursor,\n) *ListResourcesResult {\n\treturn &ListResourcesResult{\n\t\tPaginatedResult: PaginatedResult{\n\t\t\tNextCursor: nextCursor,\n\t\t},\n\t\tResources: resources,\n\t}\n}\n\n// NewListResourceTemplatesResult creates a new ListResourceTemplatesResult\nfunc NewListResourceTemplatesResult(\n\ttemplates []ResourceTemplate,\n\tnextCursor Cursor,\n) *ListResourceTemplatesResult {\n\treturn &ListResourceTemplatesResult{\n\t\tPaginatedResult: PaginatedResult{\n\t\t\tNextCursor: nextCursor,\n\t\t},\n\t\tResourceTemplates: templates,\n\t}\n}\n\n// NewReadResourceResult creates a new ReadResourceResult with text content\nfunc NewReadResourceResult(text string) *ReadResourceResult {\n\treturn &ReadResourceResult{\n\t\tContents: []ResourceContents{\n\t\t\tTextResourceContents{\n\t\t\t\tText: text,\n\t\t\t},\n\t\t},\n\t}\n}\n\n// NewListPromptsResult creates a new ListPromptsResult\nfunc NewListPromptsResult(\n\tprompts []Prompt,\n\tnextCursor Cursor,\n) *ListPromptsResult {\n\treturn &ListPromptsResult{\n\t\tPaginatedResult: PaginatedResult{\n\t\t\tNextCursor: nextCursor,\n\t\t},\n\t\tPrompts: prompts,\n\t}\n}\n\n// NewGetPromptResult creates a new GetPromptResult\nfunc NewGetPromptResult(\n\tdescription string,\n\tmessages []PromptMessage,\n) *GetPromptResult {\n\treturn &GetPromptResult{\n\t\tDescription: description,\n\t\tMessages:    messages,\n\t}\n}\n\n// NewListToolsResult creates a new ListToolsResult\nfunc NewListToolsResult(tools []Tool, nextCursor Cursor) *ListToolsResult {\n\treturn &ListToolsResult{\n\t\tPaginatedResult: PaginatedResult{\n\t\t\tNextCursor: nextCursor,\n\t\t},\n\t\tTools: tools,\n\t}\n}\n\n// NewInitializeResult creates a new InitializeResult\nfunc NewInitializeResult(\n\tprotocolVersion string,\n\tcapabilities ServerCapabilities,\n\tserverInfo Implementation,\n\tinstructions string,\n) *InitializeResult {\n\treturn &InitializeResult{\n\t\tProtocolVersion: protocolVersion,\n\t\tCapabilities:    capabilities,\n\t\tServerInfo:      serverInfo,\n\t\tInstructions:    instructions,\n\t}\n}\n\n// FormatNumberResult\n// Helper for formatting numbers in tool results\nfunc FormatNumberResult(value float64) *CallToolResult {\n\treturn NewToolResultText(fmt.Sprintf(\"%.2f\", value))\n}\n\nfunc ExtractString(data map[string]any, key string) string {\n\tif value, ok := data[key]; ok {\n\t\tif str, ok := value.(string); ok {\n\t\t\treturn str\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// ParseAnnotations parses priority, audience, and lastModified fields from the provided map\n// and returns an Annotations struct populated with any valid values found.\n// If data is nil, ParseAnnotations returns nil. Priority is set when a numeric value can be\n// parsed and is stored as a *float64. Audience is populated from string values and includes\n// only RoleUser and RoleAssistant entries. LastModified is set when the value is a string.\nfunc ParseAnnotations(data map[string]any) *Annotations {\n\tif data == nil {\n\t\treturn nil\n\t}\n\tannotations := &Annotations{}\n\tif value, ok := data[\"priority\"]; ok {\n\t\tif value != nil {\n\t\t\tif priority, err := cast.ToFloat64E(value); err == nil {\n\t\t\t\tannotations.Priority = &priority\n\t\t\t}\n\t\t}\n\t}\n\n\tif value, ok := data[\"audience\"]; ok {\n\t\tfor _, a := range cast.ToStringSlice(value) {\n\t\t\ta := Role(a)\n\t\t\tif a == RoleUser || a == RoleAssistant {\n\t\t\t\tannotations.Audience = append(annotations.Audience, a)\n\t\t\t}\n\t\t}\n\t}\n\n\tif value, ok := data[\"lastModified\"]; ok {\n\t\tif str, ok := value.(string); ok {\n\t\t\tannotations.LastModified = str\n\t\t}\n\t}\n\treturn annotations\n\n}\n\nfunc ExtractMap(data map[string]any, key string) map[string]any {\n\tif value, ok := data[key]; ok {\n\t\tif m, ok := value.(map[string]any); ok {\n\t\t\treturn m\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc ParseContent(contentMap map[string]any) (Content, error) {\n\tcontentType := ExtractString(contentMap, \"type\")\n\n\tvar annotations *Annotations\n\tif annotationsMap := ExtractMap(contentMap, \"annotations\"); annotationsMap != nil {\n\t\tannotations = ParseAnnotations(annotationsMap)\n\t}\n\n\tswitch contentType {\n\tcase ContentTypeText:\n\t\ttext := ExtractString(contentMap, \"text\")\n\t\tc := NewTextContent(text)\n\t\tc.Annotations = annotations\n\t\treturn c, nil\n\n\tcase ContentTypeImage:\n\t\tdata := ExtractString(contentMap, \"data\")\n\t\tmimeType := ExtractString(contentMap, \"mimeType\")\n\t\tif data == \"\" || mimeType == \"\" {\n\t\t\treturn nil, fmt.Errorf(\"image data or mimeType is missing\")\n\t\t}\n\t\tc := NewImageContent(data, mimeType)\n\t\tc.Annotations = annotations\n\t\treturn c, nil\n\n\tcase ContentTypeAudio:\n\t\tdata := ExtractString(contentMap, \"data\")\n\t\tmimeType := ExtractString(contentMap, \"mimeType\")\n\t\tif data == \"\" || mimeType == \"\" {\n\t\t\treturn nil, fmt.Errorf(\"audio data or mimeType is missing\")\n\t\t}\n\t\tc := NewAudioContent(data, mimeType)\n\t\tc.Annotations = annotations\n\t\treturn c, nil\n\n\tcase ContentTypeLink:\n\t\turi := ExtractString(contentMap, \"uri\")\n\t\tname := ExtractString(contentMap, \"name\")\n\t\tdescription := ExtractString(contentMap, \"description\")\n\t\tmimeType := ExtractString(contentMap, \"mimeType\")\n\t\tif uri == \"\" || name == \"\" {\n\t\t\treturn nil, fmt.Errorf(\"resource_link uri or name is missing\")\n\t\t}\n\t\tc := NewResourceLink(uri, name, description, mimeType)\n\t\tc.Annotations = annotations\n\t\treturn c, nil\n\n\tcase ContentTypeResource:\n\t\tresourceMap := ExtractMap(contentMap, \"resource\")\n\t\tif resourceMap == nil {\n\t\t\treturn nil, fmt.Errorf(\"resource is missing\")\n\t\t}\n\n\t\tresourceContents, err := ParseResourceContents(resourceMap)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tc := NewEmbeddedResource(resourceContents)\n\t\tc.Annotations = annotations\n\t\treturn c, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"unsupported content type: %s\", contentType)\n}\n\nfunc ParseGetPromptResult(rawMessage *json.RawMessage) (*GetPromptResult, error) {\n\tif rawMessage == nil {\n\t\treturn nil, fmt.Errorf(\"response is nil\")\n\t}\n\n\tvar jsonContent map[string]any\n\tif err := json.Unmarshal(*rawMessage, &jsonContent); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to unmarshal response: %w\", err)\n\t}\n\n\tresult := GetPromptResult{}\n\n\tmeta, ok := jsonContent[\"_meta\"]\n\tif ok {\n\t\tif metaMap, ok := meta.(map[string]any); ok {\n\t\t\tresult.Meta = NewMetaFromMap(metaMap)\n\t\t}\n\t}\n\n\tdescription, ok := jsonContent[\"description\"]\n\tif ok {\n\t\tif descriptionStr, ok := description.(string); ok {\n\t\t\tresult.Description = descriptionStr\n\t\t}\n\t}\n\n\tmessages, ok := jsonContent[\"messages\"]\n\tif ok {\n\t\tmessagesArr, ok := messages.([]any)\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"messages is not an array\")\n\t\t}\n\n\t\tfor _, message := range messagesArr {\n\t\t\tmessageMap, ok := message.(map[string]any)\n\t\t\tif !ok {\n\t\t\t\treturn nil, fmt.Errorf(\"message is not an object\")\n\t\t\t}\n\n\t\t\t// Extract role\n\t\t\troleStr := ExtractString(messageMap, \"role\")\n\t\t\tif roleStr == \"\" || (roleStr != string(RoleAssistant) && roleStr != string(RoleUser)) {\n\t\t\t\treturn nil, fmt.Errorf(\"unsupported role: %s\", roleStr)\n\t\t\t}\n\n\t\t\t// Extract content\n\t\t\tcontentMap, ok := messageMap[\"content\"].(map[string]any)\n\t\t\tif !ok {\n\t\t\t\treturn nil, fmt.Errorf(\"content is not an object\")\n\t\t\t}\n\n\t\t\t// Process content\n\t\t\tcontent, err := ParseContent(contentMap)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\t// Append processed message\n\t\t\tresult.Messages = append(result.Messages, NewPromptMessage(Role(roleStr), content))\n\n\t\t}\n\t}\n\n\treturn &result, nil\n}\n\nfunc ParseCallToolResult(rawMessage *json.RawMessage) (*CallToolResult, error) {\n\tif rawMessage == nil {\n\t\treturn nil, fmt.Errorf(\"response is nil\")\n\t}\n\n\tvar jsonContent map[string]any\n\tif err := json.Unmarshal(*rawMessage, &jsonContent); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to unmarshal response: %w\", err)\n\t}\n\n\tvar result CallToolResult\n\n\tmeta, ok := jsonContent[\"_meta\"]\n\tif ok {\n\t\tif metaMap, ok := meta.(map[string]any); ok {\n\t\t\tresult.Meta = NewMetaFromMap(metaMap)\n\t\t}\n\t}\n\n\tisError, ok := jsonContent[\"isError\"]\n\tif ok {\n\t\tif isErrorBool, ok := isError.(bool); ok {\n\t\t\tresult.IsError = isErrorBool\n\t\t}\n\t}\n\n\tcontents, ok := jsonContent[\"content\"]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"content is missing\")\n\t}\n\n\tcontentArr, ok := contents.([]any)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"content is not an array\")\n\t}\n\n\tfor _, content := range contentArr {\n\t\t// Extract content\n\t\tcontentMap, ok := content.(map[string]any)\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"content is not an object\")\n\t\t}\n\n\t\t// Process content\n\t\tcontent, err := ParseContent(contentMap)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresult.Content = append(result.Content, content)\n\t}\n\n\t// Handle structured content\n\tstructuredContent, ok := jsonContent[\"structuredContent\"]\n\tif ok {\n\t\tresult.StructuredContent = structuredContent\n\t}\n\n\treturn &result, nil\n}\n\nfunc ParseResourceContents(contentMap map[string]any) (ResourceContents, error) {\n\turi := ExtractString(contentMap, \"uri\")\n\tif uri == \"\" {\n\t\treturn nil, fmt.Errorf(\"resource uri is missing\")\n\t}\n\n\tmimeType := ExtractString(contentMap, \"mimeType\")\n\n\tmeta := ExtractMap(contentMap, \"_meta\")\n\n\tif _, present := contentMap[\"_meta\"]; present && meta == nil {\n\t\treturn nil, fmt.Errorf(\"_meta must be an object\")\n\t}\n\n\tif text := ExtractString(contentMap, \"text\"); text != \"\" {\n\t\treturn TextResourceContents{\n\t\t\tMeta:     meta,\n\t\t\tURI:      uri,\n\t\t\tMIMEType: mimeType,\n\t\t\tText:     text,\n\t\t}, nil\n\t}\n\n\tif blob := ExtractString(contentMap, \"blob\"); blob != \"\" {\n\t\treturn BlobResourceContents{\n\t\t\tMeta:     meta,\n\t\t\tURI:      uri,\n\t\t\tMIMEType: mimeType,\n\t\t\tBlob:     blob,\n\t\t}, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"unsupported resource type\")\n}\n\nfunc ParseReadResourceResult(rawMessage *json.RawMessage) (*ReadResourceResult, error) {\n\tif rawMessage == nil {\n\t\treturn nil, fmt.Errorf(\"response is nil\")\n\t}\n\n\tvar jsonContent map[string]any\n\tif err := json.Unmarshal(*rawMessage, &jsonContent); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to unmarshal response: %w\", err)\n\t}\n\n\tvar result ReadResourceResult\n\n\tmeta, ok := jsonContent[\"_meta\"]\n\tif ok {\n\t\tif metaMap, ok := meta.(map[string]any); ok {\n\t\t\tresult.Meta = NewMetaFromMap(metaMap)\n\t\t}\n\t}\n\n\tcontents, ok := jsonContent[\"contents\"]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"contents is missing\")\n\t}\n\n\tcontentArr, ok := contents.([]any)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"contents is not an array\")\n\t}\n\n\tfor _, content := range contentArr {\n\t\t// Extract content\n\t\tcontentMap, ok := content.(map[string]any)\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"content is not an object\")\n\t\t}\n\n\t\t// Process content\n\t\tcontent, err := ParseResourceContents(contentMap)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresult.Contents = append(result.Contents, content)\n\t}\n\n\treturn &result, nil\n}\n\nfunc ParseArgument(request CallToolRequest, key string, defaultVal any) any {\n\targs := request.GetArguments()\n\tif _, ok := args[key]; !ok {\n\t\treturn defaultVal\n\t} else {\n\t\treturn args[key]\n\t}\n}\n\n// ParseBoolean extracts and converts a boolean parameter from a CallToolRequest.\n// If the key is not found in the Arguments map, the defaultValue is returned.\n// The function uses cast.ToBool for conversion which handles various string representations\n// such as \"true\", \"yes\", \"1\", etc.\nfunc ParseBoolean(request CallToolRequest, key string, defaultValue bool) bool {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToBool(v)\n}\n\n// ParseInt64 extracts and converts an int64 parameter from a CallToolRequest.\n// If the key is not found in the Arguments map, the defaultValue is returned.\nfunc ParseInt64(request CallToolRequest, key string, defaultValue int64) int64 {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToInt64(v)\n}\n\n// ParseInt32 extracts and converts an int32 parameter from a CallToolRequest.\nfunc ParseInt32(request CallToolRequest, key string, defaultValue int32) int32 {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToInt32(v)\n}\n\n// ParseInt16 extracts and converts an int16 parameter from a CallToolRequest.\nfunc ParseInt16(request CallToolRequest, key string, defaultValue int16) int16 {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToInt16(v)\n}\n\n// ParseInt8 extracts and converts an int8 parameter from a CallToolRequest.\nfunc ParseInt8(request CallToolRequest, key string, defaultValue int8) int8 {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToInt8(v)\n}\n\n// ParseInt extracts and converts an int parameter from a CallToolRequest.\nfunc ParseInt(request CallToolRequest, key string, defaultValue int) int {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToInt(v)\n}\n\n// ParseUInt extracts and converts an uint parameter from a CallToolRequest.\nfunc ParseUInt(request CallToolRequest, key string, defaultValue uint) uint {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToUint(v)\n}\n\n// ParseUInt64 extracts and converts an uint64 parameter from a CallToolRequest.\nfunc ParseUInt64(request CallToolRequest, key string, defaultValue uint64) uint64 {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToUint64(v)\n}\n\n// ParseUInt32 extracts and converts an uint32 parameter from a CallToolRequest.\nfunc ParseUInt32(request CallToolRequest, key string, defaultValue uint32) uint32 {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToUint32(v)\n}\n\n// ParseUInt16 extracts and converts an uint16 parameter from a CallToolRequest.\nfunc ParseUInt16(request CallToolRequest, key string, defaultValue uint16) uint16 {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToUint16(v)\n}\n\n// ParseUInt8 extracts and converts an uint8 parameter from a CallToolRequest.\nfunc ParseUInt8(request CallToolRequest, key string, defaultValue uint8) uint8 {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToUint8(v)\n}\n\n// ParseFloat32 extracts and converts a float32 parameter from a CallToolRequest.\nfunc ParseFloat32(request CallToolRequest, key string, defaultValue float32) float32 {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToFloat32(v)\n}\n\n// ParseFloat64 extracts and converts a float64 parameter from a CallToolRequest.\nfunc ParseFloat64(request CallToolRequest, key string, defaultValue float64) float64 {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToFloat64(v)\n}\n\n// ParseString extracts and converts a string parameter from a CallToolRequest.\nfunc ParseString(request CallToolRequest, key string, defaultValue string) string {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToString(v)\n}\n\n// ParseStringMap extracts and converts a string map parameter from a CallToolRequest.\nfunc ParseStringMap(request CallToolRequest, key string, defaultValue map[string]any) map[string]any {\n\tv := ParseArgument(request, key, defaultValue)\n\treturn cast.ToStringMap(v)\n}\n\n// ToBoolPtr returns a pointer to the given boolean value\nfunc ToBoolPtr(b bool) *bool {\n\treturn &b\n}\n\n// ToInt64Ptr returns a pointer to the given int64 value\nfunc ToInt64Ptr(i int64) *int64 {\n\treturn &i\n}\n\n// GetTextFromContent extracts text from a Content interface that might be a TextContent struct\n// or a map[string]any that was unmarshaled from JSON. This is useful when dealing with content\n// that comes from different transport layers that may handle JSON differently.\n//\n// This function uses fallback behavior for non-text content - it returns a string representation\n// via fmt.Sprintf for any content that cannot be extracted as text. This is a lossy operation\n// intended for convenience in logging and display scenarios.\n//\n// For strict type validation, use ParseContent() instead, which returns an error for invalid content.\nfunc GetTextFromContent(content any) string {\n\tswitch c := content.(type) {\n\tcase TextContent:\n\t\treturn c.Text\n\tcase map[string]any:\n\t\t// Handle JSON unmarshaled content\n\t\tif contentType, exists := c[\"type\"]; exists && contentType == \"text\" {\n\t\t\tif text, exists := c[\"text\"].(string); exists {\n\t\t\t\treturn text\n\t\t\t}\n\t\t}\n\t\treturn fmt.Sprintf(\"%v\", content)\n\tcase string:\n\t\treturn c\n\tdefault:\n\t\treturn fmt.Sprintf(\"%v\", content)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/completion.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\n\t\"github.com/mark3labs/mcp-go/mcp\"\n)\n\ntype PromptCompletionProvider interface {\n\t// CompletePromptArgument provides completions for a prompt argument\n\tCompletePromptArgument(ctx context.Context, promptName string, argument mcp.CompleteArgument, context mcp.CompleteContext) (*mcp.Completion, error)\n}\n\ntype ResourceCompletionProvider interface {\n\t// CompleteResourceArgument provides completions for a resource template argument\n\tCompleteResourceArgument(ctx context.Context, uri string, argument mcp.CompleteArgument, context mcp.CompleteContext) (*mcp.Completion, error)\n}\n\n// DefaultCompletionProvider returns no completions (fallback)\ntype DefaultPromptCompletionProvider struct{}\n\nfunc (p *DefaultPromptCompletionProvider) CompletePromptArgument(ctx context.Context, promptName string, argument mcp.CompleteArgument, context mcp.CompleteContext) (*mcp.Completion, error) {\n\treturn &mcp.Completion{\n\t\tValues: []string{},\n\t}, nil\n}\n\n// DefaultResourceCompletionProvider returns no completions (fallback)\ntype DefaultResourceCompletionProvider struct{}\n\nfunc (p *DefaultResourceCompletionProvider) CompleteResourceArgument(ctx context.Context, uri string, argument mcp.CompleteArgument, context mcp.CompleteContext) (*mcp.Completion, error) {\n\treturn &mcp.Completion{\n\t\tValues: []string{},\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/constants.go",
    "content": "package server\n\n// Common HTTP header constants used across server transports\nconst (\n\tHeaderKeySessionID       = \"Mcp-Session-Id\"\n\tHeaderKeyProtocolVersion = \"Mcp-Protocol-Version\"\n)\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/ctx.go",
    "content": "package server\n\ntype contextKey int\n\nconst (\n\t// This const is used as key for context value lookup\n\trequestHeader contextKey = iota\n)\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/elicitation.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\t\"errors\"\n\n\t\"github.com/mark3labs/mcp-go/mcp\"\n)\n\nvar (\n\t// ErrNoActiveSession is returned when there is no active session in the context\n\tErrNoActiveSession = errors.New(\"no active session\")\n\t// ErrElicitationNotSupported is returned when the session does not support elicitation\n\tErrElicitationNotSupported = errors.New(\"session does not support elicitation\")\n)\n\n// RequestElicitation sends an elicitation request to the client.\n// The client must have declared elicitation capability during initialization.\n// The session must implement SessionWithElicitation to support this operation.\nfunc (s *MCPServer) RequestElicitation(ctx context.Context, request mcp.ElicitationRequest) (*mcp.ElicitationResult, error) {\n\tsession := ClientSessionFromContext(ctx)\n\tif session == nil {\n\t\treturn nil, ErrNoActiveSession\n\t}\n\n\t// Check if the session supports elicitation requests\n\tif elicitationSession, ok := session.(SessionWithElicitation); ok {\n\t\tif err := request.Params.Validate(); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn elicitationSession.RequestElicitation(ctx, request)\n\t}\n\n\treturn nil, ErrElicitationNotSupported\n}\n\n// RequestURLElicitation sends a URL mode elicitation request to the client.\n// This is used when the server needs the user to perform an out-of-band interaction.\nfunc (s *MCPServer) RequestURLElicitation(\n\tctx context.Context,\n\tsession ClientSession,\n\telicitationID string,\n\turl string,\n\tmessage string,\n) (*mcp.ElicitationResult, error) {\n\tif session == nil {\n\t\treturn nil, ErrNoActiveSession\n\t}\n\n\tparams := mcp.ElicitationParams{\n\t\tMode:          mcp.ElicitationModeURL,\n\t\tMessage:       message,\n\t\tElicitationID: elicitationID,\n\t\tURL:           url,\n\t}\n\n\tif err := params.Validate(); err != nil {\n\t\treturn nil, err\n\t}\n\n\trequest := mcp.ElicitationRequest{\n\t\tRequest: mcp.Request{\n\t\t\tMethod: string(mcp.MethodElicitationCreate),\n\t\t},\n\t\tParams: params,\n\t}\n\n\tif elicitationSession, ok := session.(SessionWithElicitation); ok {\n\t\treturn elicitationSession.RequestElicitation(ctx, request)\n\t}\n\treturn nil, ErrElicitationNotSupported\n}\n\n// SendElicitationComplete sends a notification that a URL mode elicitation has completed\n// SendElicitationComplete sends a notification that a URL mode elicitation has completed\nfunc (s *MCPServer) SendElicitationComplete(\n\tctx context.Context,\n\tsession ClientSession,\n\telicitationID string,\n) error {\n\tif session == nil {\n\t\treturn ErrNoActiveSession\n\t}\n\n\tjsonRPCNotif := mcp.NewElicitationCompleteNotification(elicitationID)\n\treturn s.sendNotificationCore(ctx, session, jsonRPCNotif)\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/errors.go",
    "content": "package server\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\nvar (\n\t// Common server errors\n\tErrUnsupported      = errors.New(\"not supported\")\n\tErrResourceNotFound = errors.New(\"resource not found\")\n\tErrPromptNotFound   = errors.New(\"prompt not found\")\n\tErrToolNotFound     = errors.New(\"tool not found\")\n\n\t// Session-related errors\n\tErrSessionNotFound                        = errors.New(\"session not found\")\n\tErrSessionExists                          = errors.New(\"session already exists\")\n\tErrSessionNotInitialized                  = errors.New(\"session not properly initialized\")\n\tErrSessionDoesNotSupportTools             = errors.New(\"session does not support per-session tools\")\n\tErrSessionDoesNotSupportResources         = errors.New(\"session does not support per-session resources\")\n\tErrSessionDoesNotSupportResourceTemplates = errors.New(\"session does not support resource templates\")\n\tErrSessionDoesNotSupportLogging           = errors.New(\"session does not support setting logging level\")\n\n\t// Notification-related errors\n\tErrNotificationNotInitialized = errors.New(\"notification channel not initialized\")\n\tErrNotificationChannelBlocked = errors.New(\"notification channel queue is full - client may not be processing notifications fast enough\")\n)\n\n// ErrDynamicPathConfig is returned when attempting to use static path methods with dynamic path configuration\ntype ErrDynamicPathConfig struct {\n\tMethod string\n}\n\nfunc (e *ErrDynamicPathConfig) Error() string {\n\treturn fmt.Sprintf(\"%s cannot be used with WithDynamicBasePath. Use dynamic path logic in your router.\", e.Method)\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/hooks.go",
    "content": "// Code generated by `go generate`. DO NOT EDIT.\n// source: server/internal/gen/hooks.go.tmpl\npackage server\n\nimport (\n\t\"context\"\n\n\t\"github.com/mark3labs/mcp-go/mcp\"\n)\n\n// OnRegisterSessionHookFunc is a hook that will be called when a new session is registered.\ntype OnRegisterSessionHookFunc func(ctx context.Context, session ClientSession)\n\n// OnUnregisterSessionHookFunc is a hook that will be called when a session is being unregistered.\ntype OnUnregisterSessionHookFunc func(ctx context.Context, session ClientSession)\n\n// BeforeAnyHookFunc is a function that is called after the request is\n// parsed but before the method is called.\ntype BeforeAnyHookFunc func(ctx context.Context, id any, method mcp.MCPMethod, message any)\n\n// OnSuccessHookFunc is a hook that will be called after the request\n// successfully generates a result, but before the result is sent to the client.\ntype OnSuccessHookFunc func(ctx context.Context, id any, method mcp.MCPMethod, message any, result any)\n\n// OnErrorHookFunc is a hook that will be called when an error occurs,\n// either during the request parsing or the method execution.\n//\n// Example usage:\n// ```\n//\n//\thooks.AddOnError(func(ctx context.Context, id any, method mcp.MCPMethod, message any, err error) {\n//\t  // Check for specific error types using errors.Is\n//\t  if errors.Is(err, ErrUnsupported) {\n//\t    // Handle capability not supported errors\n//\t    log.Printf(\"Capability not supported: %v\", err)\n//\t  }\n//\n//\t  // Use errors.As to get specific error types\n//\t  var parseErr = &UnparsableMessageError{}\n//\t  if errors.As(err, &parseErr) {\n//\t    // Access specific methods/fields of the error type\n//\t    log.Printf(\"Failed to parse message for method %s: %v\",\n//\t               parseErr.GetMethod(), parseErr.Unwrap())\n//\t    // Access the raw message that failed to parse\n//\t    rawMsg := parseErr.GetMessage()\n//\t  }\n//\n//\t  // Check for specific resource/prompt/tool errors\n//\t  switch {\n//\t  case errors.Is(err, ErrResourceNotFound):\n//\t    log.Printf(\"Resource not found: %v\", err)\n//\t  case errors.Is(err, ErrPromptNotFound):\n//\t    log.Printf(\"Prompt not found: %v\", err)\n//\t  case errors.Is(err, ErrToolNotFound):\n//\t    log.Printf(\"Tool not found: %v\", err)\n//\t  }\n//\t})\ntype OnErrorHookFunc func(ctx context.Context, id any, method mcp.MCPMethod, message any, err error)\n\n// OnRequestInitializationFunc is a function that called before handle diff request method\n// Should any errors arise during func execution, the service will promptly return the corresponding error message.\ntype OnRequestInitializationFunc func(ctx context.Context, id any, message any) error\n\ntype OnBeforeInitializeFunc func(ctx context.Context, id any, message *mcp.InitializeRequest)\ntype OnAfterInitializeFunc func(ctx context.Context, id any, message *mcp.InitializeRequest, result *mcp.InitializeResult)\n\ntype OnBeforePingFunc func(ctx context.Context, id any, message *mcp.PingRequest)\ntype OnAfterPingFunc func(ctx context.Context, id any, message *mcp.PingRequest, result *mcp.EmptyResult)\n\ntype OnBeforeSetLevelFunc func(ctx context.Context, id any, message *mcp.SetLevelRequest)\ntype OnAfterSetLevelFunc func(ctx context.Context, id any, message *mcp.SetLevelRequest, result *mcp.EmptyResult)\n\ntype OnBeforeListResourcesFunc func(ctx context.Context, id any, message *mcp.ListResourcesRequest)\ntype OnAfterListResourcesFunc func(ctx context.Context, id any, message *mcp.ListResourcesRequest, result *mcp.ListResourcesResult)\n\ntype OnBeforeListResourceTemplatesFunc func(ctx context.Context, id any, message *mcp.ListResourceTemplatesRequest)\ntype OnAfterListResourceTemplatesFunc func(ctx context.Context, id any, message *mcp.ListResourceTemplatesRequest, result *mcp.ListResourceTemplatesResult)\n\ntype OnBeforeReadResourceFunc func(ctx context.Context, id any, message *mcp.ReadResourceRequest)\ntype OnAfterReadResourceFunc func(ctx context.Context, id any, message *mcp.ReadResourceRequest, result *mcp.ReadResourceResult)\n\ntype OnBeforeListPromptsFunc func(ctx context.Context, id any, message *mcp.ListPromptsRequest)\ntype OnAfterListPromptsFunc func(ctx context.Context, id any, message *mcp.ListPromptsRequest, result *mcp.ListPromptsResult)\n\ntype OnBeforeGetPromptFunc func(ctx context.Context, id any, message *mcp.GetPromptRequest)\ntype OnAfterGetPromptFunc func(ctx context.Context, id any, message *mcp.GetPromptRequest, result *mcp.GetPromptResult)\n\ntype OnBeforeListToolsFunc func(ctx context.Context, id any, message *mcp.ListToolsRequest)\ntype OnAfterListToolsFunc func(ctx context.Context, id any, message *mcp.ListToolsRequest, result *mcp.ListToolsResult)\n\ntype OnBeforeCallToolFunc func(ctx context.Context, id any, message *mcp.CallToolRequest)\ntype OnAfterCallToolFunc func(ctx context.Context, id any, message *mcp.CallToolRequest, result any)\n\ntype OnBeforeGetTaskFunc func(ctx context.Context, id any, message *mcp.GetTaskRequest)\ntype OnAfterGetTaskFunc func(ctx context.Context, id any, message *mcp.GetTaskRequest, result *mcp.GetTaskResult)\n\ntype OnBeforeListTasksFunc func(ctx context.Context, id any, message *mcp.ListTasksRequest)\ntype OnAfterListTasksFunc func(ctx context.Context, id any, message *mcp.ListTasksRequest, result *mcp.ListTasksResult)\n\ntype OnBeforeTaskResultFunc func(ctx context.Context, id any, message *mcp.TaskResultRequest)\ntype OnAfterTaskResultFunc func(ctx context.Context, id any, message *mcp.TaskResultRequest, result *mcp.TaskResultResult)\n\ntype OnBeforeCancelTaskFunc func(ctx context.Context, id any, message *mcp.CancelTaskRequest)\ntype OnAfterCancelTaskFunc func(ctx context.Context, id any, message *mcp.CancelTaskRequest, result *mcp.CancelTaskResult)\n\ntype OnBeforeCompleteFunc func(ctx context.Context, id any, message *mcp.CompleteRequest)\ntype OnAfterCompleteFunc func(ctx context.Context, id any, message *mcp.CompleteRequest, result *mcp.CompleteResult)\n\ntype Hooks struct {\n\tOnRegisterSession             []OnRegisterSessionHookFunc\n\tOnUnregisterSession           []OnUnregisterSessionHookFunc\n\tOnBeforeAny                   []BeforeAnyHookFunc\n\tOnSuccess                     []OnSuccessHookFunc\n\tOnError                       []OnErrorHookFunc\n\tOnRequestInitialization       []OnRequestInitializationFunc\n\tOnBeforeInitialize            []OnBeforeInitializeFunc\n\tOnAfterInitialize             []OnAfterInitializeFunc\n\tOnBeforePing                  []OnBeforePingFunc\n\tOnAfterPing                   []OnAfterPingFunc\n\tOnBeforeSetLevel              []OnBeforeSetLevelFunc\n\tOnAfterSetLevel               []OnAfterSetLevelFunc\n\tOnBeforeListResources         []OnBeforeListResourcesFunc\n\tOnAfterListResources          []OnAfterListResourcesFunc\n\tOnBeforeListResourceTemplates []OnBeforeListResourceTemplatesFunc\n\tOnAfterListResourceTemplates  []OnAfterListResourceTemplatesFunc\n\tOnBeforeReadResource          []OnBeforeReadResourceFunc\n\tOnAfterReadResource           []OnAfterReadResourceFunc\n\tOnBeforeListPrompts           []OnBeforeListPromptsFunc\n\tOnAfterListPrompts            []OnAfterListPromptsFunc\n\tOnBeforeGetPrompt             []OnBeforeGetPromptFunc\n\tOnAfterGetPrompt              []OnAfterGetPromptFunc\n\tOnBeforeListTools             []OnBeforeListToolsFunc\n\tOnAfterListTools              []OnAfterListToolsFunc\n\tOnBeforeCallTool              []OnBeforeCallToolFunc\n\tOnAfterCallTool               []OnAfterCallToolFunc\n\tOnBeforeGetTask               []OnBeforeGetTaskFunc\n\tOnAfterGetTask                []OnAfterGetTaskFunc\n\tOnBeforeListTasks             []OnBeforeListTasksFunc\n\tOnAfterListTasks              []OnAfterListTasksFunc\n\tOnBeforeTaskResult            []OnBeforeTaskResultFunc\n\tOnAfterTaskResult             []OnAfterTaskResultFunc\n\tOnBeforeCancelTask            []OnBeforeCancelTaskFunc\n\tOnAfterCancelTask             []OnAfterCancelTaskFunc\n\tOnBeforeComplete              []OnBeforeCompleteFunc\n\tOnAfterComplete               []OnAfterCompleteFunc\n}\n\nfunc (c *Hooks) AddBeforeAny(hook BeforeAnyHookFunc) {\n\tc.OnBeforeAny = append(c.OnBeforeAny, hook)\n}\n\nfunc (c *Hooks) AddOnSuccess(hook OnSuccessHookFunc) {\n\tc.OnSuccess = append(c.OnSuccess, hook)\n}\n\n// AddOnError registers a hook function that will be called when an error occurs.\n// The error parameter contains the actual error object, which can be interrogated\n// using Go's error handling patterns like errors.Is and errors.As.\n//\n// Example:\n// ```\n// // Create a channel to receive errors for testing\n// errChan := make(chan error, 1)\n//\n// // Register hook to capture and inspect errors\n// hooks := &Hooks{}\n//\n//\thooks.AddOnError(func(ctx context.Context, id any, method mcp.MCPMethod, message any, err error) {\n//\t    // For capability-related errors\n//\t    if errors.Is(err, ErrUnsupported) {\n//\t        // Handle capability not supported\n//\t        errChan <- err\n//\t        return\n//\t    }\n//\n//\t    // For parsing errors\n//\t    var parseErr = &UnparsableMessageError{}\n//\t    if errors.As(err, &parseErr) {\n//\t        // Handle unparsable message errors\n//\t        fmt.Printf(\"Failed to parse %s request: %v\\n\",\n//\t                   parseErr.GetMethod(), parseErr.Unwrap())\n//\t        errChan <- parseErr\n//\t        return\n//\t    }\n//\n//\t    // For resource/prompt/tool not found errors\n//\t    if errors.Is(err, ErrResourceNotFound) ||\n//\t       errors.Is(err, ErrPromptNotFound) ||\n//\t       errors.Is(err, ErrToolNotFound) {\n//\t        // Handle not found errors\n//\t        errChan <- err\n//\t        return\n//\t    }\n//\n//\t    // For other errors\n//\t    errChan <- err\n//\t})\n//\n// server := NewMCPServer(\"test-server\", \"1.0.0\", WithHooks(hooks))\n// ```\nfunc (c *Hooks) AddOnError(hook OnErrorHookFunc) {\n\tc.OnError = append(c.OnError, hook)\n}\n\nfunc (c *Hooks) beforeAny(ctx context.Context, id any, method mcp.MCPMethod, message any) {\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeAny {\n\t\thook(ctx, id, method, message)\n\t}\n}\n\nfunc (c *Hooks) onSuccess(ctx context.Context, id any, method mcp.MCPMethod, message any, result any) {\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnSuccess {\n\t\thook(ctx, id, method, message, result)\n\t}\n}\n\n// onError calls all registered error hooks with the error object.\n// The err parameter contains the actual error that occurred, which implements\n// the standard error interface and may be a wrapped error or custom error type.\n//\n// This allows consumer code to use Go's error handling patterns:\n// - errors.Is(err, ErrUnsupported) to check for specific sentinel errors\n// - errors.As(err, &customErr) to extract custom error types\n//\n// Common error types include:\n// - ErrUnsupported: When a capability is not enabled\n// - UnparsableMessageError: When request parsing fails\n// - ErrResourceNotFound: When a resource is not found\n// - ErrPromptNotFound: When a prompt is not found\n// - ErrToolNotFound: When a tool is not found\nfunc (c *Hooks) onError(ctx context.Context, id any, method mcp.MCPMethod, message any, err error) {\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnError {\n\t\thook(ctx, id, method, message, err)\n\t}\n}\n\nfunc (c *Hooks) AddOnRegisterSession(hook OnRegisterSessionHookFunc) {\n\tc.OnRegisterSession = append(c.OnRegisterSession, hook)\n}\n\nfunc (c *Hooks) RegisterSession(ctx context.Context, session ClientSession) {\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnRegisterSession {\n\t\thook(ctx, session)\n\t}\n}\n\nfunc (c *Hooks) AddOnUnregisterSession(hook OnUnregisterSessionHookFunc) {\n\tc.OnUnregisterSession = append(c.OnUnregisterSession, hook)\n}\n\nfunc (c *Hooks) UnregisterSession(ctx context.Context, session ClientSession) {\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnUnregisterSession {\n\t\thook(ctx, session)\n\t}\n}\n\nfunc (c *Hooks) AddOnRequestInitialization(hook OnRequestInitializationFunc) {\n\tc.OnRequestInitialization = append(c.OnRequestInitialization, hook)\n}\n\nfunc (c *Hooks) onRequestInitialization(ctx context.Context, id any, message any) error {\n\tif c == nil {\n\t\treturn nil\n\t}\n\tfor _, hook := range c.OnRequestInitialization {\n\t\terr := hook(ctx, id, message)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\nfunc (c *Hooks) AddBeforeInitialize(hook OnBeforeInitializeFunc) {\n\tc.OnBeforeInitialize = append(c.OnBeforeInitialize, hook)\n}\n\nfunc (c *Hooks) AddAfterInitialize(hook OnAfterInitializeFunc) {\n\tc.OnAfterInitialize = append(c.OnAfterInitialize, hook)\n}\n\nfunc (c *Hooks) beforeInitialize(ctx context.Context, id any, message *mcp.InitializeRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodInitialize, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeInitialize {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterInitialize(ctx context.Context, id any, message *mcp.InitializeRequest, result *mcp.InitializeResult) {\n\tc.onSuccess(ctx, id, mcp.MethodInitialize, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterInitialize {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforePing(hook OnBeforePingFunc) {\n\tc.OnBeforePing = append(c.OnBeforePing, hook)\n}\n\nfunc (c *Hooks) AddAfterPing(hook OnAfterPingFunc) {\n\tc.OnAfterPing = append(c.OnAfterPing, hook)\n}\n\nfunc (c *Hooks) beforePing(ctx context.Context, id any, message *mcp.PingRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodPing, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforePing {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterPing(ctx context.Context, id any, message *mcp.PingRequest, result *mcp.EmptyResult) {\n\tc.onSuccess(ctx, id, mcp.MethodPing, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterPing {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeSetLevel(hook OnBeforeSetLevelFunc) {\n\tc.OnBeforeSetLevel = append(c.OnBeforeSetLevel, hook)\n}\n\nfunc (c *Hooks) AddAfterSetLevel(hook OnAfterSetLevelFunc) {\n\tc.OnAfterSetLevel = append(c.OnAfterSetLevel, hook)\n}\n\nfunc (c *Hooks) beforeSetLevel(ctx context.Context, id any, message *mcp.SetLevelRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodSetLogLevel, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeSetLevel {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterSetLevel(ctx context.Context, id any, message *mcp.SetLevelRequest, result *mcp.EmptyResult) {\n\tc.onSuccess(ctx, id, mcp.MethodSetLogLevel, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterSetLevel {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeListResources(hook OnBeforeListResourcesFunc) {\n\tc.OnBeforeListResources = append(c.OnBeforeListResources, hook)\n}\n\nfunc (c *Hooks) AddAfterListResources(hook OnAfterListResourcesFunc) {\n\tc.OnAfterListResources = append(c.OnAfterListResources, hook)\n}\n\nfunc (c *Hooks) beforeListResources(ctx context.Context, id any, message *mcp.ListResourcesRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodResourcesList, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeListResources {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterListResources(ctx context.Context, id any, message *mcp.ListResourcesRequest, result *mcp.ListResourcesResult) {\n\tc.onSuccess(ctx, id, mcp.MethodResourcesList, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterListResources {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeListResourceTemplates(hook OnBeforeListResourceTemplatesFunc) {\n\tc.OnBeforeListResourceTemplates = append(c.OnBeforeListResourceTemplates, hook)\n}\n\nfunc (c *Hooks) AddAfterListResourceTemplates(hook OnAfterListResourceTemplatesFunc) {\n\tc.OnAfterListResourceTemplates = append(c.OnAfterListResourceTemplates, hook)\n}\n\nfunc (c *Hooks) beforeListResourceTemplates(ctx context.Context, id any, message *mcp.ListResourceTemplatesRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodResourcesTemplatesList, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeListResourceTemplates {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterListResourceTemplates(ctx context.Context, id any, message *mcp.ListResourceTemplatesRequest, result *mcp.ListResourceTemplatesResult) {\n\tc.onSuccess(ctx, id, mcp.MethodResourcesTemplatesList, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterListResourceTemplates {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeReadResource(hook OnBeforeReadResourceFunc) {\n\tc.OnBeforeReadResource = append(c.OnBeforeReadResource, hook)\n}\n\nfunc (c *Hooks) AddAfterReadResource(hook OnAfterReadResourceFunc) {\n\tc.OnAfterReadResource = append(c.OnAfterReadResource, hook)\n}\n\nfunc (c *Hooks) beforeReadResource(ctx context.Context, id any, message *mcp.ReadResourceRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodResourcesRead, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeReadResource {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterReadResource(ctx context.Context, id any, message *mcp.ReadResourceRequest, result *mcp.ReadResourceResult) {\n\tc.onSuccess(ctx, id, mcp.MethodResourcesRead, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterReadResource {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeListPrompts(hook OnBeforeListPromptsFunc) {\n\tc.OnBeforeListPrompts = append(c.OnBeforeListPrompts, hook)\n}\n\nfunc (c *Hooks) AddAfterListPrompts(hook OnAfterListPromptsFunc) {\n\tc.OnAfterListPrompts = append(c.OnAfterListPrompts, hook)\n}\n\nfunc (c *Hooks) beforeListPrompts(ctx context.Context, id any, message *mcp.ListPromptsRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodPromptsList, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeListPrompts {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterListPrompts(ctx context.Context, id any, message *mcp.ListPromptsRequest, result *mcp.ListPromptsResult) {\n\tc.onSuccess(ctx, id, mcp.MethodPromptsList, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterListPrompts {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeGetPrompt(hook OnBeforeGetPromptFunc) {\n\tc.OnBeforeGetPrompt = append(c.OnBeforeGetPrompt, hook)\n}\n\nfunc (c *Hooks) AddAfterGetPrompt(hook OnAfterGetPromptFunc) {\n\tc.OnAfterGetPrompt = append(c.OnAfterGetPrompt, hook)\n}\n\nfunc (c *Hooks) beforeGetPrompt(ctx context.Context, id any, message *mcp.GetPromptRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodPromptsGet, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeGetPrompt {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterGetPrompt(ctx context.Context, id any, message *mcp.GetPromptRequest, result *mcp.GetPromptResult) {\n\tc.onSuccess(ctx, id, mcp.MethodPromptsGet, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterGetPrompt {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeListTools(hook OnBeforeListToolsFunc) {\n\tc.OnBeforeListTools = append(c.OnBeforeListTools, hook)\n}\n\nfunc (c *Hooks) AddAfterListTools(hook OnAfterListToolsFunc) {\n\tc.OnAfterListTools = append(c.OnAfterListTools, hook)\n}\n\nfunc (c *Hooks) beforeListTools(ctx context.Context, id any, message *mcp.ListToolsRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodToolsList, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeListTools {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterListTools(ctx context.Context, id any, message *mcp.ListToolsRequest, result *mcp.ListToolsResult) {\n\tc.onSuccess(ctx, id, mcp.MethodToolsList, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterListTools {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeCallTool(hook OnBeforeCallToolFunc) {\n\tc.OnBeforeCallTool = append(c.OnBeforeCallTool, hook)\n}\n\nfunc (c *Hooks) AddAfterCallTool(hook OnAfterCallToolFunc) {\n\tc.OnAfterCallTool = append(c.OnAfterCallTool, hook)\n}\n\nfunc (c *Hooks) beforeCallTool(ctx context.Context, id any, message *mcp.CallToolRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodToolsCall, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeCallTool {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterCallTool(ctx context.Context, id any, message *mcp.CallToolRequest, result any) {\n\tc.onSuccess(ctx, id, mcp.MethodToolsCall, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterCallTool {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeGetTask(hook OnBeforeGetTaskFunc) {\n\tc.OnBeforeGetTask = append(c.OnBeforeGetTask, hook)\n}\n\nfunc (c *Hooks) AddAfterGetTask(hook OnAfterGetTaskFunc) {\n\tc.OnAfterGetTask = append(c.OnAfterGetTask, hook)\n}\n\nfunc (c *Hooks) beforeGetTask(ctx context.Context, id any, message *mcp.GetTaskRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodTasksGet, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeGetTask {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterGetTask(ctx context.Context, id any, message *mcp.GetTaskRequest, result *mcp.GetTaskResult) {\n\tc.onSuccess(ctx, id, mcp.MethodTasksGet, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterGetTask {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeListTasks(hook OnBeforeListTasksFunc) {\n\tc.OnBeforeListTasks = append(c.OnBeforeListTasks, hook)\n}\n\nfunc (c *Hooks) AddAfterListTasks(hook OnAfterListTasksFunc) {\n\tc.OnAfterListTasks = append(c.OnAfterListTasks, hook)\n}\n\nfunc (c *Hooks) beforeListTasks(ctx context.Context, id any, message *mcp.ListTasksRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodTasksList, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeListTasks {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterListTasks(ctx context.Context, id any, message *mcp.ListTasksRequest, result *mcp.ListTasksResult) {\n\tc.onSuccess(ctx, id, mcp.MethodTasksList, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterListTasks {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeTaskResult(hook OnBeforeTaskResultFunc) {\n\tc.OnBeforeTaskResult = append(c.OnBeforeTaskResult, hook)\n}\n\nfunc (c *Hooks) AddAfterTaskResult(hook OnAfterTaskResultFunc) {\n\tc.OnAfterTaskResult = append(c.OnAfterTaskResult, hook)\n}\n\nfunc (c *Hooks) beforeTaskResult(ctx context.Context, id any, message *mcp.TaskResultRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodTasksResult, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeTaskResult {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterTaskResult(ctx context.Context, id any, message *mcp.TaskResultRequest, result *mcp.TaskResultResult) {\n\tc.onSuccess(ctx, id, mcp.MethodTasksResult, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterTaskResult {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeCancelTask(hook OnBeforeCancelTaskFunc) {\n\tc.OnBeforeCancelTask = append(c.OnBeforeCancelTask, hook)\n}\n\nfunc (c *Hooks) AddAfterCancelTask(hook OnAfterCancelTaskFunc) {\n\tc.OnAfterCancelTask = append(c.OnAfterCancelTask, hook)\n}\n\nfunc (c *Hooks) beforeCancelTask(ctx context.Context, id any, message *mcp.CancelTaskRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodTasksCancel, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeCancelTask {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterCancelTask(ctx context.Context, id any, message *mcp.CancelTaskRequest, result *mcp.CancelTaskResult) {\n\tc.onSuccess(ctx, id, mcp.MethodTasksCancel, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterCancelTask {\n\t\thook(ctx, id, message, result)\n\t}\n}\nfunc (c *Hooks) AddBeforeComplete(hook OnBeforeCompleteFunc) {\n\tc.OnBeforeComplete = append(c.OnBeforeComplete, hook)\n}\n\nfunc (c *Hooks) AddAfterComplete(hook OnAfterCompleteFunc) {\n\tc.OnAfterComplete = append(c.OnAfterComplete, hook)\n}\n\nfunc (c *Hooks) beforeComplete(ctx context.Context, id any, message *mcp.CompleteRequest) {\n\tc.beforeAny(ctx, id, mcp.MethodCompletionComplete, message)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnBeforeComplete {\n\t\thook(ctx, id, message)\n\t}\n}\n\nfunc (c *Hooks) afterComplete(ctx context.Context, id any, message *mcp.CompleteRequest, result *mcp.CompleteResult) {\n\tc.onSuccess(ctx, id, mcp.MethodCompletionComplete, message, result)\n\tif c == nil {\n\t\treturn\n\t}\n\tfor _, hook := range c.OnAfterComplete {\n\t\thook(ctx, id, message, result)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/http_transport_options.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\t\"net/http\"\n)\n\n// HTTPContextFunc is a function that takes an existing context and the current\n// request and returns a potentially modified context based on the request\n// content. This can be used to inject context values from headers, for example.\ntype HTTPContextFunc func(ctx context.Context, r *http.Request) context.Context\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/inprocess_session.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/mark3labs/mcp-go/mcp\"\n)\n\n// SamplingHandler defines the interface for handling sampling requests from servers.\ntype SamplingHandler interface {\n\tCreateMessage(ctx context.Context, request mcp.CreateMessageRequest) (*mcp.CreateMessageResult, error)\n}\n\n// ElicitationHandler defines the interface for handling elicitation requests from servers.\ntype ElicitationHandler interface {\n\tElicit(ctx context.Context, request mcp.ElicitationRequest) (*mcp.ElicitationResult, error)\n}\n\n// RootsHandler defines the interface for handling roots list requests from servers.\ntype RootsHandler interface {\n\tListRoots(ctx context.Context, request mcp.ListRootsRequest) (*mcp.ListRootsResult, error)\n}\n\ntype InProcessSession struct {\n\tsessionID          string\n\tnotifications      chan mcp.JSONRPCNotification\n\tinitialized        atomic.Bool\n\tloggingLevel       atomic.Value\n\tclientInfo         atomic.Value\n\tclientCapabilities atomic.Value\n\tsamplingHandler    SamplingHandler\n\telicitationHandler ElicitationHandler\n\trootsHandler       RootsHandler\n\tmu                 sync.RWMutex\n}\n\nfunc NewInProcessSession(sessionID string, samplingHandler SamplingHandler) *InProcessSession {\n\treturn &InProcessSession{\n\t\tsessionID:       sessionID,\n\t\tnotifications:   make(chan mcp.JSONRPCNotification, 100),\n\t\tsamplingHandler: samplingHandler,\n\t}\n}\n\nfunc NewInProcessSessionWithHandlers(sessionID string, samplingHandler SamplingHandler, elicitationHandler ElicitationHandler, rootsHandler RootsHandler) *InProcessSession {\n\treturn &InProcessSession{\n\t\tsessionID:          sessionID,\n\t\tnotifications:      make(chan mcp.JSONRPCNotification, 100),\n\t\tsamplingHandler:    samplingHandler,\n\t\telicitationHandler: elicitationHandler,\n\t\trootsHandler:       rootsHandler,\n\t}\n}\n\nfunc (s *InProcessSession) SessionID() string {\n\treturn s.sessionID\n}\n\nfunc (s *InProcessSession) NotificationChannel() chan<- mcp.JSONRPCNotification {\n\treturn s.notifications\n}\n\nfunc (s *InProcessSession) Initialize() {\n\ts.loggingLevel.Store(mcp.LoggingLevelError)\n\ts.initialized.Store(true)\n}\n\nfunc (s *InProcessSession) Initialized() bool {\n\treturn s.initialized.Load()\n}\n\nfunc (s *InProcessSession) GetClientInfo() mcp.Implementation {\n\tif value := s.clientInfo.Load(); value != nil {\n\t\tif clientInfo, ok := value.(mcp.Implementation); ok {\n\t\t\treturn clientInfo\n\t\t}\n\t}\n\treturn mcp.Implementation{}\n}\n\nfunc (s *InProcessSession) SetClientInfo(clientInfo mcp.Implementation) {\n\ts.clientInfo.Store(clientInfo)\n}\n\nfunc (s *InProcessSession) GetClientCapabilities() mcp.ClientCapabilities {\n\tif value := s.clientCapabilities.Load(); value != nil {\n\t\tif clientCapabilities, ok := value.(mcp.ClientCapabilities); ok {\n\t\t\treturn clientCapabilities\n\t\t}\n\t}\n\treturn mcp.ClientCapabilities{}\n}\n\nfunc (s *InProcessSession) SetClientCapabilities(clientCapabilities mcp.ClientCapabilities) {\n\ts.clientCapabilities.Store(clientCapabilities)\n}\n\nfunc (s *InProcessSession) SetLogLevel(level mcp.LoggingLevel) {\n\ts.loggingLevel.Store(level)\n}\n\nfunc (s *InProcessSession) GetLogLevel() mcp.LoggingLevel {\n\tlevel := s.loggingLevel.Load()\n\tif level == nil {\n\t\treturn mcp.LoggingLevelError\n\t}\n\treturn level.(mcp.LoggingLevel)\n}\n\nfunc (s *InProcessSession) RequestSampling(ctx context.Context, request mcp.CreateMessageRequest) (*mcp.CreateMessageResult, error) {\n\ts.mu.RLock()\n\thandler := s.samplingHandler\n\ts.mu.RUnlock()\n\n\tif handler == nil {\n\t\treturn nil, fmt.Errorf(\"no sampling handler available\")\n\t}\n\n\treturn handler.CreateMessage(ctx, request)\n}\n\nfunc (s *InProcessSession) RequestElicitation(ctx context.Context, request mcp.ElicitationRequest) (*mcp.ElicitationResult, error) {\n\ts.mu.RLock()\n\thandler := s.elicitationHandler\n\ts.mu.RUnlock()\n\n\tif handler == nil {\n\t\treturn nil, fmt.Errorf(\"no elicitation handler available\")\n\t}\n\n\treturn handler.Elicit(ctx, request)\n}\n\n// ListRoots sends a list roots request to the client and waits for the response.\n// Returns an error if no roots handler is available.\nfunc (s *InProcessSession) ListRoots(ctx context.Context, request mcp.ListRootsRequest) (*mcp.ListRootsResult, error) {\n\ts.mu.RLock()\n\thandler := s.rootsHandler\n\ts.mu.RUnlock()\n\n\tif handler == nil {\n\t\treturn nil, fmt.Errorf(\"no roots handler available\")\n\t}\n\n\treturn handler.ListRoots(ctx, request)\n}\n\n// GenerateInProcessSessionID generates a unique session ID for inprocess clients\nfunc GenerateInProcessSessionID() string {\n\treturn fmt.Sprintf(\"inprocess-%d\", time.Now().UnixNano())\n}\n\n// Ensure interface compliance\nvar (\n\t_ ClientSession          = (*InProcessSession)(nil)\n\t_ SessionWithLogging     = (*InProcessSession)(nil)\n\t_ SessionWithClientInfo  = (*InProcessSession)(nil)\n\t_ SessionWithSampling    = (*InProcessSession)(nil)\n\t_ SessionWithElicitation = (*InProcessSession)(nil)\n\t_ SessionWithRoots       = (*InProcessSession)(nil)\n)\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/request_handler.go",
    "content": "// Code generated by `go generate`. DO NOT EDIT.\n// source: server/internal/gen/request_handler.go.tmpl\npackage server\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/mark3labs/mcp-go/mcp\"\n)\n\n// HandleMessage processes an incoming JSON-RPC message and returns an appropriate response\nfunc (s *MCPServer) HandleMessage(\n\tctx context.Context,\n\tmessage json.RawMessage,\n) mcp.JSONRPCMessage {\n\t// Add server to context\n\tctx = context.WithValue(ctx, serverKey{}, s)\n\tvar err *requestError\n\n\tvar baseMessage struct {\n\t\tJSONRPC string        `json:\"jsonrpc\"`\n\t\tMethod  mcp.MCPMethod `json:\"method\"`\n\t\tID      any           `json:\"id,omitempty\"`\n\t\tResult  any           `json:\"result,omitempty\"`\n\t}\n\n\tif err := json.Unmarshal(message, &baseMessage); err != nil {\n\t\treturn createErrorResponse(\n\t\t\tnil,\n\t\t\tmcp.PARSE_ERROR,\n\t\t\t\"Failed to parse message\",\n\t\t)\n\t}\n\n\t// Check for valid JSONRPC version\n\tif baseMessage.JSONRPC != mcp.JSONRPC_VERSION {\n\t\treturn createErrorResponse(\n\t\t\tbaseMessage.ID,\n\t\t\tmcp.INVALID_REQUEST,\n\t\t\t\"Invalid JSON-RPC version\",\n\t\t)\n\t}\n\n\tif baseMessage.ID == nil {\n\t\tvar notification mcp.JSONRPCNotification\n\t\tif err := json.Unmarshal(message, &notification); err != nil {\n\t\t\treturn createErrorResponse(\n\t\t\t\tnil,\n\t\t\t\tmcp.PARSE_ERROR,\n\t\t\t\t\"Failed to parse notification\",\n\t\t\t)\n\t\t}\n\t\ts.handleNotification(ctx, notification)\n\t\treturn nil // Return nil for notifications\n\t}\n\n\tif baseMessage.Result != nil {\n\t\t// this is a response to a request sent by the server (e.g. from a ping\n\t\t// sent due to WithKeepAlive option)\n\t\treturn nil\n\t}\n\n\thandleErr := s.hooks.onRequestInitialization(ctx, baseMessage.ID, message)\n\tif handleErr != nil {\n\t\treturn createErrorResponse(\n\t\t\tbaseMessage.ID,\n\t\t\tmcp.INVALID_REQUEST,\n\t\t\thandleErr.Error(),\n\t\t)\n\t}\n\n\t// Get request header from ctx\n\th := ctx.Value(requestHeader)\n\theaders, ok := h.(http.Header)\n\n\tif headers == nil || !ok {\n\t\theaders = make(http.Header)\n\t}\n\n\tswitch baseMessage.Method {\n\tcase mcp.MethodInitialize:\n\t\tvar request mcp.InitializeRequest\n\t\tvar result *mcp.InitializeResult\n\t\tif unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeInitialize(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleInitialize(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterInitialize(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodPing:\n\t\tvar request mcp.PingRequest\n\t\tvar result *mcp.EmptyResult\n\t\tif unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforePing(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handlePing(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterPing(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodSetLogLevel:\n\t\tvar request mcp.SetLevelRequest\n\t\tvar result *mcp.EmptyResult\n\t\tif s.capabilities.logging == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"logging %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeSetLevel(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleSetLevel(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterSetLevel(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodResourcesList:\n\t\tvar request mcp.ListResourcesRequest\n\t\tvar result *mcp.ListResourcesResult\n\t\tif s.capabilities.resources == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"resources %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeListResources(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleListResources(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterListResources(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodResourcesTemplatesList:\n\t\tvar request mcp.ListResourceTemplatesRequest\n\t\tvar result *mcp.ListResourceTemplatesResult\n\t\tif s.capabilities.resources == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"resources %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeListResourceTemplates(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleListResourceTemplates(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterListResourceTemplates(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodResourcesRead:\n\t\tvar request mcp.ReadResourceRequest\n\t\tvar result *mcp.ReadResourceResult\n\t\tif s.capabilities.resources == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"resources %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeReadResource(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleReadResource(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterReadResource(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodPromptsList:\n\t\tvar request mcp.ListPromptsRequest\n\t\tvar result *mcp.ListPromptsResult\n\t\tif s.capabilities.prompts == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"prompts %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeListPrompts(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleListPrompts(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterListPrompts(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodPromptsGet:\n\t\tvar request mcp.GetPromptRequest\n\t\tvar result *mcp.GetPromptResult\n\t\tif s.capabilities.prompts == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"prompts %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeGetPrompt(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleGetPrompt(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterGetPrompt(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodToolsList:\n\t\tvar request mcp.ListToolsRequest\n\t\tvar result *mcp.ListToolsResult\n\t\tif s.capabilities.tools == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"tools %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeListTools(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleListTools(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterListTools(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodToolsCall:\n\t\tvar request mcp.CallToolRequest\n\t\tvar result any\n\t\tif s.capabilities.tools == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"tools %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeCallTool(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleToolCall(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterCallTool(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, result)\n\tcase mcp.MethodTasksGet:\n\t\tvar request mcp.GetTaskRequest\n\t\tvar result *mcp.GetTaskResult\n\t\tif s.capabilities.tasks == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"tasks %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeGetTask(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleGetTask(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterGetTask(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodTasksList:\n\t\tvar request mcp.ListTasksRequest\n\t\tvar result *mcp.ListTasksResult\n\t\tif s.capabilities.tasks == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"tasks %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeListTasks(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleListTasks(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterListTasks(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodTasksResult:\n\t\tvar request mcp.TaskResultRequest\n\t\tvar result *mcp.TaskResultResult\n\t\tif s.capabilities.tasks == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"tasks %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeTaskResult(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleTaskResult(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterTaskResult(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodTasksCancel:\n\t\tvar request mcp.CancelTaskRequest\n\t\tvar result *mcp.CancelTaskResult\n\t\tif s.capabilities.tasks == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"tasks %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeCancelTask(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleCancelTask(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterCancelTask(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tcase mcp.MethodCompletionComplete:\n\t\tvar request mcp.CompleteRequest\n\t\tvar result *mcp.CompleteResult\n\t\tif s.capabilities.completions == nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"completions %w\", ErrUnsupported),\n\t\t\t}\n\t\t} else if unmarshalErr := json.Unmarshal(message, &request); unmarshalErr != nil {\n\t\t\terr = &requestError{\n\t\t\t\tid:   baseMessage.ID,\n\t\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\t\terr:  &UnparsableMessageError{message: message, err: unmarshalErr, method: baseMessage.Method},\n\t\t\t}\n\t\t} else {\n\t\t\trequest.Header = headers\n\t\t\ts.hooks.beforeComplete(ctx, baseMessage.ID, &request)\n\t\t\tresult, err = s.handleComplete(ctx, baseMessage.ID, request)\n\t\t}\n\t\tif err != nil {\n\t\t\ts.hooks.onError(ctx, baseMessage.ID, baseMessage.Method, &request, err)\n\t\t\treturn err.ToJSONRPCError()\n\t\t}\n\t\ts.hooks.afterComplete(ctx, baseMessage.ID, &request, result)\n\t\treturn createResponse(baseMessage.ID, *result)\n\tdefault:\n\t\treturn createErrorResponse(\n\t\t\tbaseMessage.ID,\n\t\t\tmcp.METHOD_NOT_FOUND,\n\t\t\tfmt.Sprintf(\"Method %s not found\", baseMessage.Method),\n\t\t)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/roots.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\t\"errors\"\n\n\t\"github.com/mark3labs/mcp-go/mcp\"\n)\n\nvar (\n\t// ErrNoClientSession is returned when there is no active client session in the context\n\tErrNoClientSession = errors.New(\"no active client session\")\n\t// ErrRootsNotSupported is returned when the session does not support roots\n\tErrRootsNotSupported = errors.New(\"session does not support roots\")\n)\n\n// RequestRoots sends an list roots request to the client.\n// The client must have declared roots capability during initialization.\n// The session must implement SessionWithRoots to support this operation.\nfunc (s *MCPServer) RequestRoots(ctx context.Context, request mcp.ListRootsRequest) (*mcp.ListRootsResult, error) {\n\tsession := ClientSessionFromContext(ctx)\n\tif session == nil {\n\t\treturn nil, ErrNoClientSession\n\t}\n\n\t// Check if the session supports roots requests\n\tif rootsSession, ok := session.(SessionWithRoots); ok {\n\t\treturn rootsSession.ListRoots(ctx, request)\n\t}\n\n\treturn nil, ErrRootsNotSupported\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/sampling.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/mark3labs/mcp-go/mcp\"\n)\n\n// EnableSampling enables sampling capabilities for the server.\n// This allows the server to send sampling requests to clients that support it.\nfunc (s *MCPServer) EnableSampling() {\n\ts.capabilitiesMu.Lock()\n\tdefer s.capabilitiesMu.Unlock()\n\n\tenabled := true\n\ts.capabilities.sampling = &enabled\n}\n\n// RequestSampling sends a sampling request to the client.\n// The client must have declared sampling capability during initialization.\nfunc (s *MCPServer) RequestSampling(ctx context.Context, request mcp.CreateMessageRequest) (*mcp.CreateMessageResult, error) {\n\tsession := ClientSessionFromContext(ctx)\n\tif session == nil {\n\t\treturn nil, fmt.Errorf(\"no active session\")\n\t}\n\n\t// Check if the session supports sampling requests\n\tif samplingSession, ok := session.(SessionWithSampling); ok {\n\t\treturn samplingSession.RequestSampling(ctx, request)\n\t}\n\n\t// Check for inprocess sampling handler in context\n\tif handler := InProcessSamplingHandlerFromContext(ctx); handler != nil {\n\t\treturn handler.CreateMessage(ctx, request)\n\t}\n\n\treturn nil, fmt.Errorf(\"session does not support sampling\")\n}\n\n// SessionWithSampling extends ClientSession to support sampling requests.\ntype SessionWithSampling interface {\n\tClientSession\n\tRequestSampling(ctx context.Context, request mcp.CreateMessageRequest) (*mcp.CreateMessageResult, error)\n}\n\n// inProcessSamplingHandlerKey is the context key for storing inprocess sampling handler\ntype inProcessSamplingHandlerKey struct{}\n\n// WithInProcessSamplingHandler adds a sampling handler to the context for inprocess clients\nfunc WithInProcessSamplingHandler(ctx context.Context, handler SamplingHandler) context.Context {\n\treturn context.WithValue(ctx, inProcessSamplingHandlerKey{}, handler)\n}\n\n// InProcessSamplingHandlerFromContext retrieves the inprocess sampling handler from context\nfunc InProcessSamplingHandlerFromContext(ctx context.Context) SamplingHandler {\n\tif handler, ok := ctx.Value(inProcessSamplingHandlerKey{}).(SamplingHandler); ok {\n\t\treturn handler\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/server.go",
    "content": "// Package server provides MCP (Model Context Protocol) server implementations.\npackage server\n\nimport (\n\t\"cmp\"\n\t\"context\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"maps\"\n\t\"slices\"\n\t\"sort\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/google/uuid\"\n\t\"github.com/mark3labs/mcp-go/mcp\"\n)\n\n// resourceEntry holds both a resource and its handler\ntype resourceEntry struct {\n\tresource mcp.Resource\n\thandler  ResourceHandlerFunc\n}\n\n// resourceTemplateEntry holds both a template and its handler\ntype resourceTemplateEntry struct {\n\ttemplate mcp.ResourceTemplate\n\thandler  ResourceTemplateHandlerFunc\n}\n\n// taskEntry holds task state and associated data\ntype taskEntry struct {\n\ttask       mcp.Task\n\tsessionID  string\n\ttoolName   string             // Name of the tool that created this task\n\tcreatedAt  time.Time          // When the task was created (for metrics)\n\tresult     any                // The actual result once completed\n\tresultErr  error              // Error if task failed\n\tcancelFunc context.CancelFunc // Function to cancel the task\n\tdone       chan struct{}      // Channel to signal task completion\n\tcompleted  bool               // Whether the task has been completed (guards done channel closure)\n}\n\n// ServerOption is a function that configures an MCPServer.\ntype ServerOption func(*MCPServer)\n\n// ResourceHandlerFunc is a function that returns resource contents.\ntype ResourceHandlerFunc func(ctx context.Context, request mcp.ReadResourceRequest) ([]mcp.ResourceContents, error)\n\n// ResourceTemplateHandlerFunc is a function that returns a resource template.\ntype ResourceTemplateHandlerFunc func(ctx context.Context, request mcp.ReadResourceRequest) ([]mcp.ResourceContents, error)\n\n// PromptHandlerFunc handles prompt requests with given arguments.\ntype PromptHandlerFunc func(ctx context.Context, request mcp.GetPromptRequest) (*mcp.GetPromptResult, error)\n\n// ToolHandlerFunc handles tool calls with given arguments.\ntype ToolHandlerFunc func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error)\n\n// TaskToolHandlerFunc handles tool calls that execute asynchronously.\n// It returns immediately with task creation info; the actual result is\n// retrieved later via tasks/result.\ntype TaskToolHandlerFunc func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CreateTaskResult, error)\n\n// ToolHandlerMiddleware is a middleware function that wraps a ToolHandlerFunc.\ntype ToolHandlerMiddleware func(ToolHandlerFunc) ToolHandlerFunc\n\n// ResourceHandlerMiddleware is a middleware function that wraps a ResourceHandlerFunc.\ntype ResourceHandlerMiddleware func(ResourceHandlerFunc) ResourceHandlerFunc\n\n// ToolFilterFunc is a function that filters tools based on context, typically using session information.\ntype ToolFilterFunc func(ctx context.Context, tools []mcp.Tool) []mcp.Tool\n\n// ServerTool combines a Tool with its ToolHandlerFunc.\ntype ServerTool struct {\n\tTool    mcp.Tool\n\tHandler ToolHandlerFunc\n}\n\n// ServerTaskTool combines a Tool with its TaskToolHandlerFunc.\ntype ServerTaskTool struct {\n\tTool    mcp.Tool\n\tHandler TaskToolHandlerFunc\n}\n\n// ServerPrompt combines a Prompt with its handler function.\ntype ServerPrompt struct {\n\tPrompt  mcp.Prompt\n\tHandler PromptHandlerFunc\n}\n\n// ServerResource combines a Resource with its handler function.\ntype ServerResource struct {\n\tResource mcp.Resource\n\tHandler  ResourceHandlerFunc\n}\n\n// ServerResourceTemplate combines a ResourceTemplate with its handler function.\ntype ServerResourceTemplate struct {\n\tTemplate mcp.ResourceTemplate\n\tHandler  ResourceTemplateHandlerFunc\n}\n\n// serverKey is the context key for storing the server instance\ntype serverKey struct{}\n\n// ServerFromContext retrieves the MCPServer instance from a context\nfunc ServerFromContext(ctx context.Context) *MCPServer {\n\tif srv, ok := ctx.Value(serverKey{}).(*MCPServer); ok {\n\t\treturn srv\n\t}\n\treturn nil\n}\n\n// UnparsableMessageError is attached to the RequestError when json.Unmarshal\n// fails on the request.\ntype UnparsableMessageError struct {\n\tmessage json.RawMessage\n\tmethod  mcp.MCPMethod\n\terr     error\n}\n\nfunc (e *UnparsableMessageError) Error() string {\n\treturn fmt.Sprintf(\"unparsable %s request: %s\", e.method, e.err)\n}\n\nfunc (e *UnparsableMessageError) Unwrap() error {\n\treturn e.err\n}\n\nfunc (e *UnparsableMessageError) GetMessage() json.RawMessage {\n\treturn e.message\n}\n\nfunc (e *UnparsableMessageError) GetMethod() mcp.MCPMethod {\n\treturn e.method\n}\n\n// RequestError is an error that can be converted to a JSON-RPC error.\n// Implements Unwrap() to allow inspecting the error chain.\ntype requestError struct {\n\tid   any\n\tcode int\n\terr  error\n}\n\nfunc (e *requestError) Error() string {\n\treturn fmt.Sprintf(\"request error: %s\", e.err)\n}\n\nfunc (e *requestError) ToJSONRPCError() mcp.JSONRPCError {\n\treturn mcp.JSONRPCError{\n\t\tJSONRPC: mcp.JSONRPC_VERSION,\n\t\tID:      mcp.NewRequestId(e.id),\n\t\tError:   mcp.NewJSONRPCErrorDetails(e.code, e.err.Error(), nil),\n\t}\n}\n\nfunc (e *requestError) Unwrap() error {\n\treturn e.err\n}\n\n// NotificationHandlerFunc handles incoming notifications.\ntype NotificationHandlerFunc func(ctx context.Context, notification mcp.JSONRPCNotification)\n\n// MCPServer implements a Model Context Protocol server that can handle various types of requests\n// including resources, prompts, and tools.\ntype MCPServer struct {\n\t// Separate mutexes for different resource types\n\tresourcesMu            sync.RWMutex\n\tresourceMiddlewareMu   sync.RWMutex\n\tpromptsMu              sync.RWMutex\n\ttoolsMu                sync.RWMutex\n\ttoolMiddlewareMu       sync.RWMutex\n\tnotificationHandlersMu sync.RWMutex\n\tcapabilitiesMu         sync.RWMutex\n\ttoolFiltersMu          sync.RWMutex\n\ttasksMu                sync.RWMutex\n\n\tname                       string\n\tversion                    string\n\tinstructions               string\n\tresources                  map[string]resourceEntry\n\tresourceTemplates          map[string]resourceTemplateEntry\n\tprompts                    map[string]mcp.Prompt\n\tpromptHandlers             map[string]PromptHandlerFunc\n\ttools                      map[string]ServerTool\n\ttaskTools                  map[string]ServerTaskTool\n\ttoolHandlerMiddlewares     []ToolHandlerMiddleware\n\tresourceHandlerMiddlewares []ResourceHandlerMiddleware\n\ttoolFilters                []ToolFilterFunc\n\tnotificationHandlers       map[string]NotificationHandlerFunc\n\tpromptCompletionProvider   PromptCompletionProvider\n\tresourceCompletionProvider ResourceCompletionProvider\n\tcapabilities               serverCapabilities\n\tpaginationLimit            *int\n\tsessions                   sync.Map\n\thooks                      *Hooks\n\ttaskHooks                  *TaskHooks\n\ttasks                      map[string]*taskEntry\n\texpiredTasks               map[string]time.Time // Tracks recently expired task IDs with expiration timestamp\n\tmaxConcurrentTasks         *int                 // Optional limit on concurrent running tasks\n\tactiveTasks                int                  // Current count of running (non-terminal) tasks\n}\n\n// WithPaginationLimit sets the pagination limit for the server.\nfunc WithPaginationLimit(limit int) ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.paginationLimit = &limit\n\t}\n}\n\n// serverCapabilities defines the supported features of the MCP server\ntype serverCapabilities struct {\n\ttools       *toolCapabilities\n\tresources   *resourceCapabilities\n\tprompts     *promptCapabilities\n\tlogging     *bool\n\tsampling    *bool\n\telicitation *bool\n\troots       *bool\n\ttasks       *taskCapabilities\n\tcompletions *bool\n}\n\n// resourceCapabilities defines the supported resource-related features\ntype resourceCapabilities struct {\n\tsubscribe   bool\n\tlistChanged bool\n}\n\n// promptCapabilities defines the supported prompt-related features\ntype promptCapabilities struct {\n\tlistChanged bool\n}\n\n// toolCapabilities defines the supported tool-related features\ntype toolCapabilities struct {\n\tlistChanged bool\n}\n\n// taskCapabilities defines the supported task-related features\ntype taskCapabilities struct {\n\tlist          bool\n\tcancel        bool\n\ttoolCallTasks bool\n}\n\n// WithResourceCapabilities configures resource-related server capabilities\nfunc WithResourceCapabilities(subscribe, listChanged bool) ServerOption {\n\treturn func(s *MCPServer) {\n\t\t// Always create a non-nil capability object\n\t\ts.capabilities.resources = &resourceCapabilities{\n\t\t\tsubscribe:   subscribe,\n\t\t\tlistChanged: listChanged,\n\t\t}\n\t}\n}\n\n// WithPromptCompletionProvider sets a custom prompt completion provider\nfunc WithPromptCompletionProvider(provider PromptCompletionProvider) ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.promptCompletionProvider = provider\n\t}\n}\n\n// WithResourceCompletionProvider sets a custom resource completion provider\nfunc WithResourceCompletionProvider(provider ResourceCompletionProvider) ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.resourceCompletionProvider = provider\n\t}\n}\n\n// WithToolHandlerMiddleware allows adding a middleware for the\n// tool handler call chain.\nfunc WithToolHandlerMiddleware(\n\ttoolHandlerMiddleware ToolHandlerMiddleware,\n) ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.toolMiddlewareMu.Lock()\n\t\ts.toolHandlerMiddlewares = append(s.toolHandlerMiddlewares, toolHandlerMiddleware)\n\t\ts.toolMiddlewareMu.Unlock()\n\t}\n}\n\n// WithResourceHandlerMiddleware allows adding a middleware for the\n// resource handler call chain.\nfunc WithResourceHandlerMiddleware(\n\tresourceHandlerMiddleware ResourceHandlerMiddleware,\n) ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.resourceMiddlewareMu.Lock()\n\t\ts.resourceHandlerMiddlewares = append(s.resourceHandlerMiddlewares, resourceHandlerMiddleware)\n\t\ts.resourceMiddlewareMu.Unlock()\n\t}\n}\n\n// WithResourceRecovery adds a middleware that recovers from panics in resource handlers.\nfunc WithResourceRecovery() ServerOption {\n\treturn WithResourceHandlerMiddleware(func(next ResourceHandlerFunc) ResourceHandlerFunc {\n\t\treturn func(ctx context.Context, request mcp.ReadResourceRequest) (result []mcp.ResourceContents, err error) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\terr = fmt.Errorf(\n\t\t\t\t\t\t\"panic recovered in %s resource handler: %v\",\n\t\t\t\t\t\trequest.Params.URI,\n\t\t\t\t\t\tr,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}()\n\t\t\treturn next(ctx, request)\n\t\t}\n\t})\n}\n\n// WithToolFilter adds a filter function that will be applied to tools before they are returned in list_tools\nfunc WithToolFilter(\n\ttoolFilter ToolFilterFunc,\n) ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.toolFiltersMu.Lock()\n\t\ts.toolFilters = append(s.toolFilters, toolFilter)\n\t\ts.toolFiltersMu.Unlock()\n\t}\n}\n\n// WithRecovery adds a middleware that recovers from panics in tool handlers.\nfunc WithRecovery() ServerOption {\n\treturn WithToolHandlerMiddleware(func(next ToolHandlerFunc) ToolHandlerFunc {\n\t\treturn func(ctx context.Context, request mcp.CallToolRequest) (result *mcp.CallToolResult, err error) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\terr = fmt.Errorf(\n\t\t\t\t\t\t\"panic recovered in %s tool handler: %v\",\n\t\t\t\t\t\trequest.Params.Name,\n\t\t\t\t\t\tr,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}()\n\t\t\treturn next(ctx, request)\n\t\t}\n\t})\n}\n\n// WithHooks allows adding hooks that will be called before or after\n// either [all] requests or before / after specific request methods, or else\n// prior to returning an error to the client.\nfunc WithHooks(hooks *Hooks) ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.hooks = hooks\n\t}\n}\n\n// GetHooks returns the server's current Hooks instance, or nil if no hooks\n// have been configured. The returned pointer can be used to add additional\n// hooks via the Add* methods without replacing existing hook registrations.\nfunc (s *MCPServer) GetHooks() *Hooks {\n\treturn s.hooks\n}\n\n// WithTaskHooks allows adding hooks for task lifecycle events.\n// Use these hooks to monitor task execution, track metrics, and observe\n// task-augmented tool behavior.\nfunc WithTaskHooks(taskHooks *TaskHooks) ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.taskHooks = taskHooks\n\t}\n}\n\n// WithMaxConcurrentTasks sets a limit on the maximum number of concurrent running tasks.\n// When this limit is reached, attempts to create new tasks will fail with an error.\n// If not set (or set to 0), there is no limit on concurrent tasks.\nfunc WithMaxConcurrentTasks(limit int) ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.maxConcurrentTasks = &limit\n\t}\n}\n\n// WithPromptCapabilities configures prompt-related server capabilities\nfunc WithPromptCapabilities(listChanged bool) ServerOption {\n\treturn func(s *MCPServer) {\n\t\t// Always create a non-nil capability object\n\t\ts.capabilities.prompts = &promptCapabilities{\n\t\t\tlistChanged: listChanged,\n\t\t}\n\t}\n}\n\n// WithToolCapabilities configures tool-related server capabilities\nfunc WithToolCapabilities(listChanged bool) ServerOption {\n\treturn func(s *MCPServer) {\n\t\t// Always create a non-nil capability object\n\t\ts.capabilities.tools = &toolCapabilities{\n\t\t\tlistChanged: listChanged,\n\t\t}\n\t}\n}\n\n// WithLogging enables logging capabilities for the server\nfunc WithLogging() ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.capabilities.logging = mcp.ToBoolPtr(true)\n\t}\n}\n\n// WithElicitation enables elicitation capabilities for the server\nfunc WithElicitation() ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.capabilities.elicitation = mcp.ToBoolPtr(true)\n\t}\n}\n\n// WithRoots returns a ServerOption that enables the roots capability on the MCPServer\nfunc WithRoots() ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.capabilities.roots = mcp.ToBoolPtr(true)\n\t}\n}\n\n// WithTaskCapabilities configures task-related server capabilities\nfunc WithTaskCapabilities(list, cancel, toolCallTasks bool) ServerOption {\n\treturn func(s *MCPServer) {\n\t\t// Always create a non-nil capability object\n\t\ts.capabilities.tasks = &taskCapabilities{\n\t\t\tlist:          list,\n\t\t\tcancel:        cancel,\n\t\t\ttoolCallTasks: toolCallTasks,\n\t\t}\n\t}\n}\n\n// WithInstructions sets the server instructions for the client returned in the initialize response\nfunc WithInstructions(instructions string) ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.instructions = instructions\n\t}\n}\n\n// WithCompletions enables the completion capability\nfunc WithCompletions() ServerOption {\n\treturn func(s *MCPServer) {\n\t\ts.capabilities.completions = mcp.ToBoolPtr(true)\n\t}\n}\n\n// NewMCPServer creates a new MCP server instance with the given name, version and options\nfunc NewMCPServer(\n\tname, version string,\n\topts ...ServerOption,\n) *MCPServer {\n\ts := &MCPServer{\n\t\tresources:                  make(map[string]resourceEntry),\n\t\tresourceTemplates:          make(map[string]resourceTemplateEntry),\n\t\tprompts:                    make(map[string]mcp.Prompt),\n\t\tpromptHandlers:             make(map[string]PromptHandlerFunc),\n\t\ttools:                      make(map[string]ServerTool),\n\t\ttaskTools:                  make(map[string]ServerTaskTool),\n\t\ttoolHandlerMiddlewares:     make([]ToolHandlerMiddleware, 0),\n\t\tresourceHandlerMiddlewares: make([]ResourceHandlerMiddleware, 0),\n\t\tname:                       name,\n\t\tversion:                    version,\n\t\tnotificationHandlers:       make(map[string]NotificationHandlerFunc),\n\t\ttasks:                      make(map[string]*taskEntry),\n\t\texpiredTasks:               make(map[string]time.Time),\n\t\tpromptCompletionProvider:   &DefaultPromptCompletionProvider{},\n\t\tresourceCompletionProvider: &DefaultResourceCompletionProvider{},\n\t\tcapabilities: serverCapabilities{\n\t\t\ttools:       nil,\n\t\t\tresources:   nil,\n\t\t\tprompts:     nil,\n\t\t\tlogging:     nil,\n\t\t\tsampling:    nil,\n\t\t\telicitation: nil,\n\t\t\troots:       nil,\n\t\t\ttasks:       nil,\n\t\t\tcompletions: nil,\n\t\t},\n\t}\n\n\tfor _, opt := range opts {\n\t\topt(s)\n\t}\n\n\treturn s\n}\n\n// GenerateInProcessSessionID generates a unique session ID for inprocess clients\nfunc (s *MCPServer) GenerateInProcessSessionID() string {\n\treturn GenerateInProcessSessionID()\n}\n\n// AddResources registers multiple resources at once\nfunc (s *MCPServer) AddResources(resources ...ServerResource) {\n\ts.implicitlyRegisterResourceCapabilities()\n\n\ts.resourcesMu.Lock()\n\tfor _, entry := range resources {\n\t\ts.resources[entry.Resource.URI] = resourceEntry{\n\t\t\tresource: entry.Resource,\n\t\t\thandler:  entry.Handler,\n\t\t}\n\t}\n\ts.resourcesMu.Unlock()\n\n\t// When the list of available resources changes, servers that declared the listChanged capability SHOULD send a notification\n\tif s.capabilities.resources.listChanged {\n\t\t// Send notification to all initialized sessions\n\t\ts.SendNotificationToAllClients(mcp.MethodNotificationResourcesListChanged, nil)\n\t}\n}\n\n// SetResources replaces all existing resources with the provided list\nfunc (s *MCPServer) SetResources(resources ...ServerResource) {\n\ts.resourcesMu.Lock()\n\ts.resources = make(map[string]resourceEntry, len(resources))\n\ts.resourcesMu.Unlock()\n\ts.AddResources(resources...)\n}\n\n// AddResource registers a new resource and its handler\nfunc (s *MCPServer) AddResource(\n\tresource mcp.Resource,\n\thandler ResourceHandlerFunc,\n) {\n\ts.AddResources(ServerResource{Resource: resource, Handler: handler})\n}\n\n// DeleteResources removes resources from the server\nfunc (s *MCPServer) DeleteResources(uris ...string) {\n\ts.resourcesMu.Lock()\n\tvar exists bool\n\tfor _, uri := range uris {\n\t\tif _, ok := s.resources[uri]; ok {\n\t\t\tdelete(s.resources, uri)\n\t\t\texists = true\n\t\t}\n\t}\n\ts.resourcesMu.Unlock()\n\n\t// Send notification to all initialized sessions if listChanged capability is enabled and we actually remove a resource\n\tif exists && s.capabilities.resources != nil && s.capabilities.resources.listChanged {\n\t\ts.SendNotificationToAllClients(mcp.MethodNotificationResourcesListChanged, nil)\n\t}\n}\n\n// RemoveResource removes a resource from the server\nfunc (s *MCPServer) RemoveResource(uri string) {\n\ts.resourcesMu.Lock()\n\t_, exists := s.resources[uri]\n\tif exists {\n\t\tdelete(s.resources, uri)\n\t}\n\ts.resourcesMu.Unlock()\n\n\t// Send notification to all initialized sessions if listChanged capability is enabled and we actually remove a resource\n\tif exists && s.capabilities.resources != nil && s.capabilities.resources.listChanged {\n\t\ts.SendNotificationToAllClients(mcp.MethodNotificationResourcesListChanged, nil)\n\t}\n}\n\n// AddResourceTemplates registers multiple resource templates at once\nfunc (s *MCPServer) AddResourceTemplates(resourceTemplates ...ServerResourceTemplate) {\n\ts.implicitlyRegisterResourceCapabilities()\n\n\ts.resourcesMu.Lock()\n\tfor _, entry := range resourceTemplates {\n\t\ts.resourceTemplates[entry.Template.URITemplate.Raw()] = resourceTemplateEntry{\n\t\t\ttemplate: entry.Template,\n\t\t\thandler:  entry.Handler,\n\t\t}\n\t}\n\ts.resourcesMu.Unlock()\n\n\t// When the list of available resources changes, servers that declared the listChanged capability SHOULD send a notification\n\tif s.capabilities.resources.listChanged {\n\t\t// Send notification to all initialized sessions\n\t\ts.SendNotificationToAllClients(mcp.MethodNotificationResourcesListChanged, nil)\n\t}\n}\n\n// SetResourceTemplates replaces all existing resource templates with the provided list\nfunc (s *MCPServer) SetResourceTemplates(templates ...ServerResourceTemplate) {\n\ts.resourcesMu.Lock()\n\ts.resourceTemplates = make(map[string]resourceTemplateEntry, len(templates))\n\ts.resourcesMu.Unlock()\n\ts.AddResourceTemplates(templates...)\n}\n\n// AddResourceTemplate registers a new resource template and its handler\nfunc (s *MCPServer) AddResourceTemplate(\n\ttemplate mcp.ResourceTemplate,\n\thandler ResourceTemplateHandlerFunc,\n) {\n\ts.AddResourceTemplates(ServerResourceTemplate{Template: template, Handler: handler})\n}\n\n// AddPrompts registers multiple prompts at once\nfunc (s *MCPServer) AddPrompts(prompts ...ServerPrompt) {\n\ts.implicitlyRegisterPromptCapabilities()\n\n\ts.promptsMu.Lock()\n\tfor _, entry := range prompts {\n\t\ts.prompts[entry.Prompt.Name] = entry.Prompt\n\t\ts.promptHandlers[entry.Prompt.Name] = entry.Handler\n\t}\n\ts.promptsMu.Unlock()\n\n\t// When the list of available prompts changes, servers that declared the listChanged capability SHOULD send a notification.\n\tif s.capabilities.prompts.listChanged {\n\t\t// Send notification to all initialized sessions\n\t\ts.SendNotificationToAllClients(mcp.MethodNotificationPromptsListChanged, nil)\n\t}\n}\n\n// AddPrompt registers a new prompt handler with the given name\nfunc (s *MCPServer) AddPrompt(prompt mcp.Prompt, handler PromptHandlerFunc) {\n\ts.AddPrompts(ServerPrompt{Prompt: prompt, Handler: handler})\n}\n\n// SetPrompts replaces all existing prompts with the provided list\nfunc (s *MCPServer) SetPrompts(prompts ...ServerPrompt) {\n\ts.promptsMu.Lock()\n\ts.prompts = make(map[string]mcp.Prompt, len(prompts))\n\ts.promptHandlers = make(map[string]PromptHandlerFunc, len(prompts))\n\ts.promptsMu.Unlock()\n\ts.AddPrompts(prompts...)\n}\n\n// DeletePrompts removes prompts from the server\nfunc (s *MCPServer) DeletePrompts(names ...string) {\n\ts.promptsMu.Lock()\n\tvar exists bool\n\tfor _, name := range names {\n\t\tif _, ok := s.prompts[name]; ok {\n\t\t\tdelete(s.prompts, name)\n\t\t\tdelete(s.promptHandlers, name)\n\t\t\texists = true\n\t\t}\n\t}\n\ts.promptsMu.Unlock()\n\n\t// Send notification to all initialized sessions if listChanged capability is enabled, and we actually remove a prompt\n\tif exists && s.capabilities.prompts != nil && s.capabilities.prompts.listChanged {\n\t\t// Send notification to all initialized sessions\n\t\ts.SendNotificationToAllClients(mcp.MethodNotificationPromptsListChanged, nil)\n\t}\n}\n\n// AddTool registers a new tool and its handler\nfunc (s *MCPServer) AddTool(tool mcp.Tool, handler ToolHandlerFunc) {\n\ts.AddTools(ServerTool{Tool: tool, Handler: handler})\n}\n\n// AddTaskTool registers a new task tool and its handler\nfunc (s *MCPServer) AddTaskTool(tool mcp.Tool, handler TaskToolHandlerFunc) {\n\ts.AddTaskTools(ServerTaskTool{Tool: tool, Handler: handler})\n}\n\n// Register tool capabilities due to a tool being added.  Default to\n// listChanged: true, but don't change the value if we've already explicitly\n// registered tools.listChanged false.\nfunc (s *MCPServer) implicitlyRegisterToolCapabilities() {\n\ts.implicitlyRegisterCapabilities(\n\t\tfunc() bool { return s.capabilities.tools != nil },\n\t\tfunc() { s.capabilities.tools = &toolCapabilities{listChanged: true} },\n\t)\n}\n\nfunc (s *MCPServer) implicitlyRegisterResourceCapabilities() {\n\ts.implicitlyRegisterCapabilities(\n\t\tfunc() bool { return s.capabilities.resources != nil },\n\t\tfunc() { s.capabilities.resources = &resourceCapabilities{} },\n\t)\n}\n\nfunc (s *MCPServer) implicitlyRegisterPromptCapabilities() {\n\ts.implicitlyRegisterCapabilities(\n\t\tfunc() bool { return s.capabilities.prompts != nil },\n\t\tfunc() { s.capabilities.prompts = &promptCapabilities{} },\n\t)\n}\n\nfunc (s *MCPServer) implicitlyRegisterCapabilities(check func() bool, register func()) {\n\ts.capabilitiesMu.RLock()\n\tif check() {\n\t\ts.capabilitiesMu.RUnlock()\n\t\treturn\n\t}\n\ts.capabilitiesMu.RUnlock()\n\n\ts.capabilitiesMu.Lock()\n\tif !check() {\n\t\tregister()\n\t}\n\ts.capabilitiesMu.Unlock()\n}\n\n// AddTools registers multiple tools at once\nfunc (s *MCPServer) AddTools(tools ...ServerTool) {\n\ts.implicitlyRegisterToolCapabilities()\n\n\ts.toolsMu.Lock()\n\tfor _, entry := range tools {\n\t\tname := entry.Tool.Name\n\t\t// Check for collision with task tools\n\t\tif _, exists := s.taskTools[name]; exists {\n\t\t\ts.toolsMu.Unlock()\n\t\t\tpanic(fmt.Sprintf(\"tool name '%s' already registered as task tool\", name))\n\t\t}\n\t\ts.tools[name] = entry\n\t}\n\ts.toolsMu.Unlock()\n\n\t// When the list of available tools changes, servers that declared the listChanged capability SHOULD send a notification.\n\tif s.capabilities.tools.listChanged {\n\t\t// Send notification to all initialized sessions\n\t\ts.SendNotificationToAllClients(mcp.MethodNotificationToolsListChanged, nil)\n\t}\n}\n\n// AddTaskTools registers multiple task tools at once\nfunc (s *MCPServer) AddTaskTools(taskTools ...ServerTaskTool) {\n\ts.implicitlyRegisterToolCapabilities()\n\n\ts.toolsMu.Lock()\n\tfor _, entry := range taskTools {\n\t\tname := entry.Tool.Name\n\t\t// Check for collision with regular tools\n\t\tif _, exists := s.tools[name]; exists {\n\t\t\ts.toolsMu.Unlock()\n\t\t\tpanic(fmt.Sprintf(\"task tool name '%s' already registered as regular tool\", name))\n\t\t}\n\t\ts.taskTools[name] = entry\n\t}\n\ts.toolsMu.Unlock()\n\n\t// When the list of available tools changes, servers that declared the listChanged capability SHOULD send a notification.\n\tif s.capabilities.tools.listChanged {\n\t\t// Send notification to all initialized sessions\n\t\ts.SendNotificationToAllClients(mcp.MethodNotificationToolsListChanged, nil)\n\t}\n}\n\n// SetTools replaces all existing tools with the provided list\nfunc (s *MCPServer) SetTools(tools ...ServerTool) {\n\ts.toolsMu.Lock()\n\ts.tools = make(map[string]ServerTool, len(tools))\n\ts.toolsMu.Unlock()\n\ts.AddTools(tools...)\n}\n\n// GetTool retrieves the specified tool\nfunc (s *MCPServer) GetTool(toolName string) *ServerTool {\n\ts.toolsMu.RLock()\n\tdefer s.toolsMu.RUnlock()\n\tif tool, ok := s.tools[toolName]; ok {\n\t\treturn &tool\n\t}\n\treturn nil\n}\n\nfunc (s *MCPServer) ListTools() map[string]*ServerTool {\n\ts.toolsMu.RLock()\n\tdefer s.toolsMu.RUnlock()\n\tif len(s.tools) == 0 {\n\t\treturn nil\n\t}\n\t// Create a copy to prevent external modification\n\ttoolsCopy := make(map[string]*ServerTool, len(s.tools))\n\tfor name, tool := range s.tools {\n\t\ttoolsCopy[name] = &tool\n\t}\n\treturn toolsCopy\n}\n\n// DeleteTools removes tools from the server\nfunc (s *MCPServer) DeleteTools(names ...string) {\n\ts.toolsMu.Lock()\n\tvar exists bool\n\tfor _, name := range names {\n\t\tif _, ok := s.tools[name]; ok {\n\t\t\tdelete(s.tools, name)\n\t\t\texists = true\n\t\t}\n\t}\n\ts.toolsMu.Unlock()\n\n\t// When the list of available tools changes, servers that declared the listChanged capability SHOULD send a notification.\n\tif exists && s.capabilities.tools != nil && s.capabilities.tools.listChanged {\n\t\t// Send notification to all initialized sessions\n\t\ts.SendNotificationToAllClients(mcp.MethodNotificationToolsListChanged, nil)\n\t}\n}\n\n// AddNotificationHandler registers a new handler for incoming notifications\nfunc (s *MCPServer) AddNotificationHandler(\n\tmethod string,\n\thandler NotificationHandlerFunc,\n) {\n\ts.notificationHandlersMu.Lock()\n\tdefer s.notificationHandlersMu.Unlock()\n\ts.notificationHandlers[method] = handler\n}\n\nfunc (s *MCPServer) handleInitialize(\n\tctx context.Context,\n\t_ any,\n\trequest mcp.InitializeRequest,\n) (*mcp.InitializeResult, *requestError) {\n\tcapabilities := mcp.ServerCapabilities{}\n\n\t// Only add resource capabilities if they're configured\n\tif s.capabilities.resources != nil {\n\t\tcapabilities.Resources = &struct {\n\t\t\tSubscribe   bool `json:\"subscribe,omitempty\"`\n\t\t\tListChanged bool `json:\"listChanged,omitempty\"`\n\t\t}{\n\t\t\tSubscribe:   s.capabilities.resources.subscribe,\n\t\t\tListChanged: s.capabilities.resources.listChanged,\n\t\t}\n\t}\n\n\t// Only add prompt capabilities if they're configured\n\tif s.capabilities.prompts != nil {\n\t\tcapabilities.Prompts = &struct {\n\t\t\tListChanged bool `json:\"listChanged,omitempty\"`\n\t\t}{\n\t\t\tListChanged: s.capabilities.prompts.listChanged,\n\t\t}\n\t}\n\n\t// Only add tool capabilities if they're configured\n\tif s.capabilities.tools != nil {\n\t\tcapabilities.Tools = &struct {\n\t\t\tListChanged bool `json:\"listChanged,omitempty\"`\n\t\t}{\n\t\t\tListChanged: s.capabilities.tools.listChanged,\n\t\t}\n\t}\n\n\tif s.capabilities.logging != nil && *s.capabilities.logging {\n\t\tcapabilities.Logging = &struct{}{}\n\t}\n\n\tif s.capabilities.sampling != nil && *s.capabilities.sampling {\n\t\tcapabilities.Sampling = &struct{}{}\n\t}\n\n\tif s.capabilities.elicitation != nil && *s.capabilities.elicitation {\n\t\tcapabilities.Elicitation = &mcp.ElicitationCapability{}\n\t}\n\n\tif s.capabilities.roots != nil && *s.capabilities.roots {\n\t\tcapabilities.Roots = &struct{}{}\n\t}\n\n\t// Only add task capabilities if they're configured\n\tif s.capabilities.tasks != nil {\n\t\ttasksCapability := &mcp.TasksCapability{}\n\n\t\tif s.capabilities.tasks.list {\n\t\t\ttasksCapability.List = &struct{}{}\n\t\t}\n\n\t\tif s.capabilities.tasks.cancel {\n\t\t\ttasksCapability.Cancel = &struct{}{}\n\t\t}\n\n\t\tif s.capabilities.tasks.toolCallTasks {\n\t\t\ttasksCapability.Requests = &mcp.TaskRequestsCapability{\n\t\t\t\tTools: &struct {\n\t\t\t\t\tCall *struct{} `json:\"call,omitempty\"`\n\t\t\t\t}{\n\t\t\t\t\tCall: &struct{}{},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\tcapabilities.Tasks = tasksCapability\n\t}\n\n\tif s.capabilities.completions != nil && *s.capabilities.completions {\n\t\tcapabilities.Completions = &struct{}{}\n\t}\n\n\tresult := mcp.InitializeResult{\n\t\tProtocolVersion: s.protocolVersion(request.Params.ProtocolVersion),\n\t\tServerInfo: mcp.Implementation{\n\t\t\tName:    s.name,\n\t\t\tVersion: s.version,\n\t\t},\n\t\tCapabilities: capabilities,\n\t\tInstructions: s.instructions,\n\t}\n\n\tif session := ClientSessionFromContext(ctx); session != nil {\n\t\tsession.Initialize()\n\n\t\t// Store client info if the session supports it\n\t\tif sessionWithClientInfo, ok := session.(SessionWithClientInfo); ok {\n\t\t\tsessionWithClientInfo.SetClientInfo(request.Params.ClientInfo)\n\t\t\tsessionWithClientInfo.SetClientCapabilities(request.Params.Capabilities)\n\t\t}\n\t}\n\n\treturn &result, nil\n}\n\nfunc (s *MCPServer) protocolVersion(clientVersion string) string {\n\t// For backwards compatibility, if the server does not receive an MCP-Protocol-Version header,\n\t// and has no other way to identify the version - for example, by relying on the protocol version negotiated\n\t// during initialization - the server SHOULD assume protocol version 2025-03-26\n\t// https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#protocol-version-header\n\tif len(clientVersion) == 0 {\n\t\tclientVersion = \"2025-03-26\"\n\t}\n\n\tif slices.Contains(mcp.ValidProtocolVersions, clientVersion) {\n\t\treturn clientVersion\n\t}\n\n\treturn mcp.LATEST_PROTOCOL_VERSION\n}\n\nfunc (s *MCPServer) handlePing(\n\t_ context.Context,\n\t_ any,\n\t_ mcp.PingRequest,\n) (*mcp.EmptyResult, *requestError) {\n\treturn &mcp.EmptyResult{}, nil\n}\n\nfunc (s *MCPServer) handleSetLevel(\n\tctx context.Context,\n\tid any,\n\trequest mcp.SetLevelRequest,\n) (*mcp.EmptyResult, *requestError) {\n\tclientSession := ClientSessionFromContext(ctx)\n\tif clientSession == nil || !clientSession.Initialized() {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INTERNAL_ERROR,\n\t\t\terr:  ErrSessionNotInitialized,\n\t\t}\n\t}\n\n\tsessionLogging, ok := clientSession.(SessionWithLogging)\n\tif !ok {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INTERNAL_ERROR,\n\t\t\terr:  ErrSessionDoesNotSupportLogging,\n\t\t}\n\t}\n\n\tlevel := request.Params.Level\n\t// Validate logging level\n\tswitch level {\n\tcase mcp.LoggingLevelDebug, mcp.LoggingLevelInfo, mcp.LoggingLevelNotice,\n\t\tmcp.LoggingLevelWarning, mcp.LoggingLevelError, mcp.LoggingLevelCritical,\n\t\tmcp.LoggingLevelAlert, mcp.LoggingLevelEmergency:\n\t\t// Valid level\n\tdefault:\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  fmt.Errorf(\"invalid logging level '%s'\", level),\n\t\t}\n\t}\n\n\tsessionLogging.SetLogLevel(level)\n\n\treturn &mcp.EmptyResult{}, nil\n}\n\nfunc listByPagination[T mcp.Named](\n\t_ context.Context,\n\ts *MCPServer,\n\tcursor mcp.Cursor,\n\tallElements []T,\n) ([]T, mcp.Cursor, error) {\n\tstartPos := 0\n\tif cursor != \"\" {\n\t\tc, err := base64.StdEncoding.DecodeString(string(cursor))\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\tcString := string(c)\n\t\tstartPos = sort.Search(len(allElements), func(i int) bool {\n\t\t\treturn allElements[i].GetName() > cString\n\t\t})\n\t}\n\tendPos := len(allElements)\n\tif s.paginationLimit != nil {\n\t\tif len(allElements) > startPos+*s.paginationLimit {\n\t\t\tendPos = startPos + *s.paginationLimit\n\t\t}\n\t}\n\telementsToReturn := allElements[startPos:endPos]\n\t// set the next cursor\n\tnextCursor := func() mcp.Cursor {\n\t\tif s.paginationLimit != nil && len(elementsToReturn) >= *s.paginationLimit {\n\t\t\tnc := elementsToReturn[len(elementsToReturn)-1].GetName()\n\t\t\ttoString := base64.StdEncoding.EncodeToString([]byte(nc))\n\t\t\treturn mcp.Cursor(toString)\n\t\t}\n\t\treturn \"\"\n\t}()\n\treturn elementsToReturn, nextCursor, nil\n}\n\nfunc (s *MCPServer) handleListResources(\n\tctx context.Context,\n\tid any,\n\trequest mcp.ListResourcesRequest,\n) (*mcp.ListResourcesResult, *requestError) {\n\ts.resourcesMu.RLock()\n\tresourceMap := make(map[string]mcp.Resource, len(s.resources))\n\tfor uri, entry := range s.resources {\n\t\tresourceMap[uri] = entry.resource\n\t}\n\ts.resourcesMu.RUnlock()\n\n\t// Check if there are session-specific resources\n\tsession := ClientSessionFromContext(ctx)\n\tif session != nil {\n\t\tif sessionWithResources, ok := session.(SessionWithResources); ok {\n\t\t\tif sessionResources := sessionWithResources.GetSessionResources(); sessionResources != nil {\n\t\t\t\t// Merge session-specific resources with global resources\n\t\t\t\tfor uri, serverResource := range sessionResources {\n\t\t\t\t\tresourceMap[uri] = serverResource.Resource\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Sort the resources by name\n\tresourcesList := slices.SortedFunc(maps.Values(resourceMap), func(a, b mcp.Resource) int {\n\t\treturn cmp.Compare(a.Name, b.Name)\n\t})\n\n\t// Apply pagination\n\tresourcesToReturn, nextCursor, err := listByPagination(\n\t\tctx,\n\t\ts,\n\t\trequest.Params.Cursor,\n\t\tresourcesList,\n\t)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  err,\n\t\t}\n\t}\n\n\tif resourcesToReturn == nil {\n\t\tresourcesToReturn = []mcp.Resource{}\n\t}\n\n\tresult := mcp.ListResourcesResult{\n\t\tResources: resourcesToReturn,\n\t\tPaginatedResult: mcp.PaginatedResult{\n\t\t\tNextCursor: nextCursor,\n\t\t},\n\t}\n\treturn &result, nil\n}\n\nfunc (s *MCPServer) handleListResourceTemplates(\n\tctx context.Context,\n\tid any,\n\trequest mcp.ListResourceTemplatesRequest,\n) (*mcp.ListResourceTemplatesResult, *requestError) {\n\t// Get global templates\n\ts.resourcesMu.RLock()\n\ttemplateMap := make(map[string]mcp.ResourceTemplate, len(s.resourceTemplates))\n\tfor uri, entry := range s.resourceTemplates {\n\t\ttemplateMap[uri] = entry.template\n\t}\n\ts.resourcesMu.RUnlock()\n\n\t// Check if there are session-specific resource templates\n\tsession := ClientSessionFromContext(ctx)\n\tif session != nil {\n\t\tif sessionWithTemplates, ok := session.(SessionWithResourceTemplates); ok {\n\t\t\tif sessionTemplates := sessionWithTemplates.GetSessionResourceTemplates(); sessionTemplates != nil {\n\t\t\t\t// Merge session-specific templates with global templates\n\t\t\t\t// Session templates override global ones\n\t\t\t\tfor uriTemplate, serverTemplate := range sessionTemplates {\n\t\t\t\t\ttemplateMap[uriTemplate] = serverTemplate.Template\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Convert map to slice for sorting and pagination\n\ttemplates := make([]mcp.ResourceTemplate, 0, len(templateMap))\n\tfor _, template := range templateMap {\n\t\ttemplates = append(templates, template)\n\t}\n\n\tsort.Slice(templates, func(i, j int) bool {\n\t\treturn templates[i].Name < templates[j].Name\n\t})\n\ttemplatesToReturn, nextCursor, err := listByPagination(\n\t\tctx,\n\t\ts,\n\t\trequest.Params.Cursor,\n\t\ttemplates,\n\t)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  err,\n\t\t}\n\t}\n\tresult := mcp.ListResourceTemplatesResult{\n\t\tResourceTemplates: templatesToReturn,\n\t\tPaginatedResult: mcp.PaginatedResult{\n\t\t\tNextCursor: nextCursor,\n\t\t},\n\t}\n\treturn &result, nil\n}\n\nfunc (s *MCPServer) handleReadResource(\n\tctx context.Context,\n\tid any,\n\trequest mcp.ReadResourceRequest,\n) (*mcp.ReadResourceResult, *requestError) {\n\ts.resourcesMu.RLock()\n\n\t// First check session-specific resources\n\tvar handler ResourceHandlerFunc\n\tvar ok bool\n\n\tsession := ClientSessionFromContext(ctx)\n\tif session != nil {\n\t\tif sessionWithResources, typeAssertOk := session.(SessionWithResources); typeAssertOk {\n\t\t\tif sessionResources := sessionWithResources.GetSessionResources(); sessionResources != nil {\n\t\t\t\tresource, sessionOk := sessionResources[request.Params.URI]\n\t\t\t\tif sessionOk {\n\t\t\t\t\thandler = resource.Handler\n\t\t\t\t\tok = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// If not found in session tools, check global tools\n\tif !ok {\n\t\tglobalResource, rok := s.resources[request.Params.URI]\n\t\tif rok {\n\t\t\thandler = globalResource.handler\n\t\t\tok = true\n\t\t}\n\t}\n\n\t// First try direct resource handlers\n\tif ok {\n\t\ts.resourcesMu.RUnlock()\n\n\t\tfinalHandler := handler\n\t\ts.resourceMiddlewareMu.RLock()\n\t\tmw := s.resourceHandlerMiddlewares\n\t\t// Apply middlewares in reverse order\n\t\tfor i := len(mw) - 1; i >= 0; i-- {\n\t\t\tfinalHandler = mw[i](finalHandler)\n\t\t}\n\t\ts.resourceMiddlewareMu.RUnlock()\n\n\t\tcontents, err := finalHandler(ctx, request)\n\t\tif err != nil {\n\t\t\treturn nil, &requestError{\n\t\t\t\tid:   id,\n\t\t\t\tcode: mcp.INTERNAL_ERROR,\n\t\t\t\terr:  err,\n\t\t\t}\n\t\t}\n\t\treturn &mcp.ReadResourceResult{Contents: contents}, nil\n\t}\n\n\t// If no direct handler found, try matching against templates\n\tvar matchedHandler ResourceTemplateHandlerFunc\n\tvar matched bool\n\n\t// First check session templates if available\n\tif session != nil {\n\t\tif sessionWithTemplates, ok := session.(SessionWithResourceTemplates); ok {\n\t\t\tsessionTemplates := sessionWithTemplates.GetSessionResourceTemplates()\n\t\t\tfor _, serverTemplate := range sessionTemplates {\n\t\t\t\tif serverTemplate.Template.URITemplate == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif matchesTemplate(request.Params.URI, serverTemplate.Template.URITemplate) {\n\t\t\t\t\tmatchedHandler = serverTemplate.Handler\n\t\t\t\t\tmatched = true\n\t\t\t\t\tmatchedVars := serverTemplate.Template.URITemplate.Match(request.Params.URI)\n\t\t\t\t\t// Convert matched variables to a map\n\t\t\t\t\trequest.Params.Arguments = make(map[string]any, len(matchedVars))\n\t\t\t\t\tfor name, value := range matchedVars {\n\t\t\t\t\t\trequest.Params.Arguments[name] = value.V\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// If not found in session templates, check global templates\n\tif !matched {\n\t\tfor _, entry := range s.resourceTemplates {\n\t\t\ttemplate := entry.template\n\t\t\tif template.URITemplate == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif matchesTemplate(request.Params.URI, template.URITemplate) {\n\t\t\t\tmatchedHandler = entry.handler\n\t\t\t\tmatched = true\n\t\t\t\tmatchedVars := template.URITemplate.Match(request.Params.URI)\n\t\t\t\t// Convert matched variables to a map\n\t\t\t\trequest.Params.Arguments = make(map[string]any, len(matchedVars))\n\t\t\t\tfor name, value := range matchedVars {\n\t\t\t\t\trequest.Params.Arguments[name] = value.V\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\ts.resourcesMu.RUnlock()\n\n\tif matched {\n\t\t// If a match is found, then we have a final handler and can\n\t\t// apply middlewares.\n\t\ts.resourceMiddlewareMu.RLock()\n\t\tfinalHandler := ResourceHandlerFunc(matchedHandler)\n\t\tmw := s.resourceHandlerMiddlewares\n\t\t// Apply middlewares in reverse order\n\t\tfor i := len(mw) - 1; i >= 0; i-- {\n\t\t\tfinalHandler = mw[i](finalHandler)\n\t\t}\n\t\ts.resourceMiddlewareMu.RUnlock()\n\t\tcontents, err := finalHandler(ctx, request)\n\t\tif err != nil {\n\t\t\treturn nil, &requestError{\n\t\t\t\tid:   id,\n\t\t\t\tcode: mcp.INTERNAL_ERROR,\n\t\t\t\terr:  err,\n\t\t\t}\n\t\t}\n\t\treturn &mcp.ReadResourceResult{Contents: contents}, nil\n\t}\n\n\treturn nil, &requestError{\n\t\tid:   id,\n\t\tcode: mcp.RESOURCE_NOT_FOUND,\n\t\terr: fmt.Errorf(\n\t\t\t\"handler not found for resource URI '%s': %w\",\n\t\t\trequest.Params.URI,\n\t\t\tErrResourceNotFound,\n\t\t),\n\t}\n}\n\n// matchesTemplate checks if a URI matches a URI template pattern\nfunc matchesTemplate(uri string, template *mcp.URITemplate) bool {\n\treturn template.Regexp().MatchString(uri)\n}\n\nfunc (s *MCPServer) handleListPrompts(\n\tctx context.Context,\n\tid any,\n\trequest mcp.ListPromptsRequest,\n) (*mcp.ListPromptsResult, *requestError) {\n\ts.promptsMu.RLock()\n\tprompts := make([]mcp.Prompt, 0, len(s.prompts))\n\tfor _, prompt := range s.prompts {\n\t\tprompts = append(prompts, prompt)\n\t}\n\ts.promptsMu.RUnlock()\n\n\t// sort prompts by name\n\tsort.Slice(prompts, func(i, j int) bool {\n\t\treturn prompts[i].Name < prompts[j].Name\n\t})\n\tpromptsToReturn, nextCursor, err := listByPagination(\n\t\tctx,\n\t\ts,\n\t\trequest.Params.Cursor,\n\t\tprompts,\n\t)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  err,\n\t\t}\n\t}\n\tresult := mcp.ListPromptsResult{\n\t\tPrompts: promptsToReturn,\n\t\tPaginatedResult: mcp.PaginatedResult{\n\t\t\tNextCursor: nextCursor,\n\t\t},\n\t}\n\treturn &result, nil\n}\n\nfunc (s *MCPServer) handleGetPrompt(\n\tctx context.Context,\n\tid any,\n\trequest mcp.GetPromptRequest,\n) (*mcp.GetPromptResult, *requestError) {\n\ts.promptsMu.RLock()\n\thandler, ok := s.promptHandlers[request.Params.Name]\n\ts.promptsMu.RUnlock()\n\n\tif !ok {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  fmt.Errorf(\"prompt '%s' not found: %w\", request.Params.Name, ErrPromptNotFound),\n\t\t}\n\t}\n\n\tresult, err := handler(ctx, request)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INTERNAL_ERROR,\n\t\t\terr:  err,\n\t\t}\n\t}\n\n\treturn result, nil\n}\n\nfunc (s *MCPServer) handleListTools(\n\tctx context.Context,\n\tid any,\n\trequest mcp.ListToolsRequest,\n) (*mcp.ListToolsResult, *requestError) {\n\t// Get the base tools from the server (both regular and task tools)\n\ts.toolsMu.RLock()\n\ttools := make([]mcp.Tool, 0, len(s.tools)+len(s.taskTools))\n\n\t// Get all tool names for consistent ordering\n\ttoolNames := make([]string, 0, len(s.tools)+len(s.taskTools))\n\tfor name := range s.tools {\n\t\ttoolNames = append(toolNames, name)\n\t}\n\tfor name := range s.taskTools {\n\t\ttoolNames = append(toolNames, name)\n\t}\n\n\t// Sort the tool names for consistent ordering\n\tsort.Strings(toolNames)\n\n\t// Add tools in sorted order\n\tfor _, name := range toolNames {\n\t\tif tool, ok := s.tools[name]; ok {\n\t\t\ttools = append(tools, tool.Tool)\n\t\t} else if taskTool, ok := s.taskTools[name]; ok {\n\t\t\ttools = append(tools, taskTool.Tool)\n\t\t}\n\t}\n\ts.toolsMu.RUnlock()\n\n\t// Check if there are session-specific tools\n\tsession := ClientSessionFromContext(ctx)\n\tif session != nil {\n\t\tif sessionWithTools, ok := session.(SessionWithTools); ok {\n\t\t\tif sessionTools := sessionWithTools.GetSessionTools(); sessionTools != nil {\n\t\t\t\t// Override or add session-specific tools\n\t\t\t\t// We need to create a map first to merge the tools properly\n\t\t\t\ttoolMap := make(map[string]mcp.Tool)\n\n\t\t\t\t// Add global tools first\n\t\t\t\tfor _, tool := range tools {\n\t\t\t\t\ttoolMap[tool.Name] = tool\n\t\t\t\t}\n\n\t\t\t\t// Then override with session-specific tools\n\t\t\t\tfor name, serverTool := range sessionTools {\n\t\t\t\t\ttoolMap[name] = serverTool.Tool\n\t\t\t\t}\n\n\t\t\t\t// Convert back to slice\n\t\t\t\ttools = make([]mcp.Tool, 0, len(toolMap))\n\t\t\t\tfor _, tool := range toolMap {\n\t\t\t\t\ttools = append(tools, tool)\n\t\t\t\t}\n\n\t\t\t\t// Sort again to maintain consistent ordering\n\t\t\t\tsort.Slice(tools, func(i, j int) bool {\n\t\t\t\t\treturn tools[i].Name < tools[j].Name\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\t// Apply tool filters if any are defined\n\ts.toolFiltersMu.RLock()\n\tif len(s.toolFilters) > 0 {\n\t\tfor _, filter := range s.toolFilters {\n\t\t\ttools = filter(ctx, tools)\n\t\t}\n\t}\n\ts.toolFiltersMu.RUnlock()\n\n\t// Apply pagination\n\ttoolsToReturn, nextCursor, err := listByPagination(\n\t\tctx,\n\t\ts,\n\t\trequest.Params.Cursor,\n\t\ttools,\n\t)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  err,\n\t\t}\n\t}\n\n\tresult := mcp.ListToolsResult{\n\t\tTools: toolsToReturn,\n\t\tPaginatedResult: mcp.PaginatedResult{\n\t\t\tNextCursor: nextCursor,\n\t\t},\n\t}\n\treturn &result, nil\n}\n\nfunc (s *MCPServer) handleToolCall(\n\tctx context.Context,\n\tid any,\n\trequest mcp.CallToolRequest,\n) (any, *requestError) {\n\t// First check session-specific tools\n\tvar tool ServerTool\n\tvar ok bool\n\n\tsession := ClientSessionFromContext(ctx)\n\tif session != nil {\n\t\tif sessionWithTools, typeAssertOk := session.(SessionWithTools); typeAssertOk {\n\t\t\tif sessionTools := sessionWithTools.GetSessionTools(); sessionTools != nil {\n\t\t\t\tvar sessionOk bool\n\t\t\t\ttool, sessionOk = sessionTools[request.Params.Name]\n\t\t\t\tif sessionOk {\n\t\t\t\t\tok = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// If not found in session tools, check global tools\n\tif !ok {\n\t\ts.toolsMu.RLock()\n\t\ttool, ok = s.tools[request.Params.Name]\n\t\t// If not in regular tools, check task tools\n\t\tif !ok {\n\t\t\tif taskTool, taskOk := s.taskTools[request.Params.Name]; taskOk {\n\t\t\t\t// Convert ServerTaskTool to ServerTool for validation\n\t\t\t\t// The tool metadata is the same, we just need it for checking task support\n\t\t\t\ttool = ServerTool{\n\t\t\t\t\tTool:    taskTool.Tool,\n\t\t\t\t\tHandler: nil, // Handler will be used from taskTool in handleTaskAugmentedToolCall\n\t\t\t\t}\n\t\t\t\tok = true\n\t\t\t}\n\t\t}\n\t\ts.toolsMu.RUnlock()\n\t}\n\n\tif !ok {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  fmt.Errorf(\"tool '%s' not found: %w\", request.Params.Name, ErrToolNotFound),\n\t\t}\n\t}\n\n\t// Validate task support requirements\n\tif tool.Tool.Execution != nil && tool.Tool.Execution.TaskSupport == mcp.TaskSupportRequired {\n\t\tif request.Params.Task == nil {\n\t\t\treturn nil, &requestError{\n\t\t\t\tid:   id,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"tool '%s' requires task augmentation\", request.Params.Name),\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if this should be executed as a task (hybrid mode support)\n\t// Tools with TaskSupportOptional or TaskSupportRequired can be executed as tasks\n\tshouldExecuteAsTask := request.Params.Task != nil &&\n\t\ttool.Tool.Execution != nil &&\n\t\t(tool.Tool.Execution.TaskSupport == mcp.TaskSupportOptional ||\n\t\t\ttool.Tool.Execution.TaskSupport == mcp.TaskSupportRequired)\n\n\tif shouldExecuteAsTask {\n\t\t// Route to task-augmented execution handler\n\t\treturn s.handleTaskAugmentedToolCall(ctx, id, request)\n\t}\n\n\tfinalHandler := tool.Handler\n\n\ts.toolMiddlewareMu.RLock()\n\tmw := s.toolHandlerMiddlewares\n\n\t// Apply middlewares in reverse order\n\tfor i := len(mw) - 1; i >= 0; i-- {\n\t\tfinalHandler = mw[i](finalHandler)\n\t}\n\ts.toolMiddlewareMu.RUnlock()\n\n\tresult, err := finalHandler(ctx, request)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INTERNAL_ERROR,\n\t\t\terr:  err,\n\t\t}\n\t}\n\n\treturn result, nil\n}\n\n// handleTaskAugmentedToolCall handles tool calls that are executed as tasks.\n// It creates a task entry, starts async execution, and returns CreateTaskResult immediately.\nfunc (s *MCPServer) handleTaskAugmentedToolCall(\n\tctx context.Context,\n\tid any,\n\trequest mcp.CallToolRequest,\n) (*mcp.CreateTaskResult, *requestError) {\n\t// Look up the tool - check both taskTools and regular tools\n\ts.toolsMu.RLock()\n\ttaskTool, isTaskTool := s.taskTools[request.Params.Name]\n\tregularTool, isRegularTool := s.tools[request.Params.Name]\n\ts.toolsMu.RUnlock()\n\n\t// Determine which tool to use and validate task support\n\tvar toolToUse ServerTaskTool\n\tvar hasTaskHandler bool\n\n\tif isTaskTool {\n\t\t// Tool is registered as a task tool\n\t\ttoolToUse = taskTool\n\t\thasTaskHandler = true\n\t} else if isRegularTool {\n\t\t// Tool is a regular tool with task support\n\t\t// Validate that it actually supports task augmentation\n\t\tif regularTool.Tool.Execution == nil ||\n\t\t\t(regularTool.Tool.Execution.TaskSupport != mcp.TaskSupportOptional &&\n\t\t\t\tregularTool.Tool.Execution.TaskSupport != mcp.TaskSupportRequired) {\n\t\t\treturn nil, &requestError{\n\t\t\t\tid:   id,\n\t\t\t\tcode: mcp.METHOD_NOT_FOUND,\n\t\t\t\terr:  fmt.Errorf(\"tool '%s' does not support task augmentation\", request.Params.Name),\n\t\t\t}\n\t\t}\n\n\t\thasTaskHandler = false\n\t} else {\n\t\t// Tool not found in either map\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  fmt.Errorf(\"tool '%s' not found\", request.Params.Name),\n\t\t}\n\t}\n\n\t// Generate task ID (UUID v4)\n\ttaskID := uuid.New().String()\n\n\t// Extract TTL from task params\n\tvar ttl *int64\n\tif request.Params.Task != nil {\n\t\tttl = request.Params.Task.TTL\n\t}\n\n\t// Create task entry (pollInterval is nil - server doesn't set a default)\n\tentry, err := s.createTask(ctx, taskID, request.Params.Name, ttl, nil)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INTERNAL_ERROR,\n\t\t\terr:  err,\n\t\t}\n\t}\n\n\t// Execute tool asynchronously\n\t// For regular tools being used as tasks, we need different execution logic\n\tif hasTaskHandler {\n\t\tgo s.executeTaskTool(ctx, entry, toolToUse, request)\n\t} else {\n\t\t// Execute regular tool wrapped as a task\n\t\tgo s.executeRegularToolAsTask(ctx, entry, regularTool, request)\n\t}\n\n\t// Return CreateTaskResult immediately with task as top-level field\n\t// Make a copy of the task to avoid data races with background goroutine\n\ts.tasksMu.RLock()\n\ttaskCopy := entry.task\n\ts.tasksMu.RUnlock()\n\n\treturn &mcp.CreateTaskResult{\n\t\tTask: taskCopy,\n\t}, nil\n}\n\n// executeTaskTool executes a task tool handler asynchronously.\n// It creates a cancellable context, stores the cancel function for potential cancellation,\n// and executes the handler in the background, storing the result when complete.\nfunc (s *MCPServer) executeTaskTool(\n\tctx context.Context,\n\tentry *taskEntry,\n\ttaskTool ServerTaskTool,\n\trequest mcp.CallToolRequest,\n) {\n\t// Create cancellable context for this task execution\n\ttaskCtx, cancel := context.WithCancel(ctx)\n\tdefer cancel()\n\n\t// Store cancel func in entry so it can be cancelled via tasks/cancel\n\ts.tasksMu.Lock()\n\tentry.cancelFunc = cancel\n\ts.tasksMu.Unlock()\n\n\t// Execute the task tool handler\n\tresult, err := taskTool.Handler(taskCtx, request)\n\n\tif err != nil {\n\t\t// If the error is due to context cancellation, don't mark as failed.\n\t\t// The cancelTask method will handle setting the proper status.\n\t\t// However, if cancelTask hasn't been called yet, we should still mark it.\n\t\tif errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) {\n\t\t\t// Check if task was already cancelled via tasks/cancel\n\t\t\ts.tasksMu.Lock()\n\t\t\talreadyCancelled := entry.task.Status == mcp.TaskStatusCancelled\n\t\t\ts.tasksMu.Unlock()\n\n\t\t\tif !alreadyCancelled {\n\t\t\t\t// Handler detected cancellation before tasks/cancel was called\n\t\t\t\t// Mark as cancelled with the context error message\n\t\t\t\tcancelledAt := time.Now()\n\t\t\t\tduration := cancelledAt.Sub(entry.createdAt)\n\n\t\t\t\ts.tasksMu.Lock()\n\t\t\t\tif !entry.completed {\n\t\t\t\t\tentry.task.Status = mcp.TaskStatusCancelled\n\t\t\t\t\tentry.task.StatusMessage = err.Error()\n\t\t\t\t\tentry.task.LastUpdatedAt = cancelledAt.UTC().Format(time.RFC3339)\n\t\t\t\t\tentry.completed = true\n\t\t\t\t\tclose(entry.done)\n\n\t\t\t\t\t// Decrement active tasks counter\n\t\t\t\t\ts.activeTasks--\n\n\t\t\t\t\ts.sendTaskStatusNotification(entry.task)\n\n\t\t\t\t\t// Fire task cancellation hook\n\t\t\t\t\tif s.taskHooks != nil {\n\t\t\t\t\t\tmetrics := TaskMetrics{\n\t\t\t\t\t\t\tTaskID:        entry.task.TaskId,\n\t\t\t\t\t\t\tToolName:      entry.toolName,\n\t\t\t\t\t\t\tStatus:        entry.task.Status,\n\t\t\t\t\t\t\tStatusMessage: entry.task.StatusMessage,\n\t\t\t\t\t\t\tCreatedAt:     entry.createdAt,\n\t\t\t\t\t\t\tCompletedAt:   &cancelledAt,\n\t\t\t\t\t\t\tDuration:      duration,\n\t\t\t\t\t\t\tSessionID:     entry.sessionID,\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts.taskHooks.taskCancelled(ctx, metrics)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ts.tasksMu.Unlock()\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\t// Task failed - complete with error\n\t\ts.completeTask(entry, nil, err)\n\t\treturn\n\t}\n\n\t// Task succeeded - store the CreateTaskResult\n\t// Note: The actual result will be retrieved later via tasks/result\n\ts.completeTask(entry, result, nil)\n}\n\n// executeRegularToolAsTask executes a regular tool handler asynchronously as a task.\n// This is used for hybrid mode where a tool with TaskSupportOptional is called with task params.\nfunc (s *MCPServer) executeRegularToolAsTask(\n\tctx context.Context,\n\tentry *taskEntry,\n\tregularTool ServerTool,\n\trequest mcp.CallToolRequest,\n) {\n\t// Create cancellable context for this task execution\n\ttaskCtx, cancel := context.WithCancel(ctx)\n\tdefer cancel()\n\n\t// Store cancel func in entry so it can be cancelled via tasks/cancel\n\ts.tasksMu.Lock()\n\tentry.cancelFunc = cancel\n\ts.tasksMu.Unlock()\n\n\t// Execute the regular tool handler\n\tresult, err := regularTool.Handler(taskCtx, request)\n\n\tif err != nil {\n\t\t// If the error is due to context cancellation, don't mark as failed.\n\t\t// The cancelTask method will handle setting the proper status.\n\t\t// However, if cancelTask hasn't been called yet, we should still mark it.\n\t\tif errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) {\n\t\t\t// Check if task was already cancelled via tasks/cancel\n\t\t\ts.tasksMu.Lock()\n\t\t\talreadyCancelled := entry.task.Status == mcp.TaskStatusCancelled\n\t\t\ts.tasksMu.Unlock()\n\n\t\t\tif !alreadyCancelled {\n\t\t\t\t// Handler detected cancellation before tasks/cancel was called\n\t\t\t\t// Mark as cancelled with the context error message\n\t\t\t\tcancelledAt := time.Now()\n\t\t\t\tduration := cancelledAt.Sub(entry.createdAt)\n\n\t\t\t\ts.tasksMu.Lock()\n\t\t\t\tif !entry.completed {\n\t\t\t\t\tentry.task.Status = mcp.TaskStatusCancelled\n\t\t\t\t\tentry.task.StatusMessage = err.Error()\n\t\t\t\t\tentry.task.LastUpdatedAt = cancelledAt.UTC().Format(time.RFC3339)\n\t\t\t\t\tentry.completed = true\n\t\t\t\t\tclose(entry.done)\n\n\t\t\t\t\t// Decrement active tasks counter\n\t\t\t\t\ts.activeTasks--\n\n\t\t\t\t\ts.sendTaskStatusNotification(entry.task)\n\n\t\t\t\t\t// Fire task cancellation hook\n\t\t\t\t\tif s.taskHooks != nil {\n\t\t\t\t\t\tmetrics := TaskMetrics{\n\t\t\t\t\t\t\tTaskID:        entry.task.TaskId,\n\t\t\t\t\t\t\tToolName:      entry.toolName,\n\t\t\t\t\t\t\tStatus:        entry.task.Status,\n\t\t\t\t\t\t\tStatusMessage: entry.task.StatusMessage,\n\t\t\t\t\t\t\tCreatedAt:     entry.createdAt,\n\t\t\t\t\t\t\tCompletedAt:   &cancelledAt,\n\t\t\t\t\t\t\tDuration:      duration,\n\t\t\t\t\t\t\tSessionID:     entry.sessionID,\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts.taskHooks.taskCancelled(ctx, metrics)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ts.tasksMu.Unlock()\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\t// Task failed - complete with error\n\t\ts.completeTask(entry, nil, err)\n\t\treturn\n\t}\n\n\t// Task succeeded - store the CallToolResult directly\n\t// When retrieved via tasks/result, this will be returned to the client\n\ts.completeTask(entry, result, nil)\n}\n\nfunc (s *MCPServer) handleNotification(\n\tctx context.Context,\n\tnotification mcp.JSONRPCNotification,\n) mcp.JSONRPCMessage {\n\ts.notificationHandlersMu.RLock()\n\thandler, ok := s.notificationHandlers[notification.Method]\n\ts.notificationHandlersMu.RUnlock()\n\n\tif ok {\n\t\thandler(ctx, notification)\n\t}\n\treturn nil\n}\n\nfunc createResponse(id any, result any) mcp.JSONRPCMessage {\n\treturn mcp.NewJSONRPCResultResponse(mcp.NewRequestId(id), result)\n}\n\nfunc createErrorResponse(\n\tid any,\n\tcode int,\n\tmessage string,\n) mcp.JSONRPCMessage {\n\treturn mcp.JSONRPCError{\n\t\tJSONRPC: mcp.JSONRPC_VERSION,\n\t\tID:      mcp.NewRequestId(id),\n\t\tError:   mcp.NewJSONRPCErrorDetails(code, message, nil),\n\t}\n}\n\n//\n// Task Request Handlers\n//\n\n// handleGetTask handles tasks/get requests to retrieve task status.\nfunc (s *MCPServer) handleGetTask(\n\tctx context.Context,\n\tid any,\n\trequest mcp.GetTaskRequest,\n) (*mcp.GetTaskResult, *requestError) {\n\ttask, _, err := s.getTask(ctx, request.Params.TaskId)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  err,\n\t\t}\n\t}\n\n\tresult := mcp.NewGetTaskResult(task)\n\treturn &result, nil\n}\n\n// handleListTasks handles tasks/list requests to list all tasks.\nfunc (s *MCPServer) handleListTasks(\n\tctx context.Context,\n\tid any,\n\trequest mcp.ListTasksRequest,\n) (*mcp.ListTasksResult, *requestError) {\n\ttasks := s.listTasks(ctx)\n\n\t// Sort tasks by TaskId for consistent pagination\n\tsort.Slice(tasks, func(i, j int) bool {\n\t\treturn tasks[i].TaskId < tasks[j].TaskId\n\t})\n\n\t// Apply pagination\n\ttasksToReturn, nextCursor, err := listByPagination(\n\t\tctx,\n\t\ts,\n\t\trequest.Params.Cursor,\n\t\ttasks,\n\t)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  err,\n\t\t}\n\t}\n\n\tresult := mcp.ListTasksResult{\n\t\tTasks: tasksToReturn,\n\t\tPaginatedResult: mcp.PaginatedResult{\n\t\t\tNextCursor: nextCursor,\n\t\t},\n\t}\n\treturn &result, nil\n}\n\n// handleTaskResult handles tasks/result requests to get task results.\nfunc (s *MCPServer) handleTaskResult(\n\tctx context.Context,\n\tid any,\n\trequest mcp.TaskResultRequest,\n) (*mcp.TaskResultResult, *requestError) {\n\ttask, done, err := s.getTask(ctx, request.Params.TaskId)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  err,\n\t\t}\n\t}\n\n\t// Wait for task completion if not terminal\n\tif !task.Status.IsTerminal() {\n\t\tselect {\n\t\tcase <-done:\n\t\t\t// Task completed\n\t\tcase <-ctx.Done():\n\t\t\treturn nil, &requestError{\n\t\t\t\tid:   id,\n\t\t\t\tcode: mcp.REQUEST_INTERRUPTED,\n\t\t\t\terr:  ctx.Err(),\n\t\t\t}\n\t\t}\n\t}\n\n\t// Re-fetch the task entry to get the final result/error under lock\n\tentry, err := s.getTaskEntry(ctx, request.Params.TaskId)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  err,\n\t\t}\n\t}\n\n\t// Read result and error under lock\n\ts.tasksMu.RLock()\n\tstoredResult := entry.result\n\tresultErr := entry.resultErr\n\ttaskID := entry.task.TaskId\n\ts.tasksMu.RUnlock()\n\n\t// Return error if task failed\n\tif resultErr != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INTERNAL_ERROR,\n\t\t\terr:  resultErr,\n\t\t}\n\t}\n\n\t// Extract the CallToolResult and populate TaskResultResult\n\tresult := &mcp.TaskResultResult{\n\t\tResult: mcp.Result{\n\t\t\tMeta: mcp.WithRelatedTask(taskID),\n\t\t},\n\t}\n\n\t// If the stored result is a CallToolResult, extract its fields\n\tif callToolResult, ok := storedResult.(*mcp.CallToolResult); ok {\n\t\tresult.Content = callToolResult.Content\n\t\tresult.StructuredContent = callToolResult.StructuredContent\n\t\tresult.IsError = callToolResult.IsError\n\n\t\t// Merge any meta from the original result with the related task meta\n\t\tif callToolResult.Meta != nil {\n\t\t\tif result.Meta.AdditionalFields == nil {\n\t\t\t\tresult.Meta.AdditionalFields = make(map[string]any)\n\t\t\t}\n\t\t\t// Copy over any additional fields from the original result\n\t\t\tfor k, v := range callToolResult.Meta.AdditionalFields {\n\t\t\t\t// Don't overwrite the related task meta\n\t\t\t\tif k != mcp.RelatedTaskMetaKey {\n\t\t\t\t\tresult.Meta.AdditionalFields[k] = v\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result, nil\n}\n\n// handleCancelTask handles tasks/cancel requests to cancel a task.\nfunc (s *MCPServer) handleCancelTask(\n\tctx context.Context,\n\tid any,\n\trequest mcp.CancelTaskRequest,\n) (*mcp.CancelTaskResult, *requestError) {\n\terr := s.cancelTask(ctx, request.Params.TaskId)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  err,\n\t\t}\n\t}\n\n\t// Get the updated task\n\ttask, _, err := s.getTask(ctx, request.Params.TaskId)\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_PARAMS,\n\t\t\terr:  err,\n\t\t}\n\t}\n\n\tresult := mcp.NewCancelTaskResult(task)\n\treturn &result, nil\n}\n\nfunc (s *MCPServer) handleComplete(\n\tctx context.Context,\n\tid any,\n\trequest mcp.CompleteRequest,\n) (*mcp.CompleteResult, *requestError) {\n\tvar completion *mcp.Completion\n\tvar err error\n\tswitch ref := request.Params.Ref.(type) {\n\tcase mcp.PromptReference:\n\t\tcompletion, err = s.promptCompletionProvider.CompletePromptArgument(\n\t\t\tctx,\n\t\t\tref.Name,\n\t\t\trequest.Params.Argument,\n\t\t\trequest.Params.Context,\n\t\t)\n\tcase mcp.ResourceReference:\n\t\tcompletion, err = s.resourceCompletionProvider.CompleteResourceArgument(\n\t\t\tctx,\n\t\t\tref.URI,\n\t\t\trequest.Params.Argument,\n\t\t\trequest.Params.Context,\n\t\t)\n\tdefault:\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INVALID_REQUEST,\n\t\t\terr:  fmt.Errorf(\"unknown reference type: %v\", ref),\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn nil, &requestError{\n\t\t\tid:   id,\n\t\t\tcode: mcp.INTERNAL_ERROR,\n\t\t\terr:  err,\n\t\t}\n\t}\n\n\t// Defensive nil check: default providers always return non-nil completions,\n\t// but custom providers might erroneously return nil. Treat as empty result.\n\tif completion == nil {\n\t\treturn &mcp.CompleteResult{}, nil\n\t}\n\n\treturn &mcp.CompleteResult{\n\t\tCompletion: *completion,\n\t}, nil\n}\n\n//\n// Task Management Methods\n//\n\n// createTask creates a new task entry and returns it.\n// Returns an error if the max concurrent tasks limit is exceeded.\nfunc (s *MCPServer) createTask(ctx context.Context, taskID string, toolName string, ttl *int64, pollInterval *int64) (*taskEntry, error) {\n\t// Build task entry first (no lock needed)\n\topts := []mcp.TaskOption{}\n\tif ttl != nil {\n\t\topts = append(opts, mcp.WithTaskTTL(*ttl))\n\t}\n\tif pollInterval != nil {\n\t\topts = append(opts, mcp.WithTaskPollInterval(*pollInterval))\n\t}\n\ttask := mcp.NewTask(taskID, opts...)\n\tcreatedAt := time.Now()\n\n\tentry := &taskEntry{\n\t\ttask:      task,\n\t\tsessionID: getSessionID(ctx),\n\t\ttoolName:  toolName,\n\t\tcreatedAt: createdAt,\n\t\tdone:      make(chan struct{}),\n\t}\n\n\t// Single critical section for check + increment + insert\n\ts.tasksMu.Lock()\n\tdefer s.tasksMu.Unlock()\n\n\t// Check concurrent task limit\n\tif s.maxConcurrentTasks != nil && *s.maxConcurrentTasks > 0 {\n\t\tif s.activeTasks >= *s.maxConcurrentTasks {\n\t\t\treturn nil, fmt.Errorf(\"max concurrent tasks limit reached (%d)\", *s.maxConcurrentTasks)\n\t\t}\n\t}\n\n\t// Increment active task counter and insert task atomically\n\ts.activeTasks++\n\ts.tasks[taskID] = entry\n\n\t// Fire task created hook\n\tif s.taskHooks != nil {\n\t\tmetrics := TaskMetrics{\n\t\t\tTaskID:    taskID,\n\t\t\tToolName:  toolName,\n\t\t\tStatus:    task.Status,\n\t\t\tCreatedAt: createdAt,\n\t\t\tSessionID: getSessionID(ctx),\n\t\t}\n\t\ts.taskHooks.taskCreated(ctx, metrics)\n\t}\n\n\t// Start TTL cleanup if specified\n\tif ttl != nil && *ttl > 0 {\n\t\tgo s.scheduleTaskCleanup(taskID, *ttl)\n\t}\n\n\treturn entry, nil\n}\n\n// getTask retrieves a task by ID, checking session isolation if applicable.\n// Returns a copy of the task and the done channel for waiting on completion.\nfunc (s *MCPServer) getTask(ctx context.Context, taskID string) (mcp.Task, chan struct{}, error) {\n\ts.tasksMu.RLock()\n\tentry, exists := s.tasks[taskID]\n\tif !exists {\n\t\t// Check if this task was recently expired\n\t\tif _, wasExpired := s.expiredTasks[taskID]; wasExpired {\n\t\t\ts.tasksMu.RUnlock()\n\t\t\treturn mcp.Task{}, nil, fmt.Errorf(\"task has expired\")\n\t\t}\n\t\ts.tasksMu.RUnlock()\n\t\treturn mcp.Task{}, nil, fmt.Errorf(\"task not found\")\n\t}\n\n\t// Verify session isolation\n\tsessionID := getSessionID(ctx)\n\tif entry.sessionID != \"\" && sessionID != \"\" && entry.sessionID != sessionID {\n\t\ts.tasksMu.RUnlock()\n\t\treturn mcp.Task{}, nil, fmt.Errorf(\"task not found\")\n\t}\n\n\t// Return a copy of the task and the done channel\n\ttaskCopy := entry.task\n\tdone := entry.done\n\ts.tasksMu.RUnlock()\n\n\treturn taskCopy, done, nil\n}\n\n// getTaskEntry retrieves the raw task entry for internal use (requires caller to handle synchronization).\nfunc (s *MCPServer) getTaskEntry(ctx context.Context, taskID string) (*taskEntry, error) {\n\ts.tasksMu.RLock()\n\tentry, exists := s.tasks[taskID]\n\tif !exists {\n\t\t// Check if this task was recently expired\n\t\tif _, wasExpired := s.expiredTasks[taskID]; wasExpired {\n\t\t\ts.tasksMu.RUnlock()\n\t\t\treturn nil, fmt.Errorf(\"task has expired\")\n\t\t}\n\t\ts.tasksMu.RUnlock()\n\t\treturn nil, fmt.Errorf(\"task not found\")\n\t}\n\ts.tasksMu.RUnlock()\n\n\t// Verify session isolation\n\tsessionID := getSessionID(ctx)\n\tif entry.sessionID != \"\" && sessionID != \"\" && entry.sessionID != sessionID {\n\t\treturn nil, fmt.Errorf(\"task not found\")\n\t}\n\n\treturn entry, nil\n}\n\n// listTasks returns copies of all tasks for the current session.\nfunc (s *MCPServer) listTasks(ctx context.Context) []mcp.Task {\n\tsessionID := getSessionID(ctx)\n\n\ts.tasksMu.RLock()\n\tdefer s.tasksMu.RUnlock()\n\n\tvar tasks []mcp.Task\n\tfor _, entry := range s.tasks {\n\t\t// Filter by session if applicable\n\t\tif sessionID == \"\" || entry.sessionID == \"\" || entry.sessionID == sessionID {\n\t\t\ttasks = append(tasks, entry.task)\n\t\t}\n\t}\n\n\treturn tasks\n}\n\n// completeTask marks a task as completed with the given result.\nfunc (s *MCPServer) completeTask(entry *taskEntry, result any, err error) {\n\ts.tasksMu.Lock()\n\tdefer s.tasksMu.Unlock()\n\n\t// Guard against double completion\n\tif entry.completed {\n\t\treturn\n\t}\n\n\tcompletedAt := time.Now()\n\tduration := completedAt.Sub(entry.createdAt)\n\n\tif err != nil {\n\t\tentry.task.Status = mcp.TaskStatusFailed\n\t\tentry.task.StatusMessage = err.Error()\n\t\tentry.resultErr = err\n\t} else {\n\t\tentry.task.Status = mcp.TaskStatusCompleted\n\t\tentry.result = result\n\t}\n\n\t// Update the lastUpdatedAt timestamp\n\tentry.task.LastUpdatedAt = completedAt.UTC().Format(time.RFC3339)\n\n\t// Mark as completed and signal\n\tentry.completed = true\n\tclose(entry.done)\n\n\t// Decrement active tasks counter\n\ts.activeTasks--\n\n\t// Send task status notification\n\ts.sendTaskStatusNotification(entry.task)\n\n\t// Fire task hooks\n\tif s.taskHooks != nil {\n\t\tmetrics := TaskMetrics{\n\t\t\tTaskID:        entry.task.TaskId,\n\t\t\tToolName:      entry.toolName,\n\t\t\tStatus:        entry.task.Status,\n\t\t\tStatusMessage: entry.task.StatusMessage,\n\t\t\tCreatedAt:     entry.createdAt,\n\t\t\tCompletedAt:   &completedAt,\n\t\t\tDuration:      duration,\n\t\t\tSessionID:     entry.sessionID,\n\t\t\tError:         err,\n\t\t}\n\n\t\tif err != nil {\n\t\t\ts.taskHooks.taskFailed(context.Background(), metrics)\n\t\t} else {\n\t\t\ts.taskHooks.taskCompleted(context.Background(), metrics)\n\t\t}\n\t}\n}\n\n// cancelTask cancels a running task.\nfunc (s *MCPServer) cancelTask(ctx context.Context, taskID string) error {\n\tentry, err := s.getTaskEntry(ctx, taskID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.tasksMu.Lock()\n\tdefer s.tasksMu.Unlock()\n\n\t// Don't allow cancelling already completed tasks\n\tif entry.completed {\n\t\treturn fmt.Errorf(\"cannot cancel task in terminal status: %s\", entry.task.Status)\n\t}\n\n\t// Cancel the context if available\n\tif entry.cancelFunc != nil {\n\t\tentry.cancelFunc()\n\t}\n\n\tcancelledAt := time.Now()\n\tduration := cancelledAt.Sub(entry.createdAt)\n\n\tentry.task.Status = mcp.TaskStatusCancelled\n\tentry.task.StatusMessage = \"Task cancelled by request\"\n\t// Update the lastUpdatedAt timestamp\n\tentry.task.LastUpdatedAt = cancelledAt.UTC().Format(time.RFC3339)\n\n\t// Mark as completed and signal\n\tentry.completed = true\n\tclose(entry.done)\n\n\t// Decrement active tasks counter\n\ts.activeTasks--\n\n\t// Send task status notification\n\ts.sendTaskStatusNotification(entry.task)\n\n\t// Fire task cancellation hook\n\tif s.taskHooks != nil {\n\t\tmetrics := TaskMetrics{\n\t\t\tTaskID:        entry.task.TaskId,\n\t\t\tToolName:      entry.toolName,\n\t\t\tStatus:        entry.task.Status,\n\t\t\tStatusMessage: entry.task.StatusMessage,\n\t\t\tCreatedAt:     entry.createdAt,\n\t\t\tCompletedAt:   &cancelledAt,\n\t\t\tDuration:      duration,\n\t\t\tSessionID:     entry.sessionID,\n\t\t}\n\t\ts.taskHooks.taskCancelled(ctx, metrics)\n\t}\n\n\treturn nil\n}\n\n// scheduleTaskCleanup schedules a task for cleanup after its TTL expires.\nfunc (s *MCPServer) scheduleTaskCleanup(taskID string, ttlMs int64) {\n\ttime.Sleep(time.Duration(ttlMs) * time.Millisecond)\n\n\ts.tasksMu.Lock()\n\tdelete(s.tasks, taskID)\n\t// Record that this task expired for better error messages\n\t// Keep the tombstone for 5 minutes to allow clients to distinguish\n\t// between \"not found\" and \"expired\"\n\ts.expiredTasks[taskID] = time.Now()\n\ts.tasksMu.Unlock()\n\n\t// Clean up the tombstone after 5 minutes\n\tgo func() {\n\t\ttime.Sleep(5 * time.Minute)\n\t\ts.tasksMu.Lock()\n\t\tdelete(s.expiredTasks, taskID)\n\t\ts.tasksMu.Unlock()\n\t}()\n}\n\n// sendTaskStatusNotification sends a notification when a task's status changes.\nfunc (s *MCPServer) sendTaskStatusNotification(task mcp.Task) {\n\t// Convert task to map[string]any for notification params\n\ttaskMap := map[string]any{\n\t\t\"taskId\":        task.TaskId,\n\t\t\"status\":        task.Status,\n\t\t\"createdAt\":     task.CreatedAt,\n\t\t\"lastUpdatedAt\": task.LastUpdatedAt,\n\t}\n\n\tif task.StatusMessage != \"\" {\n\t\ttaskMap[\"statusMessage\"] = task.StatusMessage\n\t}\n\tif task.TTL != nil {\n\t\ttaskMap[\"ttl\"] = *task.TTL\n\t}\n\tif task.PollInterval != nil {\n\t\ttaskMap[\"pollInterval\"] = *task.PollInterval\n\t}\n\n\ts.SendNotificationToAllClients(mcp.MethodNotificationTasksStatus, taskMap)\n}\n\n// getSessionID extracts the session ID from the context.\nfunc getSessionID(ctx context.Context) string {\n\tif session := ClientSessionFromContext(ctx); session != nil {\n\t\treturn session.SessionID()\n\t}\n\treturn \"\"\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/session.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"maps\"\n\t\"net/url\"\n\n\t\"github.com/mark3labs/mcp-go/mcp\"\n)\n\n// ClientSession represents an active session that can be used by MCPServer to interact with client.\ntype ClientSession interface {\n\t// Initialize marks session as fully initialized and ready for notifications\n\tInitialize()\n\t// Initialized returns if session is ready to accept notifications\n\tInitialized() bool\n\t// NotificationChannel provides a channel suitable for sending notifications to client.\n\tNotificationChannel() chan<- mcp.JSONRPCNotification\n\t// SessionID is a unique identifier used to track user session.\n\tSessionID() string\n}\n\n// SessionWithLogging is an extension of ClientSession that can receive log message notifications and set log level\ntype SessionWithLogging interface {\n\tClientSession\n\t// SetLogLevel sets the minimum log level\n\tSetLogLevel(level mcp.LoggingLevel)\n\t// GetLogLevel retrieves the minimum log level\n\tGetLogLevel() mcp.LoggingLevel\n}\n\n// SessionWithTools is an extension of ClientSession that can store session-specific tool data\ntype SessionWithTools interface {\n\tClientSession\n\t// GetSessionTools returns the tools specific to this session, if any\n\t// This method must be thread-safe for concurrent access\n\tGetSessionTools() map[string]ServerTool\n\t// SetSessionTools sets tools specific to this session\n\t// This method must be thread-safe for concurrent access\n\tSetSessionTools(tools map[string]ServerTool)\n}\n\n// SessionWithResources is an extension of ClientSession that can store session-specific resource data\ntype SessionWithResources interface {\n\tClientSession\n\t// GetSessionResources returns the resources specific to this session, if any\n\t// This method must be thread-safe for concurrent access\n\tGetSessionResources() map[string]ServerResource\n\t// SetSessionResources sets resources specific to this session\n\t// This method must be thread-safe for concurrent access\n\tSetSessionResources(resources map[string]ServerResource)\n}\n\n// SessionWithResourceTemplates is an extension of ClientSession that can store session-specific resource template data\ntype SessionWithResourceTemplates interface {\n\tClientSession\n\t// GetSessionResourceTemplates returns the resource templates specific to this session, if any\n\t// This method must be thread-safe for concurrent access\n\tGetSessionResourceTemplates() map[string]ServerResourceTemplate\n\t// SetSessionResourceTemplates sets resource templates specific to this session\n\t// This method must be thread-safe for concurrent access\n\tSetSessionResourceTemplates(templates map[string]ServerResourceTemplate)\n}\n\n// SessionWithClientInfo is an extension of ClientSession that can store client info\ntype SessionWithClientInfo interface {\n\tClientSession\n\t// GetClientInfo returns the client information for this session\n\tGetClientInfo() mcp.Implementation\n\t// SetClientInfo sets the client information for this session\n\tSetClientInfo(clientInfo mcp.Implementation)\n\t// GetClientCapabilities returns the client capabilities for this session\n\tGetClientCapabilities() mcp.ClientCapabilities\n\t// SetClientCapabilities sets the client capabilities for this session\n\tSetClientCapabilities(clientCapabilities mcp.ClientCapabilities)\n}\n\n// SessionWithElicitation is an extension of ClientSession that can send elicitation requests\ntype SessionWithElicitation interface {\n\tClientSession\n\t// RequestElicitation sends an elicitation request to the client and waits for response\n\tRequestElicitation(ctx context.Context, request mcp.ElicitationRequest) (*mcp.ElicitationResult, error)\n}\n\n// SessionWithRoots is an extension of ClientSession that can send list roots requests\ntype SessionWithRoots interface {\n\tClientSession\n\t// ListRoots sends an list roots request to the client and waits for response\n\tListRoots(ctx context.Context, request mcp.ListRootsRequest) (*mcp.ListRootsResult, error)\n}\n\n// SessionWithStreamableHTTPConfig extends ClientSession to support streamable HTTP transport configurations\ntype SessionWithStreamableHTTPConfig interface {\n\tClientSession\n\t// UpgradeToSSEWhenReceiveNotification upgrades the client-server communication to SSE stream when the server\n\t// sends notifications to the client\n\t//\n\t// The protocol specification:\n\t// - If the server response contains any JSON-RPC notifications, it MUST either:\n\t//   - Return Content-Type: text/event-stream to initiate an SSE stream, OR\n\t//   - Return Content-Type: application/json for a single JSON object\n\t// - The client MUST support both response types.\n\t//\n\t// Reference: https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#sending-messages-to-the-server\n\tUpgradeToSSEWhenReceiveNotification()\n}\n\n// clientSessionKey is the context key for storing current client notification channel.\ntype clientSessionKey struct{}\n\n// ClientSessionFromContext retrieves current client notification context from context.\nfunc ClientSessionFromContext(ctx context.Context) ClientSession {\n\tif session, ok := ctx.Value(clientSessionKey{}).(ClientSession); ok {\n\t\treturn session\n\t}\n\treturn nil\n}\n\n// WithContext sets the current client session and returns the provided context\nfunc (s *MCPServer) WithContext(\n\tctx context.Context,\n\tsession ClientSession,\n) context.Context {\n\treturn context.WithValue(ctx, clientSessionKey{}, session)\n}\n\n// RegisterSession saves session that should be notified in case if some server attributes changed.\nfunc (s *MCPServer) RegisterSession(\n\tctx context.Context,\n\tsession ClientSession,\n) error {\n\tsessionID := session.SessionID()\n\tif _, exists := s.sessions.LoadOrStore(sessionID, session); exists {\n\t\treturn ErrSessionExists\n\t}\n\ts.hooks.RegisterSession(ctx, session)\n\treturn nil\n}\n\nfunc (s *MCPServer) buildLogNotification(notification mcp.LoggingMessageNotification) mcp.JSONRPCNotification {\n\treturn mcp.JSONRPCNotification{\n\t\tJSONRPC: mcp.JSONRPC_VERSION,\n\t\tNotification: mcp.Notification{\n\t\t\tMethod: notification.Method,\n\t\t\tParams: mcp.NotificationParams{\n\t\t\t\tAdditionalFields: map[string]any{\n\t\t\t\t\t\"level\":  notification.Params.Level,\n\t\t\t\t\t\"logger\": notification.Params.Logger,\n\t\t\t\t\t\"data\":   notification.Params.Data,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc (s *MCPServer) SendLogMessageToClient(ctx context.Context, notification mcp.LoggingMessageNotification) error {\n\tsession := ClientSessionFromContext(ctx)\n\tif session == nil || !session.Initialized() {\n\t\treturn ErrNotificationNotInitialized\n\t}\n\tsessionLogging, ok := session.(SessionWithLogging)\n\tif !ok {\n\t\treturn ErrSessionDoesNotSupportLogging\n\t}\n\tif !notification.Params.Level.ShouldSendTo(sessionLogging.GetLogLevel()) {\n\t\treturn nil\n\t}\n\treturn s.sendNotificationCore(ctx, session, s.buildLogNotification(notification))\n}\n\nfunc (s *MCPServer) sendNotificationToAllClients(notification mcp.JSONRPCNotification) {\n\ts.sessions.Range(func(k, v any) bool {\n\t\tif session, ok := v.(ClientSession); ok && session.Initialized() {\n\t\t\tif sessionWithStreamableHTTPConfig, ok := session.(SessionWithStreamableHTTPConfig); ok {\n\t\t\t\tsessionWithStreamableHTTPConfig.UpgradeToSSEWhenReceiveNotification()\n\t\t\t}\n\t\t\tselect {\n\t\t\tcase session.NotificationChannel() <- notification:\n\t\t\t\t// Successfully sent notification\n\t\t\tdefault:\n\t\t\t\t// Channel is blocked, if there's an error hook, use it\n\t\t\t\tif s.hooks != nil && len(s.hooks.OnError) > 0 {\n\t\t\t\t\terr := ErrNotificationChannelBlocked\n\t\t\t\t\t// Copy hooks pointer to local variable to avoid race condition\n\t\t\t\t\thooks := s.hooks\n\t\t\t\t\tgo func(sessionID string, hooks *Hooks) {\n\t\t\t\t\t\tctx := context.Background()\n\t\t\t\t\t\t// Use the error hook to report the blocked channel\n\t\t\t\t\t\thooks.onError(ctx, nil, \"notification\", map[string]any{\n\t\t\t\t\t\t\t\"method\":    notification.Method,\n\t\t\t\t\t\t\t\"sessionID\": sessionID,\n\t\t\t\t\t\t}, fmt.Errorf(\"notification channel blocked for session %s: %w\", sessionID, err))\n\t\t\t\t\t}(session.SessionID(), hooks)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n}\n\nfunc (s *MCPServer) sendNotificationToSpecificClient(session ClientSession, notification mcp.JSONRPCNotification) error {\n\t// upgrades the client-server communication to SSE stream when the server sends notifications to the client\n\tif sessionWithStreamableHTTPConfig, ok := session.(SessionWithStreamableHTTPConfig); ok {\n\t\tsessionWithStreamableHTTPConfig.UpgradeToSSEWhenReceiveNotification()\n\t}\n\tselect {\n\tcase session.NotificationChannel() <- notification:\n\t\treturn nil\n\tdefault:\n\t\t// Channel is blocked, if there's an error hook, use it\n\t\tif s.hooks != nil && len(s.hooks.OnError) > 0 {\n\t\t\terr := ErrNotificationChannelBlocked\n\t\t\tctx := context.Background()\n\t\t\t// Copy hooks pointer to local variable to avoid race condition\n\t\t\thooks := s.hooks\n\t\t\tgo func(sID string, hooks *Hooks) {\n\t\t\t\t// Use the error hook to report the blocked channel\n\t\t\t\thooks.onError(ctx, nil, \"notification\", map[string]any{\n\t\t\t\t\t\"method\":    notification.Method,\n\t\t\t\t\t\"sessionID\": sID,\n\t\t\t\t}, fmt.Errorf(\"notification channel blocked for session %s: %w\", sID, err))\n\t\t\t}(session.SessionID(), hooks)\n\t\t}\n\t\treturn ErrNotificationChannelBlocked\n\t}\n}\n\nfunc (s *MCPServer) SendLogMessageToSpecificClient(sessionID string, notification mcp.LoggingMessageNotification) error {\n\tsessionValue, ok := s.sessions.Load(sessionID)\n\tif !ok {\n\t\treturn ErrSessionNotFound\n\t}\n\tsession, ok := sessionValue.(ClientSession)\n\tif !ok || !session.Initialized() {\n\t\treturn ErrSessionNotInitialized\n\t}\n\tsessionLogging, ok := session.(SessionWithLogging)\n\tif !ok {\n\t\treturn ErrSessionDoesNotSupportLogging\n\t}\n\tif !notification.Params.Level.ShouldSendTo(sessionLogging.GetLogLevel()) {\n\t\treturn nil\n\t}\n\treturn s.sendNotificationToSpecificClient(session, s.buildLogNotification(notification))\n}\n\n// UnregisterSession removes from storage session that is shut down.\nfunc (s *MCPServer) UnregisterSession(\n\tctx context.Context,\n\tsessionID string,\n) {\n\tsessionValue, ok := s.sessions.LoadAndDelete(sessionID)\n\tif !ok {\n\t\treturn\n\t}\n\tif session, ok := sessionValue.(ClientSession); ok {\n\t\ts.hooks.UnregisterSession(ctx, session)\n\t}\n}\n\n// SendNotificationToAllClients sends a notification to all the currently active clients.\nfunc (s *MCPServer) SendNotificationToAllClients(\n\tmethod string,\n\tparams map[string]any,\n) {\n\tnotification := mcp.JSONRPCNotification{\n\t\tJSONRPC: mcp.JSONRPC_VERSION,\n\t\tNotification: mcp.Notification{\n\t\t\tMethod: method,\n\t\t\tParams: mcp.NotificationParams{\n\t\t\t\tAdditionalFields: params,\n\t\t\t},\n\t\t},\n\t}\n\ts.sendNotificationToAllClients(notification)\n}\n\n// SendNotificationToClient sends a notification to the current client\nfunc (s *MCPServer) sendNotificationCore(\n\tctx context.Context,\n\tsession ClientSession,\n\tnotification mcp.JSONRPCNotification,\n) error {\n\t// upgrades the client-server communication to SSE stream when the server sends notifications to the client\n\tif sessionWithStreamableHTTPConfig, ok := session.(SessionWithStreamableHTTPConfig); ok {\n\t\tsessionWithStreamableHTTPConfig.UpgradeToSSEWhenReceiveNotification()\n\t}\n\tselect {\n\tcase session.NotificationChannel() <- notification:\n\t\treturn nil\n\tdefault:\n\t\t// Channel is blocked, if there's an error hook, use it\n\t\tif s.hooks != nil && len(s.hooks.OnError) > 0 {\n\t\t\tmethod := notification.Method\n\t\t\terr := ErrNotificationChannelBlocked\n\t\t\t// Copy hooks pointer to local variable to avoid race condition\n\t\t\thooks := s.hooks\n\t\t\tgo func(sessionID string, hooks *Hooks) {\n\t\t\t\t// Use the error hook to report the blocked channel\n\t\t\t\thooks.onError(ctx, nil, \"notification\", map[string]any{\n\t\t\t\t\t\"method\":    method,\n\t\t\t\t\t\"sessionID\": sessionID,\n\t\t\t\t}, fmt.Errorf(\"notification channel blocked for session %s: %w\", sessionID, err))\n\t\t\t}(session.SessionID(), hooks)\n\t\t}\n\t\treturn ErrNotificationChannelBlocked\n\t}\n}\n\n// SendNotificationToClient sends a notification to the current client\nfunc (s *MCPServer) SendNotificationToClient(\n\tctx context.Context,\n\tmethod string,\n\tparams map[string]any,\n) error {\n\tsession := ClientSessionFromContext(ctx)\n\tif session == nil || !session.Initialized() {\n\t\treturn ErrNotificationNotInitialized\n\t}\n\tnotification := mcp.JSONRPCNotification{\n\t\tJSONRPC: mcp.JSONRPC_VERSION,\n\t\tNotification: mcp.Notification{\n\t\t\tMethod: method,\n\t\t\tParams: mcp.NotificationParams{\n\t\t\t\tAdditionalFields: params,\n\t\t\t},\n\t\t},\n\t}\n\treturn s.sendNotificationCore(ctx, session, notification)\n}\n\n// SendNotificationToSpecificClient sends a notification to a specific client by session ID\nfunc (s *MCPServer) SendNotificationToSpecificClient(\n\tsessionID string,\n\tmethod string,\n\tparams map[string]any,\n) error {\n\tsessionValue, ok := s.sessions.Load(sessionID)\n\tif !ok {\n\t\treturn ErrSessionNotFound\n\t}\n\tsession, ok := sessionValue.(ClientSession)\n\tif !ok || !session.Initialized() {\n\t\treturn ErrSessionNotInitialized\n\t}\n\tnotification := mcp.JSONRPCNotification{\n\t\tJSONRPC: mcp.JSONRPC_VERSION,\n\t\tNotification: mcp.Notification{\n\t\t\tMethod: method,\n\t\t\tParams: mcp.NotificationParams{\n\t\t\t\tAdditionalFields: params,\n\t\t\t},\n\t\t},\n\t}\n\treturn s.sendNotificationToSpecificClient(session, notification)\n}\n\n// AddSessionTool adds a tool for a specific session\nfunc (s *MCPServer) AddSessionTool(sessionID string, tool mcp.Tool, handler ToolHandlerFunc) error {\n\treturn s.AddSessionTools(sessionID, ServerTool{Tool: tool, Handler: handler})\n}\n\n// AddSessionTools adds tools for a specific session\nfunc (s *MCPServer) AddSessionTools(sessionID string, tools ...ServerTool) error {\n\tsessionValue, ok := s.sessions.Load(sessionID)\n\tif !ok {\n\t\treturn ErrSessionNotFound\n\t}\n\n\tsession, ok := sessionValue.(SessionWithTools)\n\tif !ok {\n\t\treturn ErrSessionDoesNotSupportTools\n\t}\n\n\ts.implicitlyRegisterToolCapabilities()\n\n\t// Get existing tools (this should return a thread-safe copy)\n\tsessionTools := session.GetSessionTools()\n\n\t// Create a new map to avoid concurrent modification issues\n\tnewSessionTools := make(map[string]ServerTool, len(sessionTools)+len(tools))\n\n\t// Copy existing tools\n\tmaps.Copy(newSessionTools, sessionTools)\n\n\t// Add new tools\n\tfor _, tool := range tools {\n\t\tnewSessionTools[tool.Tool.Name] = tool\n\t}\n\n\t// Set the tools (this should be thread-safe)\n\tsession.SetSessionTools(newSessionTools)\n\n\t// It only makes sense to send tool notifications to initialized sessions --\n\t// if we're not initialized yet the client can't possibly have sent their\n\t// initial tools/list message.\n\t//\n\t// For initialized sessions, honor tools.listChanged, which is specifically\n\t// about whether notifications will be sent or not.\n\t// see <https://modelcontextprotocol.io/specification/2025-03-26/server/tools#capabilities>\n\tif session.Initialized() && s.capabilities.tools != nil && s.capabilities.tools.listChanged {\n\t\t// Send notification only to this session\n\t\tif err := s.SendNotificationToSpecificClient(sessionID, \"notifications/tools/list_changed\", nil); err != nil {\n\t\t\t// Log the error but don't fail the operation\n\t\t\t// The tools were successfully added, but notification failed\n\t\t\tif s.hooks != nil && len(s.hooks.OnError) > 0 {\n\t\t\t\thooks := s.hooks\n\t\t\t\tgo func(sID string, hooks *Hooks) {\n\t\t\t\t\tctx := context.Background()\n\t\t\t\t\thooks.onError(ctx, nil, \"notification\", map[string]any{\n\t\t\t\t\t\t\"method\":    \"notifications/tools/list_changed\",\n\t\t\t\t\t\t\"sessionID\": sID,\n\t\t\t\t\t}, fmt.Errorf(\"failed to send notification after adding tools: %w\", err))\n\t\t\t\t}(sessionID, hooks)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// DeleteSessionTools removes tools from a specific session\nfunc (s *MCPServer) DeleteSessionTools(sessionID string, names ...string) error {\n\tsessionValue, ok := s.sessions.Load(sessionID)\n\tif !ok {\n\t\treturn ErrSessionNotFound\n\t}\n\n\tsession, ok := sessionValue.(SessionWithTools)\n\tif !ok {\n\t\treturn ErrSessionDoesNotSupportTools\n\t}\n\n\t// Get existing tools (this should return a thread-safe copy)\n\tsessionTools := session.GetSessionTools()\n\tif sessionTools == nil {\n\t\treturn nil\n\t}\n\n\t// Create a new map to avoid concurrent modification issues\n\tnewSessionTools := make(map[string]ServerTool, len(sessionTools))\n\n\t// Copy existing tools except those being deleted\n\tmaps.Copy(newSessionTools, sessionTools)\n\n\t// Remove specified tools\n\tfor _, name := range names {\n\t\tdelete(newSessionTools, name)\n\t}\n\n\t// Set the tools (this should be thread-safe)\n\tsession.SetSessionTools(newSessionTools)\n\n\t// It only makes sense to send tool notifications to initialized sessions --\n\t// if we're not initialized yet the client can't possibly have sent their\n\t// initial tools/list message.\n\t//\n\t// For initialized sessions, honor tools.listChanged, which is specifically\n\t// about whether notifications will be sent or not.\n\t// see <https://modelcontextprotocol.io/specification/2025-03-26/server/tools#capabilities>\n\tif session.Initialized() && s.capabilities.tools != nil && s.capabilities.tools.listChanged {\n\t\t// Send notification only to this session\n\t\tif err := s.SendNotificationToSpecificClient(sessionID, \"notifications/tools/list_changed\", nil); err != nil {\n\t\t\t// Log the error but don't fail the operation\n\t\t\t// The tools were successfully deleted, but notification failed\n\t\t\tif s.hooks != nil && len(s.hooks.OnError) > 0 {\n\t\t\t\thooks := s.hooks\n\t\t\t\tgo func(sID string, hooks *Hooks) {\n\t\t\t\t\tctx := context.Background()\n\t\t\t\t\thooks.onError(ctx, nil, \"notification\", map[string]any{\n\t\t\t\t\t\t\"method\":    \"notifications/tools/list_changed\",\n\t\t\t\t\t\t\"sessionID\": sID,\n\t\t\t\t\t}, fmt.Errorf(\"failed to send notification after deleting tools: %w\", err))\n\t\t\t\t}(sessionID, hooks)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// AddSessionResource adds a resource for a specific session\nfunc (s *MCPServer) AddSessionResource(sessionID string, resource mcp.Resource, handler ResourceHandlerFunc) error {\n\treturn s.AddSessionResources(sessionID, ServerResource{Resource: resource, Handler: handler})\n}\n\n// AddSessionResources adds resources for a specific session\nfunc (s *MCPServer) AddSessionResources(sessionID string, resources ...ServerResource) error {\n\tsessionValue, ok := s.sessions.Load(sessionID)\n\tif !ok {\n\t\treturn ErrSessionNotFound\n\t}\n\n\tsession, ok := sessionValue.(SessionWithResources)\n\tif !ok {\n\t\treturn ErrSessionDoesNotSupportResources\n\t}\n\n\t// For session resources, we want listChanged enabled by default\n\ts.implicitlyRegisterCapabilities(\n\t\tfunc() bool { return s.capabilities.resources != nil },\n\t\tfunc() { s.capabilities.resources = &resourceCapabilities{listChanged: true} },\n\t)\n\n\t// Get existing resources (this should return a thread-safe copy)\n\tsessionResources := session.GetSessionResources()\n\n\t// Create a new map to avoid concurrent modification issues\n\tnewSessionResources := make(map[string]ServerResource, len(sessionResources)+len(resources))\n\n\t// Copy existing resources\n\tmaps.Copy(newSessionResources, sessionResources)\n\n\t// Add new resources with validation\n\tfor _, resource := range resources {\n\t\t// Validate that URI is non-empty\n\t\tif resource.Resource.URI == \"\" {\n\t\t\treturn fmt.Errorf(\"resource URI cannot be empty\")\n\t\t}\n\n\t\t// Validate that URI conforms to RFC 3986\n\t\tif _, err := url.ParseRequestURI(resource.Resource.URI); err != nil {\n\t\t\treturn fmt.Errorf(\"invalid resource URI: %w\", err)\n\t\t}\n\n\t\tnewSessionResources[resource.Resource.URI] = resource\n\t}\n\n\t// Set the resources (this should be thread-safe)\n\tsession.SetSessionResources(newSessionResources)\n\n\t// It only makes sense to send resource notifications to initialized sessions --\n\t// if we're not initialized yet the client can't possibly have sent their\n\t// initial resources/list message.\n\t//\n\t// For initialized sessions, honor resources.listChanged, which is specifically\n\t// about whether notifications will be sent or not.\n\t// see <https://modelcontextprotocol.io/specification/2025-03-26/server/resources#capabilities>\n\tif session.Initialized() && s.capabilities.resources != nil && s.capabilities.resources.listChanged {\n\t\t// Send notification only to this session\n\t\tif err := s.SendNotificationToSpecificClient(sessionID, \"notifications/resources/list_changed\", nil); err != nil {\n\t\t\t// Log the error but don't fail the operation\n\t\t\t// The resources were successfully added, but notification failed\n\t\t\tif s.hooks != nil && len(s.hooks.OnError) > 0 {\n\t\t\t\thooks := s.hooks\n\t\t\t\tgo func(sID string, hooks *Hooks) {\n\t\t\t\t\tctx := context.Background()\n\t\t\t\t\thooks.onError(ctx, nil, \"notification\", map[string]any{\n\t\t\t\t\t\t\"method\":    \"notifications/resources/list_changed\",\n\t\t\t\t\t\t\"sessionID\": sID,\n\t\t\t\t\t}, fmt.Errorf(\"failed to send notification after adding resources: %w\", err))\n\t\t\t\t}(sessionID, hooks)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// DeleteSessionResources removes resources from a specific session\nfunc (s *MCPServer) DeleteSessionResources(sessionID string, uris ...string) error {\n\tsessionValue, ok := s.sessions.Load(sessionID)\n\tif !ok {\n\t\treturn ErrSessionNotFound\n\t}\n\n\tsession, ok := sessionValue.(SessionWithResources)\n\tif !ok {\n\t\treturn ErrSessionDoesNotSupportResources\n\t}\n\n\t// Get existing resources (this should return a thread-safe copy)\n\tsessionResources := session.GetSessionResources()\n\tif sessionResources == nil {\n\t\treturn nil\n\t}\n\n\t// Create a new map to avoid concurrent modification issues\n\tnewSessionResources := make(map[string]ServerResource, len(sessionResources))\n\n\t// Copy existing resources except those being deleted\n\tmaps.Copy(newSessionResources, sessionResources)\n\n\t// Remove specified resources and track if anything was actually deleted\n\tactuallyDeleted := false\n\tfor _, uri := range uris {\n\t\tif _, exists := newSessionResources[uri]; exists {\n\t\t\tdelete(newSessionResources, uri)\n\t\t\tactuallyDeleted = true\n\t\t}\n\t}\n\n\t// Skip no-op write if nothing was actually deleted\n\tif !actuallyDeleted {\n\t\treturn nil\n\t}\n\n\t// Set the resources (this should be thread-safe)\n\tsession.SetSessionResources(newSessionResources)\n\n\t// It only makes sense to send resource notifications to initialized sessions --\n\t// if we're not initialized yet the client can't possibly have sent their\n\t// initial resources/list message.\n\t//\n\t// For initialized sessions, honor resources.listChanged, which is specifically\n\t// about whether notifications will be sent or not.\n\t// see <https://modelcontextprotocol.io/specification/2025-03-26/server/resources#capabilities>\n\t// Only send notification if something was actually deleted\n\tif actuallyDeleted && session.Initialized() && s.capabilities.resources != nil && s.capabilities.resources.listChanged {\n\t\t// Send notification only to this session\n\t\tif err := s.SendNotificationToSpecificClient(sessionID, \"notifications/resources/list_changed\", nil); err != nil {\n\t\t\t// Log the error but don't fail the operation\n\t\t\t// The resources were successfully deleted, but notification failed\n\t\t\tif s.hooks != nil && len(s.hooks.OnError) > 0 {\n\t\t\t\thooks := s.hooks\n\t\t\t\tgo func(sID string, hooks *Hooks) {\n\t\t\t\t\tctx := context.Background()\n\t\t\t\t\thooks.onError(ctx, nil, \"notification\", map[string]any{\n\t\t\t\t\t\t\"method\":    \"notifications/resources/list_changed\",\n\t\t\t\t\t\t\"sessionID\": sID,\n\t\t\t\t\t}, fmt.Errorf(\"failed to send notification after deleting resources: %w\", err))\n\t\t\t\t}(sessionID, hooks)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// AddSessionResourceTemplate adds a resource template for a specific session\nfunc (s *MCPServer) AddSessionResourceTemplate(sessionID string, template mcp.ResourceTemplate, handler ResourceTemplateHandlerFunc) error {\n\treturn s.AddSessionResourceTemplates(sessionID, ServerResourceTemplate{\n\t\tTemplate: template,\n\t\tHandler:  handler,\n\t})\n}\n\n// AddSessionResourceTemplates adds resource templates for a specific session\nfunc (s *MCPServer) AddSessionResourceTemplates(sessionID string, templates ...ServerResourceTemplate) error {\n\tsessionValue, ok := s.sessions.Load(sessionID)\n\tif !ok {\n\t\treturn ErrSessionNotFound\n\t}\n\n\tsession, ok := sessionValue.(SessionWithResourceTemplates)\n\tif !ok {\n\t\treturn ErrSessionDoesNotSupportResourceTemplates\n\t}\n\n\t// For session resource templates, enable listChanged by default\n\t// This is the same behavior as session resources\n\ts.implicitlyRegisterCapabilities(\n\t\tfunc() bool { return s.capabilities.resources != nil },\n\t\tfunc() { s.capabilities.resources = &resourceCapabilities{listChanged: true} },\n\t)\n\n\t// Get existing templates (this returns a thread-safe copy)\n\tsessionTemplates := session.GetSessionResourceTemplates()\n\n\t// Create a new map to avoid modifying the returned copy\n\tnewTemplates := make(map[string]ServerResourceTemplate, len(sessionTemplates)+len(templates))\n\n\t// Copy existing templates\n\tmaps.Copy(newTemplates, sessionTemplates)\n\n\t// Validate and add new templates\n\tfor _, t := range templates {\n\t\tif t.Template.URITemplate == nil {\n\t\t\treturn fmt.Errorf(\"resource template URITemplate cannot be nil\")\n\t\t}\n\t\traw := t.Template.URITemplate.Raw()\n\t\tif raw == \"\" {\n\t\t\treturn fmt.Errorf(\"resource template URITemplate cannot be empty\")\n\t\t}\n\t\tif t.Template.Name == \"\" {\n\t\t\treturn fmt.Errorf(\"resource template name cannot be empty\")\n\t\t}\n\t\tnewTemplates[raw] = t\n\t}\n\n\t// Set the new templates (this method must handle thread-safety)\n\tsession.SetSessionResourceTemplates(newTemplates)\n\n\t// Send notification if the session is initialized and listChanged is enabled\n\tif session.Initialized() && s.capabilities.resources != nil && s.capabilities.resources.listChanged {\n\t\tif err := s.SendNotificationToSpecificClient(sessionID, \"notifications/resources/list_changed\", nil); err != nil {\n\t\t\t// Log the error but don't fail the operation\n\t\t\tif s.hooks != nil && len(s.hooks.OnError) > 0 {\n\t\t\t\thooks := s.hooks\n\t\t\t\tgo func(sID string, hooks *Hooks) {\n\t\t\t\t\tctx := context.Background()\n\t\t\t\t\thooks.onError(ctx, nil, \"notification\", map[string]any{\n\t\t\t\t\t\t\"method\":    \"notifications/resources/list_changed\",\n\t\t\t\t\t\t\"sessionID\": sID,\n\t\t\t\t\t}, fmt.Errorf(\"failed to send notification after adding resource templates: %w\", err))\n\t\t\t\t}(sessionID, hooks)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// DeleteSessionResourceTemplates removes resource templates from a specific session\nfunc (s *MCPServer) DeleteSessionResourceTemplates(sessionID string, uriTemplates ...string) error {\n\tsessionValue, ok := s.sessions.Load(sessionID)\n\tif !ok {\n\t\treturn ErrSessionNotFound\n\t}\n\n\tsession, ok := sessionValue.(SessionWithResourceTemplates)\n\tif !ok {\n\t\treturn ErrSessionDoesNotSupportResourceTemplates\n\t}\n\n\t// Get existing templates (this returns a thread-safe copy)\n\tsessionTemplates := session.GetSessionResourceTemplates()\n\n\t// Track if any were actually deleted\n\tdeletedAny := false\n\n\t// Create a new map without the deleted templates\n\tnewTemplates := make(map[string]ServerResourceTemplate, len(sessionTemplates))\n\tmaps.Copy(newTemplates, sessionTemplates)\n\n\t// Delete specified templates\n\tfor _, uriTemplate := range uriTemplates {\n\t\tif _, exists := newTemplates[uriTemplate]; exists {\n\t\t\tdelete(newTemplates, uriTemplate)\n\t\t\tdeletedAny = true\n\t\t}\n\t}\n\n\t// Only update if something was actually deleted\n\tif deletedAny {\n\t\t// Set the new templates (this method must handle thread-safety)\n\t\tsession.SetSessionResourceTemplates(newTemplates)\n\n\t\t// Send notification if the session is initialized and listChanged is enabled\n\t\tif session.Initialized() && s.capabilities.resources != nil && s.capabilities.resources.listChanged {\n\t\t\tif err := s.SendNotificationToSpecificClient(sessionID, \"notifications/resources/list_changed\", nil); err != nil {\n\t\t\t\t// Log the error but don't fail the operation\n\t\t\t\tif s.hooks != nil && len(s.hooks.OnError) > 0 {\n\t\t\t\t\thooks := s.hooks\n\t\t\t\t\tgo func(sID string, hooks *Hooks) {\n\t\t\t\t\t\tctx := context.Background()\n\t\t\t\t\t\thooks.onError(ctx, nil, \"notification\", map[string]any{\n\t\t\t\t\t\t\t\"method\":    \"notifications/resources/list_changed\",\n\t\t\t\t\t\t\t\"sessionID\": sID,\n\t\t\t\t\t\t}, fmt.Errorf(\"failed to send notification after deleting resource templates: %w\", err))\n\t\t\t\t\t}(sessionID, hooks)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/sse.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"net/url\"\n\t\"path\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/google/uuid\"\n\n\t\"github.com/mark3labs/mcp-go/mcp\"\n)\n\n// sseSession represents an active SSE connection.\ntype sseSession struct {\n\tdone                chan struct{}\n\teventQueue          chan string // Channel for queuing events\n\tsessionID           string\n\trequestID           atomic.Int64\n\tnotificationChannel chan mcp.JSONRPCNotification\n\tinitialized         atomic.Bool\n\tloggingLevel        atomic.Value\n\ttools               sync.Map     // stores session-specific tools\n\tresources           sync.Map     // stores session-specific resources\n\tresourceTemplates   sync.Map     // stores session-specific resource templates\n\tclientInfo          atomic.Value // stores session-specific client info\n\tclientCapabilities  atomic.Value // stores session-specific client capabilities\n}\n\n// SSEContextFunc is a function that takes an existing context and the current\n// request and returns a potentially modified context based on the request\n// content. This can be used to inject context values from headers, for example.\ntype SSEContextFunc func(ctx context.Context, r *http.Request) context.Context\n\n// DynamicBasePathFunc allows the user to provide a function to generate the\n// base path for a given request and sessionID. This is useful for cases where\n// the base path is not known at the time of SSE server creation, such as when\n// using a reverse proxy or when the base path is dynamically generated. The\n// function should return the base path (e.g., \"/mcp/tenant123\").\ntype DynamicBasePathFunc func(r *http.Request, sessionID string) string\n\n// SessionIDGenFunc is a function that produces a session ID for a new SSE connection.\n// It receives the request context and the HTTP request, and should return a session\n// identifier (string) or an error.\ntype SessionIDGenFunc func(ctx context.Context, r *http.Request) (string, error)\n\nfunc (s *sseSession) SessionID() string {\n\treturn s.sessionID\n}\n\nfunc (s *sseSession) NotificationChannel() chan<- mcp.JSONRPCNotification {\n\treturn s.notificationChannel\n}\n\nfunc (s *sseSession) Initialize() {\n\t// set default logging level\n\ts.loggingLevel.Store(mcp.LoggingLevelError)\n\ts.initialized.Store(true)\n}\n\nfunc (s *sseSession) Initialized() bool {\n\treturn s.initialized.Load()\n}\n\nfunc (s *sseSession) SetLogLevel(level mcp.LoggingLevel) {\n\ts.loggingLevel.Store(level)\n}\n\nfunc (s *sseSession) GetLogLevel() mcp.LoggingLevel {\n\tlevel := s.loggingLevel.Load()\n\tif level == nil {\n\t\treturn mcp.LoggingLevelError\n\t}\n\treturn level.(mcp.LoggingLevel)\n}\n\nfunc (s *sseSession) GetSessionResources() map[string]ServerResource {\n\tresources := make(map[string]ServerResource)\n\ts.resources.Range(func(key, value any) bool {\n\t\tif resource, ok := value.(ServerResource); ok {\n\t\t\tresources[key.(string)] = resource\n\t\t}\n\t\treturn true\n\t})\n\treturn resources\n}\n\nfunc (s *sseSession) SetSessionResources(resources map[string]ServerResource) {\n\t// Clear existing resources\n\ts.resources.Clear()\n\n\t// Set new resources\n\tfor name, resource := range resources {\n\t\ts.resources.Store(name, resource)\n\t}\n}\n\nfunc (s *sseSession) GetSessionResourceTemplates() map[string]ServerResourceTemplate {\n\ttemplates := make(map[string]ServerResourceTemplate)\n\ts.resourceTemplates.Range(func(key, value any) bool {\n\t\tif template, ok := value.(ServerResourceTemplate); ok {\n\t\t\ttemplates[key.(string)] = template\n\t\t}\n\t\treturn true\n\t})\n\treturn templates\n}\n\nfunc (s *sseSession) SetSessionResourceTemplates(templates map[string]ServerResourceTemplate) {\n\t// Clear existing templates\n\ts.resourceTemplates.Clear()\n\n\t// Set new templates\n\tfor uriTemplate, template := range templates {\n\t\ts.resourceTemplates.Store(uriTemplate, template)\n\t}\n}\n\nfunc (s *sseSession) GetSessionTools() map[string]ServerTool {\n\ttools := make(map[string]ServerTool)\n\ts.tools.Range(func(key, value any) bool {\n\t\tif tool, ok := value.(ServerTool); ok {\n\t\t\ttools[key.(string)] = tool\n\t\t}\n\t\treturn true\n\t})\n\treturn tools\n}\n\nfunc (s *sseSession) SetSessionTools(tools map[string]ServerTool) {\n\t// Clear existing tools\n\ts.tools.Clear()\n\n\t// Set new tools\n\tfor name, tool := range tools {\n\t\ts.tools.Store(name, tool)\n\t}\n}\n\nfunc (s *sseSession) GetClientInfo() mcp.Implementation {\n\tif value := s.clientInfo.Load(); value != nil {\n\t\tif clientInfo, ok := value.(mcp.Implementation); ok {\n\t\t\treturn clientInfo\n\t\t}\n\t}\n\treturn mcp.Implementation{}\n}\n\nfunc (s *sseSession) SetClientInfo(clientInfo mcp.Implementation) {\n\ts.clientInfo.Store(clientInfo)\n}\n\nfunc (s *sseSession) SetClientCapabilities(clientCapabilities mcp.ClientCapabilities) {\n\ts.clientCapabilities.Store(clientCapabilities)\n}\n\nfunc (s *sseSession) GetClientCapabilities() mcp.ClientCapabilities {\n\tif value := s.clientCapabilities.Load(); value != nil {\n\t\tif clientCapabilities, ok := value.(mcp.ClientCapabilities); ok {\n\t\t\treturn clientCapabilities\n\t\t}\n\t}\n\treturn mcp.ClientCapabilities{}\n}\n\nvar (\n\t_ ClientSession                = (*sseSession)(nil)\n\t_ SessionWithTools             = (*sseSession)(nil)\n\t_ SessionWithResources         = (*sseSession)(nil)\n\t_ SessionWithResourceTemplates = (*sseSession)(nil)\n\t_ SessionWithLogging           = (*sseSession)(nil)\n\t_ SessionWithClientInfo        = (*sseSession)(nil)\n)\n\n// SSEServer implements a Server-Sent Events (SSE) based MCP server.\n// It provides real-time communication capabilities over HTTP using the SSE protocol.\ntype SSEServer struct {\n\tserver                       *MCPServer\n\tbaseURL                      string\n\tbasePath                     string\n\tappendQueryToMessageEndpoint bool\n\tuseFullURLForMessageEndpoint bool\n\tmessageEndpoint              string\n\tsseEndpoint                  string\n\tsessions                     sync.Map\n\tsrv                          *http.Server\n\tcontextFunc                  SSEContextFunc\n\tdynamicBasePathFunc          DynamicBasePathFunc\n\tsessionIDGenFunc             SessionIDGenFunc\n\n\tkeepAlive         bool\n\tkeepAliveInterval time.Duration\n\n\tmu sync.RWMutex\n}\n\n// SSEOption defines a function type for configuring SSEServer\ntype SSEOption func(*SSEServer)\n\n// WithBaseURL sets the base URL for the SSE server\nfunc WithBaseURL(baseURL string) SSEOption {\n\treturn func(s *SSEServer) {\n\t\tif baseURL != \"\" {\n\t\t\tu, err := url.Parse(baseURL)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif u.Scheme != \"http\" && u.Scheme != \"https\" {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Check if the host is empty or only contains a port\n\t\t\tif u.Host == \"\" || strings.HasPrefix(u.Host, \":\") {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif len(u.Query()) > 0 {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\ts.baseURL = strings.TrimSuffix(baseURL, \"/\")\n\t}\n}\n\n// WithStaticBasePath adds a new option for setting a static base path\nfunc WithStaticBasePath(basePath string) SSEOption {\n\treturn func(s *SSEServer) {\n\t\ts.basePath = normalizeURLPath(basePath)\n\t}\n}\n\n// WithBasePath adds a new option for setting a static base path.\n//\n// Deprecated: Use WithStaticBasePath instead. This will be removed in a future version.\n//\n//go:deprecated\nfunc WithBasePath(basePath string) SSEOption {\n\treturn WithStaticBasePath(basePath)\n}\n\n// WithDynamicBasePath accepts a function for generating the base path. This is\n// useful for cases where the base path is not known at the time of SSE server\n// creation, such as when using a reverse proxy or when the server is mounted\n// at a dynamic path.\nfunc WithDynamicBasePath(fn DynamicBasePathFunc) SSEOption {\n\treturn func(s *SSEServer) {\n\t\tif fn != nil {\n\t\t\ts.dynamicBasePathFunc = func(r *http.Request, sid string) string {\n\t\t\t\tbp := fn(r, sid)\n\t\t\t\treturn normalizeURLPath(bp)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// WithMessageEndpoint sets the message endpoint path\nfunc WithMessageEndpoint(endpoint string) SSEOption {\n\treturn func(s *SSEServer) {\n\t\ts.messageEndpoint = endpoint\n\t}\n}\n\n// WithAppendQueryToMessageEndpoint configures the SSE server to append the original request's\n// query parameters to the message endpoint URL that is sent to clients during the SSE connection\n// initialization. This is useful when you need to preserve query parameters from the initial\n// SSE connection request and carry them over to subsequent message requests, maintaining\n// context or authentication details across the communication channel.\nfunc WithAppendQueryToMessageEndpoint() SSEOption {\n\treturn func(s *SSEServer) {\n\t\ts.appendQueryToMessageEndpoint = true\n\t}\n}\n\n// WithUseFullURLForMessageEndpoint controls whether the SSE server returns a complete URL (including baseURL)\n// or just the path portion for the message endpoint. Set to false when clients will concatenate\n// the baseURL themselves to avoid malformed URLs like \"http://localhost/mcphttp://localhost/mcp/message\".\nfunc WithUseFullURLForMessageEndpoint(useFullURLForMessageEndpoint bool) SSEOption {\n\treturn func(s *SSEServer) {\n\t\ts.useFullURLForMessageEndpoint = useFullURLForMessageEndpoint\n\t}\n}\n\n// WithSSEEndpoint sets the SSE endpoint path\nfunc WithSSEEndpoint(endpoint string) SSEOption {\n\treturn func(s *SSEServer) {\n\t\ts.sseEndpoint = endpoint\n\t}\n}\n\n// WithHTTPServer sets the HTTP server instance.\n// NOTE: When providing a custom HTTP server, you must handle routing yourself\n// If routing is not set up, the server will start but won't handle any MCP requests.\nfunc WithHTTPServer(srv *http.Server) SSEOption {\n\treturn func(s *SSEServer) {\n\t\ts.srv = srv\n\t}\n}\n\nfunc WithKeepAliveInterval(keepAliveInterval time.Duration) SSEOption {\n\treturn func(s *SSEServer) {\n\t\ts.keepAlive = true\n\t\ts.keepAliveInterval = keepAliveInterval\n\t}\n}\n\nfunc WithKeepAlive(keepAlive bool) SSEOption {\n\treturn func(s *SSEServer) {\n\t\ts.keepAlive = keepAlive\n\t}\n}\n\n// WithSSEContextFunc sets a function that will be called to customise the context\n// to the server using the incoming request.\nfunc WithSSEContextFunc(fn SSEContextFunc) SSEOption {\n\treturn func(s *SSEServer) {\n\t\ts.contextFunc = fn\n\t}\n}\n\n// WithSessionIDGenerator sets a custom session ID generator. If fn == nil the call is ignored.\nfunc WithSessionIDGenerator(fn SessionIDGenFunc) SSEOption {\n\treturn func(s *SSEServer) {\n\t\tif fn != nil {\n\t\t\ts.sessionIDGenFunc = fn\n\t\t}\n\t}\n}\n\n// NewSSEServer creates a new SSE server instance with the given MCP server and options.\nfunc NewSSEServer(server *MCPServer, opts ...SSEOption) *SSEServer {\n\ts := &SSEServer{\n\t\tserver:                       server,\n\t\tsseEndpoint:                  \"/sse\",\n\t\tmessageEndpoint:              \"/message\",\n\t\tuseFullURLForMessageEndpoint: true,\n\t\tkeepAlive:                    false,\n\t\tkeepAliveInterval:            10 * time.Second,\n\t\tsessionIDGenFunc: func(ctx context.Context, r *http.Request) (string, error) {\n\t\t\treturn uuid.New().String(), nil\n\t\t},\n\t}\n\n\t// Apply all options\n\tfor _, opt := range opts {\n\t\topt(s)\n\t}\n\n\treturn s\n}\n\n// NewTestServer creates a test server for testing purposes\nfunc NewTestServer(server *MCPServer, opts ...SSEOption) *httptest.Server {\n\tsseServer := NewSSEServer(server, opts...)\n\n\ttestServer := httptest.NewServer(sseServer)\n\tsseServer.baseURL = testServer.URL\n\treturn testServer\n}\n\n// Start begins serving SSE connections on the specified address.\n// It sets up HTTP handlers for SSE and message endpoints.\nfunc (s *SSEServer) Start(addr string) error {\n\ts.mu.Lock()\n\tif s.srv == nil {\n\t\ts.srv = &http.Server{\n\t\t\tAddr:    addr,\n\t\t\tHandler: s,\n\t\t}\n\t} else {\n\t\tif s.srv.Addr == \"\" {\n\t\t\ts.srv.Addr = addr\n\t\t} else if s.srv.Addr != addr {\n\t\t\treturn fmt.Errorf(\"conflicting listen address: WithHTTPServer(%q) vs Start(%q)\", s.srv.Addr, addr)\n\t\t}\n\t}\n\tsrv := s.srv\n\ts.mu.Unlock()\n\n\treturn srv.ListenAndServe()\n}\n\n// Shutdown gracefully stops the SSE server, closing all active sessions\n// and shutting down the HTTP server.\nfunc (s *SSEServer) Shutdown(ctx context.Context) error {\n\ts.mu.RLock()\n\tsrv := s.srv\n\ts.mu.RUnlock()\n\n\tif srv != nil {\n\t\ts.sessions.Range(func(key, value any) bool {\n\t\t\tif session, ok := value.(*sseSession); ok {\n\t\t\t\tclose(session.done)\n\t\t\t}\n\t\t\ts.sessions.Delete(key)\n\t\t\treturn true\n\t\t})\n\n\t\treturn srv.Shutdown(ctx)\n\t}\n\treturn nil\n}\n\n// handleSSE handles incoming SSE connection requests.\n// It sets up appropriate headers and creates a new session for the client.\nfunc (s *SSEServer) handleSSE(w http.ResponseWriter, r *http.Request) {\n\tif r.Method != http.MethodGet {\n\t\thttp.Error(w, \"Method not allowed\", http.StatusMethodNotAllowed)\n\t\treturn\n\t}\n\n\tw.Header().Set(\"Content-Type\", \"text/event-stream\")\n\tw.Header().Set(\"Cache-Control\", \"no-cache\")\n\tw.Header().Set(\"Connection\", \"keep-alive\")\n\tw.Header().Set(\"Access-Control-Allow-Origin\", \"*\")\n\n\tflusher, ok := w.(http.Flusher)\n\tif !ok {\n\t\thttp.Error(w, \"Streaming unsupported\", http.StatusInternalServerError)\n\t\treturn\n\t}\n\n\tsessionID, err := s.sessionIDGenFunc(r.Context(), r)\n\tif err != nil {\n\t\thttp.Error(w, \"Failed to create session ID\", http.StatusInternalServerError)\n\t\treturn\n\t}\n\tif sessionID == \"\" {\n\t\thttp.Error(w, \"Failed to create session ID\", http.StatusInternalServerError)\n\t\treturn\n\t}\n\n\tsession := &sseSession{\n\t\tdone:                make(chan struct{}),\n\t\teventQueue:          make(chan string, 100), // Buffer for events\n\t\tsessionID:           sessionID,\n\t\tnotificationChannel: make(chan mcp.JSONRPCNotification, 100),\n\t}\n\n\ts.sessions.Store(sessionID, session)\n\tdefer s.sessions.Delete(sessionID)\n\n\tif err := s.server.RegisterSession(r.Context(), session); err != nil {\n\t\thttp.Error(\n\t\t\tw,\n\t\t\tfmt.Sprintf(\"Session registration failed: %v\", err),\n\t\t\thttp.StatusInternalServerError,\n\t\t)\n\t\treturn\n\t}\n\tdefer s.server.UnregisterSession(r.Context(), sessionID)\n\n\t// Start notification handler for this session\n\tgo func() {\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase notification := <-session.notificationChannel:\n\t\t\t\teventData, err := json.Marshal(notification)\n\t\t\t\tif err == nil {\n\t\t\t\t\tselect {\n\t\t\t\t\tcase session.eventQueue <- fmt.Sprintf(\"event: message\\ndata: %s\\n\\n\", eventData):\n\t\t\t\t\t\t// Event queued successfully\n\t\t\t\t\tcase <-session.done:\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase <-session.done:\n\t\t\t\treturn\n\t\t\tcase <-r.Context().Done():\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n\n\t// Start keep alive : ping\n\tif s.keepAlive {\n\t\tgo func() {\n\t\t\tticker := time.NewTicker(s.keepAliveInterval)\n\t\t\tdefer ticker.Stop()\n\t\t\tfor {\n\t\t\t\tselect {\n\t\t\t\tcase <-ticker.C:\n\t\t\t\t\tmessage := mcp.JSONRPCRequest{\n\t\t\t\t\t\tJSONRPC: \"2.0\",\n\t\t\t\t\t\tID:      mcp.NewRequestId(session.requestID.Add(1)),\n\t\t\t\t\t\tRequest: mcp.Request{\n\t\t\t\t\t\t\tMethod: \"ping\",\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t\tmessageBytes, _ := json.Marshal(message)\n\t\t\t\t\tpingMsg := fmt.Sprintf(\"event: message\\ndata:%s\\n\\n\", messageBytes)\n\t\t\t\t\tselect {\n\t\t\t\t\tcase session.eventQueue <- pingMsg:\n\t\t\t\t\t\t// Message sent successfully\n\t\t\t\t\tcase <-session.done:\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\tcase <-session.done:\n\t\t\t\t\treturn\n\t\t\t\tcase <-r.Context().Done():\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t}\n\n\t// Send the initial endpoint event\n\tendpoint := s.GetMessageEndpointForClient(r, sessionID)\n\tif s.appendQueryToMessageEndpoint && len(r.URL.RawQuery) > 0 {\n\t\tendpoint += \"&\" + r.URL.RawQuery\n\t}\n\tfmt.Fprintf(w, \"event: endpoint\\ndata: %s\\r\\n\\r\\n\", endpoint)\n\tflusher.Flush()\n\n\t// Main event loop - this runs in the HTTP handler goroutine\n\tfor {\n\t\tselect {\n\t\tcase event := <-session.eventQueue:\n\t\t\t// Write the event to the response\n\t\t\tfmt.Fprint(w, event)\n\t\t\tflusher.Flush()\n\t\tcase <-r.Context().Done():\n\t\t\tclose(session.done)\n\t\t\treturn\n\t\tcase <-session.done:\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// GetMessageEndpointForClient returns the appropriate message endpoint URL with session ID\n// for the given request. This is the canonical way to compute the message endpoint for a client.\n// It handles both dynamic and static path modes, and honors the WithUseFullURLForMessageEndpoint flag.\nfunc (s *SSEServer) GetMessageEndpointForClient(r *http.Request, sessionID string) string {\n\tbasePath := s.basePath\n\tif s.dynamicBasePathFunc != nil {\n\t\tbasePath = s.dynamicBasePathFunc(r, sessionID)\n\t}\n\n\tendpointPath := normalizeURLPath(basePath, s.messageEndpoint)\n\tif s.useFullURLForMessageEndpoint && s.baseURL != \"\" {\n\t\tendpointPath = s.baseURL + endpointPath\n\t}\n\n\treturn fmt.Sprintf(\"%s?sessionId=%s\", endpointPath, sessionID)\n}\n\n// handleMessage processes incoming JSON-RPC messages from clients and sends responses\n// back through the SSE connection and 202 code to HTTP response.\nfunc (s *SSEServer) handleMessage(w http.ResponseWriter, r *http.Request) {\n\tif r.Method != http.MethodPost {\n\t\ts.writeJSONRPCError(w, nil, mcp.INVALID_REQUEST, \"Method not allowed\")\n\t\treturn\n\t}\n\n\tsessionID := r.URL.Query().Get(\"sessionId\")\n\tif sessionID == \"\" {\n\t\ts.writeJSONRPCError(w, nil, mcp.INVALID_PARAMS, \"Missing sessionId\")\n\t\treturn\n\t}\n\tsessionI, ok := s.sessions.Load(sessionID)\n\tif !ok {\n\t\ts.writeJSONRPCError(w, nil, mcp.INVALID_PARAMS, \"Invalid session ID\")\n\t\treturn\n\t}\n\tsession := sessionI.(*sseSession)\n\n\t// Set the client context before handling the message\n\tctx := s.server.WithContext(r.Context(), session)\n\tif s.contextFunc != nil {\n\t\tctx = s.contextFunc(ctx, r)\n\t}\n\n\t// Parse message as raw JSON\n\tvar rawMessage json.RawMessage\n\tif err := json.NewDecoder(r.Body).Decode(&rawMessage); err != nil {\n\t\ts.writeJSONRPCError(w, nil, mcp.PARSE_ERROR, \"Parse error\")\n\t\treturn\n\t}\n\n\t// Create a context that preserves all values from parent ctx but won't be canceled when the parent is canceled.\n\t// this is required because the http ctx will be canceled when the client disconnects\n\tdetachedCtx := context.WithoutCancel(ctx)\n\n\t// quick return request, send 202 Accepted with no body, then deal the message and sent response via SSE\n\tw.WriteHeader(http.StatusAccepted)\n\n\t// Create a new context for handling the message that will be canceled when the message handling is done\n\tmessageCtx := context.WithValue(detachedCtx, requestHeader, r.Header)\n\tmessageCtx, cancel := context.WithCancel(messageCtx)\n\n\tgo func(ctx context.Context) {\n\t\tdefer cancel()\n\t\t// Use the context that will be canceled when session is done\n\t\t// Process message through MCPServer\n\t\tresponse := s.server.HandleMessage(ctx, rawMessage)\n\t\t// Only send response if there is one (not for notifications)\n\t\tif response != nil {\n\t\t\tvar message string\n\t\t\tif eventData, err := json.Marshal(response); err != nil {\n\t\t\t\t// If there is an error marshalling the response, send a generic error response\n\t\t\t\tlog.Printf(\"failed to marshal response: %v\", err)\n\t\t\t\tmessage = \"event: message\\ndata: {\\\"error\\\": \\\"internal error\\\",\\\"jsonrpc\\\": \\\"2.0\\\", \\\"id\\\": null}\\n\\n\"\n\t\t\t} else {\n\t\t\t\tmessage = fmt.Sprintf(\"event: message\\ndata: %s\\n\\n\", eventData)\n\t\t\t}\n\n\t\t\t// Queue the event for sending via SSE\n\t\t\tselect {\n\t\t\tcase session.eventQueue <- message:\n\t\t\t\t// Event queued successfully\n\t\t\tcase <-session.done:\n\t\t\t\t// Session is closed, don't try to queue\n\t\t\tdefault:\n\t\t\t\t// Queue is full, log this situation\n\t\t\t\tlog.Printf(\"Event queue full for session %s\", sessionID)\n\t\t\t}\n\t\t}\n\t}(messageCtx)\n}\n\n// writeJSONRPCError writes a JSON-RPC error response with the given error details.\nfunc (s *SSEServer) writeJSONRPCError(\n\tw http.ResponseWriter,\n\tid any,\n\tcode int,\n\tmessage string,\n) {\n\tresponse := createErrorResponse(id, code, message)\n\tw.Header().Set(\"Content-Type\", \"application/json\")\n\tw.WriteHeader(http.StatusBadRequest)\n\tif err := json.NewEncoder(w).Encode(response); err != nil {\n\t\thttp.Error(\n\t\t\tw,\n\t\t\tfmt.Sprintf(\"Failed to encode response: %v\", err),\n\t\t\thttp.StatusInternalServerError,\n\t\t)\n\t\treturn\n\t}\n}\n\n// SendEventToSession sends an event to a specific SSE session identified by sessionID.\n// Returns an error if the session is not found or closed.\nfunc (s *SSEServer) SendEventToSession(\n\tsessionID string,\n\tevent any,\n) error {\n\tsessionI, ok := s.sessions.Load(sessionID)\n\tif !ok {\n\t\treturn fmt.Errorf(\"session not found: %s\", sessionID)\n\t}\n\tsession := sessionI.(*sseSession)\n\n\teventData, err := json.Marshal(event)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Queue the event for sending via SSE\n\tselect {\n\tcase session.eventQueue <- fmt.Sprintf(\"event: message\\ndata: %s\\n\\n\", eventData):\n\t\treturn nil\n\tcase <-session.done:\n\t\treturn fmt.Errorf(\"session closed\")\n\tdefault:\n\t\treturn fmt.Errorf(\"event queue full\")\n\t}\n}\n\nfunc (s *SSEServer) GetUrlPath(input string) (string, error) {\n\tparse, err := url.Parse(input)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"failed to parse URL %s: %w\", input, err)\n\t}\n\treturn parse.Path, nil\n}\n\nfunc (s *SSEServer) CompleteSseEndpoint() (string, error) {\n\tif s.dynamicBasePathFunc != nil {\n\t\treturn \"\", &ErrDynamicPathConfig{Method: \"CompleteSseEndpoint\"}\n\t}\n\n\tpath := normalizeURLPath(s.basePath, s.sseEndpoint)\n\treturn s.baseURL + path, nil\n}\n\nfunc (s *SSEServer) CompleteSsePath() string {\n\tpath, err := s.CompleteSseEndpoint()\n\tif err != nil {\n\t\treturn normalizeURLPath(s.basePath, s.sseEndpoint)\n\t}\n\turlPath, err := s.GetUrlPath(path)\n\tif err != nil {\n\t\treturn normalizeURLPath(s.basePath, s.sseEndpoint)\n\t}\n\treturn urlPath\n}\n\nfunc (s *SSEServer) CompleteMessageEndpoint() (string, error) {\n\tif s.dynamicBasePathFunc != nil {\n\t\treturn \"\", &ErrDynamicPathConfig{Method: \"CompleteMessageEndpoint\"}\n\t}\n\tpath := normalizeURLPath(s.basePath, s.messageEndpoint)\n\treturn s.baseURL + path, nil\n}\n\nfunc (s *SSEServer) CompleteMessagePath() string {\n\tpath, err := s.CompleteMessageEndpoint()\n\tif err != nil {\n\t\treturn normalizeURLPath(s.basePath, s.messageEndpoint)\n\t}\n\turlPath, err := s.GetUrlPath(path)\n\tif err != nil {\n\t\treturn normalizeURLPath(s.basePath, s.messageEndpoint)\n\t}\n\treturn urlPath\n}\n\n// SSEHandler returns an http.Handler for the SSE endpoint.\n//\n// This method allows you to mount the SSE handler at any arbitrary path\n// using your own router (e.g. net/http, gorilla/mux, chi, etc.). It is\n// intended for advanced scenarios where you want to control the routing or\n// support dynamic segments.\n//\n// IMPORTANT: When using this handler in advanced/dynamic mounting scenarios,\n// you must use the WithDynamicBasePath option to ensure the correct base path\n// is communicated to clients.\n//\n// Example usage:\n//\n//\t// Advanced/dynamic:\n//\tsseServer := NewSSEServer(mcpServer,\n//\t\tWithDynamicBasePath(func(r *http.Request, sessionID string) string {\n//\t\t\ttenant := r.PathValue(\"tenant\")\n//\t\t\treturn \"/mcp/\" + tenant\n//\t\t}),\n//\t\tWithBaseURL(\"http://localhost:8080\")\n//\t)\n//\tmux.Handle(\"/mcp/{tenant}/sse\", sseServer.SSEHandler())\n//\tmux.Handle(\"/mcp/{tenant}/message\", sseServer.MessageHandler())\n//\n// For non-dynamic cases, use ServeHTTP method instead.\nfunc (s *SSEServer) SSEHandler() http.Handler {\n\treturn http.HandlerFunc(s.handleSSE)\n}\n\n// MessageHandler returns an http.Handler for the message endpoint.\n//\n// This method allows you to mount the message handler at any arbitrary path\n// using your own router (e.g. net/http, gorilla/mux, chi, etc.). It is\n// intended for advanced scenarios where you want to control the routing or\n// support dynamic segments.\n//\n// IMPORTANT: When using this handler in advanced/dynamic mounting scenarios,\n// you must use the WithDynamicBasePath option to ensure the correct base path\n// is communicated to clients.\n//\n// Example usage:\n//\n//\t// Advanced/dynamic:\n//\tsseServer := NewSSEServer(mcpServer,\n//\t\tWithDynamicBasePath(func(r *http.Request, sessionID string) string {\n//\t\t\ttenant := r.PathValue(\"tenant\")\n//\t\t\treturn \"/mcp/\" + tenant\n//\t\t}),\n//\t\tWithBaseURL(\"http://localhost:8080\")\n//\t)\n//\tmux.Handle(\"/mcp/{tenant}/sse\", sseServer.SSEHandler())\n//\tmux.Handle(\"/mcp/{tenant}/message\", sseServer.MessageHandler())\n//\n// For non-dynamic cases, use ServeHTTP method instead.\nfunc (s *SSEServer) MessageHandler() http.Handler {\n\treturn http.HandlerFunc(s.handleMessage)\n}\n\n// ServeHTTP implements the http.Handler interface.\nfunc (s *SSEServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif s.dynamicBasePathFunc != nil {\n\t\thttp.Error(\n\t\t\tw,\n\t\t\t(&ErrDynamicPathConfig{Method: \"ServeHTTP\"}).Error(),\n\t\t\thttp.StatusInternalServerError,\n\t\t)\n\t\treturn\n\t}\n\tpath := r.URL.Path\n\t// Use exact path matching rather than Contains\n\tssePath := s.CompleteSsePath()\n\tif ssePath != \"\" && path == ssePath {\n\t\ts.handleSSE(w, r)\n\t\treturn\n\t}\n\tmessagePath := s.CompleteMessagePath()\n\tif messagePath != \"\" && path == messagePath {\n\t\ts.handleMessage(w, r)\n\t\treturn\n\t}\n\n\thttp.NotFound(w, r)\n}\n\n// normalizeURLPath joins path elements like path.Join but ensures the\n// result always starts with a leading slash and never ends with a slash\nfunc normalizeURLPath(elem ...string) string {\n\tjoined := path.Join(elem...)\n\n\t// Ensure leading slash\n\tif !strings.HasPrefix(joined, \"/\") {\n\t\tjoined = \"/\" + joined\n\t}\n\n\t// Remove trailing slash if not just \"/\"\n\tif len(joined) > 1 && strings.HasSuffix(joined, \"/\") {\n\t\tjoined = joined[:len(joined)-1]\n\t}\n\n\treturn joined\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/stdio.go",
    "content": "package server\n\nimport (\n\t\"bufio\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"os\"\n\t\"os/signal\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"syscall\"\n\n\t\"github.com/mark3labs/mcp-go/mcp\"\n)\n\n// StdioContextFunc is a function that takes an existing context and returns\n// a potentially modified context.\n// This can be used to inject context values from environment variables,\n// for example.\ntype StdioContextFunc func(ctx context.Context) context.Context\n\n// StdioServer wraps a MCPServer and handles stdio communication.\n// It provides a simple way to create command-line MCP servers that\n// communicate via standard input/output streams using JSON-RPC messages.\ntype StdioServer struct {\n\tserver      *MCPServer\n\terrLogger   *log.Logger\n\tcontextFunc StdioContextFunc\n\n\t// Thread-safe tool call processing\n\ttoolCallQueue  chan *toolCallWork\n\tworkerWg       sync.WaitGroup\n\tworkerPoolSize int\n\tqueueSize      int\n\twriteMu        sync.Mutex // Protects concurrent writes\n}\n\n// toolCallWork represents a queued tool call request\ntype toolCallWork struct {\n\tctx     context.Context\n\tmessage json.RawMessage\n\twriter  io.Writer\n}\n\n// StdioOption defines a function type for configuring StdioServer\ntype StdioOption func(*StdioServer)\n\n// WithErrorLogger sets the error logger for the server\nfunc WithErrorLogger(logger *log.Logger) StdioOption {\n\treturn func(s *StdioServer) {\n\t\ts.errLogger = logger\n\t}\n}\n\n// WithStdioContextFunc sets a function that will be called to customise the context\n// to the server. Note that the stdio server uses the same context for all requests,\n// so this function will only be called once per server instance.\nfunc WithStdioContextFunc(fn StdioContextFunc) StdioOption {\n\treturn func(s *StdioServer) {\n\t\ts.contextFunc = fn\n\t}\n}\n\n// WithWorkerPoolSize sets the number of workers for processing tool calls\nfunc WithWorkerPoolSize(size int) StdioOption {\n\treturn func(s *StdioServer) {\n\t\tconst maxWorkerPoolSize = 100\n\t\tif size > 0 && size <= maxWorkerPoolSize {\n\t\t\ts.workerPoolSize = size\n\t\t} else if size > maxWorkerPoolSize {\n\t\t\ts.errLogger.Printf(\"Worker pool size %d exceeds maximum (%d), using maximum\", size, maxWorkerPoolSize)\n\t\t\ts.workerPoolSize = maxWorkerPoolSize\n\t\t}\n\t}\n}\n\n// WithQueueSize sets the size of the tool call queue\nfunc WithQueueSize(size int) StdioOption {\n\treturn func(s *StdioServer) {\n\t\tconst maxQueueSize = 10000\n\t\tif size > 0 && size <= maxQueueSize {\n\t\t\ts.queueSize = size\n\t\t} else if size > maxQueueSize {\n\t\t\ts.errLogger.Printf(\"Queue size %d exceeds maximum (%d), using maximum\", size, maxQueueSize)\n\t\t\ts.queueSize = maxQueueSize\n\t\t}\n\t}\n}\n\n// stdioSession is a static client session, since stdio has only one client.\ntype stdioSession struct {\n\tnotifications       chan mcp.JSONRPCNotification\n\tinitialized         atomic.Bool\n\tloggingLevel        atomic.Value\n\tclientInfo          atomic.Value                        // stores session-specific client info\n\tclientCapabilities  atomic.Value                        // stores session-specific client capabilities\n\twriter              io.Writer                           // for sending requests to client\n\trequestID           atomic.Int64                        // for generating unique request IDs\n\tmu                  sync.RWMutex                        // protects writer\n\tpendingRequests     map[int64]chan *samplingResponse    // for tracking pending sampling requests\n\tpendingElicitations map[int64]chan *elicitationResponse // for tracking pending elicitation requests\n\tpendingRoots        map[int64]chan *rootsResponse       // for tracking pending list roots requests\n\tpendingMu           sync.RWMutex                        // protects pendingRequests and pendingElicitations\n}\n\n// samplingResponse represents a response to a sampling request\ntype samplingResponse struct {\n\tresult *mcp.CreateMessageResult\n\terr    error\n}\n\n// elicitationResponse represents a response to an elicitation request\ntype elicitationResponse struct {\n\tresult *mcp.ElicitationResult\n\terr    error\n}\n\n// rootsResponse represents a response to an list root request\ntype rootsResponse struct {\n\tresult *mcp.ListRootsResult\n\terr    error\n}\n\nfunc (s *stdioSession) SessionID() string {\n\treturn \"stdio\"\n}\n\nfunc (s *stdioSession) NotificationChannel() chan<- mcp.JSONRPCNotification {\n\treturn s.notifications\n}\n\nfunc (s *stdioSession) Initialize() {\n\t// set default logging level\n\ts.loggingLevel.Store(mcp.LoggingLevelError)\n\ts.initialized.Store(true)\n}\n\nfunc (s *stdioSession) Initialized() bool {\n\treturn s.initialized.Load()\n}\n\nfunc (s *stdioSession) GetClientInfo() mcp.Implementation {\n\tif value := s.clientInfo.Load(); value != nil {\n\t\tif clientInfo, ok := value.(mcp.Implementation); ok {\n\t\t\treturn clientInfo\n\t\t}\n\t}\n\treturn mcp.Implementation{}\n}\n\nfunc (s *stdioSession) SetClientInfo(clientInfo mcp.Implementation) {\n\ts.clientInfo.Store(clientInfo)\n}\n\nfunc (s *stdioSession) GetClientCapabilities() mcp.ClientCapabilities {\n\tif value := s.clientCapabilities.Load(); value != nil {\n\t\tif clientCapabilities, ok := value.(mcp.ClientCapabilities); ok {\n\t\t\treturn clientCapabilities\n\t\t}\n\t}\n\treturn mcp.ClientCapabilities{}\n}\n\nfunc (s *stdioSession) SetClientCapabilities(clientCapabilities mcp.ClientCapabilities) {\n\ts.clientCapabilities.Store(clientCapabilities)\n}\n\nfunc (s *stdioSession) SetLogLevel(level mcp.LoggingLevel) {\n\ts.loggingLevel.Store(level)\n}\n\nfunc (s *stdioSession) GetLogLevel() mcp.LoggingLevel {\n\tlevel := s.loggingLevel.Load()\n\tif level == nil {\n\t\treturn mcp.LoggingLevelError\n\t}\n\treturn level.(mcp.LoggingLevel)\n}\n\n// RequestSampling sends a sampling request to the client and waits for the response.\nfunc (s *stdioSession) RequestSampling(ctx context.Context, request mcp.CreateMessageRequest) (*mcp.CreateMessageResult, error) {\n\ts.mu.RLock()\n\twriter := s.writer\n\ts.mu.RUnlock()\n\n\tif writer == nil {\n\t\treturn nil, fmt.Errorf(\"no writer available for sending requests\")\n\t}\n\n\t// Generate a unique request ID\n\tid := s.requestID.Add(1)\n\n\t// Create a response channel for this request\n\tresponseChan := make(chan *samplingResponse, 1)\n\ts.pendingMu.Lock()\n\ts.pendingRequests[id] = responseChan\n\ts.pendingMu.Unlock()\n\n\t// Cleanup function to remove the pending request\n\tcleanup := func() {\n\t\ts.pendingMu.Lock()\n\t\tdelete(s.pendingRequests, id)\n\t\ts.pendingMu.Unlock()\n\t}\n\tdefer cleanup()\n\n\t// Create the JSON-RPC request\n\tjsonRPCRequest := struct {\n\t\tJSONRPC string                  `json:\"jsonrpc\"`\n\t\tID      int64                   `json:\"id\"`\n\t\tMethod  string                  `json:\"method\"`\n\t\tParams  mcp.CreateMessageParams `json:\"params\"`\n\t}{\n\t\tJSONRPC: mcp.JSONRPC_VERSION,\n\t\tID:      id,\n\t\tMethod:  string(mcp.MethodSamplingCreateMessage),\n\t\tParams:  request.CreateMessageParams,\n\t}\n\n\t// Marshal and send the request\n\trequestBytes, err := json.Marshal(jsonRPCRequest)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to marshal sampling request: %w\", err)\n\t}\n\trequestBytes = append(requestBytes, '\\n')\n\n\tif _, err := writer.Write(requestBytes); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to write sampling request: %w\", err)\n\t}\n\n\t// Wait for the response or context cancellation\n\tselect {\n\tcase <-ctx.Done():\n\t\treturn nil, ctx.Err()\n\tcase response := <-responseChan:\n\t\tif response.err != nil {\n\t\t\treturn nil, response.err\n\t\t}\n\t\treturn response.result, nil\n\t}\n}\n\n// ListRoots sends an list roots request to the client and waits for the response.\nfunc (s *stdioSession) ListRoots(ctx context.Context, request mcp.ListRootsRequest) (*mcp.ListRootsResult, error) {\n\ts.mu.RLock()\n\twriter := s.writer\n\ts.mu.RUnlock()\n\n\tif writer == nil {\n\t\treturn nil, fmt.Errorf(\"no writer available for sending requests\")\n\t}\n\n\t// Generate a unique request ID\n\tid := s.requestID.Add(1)\n\n\t// Create a response channel for this request\n\tresponseChan := make(chan *rootsResponse, 1)\n\ts.pendingMu.Lock()\n\ts.pendingRoots[id] = responseChan\n\ts.pendingMu.Unlock()\n\n\t// Cleanup function to remove the pending request\n\tcleanup := func() {\n\t\ts.pendingMu.Lock()\n\t\tdelete(s.pendingRoots, id)\n\t\ts.pendingMu.Unlock()\n\t}\n\tdefer cleanup()\n\n\t// Create the JSON-RPC request\n\tjsonRPCRequest := struct {\n\t\tJSONRPC string `json:\"jsonrpc\"`\n\t\tID      int64  `json:\"id\"`\n\t\tMethod  string `json:\"method\"`\n\t}{\n\t\tJSONRPC: mcp.JSONRPC_VERSION,\n\t\tID:      id,\n\t\tMethod:  string(mcp.MethodListRoots),\n\t}\n\n\t// Marshal and send the request\n\trequestBytes, err := json.Marshal(jsonRPCRequest)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to marshal list roots request: %w\", err)\n\t}\n\trequestBytes = append(requestBytes, '\\n')\n\n\tif _, err := writer.Write(requestBytes); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to write list roots request: %w\", err)\n\t}\n\n\t// Wait for the response or context cancellation\n\tselect {\n\tcase <-ctx.Done():\n\t\treturn nil, ctx.Err()\n\tcase response := <-responseChan:\n\t\tif response.err != nil {\n\t\t\treturn nil, response.err\n\t\t}\n\t\treturn response.result, nil\n\t}\n}\n\n// RequestElicitation sends an elicitation request to the client and waits for the response.\nfunc (s *stdioSession) RequestElicitation(ctx context.Context, request mcp.ElicitationRequest) (*mcp.ElicitationResult, error) {\n\ts.mu.RLock()\n\twriter := s.writer\n\ts.mu.RUnlock()\n\n\tif writer == nil {\n\t\treturn nil, fmt.Errorf(\"no writer available for sending requests\")\n\t}\n\n\t// Generate a unique request ID\n\tid := s.requestID.Add(1)\n\n\t// Create a response channel for this request\n\tresponseChan := make(chan *elicitationResponse, 1)\n\ts.pendingMu.Lock()\n\ts.pendingElicitations[id] = responseChan\n\ts.pendingMu.Unlock()\n\n\t// Cleanup function to remove the pending request\n\tcleanup := func() {\n\t\ts.pendingMu.Lock()\n\t\tdelete(s.pendingElicitations, id)\n\t\ts.pendingMu.Unlock()\n\t}\n\tdefer cleanup()\n\n\t// Create the JSON-RPC request\n\tjsonRPCRequest := struct {\n\t\tJSONRPC string                `json:\"jsonrpc\"`\n\t\tID      int64                 `json:\"id\"`\n\t\tMethod  string                `json:\"method\"`\n\t\tParams  mcp.ElicitationParams `json:\"params\"`\n\t}{\n\t\tJSONRPC: mcp.JSONRPC_VERSION,\n\t\tID:      id,\n\t\tMethod:  string(mcp.MethodElicitationCreate),\n\t\tParams:  request.Params,\n\t}\n\n\t// Marshal and send the request\n\trequestBytes, err := json.Marshal(jsonRPCRequest)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to marshal elicitation request: %w\", err)\n\t}\n\trequestBytes = append(requestBytes, '\\n')\n\n\tif _, err := writer.Write(requestBytes); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to write elicitation request: %w\", err)\n\t}\n\n\t// Wait for the response or context cancellation\n\tselect {\n\tcase <-ctx.Done():\n\t\treturn nil, ctx.Err()\n\tcase response := <-responseChan:\n\t\tif response.err != nil {\n\t\t\treturn nil, response.err\n\t\t}\n\t\treturn response.result, nil\n\t}\n}\n\n// SetWriter sets the writer for sending requests to the client.\nfunc (s *stdioSession) SetWriter(writer io.Writer) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\ts.writer = writer\n}\n\nvar (\n\t_ ClientSession          = (*stdioSession)(nil)\n\t_ SessionWithLogging     = (*stdioSession)(nil)\n\t_ SessionWithClientInfo  = (*stdioSession)(nil)\n\t_ SessionWithSampling    = (*stdioSession)(nil)\n\t_ SessionWithElicitation = (*stdioSession)(nil)\n\t_ SessionWithRoots       = (*stdioSession)(nil)\n)\n\nvar stdioSessionInstance = stdioSession{\n\tnotifications:       make(chan mcp.JSONRPCNotification, 100),\n\tpendingRequests:     make(map[int64]chan *samplingResponse),\n\tpendingElicitations: make(map[int64]chan *elicitationResponse),\n\tpendingRoots:        make(map[int64]chan *rootsResponse),\n}\n\n// NewStdioServer creates a new stdio server wrapper around an MCPServer.\n// It initializes the server with a default error logger that discards all output.\nfunc NewStdioServer(server *MCPServer) *StdioServer {\n\treturn &StdioServer{\n\t\tserver: server,\n\t\terrLogger: log.New(\n\t\t\tos.Stderr,\n\t\t\t\"\",\n\t\t\tlog.LstdFlags,\n\t\t), // Default to discarding logs\n\t\tworkerPoolSize: 5,   // Default worker pool size\n\t\tqueueSize:      100, // Default queue size\n\t}\n}\n\n// SetErrorLogger configures where error messages from the StdioServer are logged.\n// The provided logger will receive all error messages generated during server operation.\nfunc (s *StdioServer) SetErrorLogger(logger *log.Logger) {\n\ts.errLogger = logger\n}\n\n// SetContextFunc sets a function that will be called to customise the context\n// to the server. Note that the stdio server uses the same context for all requests,\n// so this function will only be called once per server instance.\nfunc (s *StdioServer) SetContextFunc(fn StdioContextFunc) {\n\ts.contextFunc = fn\n}\n\n// handleNotifications continuously processes notifications from the session's notification channel\n// and writes them to the provided output. It runs until the context is cancelled.\n// Any errors encountered while writing notifications are logged but do not stop the handler.\nfunc (s *StdioServer) handleNotifications(ctx context.Context, stdout io.Writer) {\n\tfor {\n\t\tselect {\n\t\tcase notification := <-stdioSessionInstance.notifications:\n\t\t\tif err := s.writeResponse(notification, stdout); err != nil {\n\t\t\t\ts.errLogger.Printf(\"Error writing notification: %v\", err)\n\t\t\t}\n\t\tcase <-ctx.Done():\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// processInputStream continuously reads and processes messages from the input stream.\n// It handles EOF gracefully as a normal termination condition.\n// The function returns when either:\n// - The context is cancelled (returns context.Err())\n// - EOF is encountered (returns nil)\n// - An error occurs while reading or processing messages (returns the error)\nfunc (s *StdioServer) processInputStream(ctx context.Context, reader *bufio.Reader, stdout io.Writer) error {\n\tfor {\n\t\tif err := ctx.Err(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tline, err := s.readNextLine(ctx, reader)\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\ts.errLogger.Printf(\"Error reading input: %v\", err)\n\t\t\treturn err\n\t\t}\n\n\t\tif err := s.processMessage(ctx, line, stdout); err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\ts.errLogger.Printf(\"Error handling message: %v\", err)\n\t\t\treturn err\n\t\t}\n\t}\n}\n\n// toolCallWorker processes tool calls from the queue\nfunc (s *StdioServer) toolCallWorker(ctx context.Context) {\n\tdefer s.workerWg.Done()\n\n\tfor {\n\t\tselect {\n\t\tcase work, ok := <-s.toolCallQueue:\n\t\t\tif !ok {\n\t\t\t\t// Channel closed, exit worker\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Process the tool call\n\t\t\tresponse := s.server.HandleMessage(work.ctx, work.message)\n\t\t\tif response != nil {\n\t\t\t\tif err := s.writeResponse(response, work.writer); err != nil {\n\t\t\t\t\ts.errLogger.Printf(\"Error writing tool response: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase <-ctx.Done():\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// readNextLine reads a single line from the input reader in a context-aware manner.\n// It uses channels to make the read operation cancellable via context.\n// Returns the read line and any error encountered. If the context is cancelled,\n// returns an empty string and the context's error. EOF is returned when the input\n// stream is closed.\nfunc (s *StdioServer) readNextLine(ctx context.Context, reader *bufio.Reader) (string, error) {\n\ttype result struct {\n\t\tline string\n\t\terr  error\n\t}\n\n\tresultCh := make(chan result, 1)\n\n\tgo func() {\n\t\tline, err := reader.ReadString('\\n')\n\t\tresultCh <- result{line: line, err: err}\n\t}()\n\n\tselect {\n\tcase <-ctx.Done():\n\t\treturn \"\", nil\n\tcase res := <-resultCh:\n\t\treturn res.line, res.err\n\t}\n}\n\n// Listen starts listening for JSON-RPC messages on the provided input and writes responses to the provided output.\n// It runs until the context is cancelled or an error occurs.\n// Returns an error if there are issues with reading input or writing output.\nfunc (s *StdioServer) Listen(\n\tctx context.Context,\n\tstdin io.Reader,\n\tstdout io.Writer,\n) error {\n\t// Initialize the tool call queue\n\ts.toolCallQueue = make(chan *toolCallWork, s.queueSize)\n\n\t// Set a static client context since stdio only has one client\n\tif err := s.server.RegisterSession(ctx, &stdioSessionInstance); err != nil {\n\t\treturn fmt.Errorf(\"register session: %w\", err)\n\t}\n\tdefer s.server.UnregisterSession(ctx, stdioSessionInstance.SessionID())\n\tctx = s.server.WithContext(ctx, &stdioSessionInstance)\n\n\t// Set the writer for sending requests to the client\n\tstdioSessionInstance.SetWriter(stdout)\n\n\t// Add in any custom context.\n\tif s.contextFunc != nil {\n\t\tctx = s.contextFunc(ctx)\n\t}\n\n\treader := bufio.NewReader(stdin)\n\n\t// Start worker pool for tool calls\n\tfor i := 0; i < s.workerPoolSize; i++ {\n\t\ts.workerWg.Add(1)\n\t\tgo s.toolCallWorker(ctx)\n\t}\n\n\t// Start notification handler\n\tgo s.handleNotifications(ctx, stdout)\n\n\t// Process input stream\n\terr := s.processInputStream(ctx, reader, stdout)\n\n\t// Shutdown workers gracefully\n\tclose(s.toolCallQueue)\n\ts.workerWg.Wait()\n\n\treturn err\n}\n\n// processMessage handles a single JSON-RPC message and writes the response.\n// It parses the message, processes it through the wrapped MCPServer, and writes any response.\n// Returns an error if there are issues with message processing or response writing.\nfunc (s *StdioServer) processMessage(\n\tctx context.Context,\n\tline string,\n\twriter io.Writer,\n) error {\n\t// If line is empty, likely due to ctx cancellation\n\tif len(line) == 0 {\n\t\treturn nil\n\t}\n\n\t// Parse the message as raw JSON\n\tvar rawMessage json.RawMessage\n\tif err := json.Unmarshal([]byte(line), &rawMessage); err != nil {\n\t\tresponse := createErrorResponse(nil, mcp.PARSE_ERROR, \"Parse error\")\n\t\treturn s.writeResponse(response, writer)\n\t}\n\n\t// Check if this is a response to a sampling request\n\tif s.handleSamplingResponse(rawMessage) {\n\t\treturn nil\n\t}\n\n\t// Check if this is a response to an elicitation request\n\tif s.handleElicitationResponse(rawMessage) {\n\t\treturn nil\n\t}\n\n\t// Check if this is a response to an list roots request\n\tif s.handleListRootsResponse(rawMessage) {\n\t\treturn nil\n\t}\n\n\t// Check if this is a tool call that might need sampling (and thus should be processed concurrently)\n\tvar baseMessage struct {\n\t\tMethod string `json:\"method\"`\n\t}\n\tif json.Unmarshal(rawMessage, &baseMessage) == nil && baseMessage.Method == \"tools/call\" {\n\t\t// Queue tool calls for processing by workers\n\t\tselect {\n\t\tcase s.toolCallQueue <- &toolCallWork{\n\t\t\tctx:     ctx,\n\t\t\tmessage: rawMessage,\n\t\t\twriter:  writer,\n\t\t}:\n\t\t\treturn nil\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tdefault:\n\t\t\t// Queue is full, process synchronously as fallback\n\t\t\ts.errLogger.Printf(\"Tool call queue full, processing synchronously\")\n\t\t\tresponse := s.server.HandleMessage(ctx, rawMessage)\n\t\t\tif response != nil {\n\t\t\t\treturn s.writeResponse(response, writer)\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// Handle other messages synchronously\n\tresponse := s.server.HandleMessage(ctx, rawMessage)\n\n\t// Only write response if there is one (not for notifications)\n\tif response != nil {\n\t\tif err := s.writeResponse(response, writer); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to write response: %w\", err)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// handleSamplingResponse checks if the message is a response to a sampling request\n// and routes it to the appropriate pending request channel.\nfunc (s *StdioServer) handleSamplingResponse(rawMessage json.RawMessage) bool {\n\treturn stdioSessionInstance.handleSamplingResponse(rawMessage)\n}\n\n// handleSamplingResponse handles incoming sampling responses for this session\nfunc (s *stdioSession) handleSamplingResponse(rawMessage json.RawMessage) bool {\n\t// Try to parse as a JSON-RPC response\n\tvar response struct {\n\t\tJSONRPC string          `json:\"jsonrpc\"`\n\t\tID      json.Number     `json:\"id\"`\n\t\tResult  json.RawMessage `json:\"result,omitempty\"`\n\t\tError   *struct {\n\t\t\tCode    int    `json:\"code\"`\n\t\t\tMessage string `json:\"message\"`\n\t\t} `json:\"error,omitempty\"`\n\t}\n\n\tif err := json.Unmarshal(rawMessage, &response); err != nil {\n\t\treturn false\n\t}\n\t// Parse the ID as int64\n\tidInt64, err := response.ID.Int64()\n\tif err != nil || (response.Result == nil && response.Error == nil) {\n\t\treturn false\n\t}\n\n\t// Look for a pending request with this ID\n\ts.pendingMu.RLock()\n\tresponseChan, exists := s.pendingRequests[idInt64]\n\ts.pendingMu.RUnlock()\n\n\tif !exists {\n\t\treturn false\n\t} // Parse and send the response\n\tsamplingResp := &samplingResponse{}\n\n\tif response.Error != nil {\n\t\tsamplingResp.err = fmt.Errorf(\"sampling request failed: %s\", response.Error.Message)\n\t} else {\n\t\tvar result mcp.CreateMessageResult\n\t\tif err := json.Unmarshal(response.Result, &result); err != nil {\n\t\t\tsamplingResp.err = fmt.Errorf(\"failed to unmarshal sampling response: %w\", err)\n\t\t} else {\n\t\t\t// Parse content from map[string]any to proper Content type (TextContent, ImageContent, AudioContent)\n\t\t\tif contentMap, ok := result.Content.(map[string]any); ok {\n\t\t\t\tcontent, err := mcp.ParseContent(contentMap)\n\t\t\t\tif err != nil {\n\t\t\t\t\tsamplingResp.err = fmt.Errorf(\"failed to parse sampling response content: %w\", err)\n\t\t\t\t} else {\n\t\t\t\t\tresult.Content = content\n\t\t\t\t\tsamplingResp.result = &result\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsamplingResp.result = &result\n\t\t\t}\n\t\t}\n\t}\n\n\t// Send the response (non-blocking)\n\tselect {\n\tcase responseChan <- samplingResp:\n\tdefault:\n\t\t// Channel is full or closed, ignore\n\t}\n\n\treturn true\n}\n\n// handleElicitationResponse checks if the message is a response to an elicitation request\n// and routes it to the appropriate pending request channel.\nfunc (s *StdioServer) handleElicitationResponse(rawMessage json.RawMessage) bool {\n\treturn stdioSessionInstance.handleElicitationResponse(rawMessage)\n}\n\n// handleElicitationResponse handles incoming elicitation responses for this session\nfunc (s *stdioSession) handleElicitationResponse(rawMessage json.RawMessage) bool {\n\t// Try to parse as a JSON-RPC response\n\tvar response struct {\n\t\tJSONRPC string          `json:\"jsonrpc\"`\n\t\tID      json.Number     `json:\"id\"`\n\t\tResult  json.RawMessage `json:\"result,omitempty\"`\n\t\tError   *struct {\n\t\t\tCode    int    `json:\"code\"`\n\t\t\tMessage string `json:\"message\"`\n\t\t} `json:\"error,omitempty\"`\n\t}\n\n\tif err := json.Unmarshal(rawMessage, &response); err != nil {\n\t\treturn false\n\t}\n\t// Parse the ID as int64\n\tid, err := response.ID.Int64()\n\tif err != nil || (response.Result == nil && response.Error == nil) {\n\t\treturn false\n\t}\n\n\t// Check if we have a pending elicitation request with this ID\n\ts.pendingMu.RLock()\n\tresponseChan, exists := s.pendingElicitations[id]\n\ts.pendingMu.RUnlock()\n\n\tif !exists {\n\t\treturn false\n\t}\n\n\t// Parse and send the response\n\telicitationResp := &elicitationResponse{}\n\n\tif response.Error != nil {\n\t\telicitationResp.err = fmt.Errorf(\"elicitation request failed: %s\", response.Error.Message)\n\t} else {\n\t\tvar result mcp.ElicitationResult\n\t\tif err := json.Unmarshal(response.Result, &result); err != nil {\n\t\t\telicitationResp.err = fmt.Errorf(\"failed to unmarshal elicitation response: %w\", err)\n\t\t} else {\n\t\t\telicitationResp.result = &result\n\t\t}\n\t}\n\n\t// Send the response (non-blocking)\n\tselect {\n\tcase responseChan <- elicitationResp:\n\tdefault:\n\t\t// Channel is full or closed, ignore\n\t}\n\n\treturn true\n}\n\n// handleListRootsResponse checks if the message is a response to an list roots request\n// and routes it to the appropriate pending request channel.\nfunc (s *StdioServer) handleListRootsResponse(rawMessage json.RawMessage) bool {\n\treturn stdioSessionInstance.handleListRootsResponse(rawMessage)\n}\n\n// handleListRootsResponse handles incoming list root responses for this session\nfunc (s *stdioSession) handleListRootsResponse(rawMessage json.RawMessage) bool {\n\t// Try to parse as a JSON-RPC response\n\tvar response struct {\n\t\tJSONRPC string          `json:\"jsonrpc\"`\n\t\tID      json.Number     `json:\"id\"`\n\t\tResult  json.RawMessage `json:\"result,omitempty\"`\n\t\tError   *struct {\n\t\t\tCode    int    `json:\"code\"`\n\t\t\tMessage string `json:\"message\"`\n\t\t} `json:\"error,omitempty\"`\n\t}\n\n\tif err := json.Unmarshal(rawMessage, &response); err != nil {\n\t\treturn false\n\t}\n\t// Parse the ID as int64\n\tid, err := response.ID.Int64()\n\tif err != nil || (response.Result == nil && response.Error == nil) {\n\t\treturn false\n\t}\n\n\t// Check if we have a pending list root request with this ID\n\ts.pendingMu.RLock()\n\tresponseChan, exists := s.pendingRoots[id]\n\ts.pendingMu.RUnlock()\n\n\tif !exists {\n\t\treturn false\n\t}\n\n\t// Parse and send the response\n\trootsResp := &rootsResponse{}\n\n\tif response.Error != nil {\n\t\trootsResp.err = fmt.Errorf(\"list root request failed: %s\", response.Error.Message)\n\t} else {\n\t\tvar result mcp.ListRootsResult\n\t\tif err := json.Unmarshal(response.Result, &result); err != nil {\n\t\t\trootsResp.err = fmt.Errorf(\"failed to unmarshal list root response: %w\", err)\n\t\t} else {\n\t\t\trootsResp.result = &result\n\t\t}\n\t}\n\n\t// Send the response (non-blocking)\n\tselect {\n\tcase responseChan <- rootsResp:\n\tdefault:\n\t\t// Channel is full or closed, ignore\n\t}\n\n\treturn true\n}\n\n// writeResponse marshals and writes a JSON-RPC response message followed by a newline.\n// Returns an error if marshaling or writing fails.\nfunc (s *StdioServer) writeResponse(\n\tresponse mcp.JSONRPCMessage,\n\twriter io.Writer,\n) error {\n\tresponseBytes, err := json.Marshal(response)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Protect concurrent writes\n\ts.writeMu.Lock()\n\tdefer s.writeMu.Unlock()\n\n\t// Write response followed by newline\n\tif _, err := fmt.Fprintf(writer, \"%s\\n\", responseBytes); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// ServeStdio is a convenience function that creates and starts a StdioServer with os.Stdin and os.Stdout.\n// It sets up signal handling for graceful shutdown on SIGTERM and SIGINT.\n// Returns an error if the server encounters any issues during operation.\nfunc ServeStdio(server *MCPServer, opts ...StdioOption) error {\n\ts := NewStdioServer(server)\n\n\tfor _, opt := range opts {\n\t\topt(s)\n\t}\n\n\tctx, cancel := context.WithCancel(context.Background())\n\tdefer cancel()\n\n\t// Set up signal handling\n\tsigChan := make(chan os.Signal, 1)\n\tsignal.Notify(sigChan, syscall.SIGTERM, syscall.SIGINT)\n\n\tgo func() {\n\t\t<-sigChan\n\t\tcancel()\n\t}()\n\n\treturn s.Listen(ctx, os.Stdin, os.Stdout)\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/streamable_http.go",
    "content": "package server\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"maps\"\n\t\"mime\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\t\"unicode\"\n\n\t\"github.com/google/uuid\"\n\t\"github.com/mark3labs/mcp-go/mcp\"\n\t\"github.com/mark3labs/mcp-go/util\"\n)\n\n// StreamableHTTPOption defines a function type for configuring StreamableHTTPServer\ntype StreamableHTTPOption func(*StreamableHTTPServer)\n\n// WithEndpointPath sets the endpoint path for the server.\n// The default is \"/mcp\".\n// It's only works for `Start` method. When used as a http.Handler, it has no effect.\nfunc WithEndpointPath(endpointPath string) StreamableHTTPOption {\n\treturn func(s *StreamableHTTPServer) {\n\t\t// Normalize the endpoint path to ensure it starts with a slash and doesn't end with one\n\t\tnormalizedPath := \"/\" + strings.Trim(endpointPath, \"/\")\n\t\ts.endpointPath = normalizedPath\n\t}\n}\n\n// WithStateLess sets the server to stateless mode.\n// If true, the server will manage no session information. Every request will be treated\n// as a new session. No session id returned to the client.\n// The default is false.\n//\n// Note: This is a convenience method. It's identical to set WithSessionIdManager option\n// to StatelessSessionIdManager.\nfunc WithStateLess(stateLess bool) StreamableHTTPOption {\n\treturn func(s *StreamableHTTPServer) {\n\t\tif stateLess {\n\t\t\ts.sessionIdManagerResolver = NewDefaultSessionIdManagerResolver(&StatelessSessionIdManager{})\n\t\t}\n\t}\n}\n\n// WithSessionIdManager sets a custom session id generator for the server.\n// By default, the server uses StatelessGeneratingSessionIdManager (generates IDs but no local validation).\n// Note: Options are applied in order; the last one wins. If combined with\n// WithStateLess or WithSessionIdManagerResolver, whichever is applied last takes effect.\nfunc WithSessionIdManager(manager SessionIdManager) StreamableHTTPOption {\n\treturn func(s *StreamableHTTPServer) {\n\t\tif manager == nil {\n\t\t\ts.sessionIdManagerResolver = NewDefaultSessionIdManagerResolver(&StatelessSessionIdManager{})\n\t\t\treturn\n\t\t}\n\t\ts.sessionIdManagerResolver = NewDefaultSessionIdManagerResolver(manager)\n\t}\n}\n\n// WithSessionIdManagerResolver sets a custom session id manager resolver for the server.\n// This allows for request-based session id management strategies.\n// Note: Options are applied in order; the last one wins. If combined with\n// WithStateLess or WithSessionIdManager, whichever is applied last takes effect.\nfunc WithSessionIdManagerResolver(resolver SessionIdManagerResolver) StreamableHTTPOption {\n\treturn func(s *StreamableHTTPServer) {\n\t\tif resolver == nil {\n\t\t\ts.sessionIdManagerResolver = NewDefaultSessionIdManagerResolver(&StatelessSessionIdManager{})\n\t\t\treturn\n\t\t}\n\t\ts.sessionIdManagerResolver = resolver\n\t}\n}\n\n// WithStateful enables stateful session management using InsecureStatefulSessionIdManager.\n// This requires sticky sessions in multi-instance deployments.\nfunc WithStateful(stateful bool) StreamableHTTPOption {\n\treturn func(s *StreamableHTTPServer) {\n\t\tif stateful {\n\t\t\ts.sessionIdManagerResolver = NewDefaultSessionIdManagerResolver(&InsecureStatefulSessionIdManager{})\n\t\t}\n\t}\n}\n\n// WithHeartbeatInterval sets the heartbeat interval. Positive interval means the\n// server will send a heartbeat to the client through the GET connection, to keep\n// the connection alive from being closed by the network infrastructure (e.g.\n// gateways). If the client does not establish a GET connection, it has no\n// effect. The default is not to send heartbeats.\nfunc WithHeartbeatInterval(interval time.Duration) StreamableHTTPOption {\n\treturn func(s *StreamableHTTPServer) {\n\t\ts.listenHeartbeatInterval = interval\n\t}\n}\n\n// WithDisableStreaming prevents the server from responding to GET requests with\n// a streaming response. Instead, it will respond with a 405 Method Not Allowed status.\n// This can be useful in scenarios where streaming is not desired or supported.\n// The default is false, meaning streaming is enabled.\nfunc WithDisableStreaming(disable bool) StreamableHTTPOption {\n\treturn func(s *StreamableHTTPServer) {\n\t\ts.disableStreaming = disable\n\t}\n}\n\n// WithHTTPContextFunc sets a function that will be called to customise the context\n// to the server using the incoming request.\n// This can be used to inject context values from headers, for example.\nfunc WithHTTPContextFunc(fn HTTPContextFunc) StreamableHTTPOption {\n\treturn func(s *StreamableHTTPServer) {\n\t\ts.contextFunc = fn\n\t}\n}\n\n// WithStreamableHTTPServer sets the HTTP server instance for StreamableHTTPServer.\n// NOTE: When providing a custom HTTP server, you must handle routing yourself\n// If routing is not set up, the server will start but won't handle any MCP requests.\nfunc WithStreamableHTTPServer(srv *http.Server) StreamableHTTPOption {\n\treturn func(s *StreamableHTTPServer) {\n\t\ts.httpServer = srv\n\t}\n}\n\n// WithLogger sets the logger for the server\nfunc WithLogger(logger util.Logger) StreamableHTTPOption {\n\treturn func(s *StreamableHTTPServer) {\n\t\ts.logger = logger\n\t}\n}\n\n// WithTLSCert sets the TLS certificate and key files for HTTPS support.\n// Both certFile and keyFile must be provided to enable TLS.\nfunc WithTLSCert(certFile, keyFile string) StreamableHTTPOption {\n\treturn func(s *StreamableHTTPServer) {\n\t\ts.tlsCertFile = certFile\n\t\ts.tlsKeyFile = keyFile\n\t}\n}\n\n// WithSessionIdleTTL sets the idle TTL for per-session transport state.\n// When enabled, a background sweeper periodically removes entries from\n// per-session stores (tools, resources, resource templates, log levels,\n// request IDs) for sessions that have been idle longer than the given\n// duration. This prevents memory leaks when clients disconnect without\n// sending a DELETE request. A zero or negative value disables the sweeper\n// (the default).\nfunc WithSessionIdleTTL(ttl time.Duration) StreamableHTTPOption {\n\treturn func(s *StreamableHTTPServer) {\n\t\ts.sessionIdleTTL = ttl\n\t}\n}\n\n// StreamableHTTPServer implements a Streamable-http based MCP server.\n// It communicates with clients over HTTP protocol, supporting both direct HTTP responses, and SSE streams.\n// https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http\n//\n// Usage:\n//\n//\tserver := NewStreamableHTTPServer(mcpServer)\n//\tserver.Start(\":8080\") // The final url for client is http://xxxx:8080/mcp by default\n//\n// or the server itself can be used as a http.Handler, which is convenient to\n// integrate with existing http servers, or advanced usage:\n//\n//\thandler := NewStreamableHTTPServer(mcpServer)\n//\thttp.Handle(\"/streamable-http\", handler)\n//\thttp.ListenAndServe(\":8080\", nil)\n//\n// Notice:\n// Except for the GET handlers(listening), the POST handlers(request/notification) will\n// not trigger the session registration. So the methods like `SendNotificationToSpecificClient`\n// or `hooks.onRegisterSession` will not be triggered for POST messages.\n//\n// The current implementation does not support the following features from the specification:\n//   - Stream Resumability\ntype StreamableHTTPServer struct {\n\tserver                   *MCPServer\n\tsessionTools             *sessionToolsStore\n\tsessionResources         *sessionResourcesStore\n\tsessionResourceTemplates *sessionResourceTemplatesStore\n\tsessionRequestIDs        sync.Map // sessionId --> last requestID(*atomic.Int64)\n\tactiveSessions           sync.Map // sessionId --> *streamableHttpSession (for sampling responses)\n\n\thttpServer *http.Server\n\tmu         sync.RWMutex\n\n\tendpointPath             string\n\tcontextFunc              HTTPContextFunc\n\tsessionIdManagerResolver SessionIdManagerResolver\n\tsessionIdManager         SessionIdManager // for non-request contexts (sweeper)\n\tlistenHeartbeatInterval  time.Duration\n\tlogger                   util.Logger\n\tsessionLogLevels         *sessionLogLevelsStore\n\tdisableStreaming         bool\n\n\ttlsCertFile string\n\ttlsKeyFile  string\n\n\tsessionIdleTTL    time.Duration\n\tsessionLastActive sync.Map // sessionID → *atomic.Int64 (unix nanos)\n\tsweeperCancel     context.CancelFunc\n}\n\n// NewStreamableHTTPServer creates a new streamable-http server instance\nfunc NewStreamableHTTPServer(server *MCPServer, opts ...StreamableHTTPOption) *StreamableHTTPServer {\n\ts := &StreamableHTTPServer{\n\t\tserver:                   server,\n\t\tsessionTools:             newSessionToolsStore(),\n\t\tsessionLogLevels:         newSessionLogLevelsStore(),\n\t\tendpointPath:             \"/mcp\",\n\t\tsessionIdManagerResolver: NewDefaultSessionIdManagerResolver(&StatelessGeneratingSessionIdManager{}),\n\t\tlogger:                   util.DefaultLogger(),\n\t\tsessionResources:         newSessionResourcesStore(),\n\t\tsessionResourceTemplates: newSessionResourceTemplatesStore(),\n\t}\n\n\t// Apply all options\n\tfor _, opt := range opts {\n\t\topt(s)\n\t}\n\n\t// Cache the session ID manager for use in non-request contexts (sweeper).\n\t// DefaultSessionIdManagerResolver always returns the same manager,\n\t// so resolving it once at startup is semantically identical.\n\tif r, ok := s.sessionIdManagerResolver.(*DefaultSessionIdManagerResolver); ok {\n\t\ts.sessionIdManager = r.manager\n\t}\n\n\tif s.sessionIdleTTL > 0 {\n\t\tctx, cancel := context.WithCancel(context.Background())\n\t\ts.sweeperCancel = cancel\n\t\ts.startSessionSweeper(ctx)\n\t}\n\n\treturn s\n}\n\n// ServeHTTP implements the http.Handler interface.\nfunc (s *StreamableHTTPServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tswitch r.Method {\n\tcase http.MethodPost:\n\t\ts.handlePost(w, r)\n\tcase http.MethodGet:\n\t\ts.handleGet(w, r)\n\tcase http.MethodDelete:\n\t\ts.handleDelete(w, r)\n\tdefault:\n\t\thttp.NotFound(w, r)\n\t}\n}\n\n// Start begins serving the http server on the specified address and path\n// (endpointPath). like:\n//\n//\ts.Start(\":8080\")\nfunc (s *StreamableHTTPServer) Start(addr string) error {\n\ts.mu.Lock()\n\tif s.httpServer == nil {\n\t\tmux := http.NewServeMux()\n\t\tmux.Handle(s.endpointPath, s)\n\t\ts.httpServer = &http.Server{\n\t\t\tAddr:    addr,\n\t\t\tHandler: mux,\n\t\t}\n\t} else {\n\t\tif s.httpServer.Addr == \"\" {\n\t\t\ts.httpServer.Addr = addr\n\t\t} else if s.httpServer.Addr != addr {\n\t\t\treturn fmt.Errorf(\"conflicting listen address: WithStreamableHTTPServer(%q) vs Start(%q)\", s.httpServer.Addr, addr)\n\t\t}\n\t}\n\tsrv := s.httpServer\n\ts.mu.Unlock()\n\n\tif s.tlsCertFile != \"\" || s.tlsKeyFile != \"\" {\n\t\tif s.tlsCertFile == \"\" || s.tlsKeyFile == \"\" {\n\t\t\treturn fmt.Errorf(\"both TLS cert and key must be provided\")\n\t\t}\n\t\tif _, err := os.Stat(s.tlsCertFile); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to find TLS certificate file: %w\", err)\n\t\t}\n\t\tif _, err := os.Stat(s.tlsKeyFile); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to find TLS key file: %w\", err)\n\t\t}\n\t\treturn srv.ListenAndServeTLS(s.tlsCertFile, s.tlsKeyFile)\n\t}\n\n\treturn srv.ListenAndServe()\n}\n\n// Shutdown gracefully stops the server, closing all active sessions\n// and shutting down the HTTP server.\nfunc (s *StreamableHTTPServer) Shutdown(ctx context.Context) error {\n\tif s.sweeperCancel != nil {\n\t\ts.sweeperCancel()\n\t}\n\n\t// shutdown the server if needed (may use as a http.Handler)\n\ts.mu.RLock()\n\tsrv := s.httpServer\n\ts.mu.RUnlock()\n\tif srv != nil {\n\t\treturn srv.Shutdown(ctx)\n\t}\n\treturn nil\n}\n\n// --- internal methods ---\n\nfunc (s *StreamableHTTPServer) handlePost(w http.ResponseWriter, r *http.Request) {\n\t// post request carry request/notification message\n\n\t// Check content type\n\tcontentType := r.Header.Get(\"Content-Type\")\n\tmediaType, _, err := mime.ParseMediaType(contentType)\n\tif err != nil || mediaType != \"application/json\" {\n\t\thttp.Error(w, \"Invalid content type: must be 'application/json'\", http.StatusBadRequest)\n\t\treturn\n\t}\n\n\t// Check the request body is valid json, meanwhile, get the request Method\n\trawData, err := io.ReadAll(r.Body)\n\tif err != nil {\n\t\ts.writeJSONRPCError(w, nil, mcp.PARSE_ERROR, fmt.Sprintf(\"read request body error: %v\", err))\n\t\treturn\n\t}\n\t// First, try to parse as a response (sampling responses don't have a method field)\n\tvar jsonMessage struct {\n\t\tID     json.RawMessage `json:\"id\"`\n\t\tResult json.RawMessage `json:\"result,omitempty\"`\n\t\tError  json.RawMessage `json:\"error,omitempty\"`\n\t\tMethod mcp.MCPMethod   `json:\"method,omitempty\"`\n\t}\n\tif err := json.Unmarshal(rawData, &jsonMessage); err != nil {\n\t\ts.writeJSONRPCError(w, nil, mcp.PARSE_ERROR, \"request body is not valid json\")\n\t\treturn\n\t}\n\n\t// detect empty ping response, skip session ID validation\n\tisPingResponse := jsonMessage.Method == \"\" && jsonMessage.ID != nil &&\n\t\t(isJSONEmpty(jsonMessage.Result) && isJSONEmpty(jsonMessage.Error))\n\n\tif isPingResponse {\n\t\treturn\n\t}\n\n\t// Check if this is a sampling response (has result/error but no method)\n\tisSamplingResponse := jsonMessage.Method == \"\" && jsonMessage.ID != nil &&\n\t\t(jsonMessage.Result != nil || jsonMessage.Error != nil)\n\n\tisInitializeRequest := jsonMessage.Method == mcp.MethodInitialize\n\n\t// Handle sampling responses separately\n\tif isSamplingResponse {\n\t\tif err := s.handleSamplingResponse(w, r, jsonMessage); err != nil {\n\t\t\ts.logger.Errorf(\"Failed to handle sampling response: %v\", err)\n\t\t\thttp.Error(w, \"Failed to handle sampling response\", http.StatusInternalServerError)\n\t\t}\n\t\treturn\n\t}\n\n\t// Prepare the session for the mcp server\n\t// The session is ephemeral. Its life is the same as the request. It's only created\n\t// for interaction with the mcp server.\n\tvar sessionID string\n\tsessionIdManager := s.sessionIdManagerResolver.ResolveSessionIdManager(r)\n\tif isInitializeRequest {\n\t\t// generate a new one for initialize request\n\t\tsessionID = sessionIdManager.Generate()\n\t} else {\n\t\t// Get session ID from header.\n\t\t// Stateful servers need the client to carry the session ID.\n\t\tsessionID = r.Header.Get(HeaderKeySessionID)\n\t\tisTerminated, err := sessionIdManager.Validate(sessionID)\n\t\tif err != nil {\n\t\t\thttp.Error(w, \"Invalid session ID\", http.StatusNotFound)\n\t\t\treturn\n\t\t}\n\t\tif isTerminated {\n\t\t\thttp.Error(w, \"Session terminated\", http.StatusNotFound)\n\t\t\treturn\n\t\t}\n\t}\n\n\ts.touchSession(sessionID)\n\n\t// For non-initialize requests, try to reuse existing registered session\n\tvar session *streamableHttpSession\n\tif !isInitializeRequest {\n\t\tif sessionValue, ok := s.server.sessions.Load(sessionID); ok {\n\t\t\tif existingSession, ok := sessionValue.(*streamableHttpSession); ok {\n\t\t\t\tsession = existingSession\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if a persistent session exists (for sampling support), otherwise create ephemeral session\n\t// Persistent sessions are created by GET (continuous listening) connections\n\tif session == nil {\n\t\tif sessionInterface, exists := s.activeSessions.Load(sessionID); exists {\n\t\t\tif persistentSession, ok := sessionInterface.(*streamableHttpSession); ok {\n\t\t\t\tsession = persistentSession\n\t\t\t}\n\t\t}\n\t}\n\n\t// Create ephemeral session if no persistent session exists\n\tif session == nil {\n\t\tsession = newStreamableHttpSession(sessionID, s.sessionTools, s.sessionResources, s.sessionResourceTemplates, s.sessionLogLevels)\n\t}\n\n\t// Set the client context before handling the message\n\tctx := s.server.WithContext(r.Context(), session)\n\tif s.contextFunc != nil {\n\t\tctx = s.contextFunc(ctx, r)\n\t}\n\n\t// handle potential notifications\n\tmu := sync.Mutex{}\n\tupgradedHeader := false\n\tdone := make(chan struct{})\n\n\tctx = context.WithValue(ctx, requestHeader, r.Header)\n\tgo func() {\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase nt := <-session.notificationChannel:\n\t\t\t\tfunc() {\n\t\t\t\t\tmu.Lock()\n\t\t\t\t\tdefer mu.Unlock()\n\t\t\t\t\t// if the done chan is closed, as the request is terminated, just return\n\t\t\t\t\tselect {\n\t\t\t\t\tcase <-done:\n\t\t\t\t\t\treturn\n\t\t\t\t\tdefault:\n\t\t\t\t\t}\n\t\t\t\t\tdefer func() {\n\t\t\t\t\t\tflusher, ok := w.(http.Flusher)\n\t\t\t\t\t\tif ok {\n\t\t\t\t\t\t\tflusher.Flush()\n\t\t\t\t\t\t}\n\t\t\t\t\t}()\n\n\t\t\t\t\t// if there's notifications, upgradedHeader to SSE response\n\t\t\t\t\tif !upgradedHeader {\n\t\t\t\t\t\tw.Header().Set(\"Content-Type\", \"text/event-stream\")\n\t\t\t\t\t\tw.Header().Set(\"Connection\", \"keep-alive\")\n\t\t\t\t\t\tw.Header().Set(\"Cache-Control\", \"no-cache\")\n\t\t\t\t\t\tw.WriteHeader(http.StatusOK)\n\t\t\t\t\t\tupgradedHeader = true\n\t\t\t\t\t}\n\t\t\t\t\terr := writeSSEEvent(w, nt)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\ts.logger.Errorf(\"Failed to write SSE event: %v\", err)\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\tcase <-done:\n\t\t\t\treturn\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n\n\t// Process message through MCPServer\n\tresponse := s.server.HandleMessage(ctx, rawData)\n\tif response == nil {\n\t\t// For notifications, just send 202 Accepted with no body\n\t\tw.WriteHeader(http.StatusAccepted)\n\t\treturn\n\t}\n\n\t// Write response\n\tmu.Lock()\n\ndrainLoop:\n\tfor {\n\t\tselect {\n\t\tcase nt := <-session.notificationChannel:\n\t\t\tif !upgradedHeader {\n\t\t\t\tw.Header().Set(\"Content-Type\", \"text/event-stream\")\n\t\t\t\tw.Header().Set(\"Connection\", \"keep-alive\")\n\t\t\t\tw.Header().Set(\"Cache-Control\", \"no-cache\")\n\t\t\t\tw.WriteHeader(http.StatusOK)\n\t\t\t\tupgradedHeader = true\n\t\t\t}\n\t\t\tif err := writeSSEEvent(w, nt); err != nil {\n\t\t\t\ts.logger.Errorf(\"Failed to write SSE event during drain: %v\", err)\n\t\t\t}\n\t\t\tif flusher, ok := w.(http.Flusher); ok {\n\t\t\t\tflusher.Flush()\n\t\t\t}\n\t\tdefault:\n\t\t\tbreak drainLoop\n\t\t}\n\t}\n\n\t// close the done chan before unlocking to signal the goroutine to stop\n\tclose(done)\n\tmu.Unlock()\n\tif ctx.Err() != nil {\n\t\treturn\n\t}\n\t// If client-server communication already upgraded to SSE stream\n\tif session.upgradeToSSE.Load() {\n\t\tif !upgradedHeader {\n\t\t\tw.Header().Set(\"Content-Type\", \"text/event-stream\")\n\t\t\tw.Header().Set(\"Connection\", \"keep-alive\")\n\t\t\tw.Header().Set(\"Cache-Control\", \"no-cache\")\n\t\t\tw.WriteHeader(http.StatusOK)\n\t\t\tupgradedHeader = true\n\t\t}\n\t\tif err := writeSSEEvent(w, response); err != nil {\n\t\t\ts.logger.Errorf(\"Failed to write final SSE response event: %v\", err)\n\t\t}\n\t} else {\n\t\tw.Header().Set(\"Content-Type\", \"application/json\")\n\t\tif isInitializeRequest && sessionID != \"\" {\n\t\t\t// send the session ID back to the client\n\t\t\tw.Header().Set(HeaderKeySessionID, sessionID)\n\t\t}\n\t\tw.WriteHeader(http.StatusOK)\n\t\terr := json.NewEncoder(w).Encode(response)\n\t\tif err != nil {\n\t\t\ts.logger.Errorf(\"Failed to write response: %v\", err)\n\t\t}\n\t}\n\n\t// Register session after successful initialization\n\t// Only register if not already registered (e.g., by a GET connection)\n\tif isInitializeRequest && sessionID != \"\" {\n\t\tif _, exists := s.server.sessions.Load(sessionID); !exists {\n\t\t\t// Store in activeSessions to prevent duplicate registration from GET\n\t\t\ts.activeSessions.Store(sessionID, session)\n\t\t\t// Register the session with the MCPServer for notification support\n\t\t\tif err := s.server.RegisterSession(ctx, session); err != nil {\n\t\t\t\ts.logger.Errorf(\"Failed to register POST session: %v\", err)\n\t\t\t\ts.activeSessions.Delete(sessionID)\n\t\t\t\t// Don't fail the request, just log the error\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (s *StreamableHTTPServer) handleGet(w http.ResponseWriter, r *http.Request) {\n\t// get request is for listening to notifications\n\t// https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#listening-for-messages-from-the-server\n\tif s.disableStreaming {\n\t\ts.logger.Infof(\"Rejected GET request: streaming is disabled (session: %s)\", r.Header.Get(HeaderKeySessionID))\n\t\thttp.Error(w, \"Streaming is disabled on this server\", http.StatusMethodNotAllowed)\n\t\treturn\n\t}\n\n\t// Check streaming support in the responseWriter. This can happen if the responseWriter has been overridden.\n\t// If not supported, return 405 early.\n\tflusher, ok := w.(http.Flusher)\n\tif !ok {\n\t\thttp.Error(w, \"Streaming unsupported\", http.StatusMethodNotAllowed)\n\t\treturn\n\t}\n\n\tsessionID := r.Header.Get(HeaderKeySessionID)\n\t// The MCP specification doesn't require validating session ID for GET requests.\n\t// If no session ID is provided by the client, generate one using the configured SessionIdManager\n\t// so that custom session id generators are honored consistently across POST/GET flows.\n\tif sessionID == \"\" {\n\t\tsessionIdManager := s.sessionIdManagerResolver.ResolveSessionIdManager(r)\n\t\tsessionID = sessionIdManager.Generate()\n\t}\n\n\t// Get or create session atomically to prevent TOCTOU races\n\t// where concurrent GETs could both create and register duplicate sessions\n\tvar session *streamableHttpSession\n\tnewSession := newStreamableHttpSession(sessionID, s.sessionTools, s.sessionResources, s.sessionResourceTemplates, s.sessionLogLevels)\n\tactual, loaded := s.activeSessions.LoadOrStore(sessionID, newSession)\n\tsession = actual.(*streamableHttpSession)\n\n\tif !loaded {\n\t\t// We created a new session, need to register it\n\t\tif err := s.server.RegisterSession(r.Context(), session); err != nil {\n\t\t\ts.activeSessions.Delete(sessionID)\n\t\t\thttp.Error(w, fmt.Sprintf(\"Session registration failed: %v\", err), http.StatusBadRequest)\n\t\t\treturn\n\t\t}\n\t\tdefer s.server.UnregisterSession(r.Context(), sessionID)\n\t\tdefer s.activeSessions.Delete(sessionID)\n\t}\n\n\ts.touchSession(sessionID)\n\n\t// Set the client context before handling the message\n\tw.Header().Set(\"Content-Type\", \"text/event-stream\")\n\tw.Header().Set(\"Cache-Control\", \"no-cache\")\n\tw.Header().Set(\"Connection\", \"keep-alive\")\n\tw.WriteHeader(http.StatusOK)\n\n\tflusher.Flush()\n\n\t// Start notification handler for this session\n\tdone := make(chan struct{})\n\tdefer close(done)\n\twriteChan := make(chan any, 16)\n\n\tgo func() {\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase nt := <-session.notificationChannel:\n\t\t\t\tselect {\n\t\t\t\tcase writeChan <- &nt:\n\t\t\t\tcase <-done:\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\tcase samplingReq := <-session.samplingRequestChan:\n\t\t\t\t// Send sampling request to client via SSE\n\t\t\t\tjsonrpcRequest := mcp.JSONRPCRequest{\n\t\t\t\t\tJSONRPC: \"2.0\",\n\t\t\t\t\tID:      mcp.NewRequestId(samplingReq.requestID),\n\t\t\t\t\tRequest: mcp.Request{\n\t\t\t\t\t\tMethod: string(mcp.MethodSamplingCreateMessage),\n\t\t\t\t\t},\n\t\t\t\t\tParams: samplingReq.request.CreateMessageParams,\n\t\t\t\t}\n\t\t\t\tselect {\n\t\t\t\tcase writeChan <- jsonrpcRequest:\n\t\t\t\tcase <-done:\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\tcase elicitationReq := <-session.elicitationRequestChan:\n\t\t\t\t// Send elicitation request to client via SSE\n\t\t\t\tjsonrpcRequest := mcp.JSONRPCRequest{\n\t\t\t\t\tJSONRPC: \"2.0\",\n\t\t\t\t\tID:      mcp.NewRequestId(elicitationReq.requestID),\n\t\t\t\t\tRequest: mcp.Request{\n\t\t\t\t\t\tMethod: string(mcp.MethodElicitationCreate),\n\t\t\t\t\t},\n\t\t\t\t\tParams: elicitationReq.request.Params,\n\t\t\t\t}\n\t\t\t\tselect {\n\t\t\t\tcase writeChan <- jsonrpcRequest:\n\t\t\t\tcase <-done:\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\tcase rootsReq := <-session.rootsRequestChan:\n\t\t\t\t// Send list roots request to client via SSE\n\t\t\t\tjsonrpcRequest := mcp.JSONRPCRequest{\n\t\t\t\t\tJSONRPC: \"2.0\",\n\t\t\t\t\tID:      mcp.NewRequestId(rootsReq.requestID),\n\t\t\t\t\tRequest: mcp.Request{\n\t\t\t\t\t\tMethod: string(mcp.MethodListRoots),\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\tselect {\n\t\t\t\tcase writeChan <- jsonrpcRequest:\n\t\t\t\tcase <-done:\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\tcase <-done:\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n\n\tif s.listenHeartbeatInterval > 0 {\n\t\t// heartbeat to keep the connection alive\n\t\tgo func() {\n\t\t\tticker := time.NewTicker(s.listenHeartbeatInterval)\n\t\t\tdefer ticker.Stop()\n\t\t\tfor {\n\t\t\t\tselect {\n\t\t\t\tcase <-ticker.C:\n\t\t\t\t\tmessage := mcp.JSONRPCRequest{\n\t\t\t\t\t\tJSONRPC: \"2.0\",\n\t\t\t\t\t\tID:      mcp.NewRequestId(s.nextRequestID(sessionID)),\n\t\t\t\t\t\tRequest: mcp.Request{\n\t\t\t\t\t\t\tMethod: \"ping\",\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t\tselect {\n\t\t\t\t\tcase writeChan <- message:\n\t\t\t\t\tcase <-done:\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\tcase <-done:\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t}\n\n\t// Keep the connection open until the client disconnects\n\t//\n\t// There's will a Available() check when handler ends, and it maybe race with Flush(),\n\t// so we use a separate channel to send the data, inteading of flushing directly in other goroutine.\n\tfor {\n\t\tselect {\n\t\tcase data := <-writeChan:\n\t\t\tif data == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err := writeSSEEvent(w, data); err != nil {\n\t\t\t\ts.logger.Errorf(\"Failed to write SSE event: %v\", err)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tflusher.Flush()\n\t\t\ts.touchSession(sessionID)\n\t\tcase <-r.Context().Done():\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (s *StreamableHTTPServer) handleDelete(w http.ResponseWriter, r *http.Request) {\n\t// delete request terminate the session\n\tsessionID := r.Header.Get(HeaderKeySessionID)\n\tsessionIdManager := s.sessionIdManagerResolver.ResolveSessionIdManager(r)\n\tnotAllowed, err := sessionIdManager.Terminate(sessionID)\n\tif err != nil {\n\t\thttp.Error(w, fmt.Sprintf(\"Session termination failed: %v\", err), http.StatusInternalServerError)\n\t\treturn\n\t}\n\tif notAllowed {\n\t\thttp.Error(w, \"Session termination not allowed\", http.StatusMethodNotAllowed)\n\t\treturn\n\t}\n\n\ts.cleanupSessionState(r.Context(), sessionID)\n\n\tw.WriteHeader(http.StatusOK)\n}\n\nfunc writeSSEEvent(w io.Writer, data any) error {\n\tjsonData, err := json.Marshal(data)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to marshal data: %w\", err)\n\t}\n\t_, err = fmt.Fprintf(w, \"event: message\\ndata: %s\\n\\n\", jsonData)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to write SSE event: %w\", err)\n\t}\n\treturn nil\n}\n\n// handleSamplingResponse processes incoming sampling responses from clients\nfunc (s *StreamableHTTPServer) handleSamplingResponse(w http.ResponseWriter, r *http.Request, responseMessage struct {\n\tID     json.RawMessage `json:\"id\"`\n\tResult json.RawMessage `json:\"result,omitempty\"`\n\tError  json.RawMessage `json:\"error,omitempty\"`\n\tMethod mcp.MCPMethod   `json:\"method,omitempty\"`\n}) error {\n\t// Get session ID from header\n\tsessionID := r.Header.Get(HeaderKeySessionID)\n\tif sessionID == \"\" {\n\t\thttp.Error(w, \"Missing session ID for sampling response\", http.StatusBadRequest)\n\t\treturn fmt.Errorf(\"missing session ID\")\n\t}\n\n\t// Validate session\n\tsessionIdManager := s.sessionIdManagerResolver.ResolveSessionIdManager(r)\n\tisTerminated, err := sessionIdManager.Validate(sessionID)\n\tif err != nil {\n\t\thttp.Error(w, \"Invalid session ID\", http.StatusNotFound)\n\t\treturn err\n\t}\n\tif isTerminated {\n\t\thttp.Error(w, \"Session terminated\", http.StatusNotFound)\n\t\treturn fmt.Errorf(\"session terminated\")\n\t}\n\n\t// Parse the request ID\n\tvar requestID int64\n\tif err := json.Unmarshal(responseMessage.ID, &requestID); err != nil {\n\t\thttp.Error(w, \"Invalid request ID in sampling response\", http.StatusBadRequest)\n\t\treturn err\n\t}\n\n\t// Create the sampling response item\n\tresponse := samplingResponseItem{\n\t\trequestID: requestID,\n\t}\n\n\t// Parse result or error\n\tif responseMessage.Error != nil {\n\t\t// Parse error\n\t\tvar jsonrpcError struct {\n\t\t\tCode    int    `json:\"code\"`\n\t\t\tMessage string `json:\"message\"`\n\t\t}\n\t\tif err := json.Unmarshal(responseMessage.Error, &jsonrpcError); err != nil {\n\t\t\tresponse.err = fmt.Errorf(\"failed to parse error: %v\", err)\n\t\t} else {\n\t\t\tresponse.err = fmt.Errorf(\"sampling error %d: %s\", jsonrpcError.Code, jsonrpcError.Message)\n\t\t}\n\t} else if responseMessage.Result != nil {\n\t\t// Store the result to be unmarshaled later\n\t\tresponse.result = responseMessage.Result\n\t} else {\n\t\tresponse.err = fmt.Errorf(\"sampling response has neither result nor error\")\n\t}\n\n\t// Find the corresponding session and deliver the response\n\t// The response is delivered to the specific session identified by sessionID\n\tif err := s.deliverSamplingResponse(sessionID, response); err != nil {\n\t\ts.logger.Errorf(\"Failed to deliver sampling response: %v\", err)\n\t\thttp.Error(w, \"Failed to deliver response\", http.StatusInternalServerError)\n\t\treturn err\n\t}\n\n\t// Acknowledge receipt\n\tw.WriteHeader(http.StatusOK)\n\treturn nil\n}\n\n// deliverSamplingResponse delivers a sampling response to the appropriate session\nfunc (s *StreamableHTTPServer) deliverSamplingResponse(sessionID string, response samplingResponseItem) error {\n\t// Look up the active session\n\tsessionInterface, ok := s.activeSessions.Load(sessionID)\n\tif !ok {\n\t\treturn fmt.Errorf(\"no active session found for session %s\", sessionID)\n\t}\n\n\tsession, ok := sessionInterface.(*streamableHttpSession)\n\tif !ok {\n\t\treturn fmt.Errorf(\"invalid session type for session %s\", sessionID)\n\t}\n\n\t// Look up the dedicated response channel for this specific request\n\tresponseChannelInterface, exists := session.samplingRequests.Load(response.requestID)\n\tif !exists {\n\t\treturn fmt.Errorf(\"no pending request found for session %s, request %d\", sessionID, response.requestID)\n\t}\n\n\tresponseChan, ok := responseChannelInterface.(chan samplingResponseItem)\n\tif !ok {\n\t\treturn fmt.Errorf(\"invalid response channel type for session %s, request %d\", sessionID, response.requestID)\n\t}\n\n\t// Attempt to deliver the response with timeout to prevent indefinite blocking\n\tselect {\n\tcase responseChan <- response:\n\t\ts.logger.Infof(\"Delivered sampling response for session %s, request %d\", sessionID, response.requestID)\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"failed to deliver sampling response for session %s, request %d: channel full or blocked\", sessionID, response.requestID)\n\t}\n}\n\n// writeJSONRPCError writes a JSON-RPC error response with the given error details.\nfunc (s *StreamableHTTPServer) writeJSONRPCError(\n\tw http.ResponseWriter,\n\tid any,\n\tcode int,\n\tmessage string,\n) {\n\tresponse := createErrorResponse(id, code, message)\n\tw.Header().Set(\"Content-Type\", \"application/json\")\n\tw.WriteHeader(http.StatusBadRequest)\n\terr := json.NewEncoder(w).Encode(response)\n\tif err != nil {\n\t\ts.logger.Errorf(\"Failed to write JSONRPCError: %v\", err)\n\t}\n}\n\n// nextRequestID gets the next incrementing requestID for the current session\nfunc (s *StreamableHTTPServer) nextRequestID(sessionID string) int64 {\n\tactual, _ := s.sessionRequestIDs.LoadOrStore(sessionID, new(atomic.Int64))\n\tcounter := actual.(*atomic.Int64)\n\treturn counter.Add(1)\n}\n\n// touchSession records the current time as the last activity for the given session.\n// It is a no-op when the sweeper is disabled (sessionIdleTTL <= 0) or sessionID is empty.\nfunc (s *StreamableHTTPServer) touchSession(sessionID string) {\n\tif sessionID == \"\" || s.sessionIdleTTL <= 0 {\n\t\treturn\n\t}\n\tnow := time.Now().UnixNano()\n\tactual, _ := s.sessionLastActive.LoadOrStore(sessionID, new(atomic.Int64))\n\tactual.(*atomic.Int64).Store(now)\n}\n\n// cleanupSessionState removes all per-session transport state for the given session ID.\nfunc (s *StreamableHTTPServer) cleanupSessionState(ctx context.Context, sessionID string) {\n\t// Unregister first to stop notification routing before deleting data.\n\ts.server.UnregisterSession(ctx, sessionID)\n\ts.activeSessions.Delete(sessionID)\n\ts.sessionTools.delete(sessionID)\n\ts.sessionResources.delete(sessionID)\n\ts.sessionResourceTemplates.delete(sessionID)\n\ts.sessionLogLevels.delete(sessionID)\n\ts.sessionRequestIDs.Delete(sessionID)\n\ts.sessionLastActive.Delete(sessionID)\n}\n\n// startSessionSweeper launches a background goroutine that periodically removes\n// transport state for sessions that have been idle longer than sessionIdleTTL.\nfunc (s *StreamableHTTPServer) startSessionSweeper(ctx context.Context) {\n\tinterval := max(s.sessionIdleTTL/2, time.Second)\n\n\tgo func() {\n\t\tticker := time.NewTicker(interval)\n\t\tdefer ticker.Stop()\n\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn\n\t\t\tcase <-ticker.C:\n\t\t\t\ts.sweepExpiredSessions()\n\t\t\t}\n\t\t}\n\t}()\n}\n\n// sweepExpiredSessions iterates all tracked sessions and cleans up those\n// whose last activity exceeds sessionIdleTTL.\nfunc (s *StreamableHTTPServer) sweepExpiredSessions() {\n\tnow := time.Now().UnixNano()\n\tttlNanos := s.sessionIdleTTL.Nanoseconds()\n\n\ts.sessionLastActive.Range(func(key, value any) bool {\n\t\tsessionID, ok := key.(string)\n\t\tif !ok {\n\t\t\ts.sessionLastActive.Delete(key)\n\t\t\treturn true\n\t\t}\n\t\tlastActive, ok := value.(*atomic.Int64)\n\t\tif !ok {\n\t\t\ts.sessionLastActive.Delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tcapturedLastActive := lastActive.Load()\n\t\tif now-capturedLastActive < ttlNanos {\n\t\t\treturn true\n\t\t}\n\n\t\t// Re-check: if lastActive changed since we read it, the session\n\t\t// was touched concurrently — skip it. A small TOCTOU window\n\t\t// remains between this check and cleanup, but it is acceptable\n\t\t// for a distributed best-effort sweeper.\n\t\tif lastActive.Load() != capturedLastActive {\n\t\t\treturn true\n\t\t}\n\n\t\ts.logger.Infof(\"Sweeping expired session: %s\", sessionID)\n\t\tmgr := s.sessionIdManager\n\t\tif mgr == nil {\n\t\t\tmgr = s.sessionIdManagerResolver.ResolveSessionIdManager(nil)\n\t\t}\n\t\t_, _ = mgr.Terminate(sessionID)\n\t\ts.cleanupSessionState(context.Background(), sessionID)\n\t\treturn true\n\t})\n}\n\n// --- session ---\ntype sessionLogLevelsStore struct {\n\tmu   sync.RWMutex\n\tlogs map[string]mcp.LoggingLevel\n}\n\nfunc newSessionLogLevelsStore() *sessionLogLevelsStore {\n\treturn &sessionLogLevelsStore{\n\t\tlogs: make(map[string]mcp.LoggingLevel),\n\t}\n}\n\nfunc (s *sessionLogLevelsStore) get(sessionID string) mcp.LoggingLevel {\n\ts.mu.RLock()\n\tdefer s.mu.RUnlock()\n\tval, ok := s.logs[sessionID]\n\tif !ok {\n\t\treturn mcp.LoggingLevelError\n\t}\n\treturn val\n}\n\nfunc (s *sessionLogLevelsStore) set(sessionID string, level mcp.LoggingLevel) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\ts.logs[sessionID] = level\n}\n\nfunc (s *sessionLogLevelsStore) delete(sessionID string) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tdelete(s.logs, sessionID)\n}\n\ntype sessionResourcesStore struct {\n\tmu        sync.RWMutex\n\tresources map[string]map[string]ServerResource // sessionID -> resourceURI -> resource\n}\n\nfunc newSessionResourcesStore() *sessionResourcesStore {\n\treturn &sessionResourcesStore{\n\t\tresources: make(map[string]map[string]ServerResource),\n\t}\n}\n\nfunc (s *sessionResourcesStore) get(sessionID string) map[string]ServerResource {\n\ts.mu.RLock()\n\tdefer s.mu.RUnlock()\n\tcloned := make(map[string]ServerResource, len(s.resources[sessionID]))\n\tmaps.Copy(cloned, s.resources[sessionID])\n\treturn cloned\n}\n\nfunc (s *sessionResourcesStore) set(sessionID string, resources map[string]ServerResource) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tcloned := make(map[string]ServerResource, len(resources))\n\tmaps.Copy(cloned, resources)\n\ts.resources[sessionID] = cloned\n}\n\nfunc (s *sessionResourcesStore) delete(sessionID string) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tdelete(s.resources, sessionID)\n}\n\ntype sessionResourceTemplatesStore struct {\n\tmu        sync.RWMutex\n\ttemplates map[string]map[string]ServerResourceTemplate // sessionID -> uriTemplate -> template\n}\n\nfunc newSessionResourceTemplatesStore() *sessionResourceTemplatesStore {\n\treturn &sessionResourceTemplatesStore{\n\t\ttemplates: make(map[string]map[string]ServerResourceTemplate),\n\t}\n}\n\nfunc (s *sessionResourceTemplatesStore) get(sessionID string) map[string]ServerResourceTemplate {\n\ts.mu.RLock()\n\tdefer s.mu.RUnlock()\n\tcloned := make(map[string]ServerResourceTemplate, len(s.templates[sessionID]))\n\tmaps.Copy(cloned, s.templates[sessionID])\n\treturn cloned\n}\n\nfunc (s *sessionResourceTemplatesStore) set(sessionID string, templates map[string]ServerResourceTemplate) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tcloned := make(map[string]ServerResourceTemplate, len(templates))\n\tmaps.Copy(cloned, templates)\n\ts.templates[sessionID] = cloned\n}\n\nfunc (s *sessionResourceTemplatesStore) delete(sessionID string) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tdelete(s.templates, sessionID)\n}\n\ntype sessionToolsStore struct {\n\tmu    sync.RWMutex\n\ttools map[string]map[string]ServerTool // sessionID -> toolName -> tool\n}\n\nfunc newSessionToolsStore() *sessionToolsStore {\n\treturn &sessionToolsStore{\n\t\ttools: make(map[string]map[string]ServerTool),\n\t}\n}\n\nfunc (s *sessionToolsStore) get(sessionID string) map[string]ServerTool {\n\ts.mu.RLock()\n\tdefer s.mu.RUnlock()\n\tcloned := make(map[string]ServerTool, len(s.tools[sessionID]))\n\tmaps.Copy(cloned, s.tools[sessionID])\n\treturn cloned\n}\n\nfunc (s *sessionToolsStore) set(sessionID string, tools map[string]ServerTool) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tcloned := make(map[string]ServerTool, len(tools))\n\tmaps.Copy(cloned, tools)\n\ts.tools[sessionID] = cloned\n}\n\nfunc (s *sessionToolsStore) delete(sessionID string) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tdelete(s.tools, sessionID)\n}\n\n// Sampling support types for HTTP transport\ntype samplingRequestItem struct {\n\trequestID int64\n\trequest   mcp.CreateMessageRequest\n\tresponse  chan samplingResponseItem\n}\n\ntype samplingResponseItem struct {\n\trequestID int64\n\tresult    json.RawMessage\n\terr       error\n}\n\n// Elicitation support types for HTTP transport\ntype elicitationRequestItem struct {\n\trequestID int64\n\trequest   mcp.ElicitationRequest\n\tresponse  chan samplingResponseItem\n}\n\n// Roots support types for HTTP transport\ntype rootsRequestItem struct {\n\trequestID int64\n\trequest   mcp.ListRootsRequest\n\tresponse  chan samplingResponseItem\n}\n\n// streamableHttpSession is a session for streamable-http transport\n// When in POST handlers(request/notification), it's ephemeral, and only exists in the life of the request handler.\n// When in GET handlers(listening), it's a real session, and will be registered in the MCP server.\ntype streamableHttpSession struct {\n\tsessionID           string\n\tnotificationChannel chan mcp.JSONRPCNotification // server -> client notifications\n\ttools               *sessionToolsStore\n\tresources           *sessionResourcesStore\n\tresourceTemplates   *sessionResourceTemplatesStore\n\tupgradeToSSE        atomic.Bool\n\tlogLevels           *sessionLogLevelsStore\n\tclientInfo          atomic.Value // stores session-specific client info\n\tclientCapabilities  atomic.Value // stores session-specific client capabilities\n\n\t// Sampling support for bidirectional communication\n\tsamplingRequestChan    chan samplingRequestItem    // server -> client sampling requests\n\telicitationRequestChan chan elicitationRequestItem // server -> client elicitation requests\n\trootsRequestChan       chan rootsRequestItem       // server -> client list roots requests\n\n\tsamplingRequests sync.Map     // requestID -> pending sampling request context\n\trequestIDCounter atomic.Int64 // for generating unique request IDs\n}\n\nfunc newStreamableHttpSession(sessionID string, toolStore *sessionToolsStore, resourcesStore *sessionResourcesStore, templatesStore *sessionResourceTemplatesStore, levels *sessionLogLevelsStore) *streamableHttpSession {\n\ts := &streamableHttpSession{\n\t\tsessionID:              sessionID,\n\t\tnotificationChannel:    make(chan mcp.JSONRPCNotification, 100),\n\t\ttools:                  toolStore,\n\t\tresources:              resourcesStore,\n\t\tresourceTemplates:      templatesStore,\n\t\tlogLevels:              levels,\n\t\tsamplingRequestChan:    make(chan samplingRequestItem, 10),\n\t\telicitationRequestChan: make(chan elicitationRequestItem, 10),\n\t\trootsRequestChan:       make(chan rootsRequestItem, 10),\n\t}\n\treturn s\n}\n\nfunc (s *streamableHttpSession) SessionID() string {\n\treturn s.sessionID\n}\n\nfunc (s *streamableHttpSession) NotificationChannel() chan<- mcp.JSONRPCNotification {\n\treturn s.notificationChannel\n}\n\nfunc (s *streamableHttpSession) Initialize() {\n\t// do nothing\n\t// the session is ephemeral, no real initialized action needed\n}\n\nfunc (s *streamableHttpSession) Initialized() bool {\n\t// the session is ephemeral, no real initialized action needed\n\treturn true\n}\n\nfunc (s *streamableHttpSession) SetLogLevel(level mcp.LoggingLevel) {\n\ts.logLevels.set(s.sessionID, level)\n}\n\nfunc (s *streamableHttpSession) GetLogLevel() mcp.LoggingLevel {\n\treturn s.logLevels.get(s.sessionID)\n}\n\nvar _ ClientSession = (*streamableHttpSession)(nil)\n\nfunc (s *streamableHttpSession) GetSessionTools() map[string]ServerTool {\n\treturn s.tools.get(s.sessionID)\n}\n\nfunc (s *streamableHttpSession) SetSessionTools(tools map[string]ServerTool) {\n\ts.tools.set(s.sessionID, tools)\n}\n\nfunc (s *streamableHttpSession) GetSessionResources() map[string]ServerResource {\n\treturn s.resources.get(s.sessionID)\n}\n\nfunc (s *streamableHttpSession) SetSessionResources(resources map[string]ServerResource) {\n\ts.resources.set(s.sessionID, resources)\n}\n\nfunc (s *streamableHttpSession) GetSessionResourceTemplates() map[string]ServerResourceTemplate {\n\treturn s.resourceTemplates.get(s.sessionID)\n}\n\nfunc (s *streamableHttpSession) SetSessionResourceTemplates(templates map[string]ServerResourceTemplate) {\n\ts.resourceTemplates.set(s.sessionID, templates)\n}\n\nfunc (s *streamableHttpSession) GetClientInfo() mcp.Implementation {\n\tif value := s.clientInfo.Load(); value != nil {\n\t\tif clientInfo, ok := value.(mcp.Implementation); ok {\n\t\t\treturn clientInfo\n\t\t}\n\t}\n\treturn mcp.Implementation{}\n}\n\nfunc (s *streamableHttpSession) SetClientInfo(clientInfo mcp.Implementation) {\n\ts.clientInfo.Store(clientInfo)\n}\n\nfunc (s *streamableHttpSession) GetClientCapabilities() mcp.ClientCapabilities {\n\tif value := s.clientCapabilities.Load(); value != nil {\n\t\tif clientCapabilities, ok := value.(mcp.ClientCapabilities); ok {\n\t\t\treturn clientCapabilities\n\t\t}\n\t}\n\treturn mcp.ClientCapabilities{}\n}\n\nfunc (s *streamableHttpSession) SetClientCapabilities(clientCapabilities mcp.ClientCapabilities) {\n\ts.clientCapabilities.Store(clientCapabilities)\n}\n\nvar (\n\t_ SessionWithTools             = (*streamableHttpSession)(nil)\n\t_ SessionWithResources         = (*streamableHttpSession)(nil)\n\t_ SessionWithResourceTemplates = (*streamableHttpSession)(nil)\n\t_ SessionWithLogging           = (*streamableHttpSession)(nil)\n\t_ SessionWithClientInfo        = (*streamableHttpSession)(nil)\n)\n\nfunc (s *streamableHttpSession) UpgradeToSSEWhenReceiveNotification() {\n\ts.upgradeToSSE.Store(true)\n}\n\nvar _ SessionWithStreamableHTTPConfig = (*streamableHttpSession)(nil)\n\n// RequestSampling implements SessionWithSampling interface for HTTP transport\nfunc (s *streamableHttpSession) RequestSampling(ctx context.Context, request mcp.CreateMessageRequest) (*mcp.CreateMessageResult, error) {\n\t// Generate unique request ID\n\trequestID := s.requestIDCounter.Add(1)\n\n\t// Create response channel for this specific request\n\tresponseChan := make(chan samplingResponseItem, 1)\n\n\t// Create the sampling request item\n\tsamplingRequest := samplingRequestItem{\n\t\trequestID: requestID,\n\t\trequest:   request,\n\t\tresponse:  responseChan,\n\t}\n\n\t// Store the pending request\n\ts.samplingRequests.Store(requestID, responseChan)\n\tdefer s.samplingRequests.Delete(requestID)\n\n\t// Send the sampling request via the channel (non-blocking)\n\tselect {\n\tcase s.samplingRequestChan <- samplingRequest:\n\t\t// Request queued successfully\n\tcase <-ctx.Done():\n\t\treturn nil, ctx.Err()\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"sampling request queue is full - server overloaded\")\n\t}\n\n\t// Wait for response or context cancellation\n\tselect {\n\tcase response := <-responseChan:\n\t\tif response.err != nil {\n\t\t\treturn nil, response.err\n\t\t}\n\t\tvar result mcp.CreateMessageResult\n\t\tif err := json.Unmarshal(response.result, &result); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to unmarshal sampling response: %v\", err)\n\t\t}\n\n\t\t// Parse content from map[string]any to proper Content type (TextContent, ImageContent, AudioContent)\n\t\t// HTTP transport unmarshals Content as map[string]any, we need to convert it to the proper type\n\t\tif contentMap, ok := result.Content.(map[string]any); ok {\n\t\t\tcontent, err := mcp.ParseContent(contentMap)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"failed to parse sampling response content: %w\", err)\n\t\t\t}\n\t\t\tresult.Content = content\n\t\t}\n\n\t\treturn &result, nil\n\tcase <-ctx.Done():\n\t\treturn nil, ctx.Err()\n\t}\n}\n\n// ListRoots implements SessionWithRoots interface for HTTP transport.\n// It sends a list roots request to the client via SSE and waits for the response.\nfunc (s *streamableHttpSession) ListRoots(ctx context.Context, request mcp.ListRootsRequest) (*mcp.ListRootsResult, error) {\n\t// Generate unique request ID\n\trequestID := s.requestIDCounter.Add(1)\n\n\t// Create response channel for this specific request\n\tresponseChan := make(chan samplingResponseItem, 1)\n\n\t// Create the roots request item\n\trootsRequest := rootsRequestItem{\n\t\trequestID: requestID,\n\t\trequest:   request,\n\t\tresponse:  responseChan,\n\t}\n\n\t// Store the pending request\n\ts.samplingRequests.Store(requestID, responseChan)\n\tdefer s.samplingRequests.Delete(requestID)\n\n\t// Send the list roots request via the channel (non-blocking)\n\tselect {\n\tcase s.rootsRequestChan <- rootsRequest:\n\t\t// Request queued successfully\n\tcase <-ctx.Done():\n\t\treturn nil, ctx.Err()\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"list roots request queue is full - server overloaded\")\n\t}\n\n\t// Wait for response or context cancellation\n\tselect {\n\tcase response := <-responseChan:\n\t\tif response.err != nil {\n\t\t\treturn nil, response.err\n\t\t}\n\t\tvar result mcp.ListRootsResult\n\t\tif err := json.Unmarshal(response.result, &result); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to unmarshal list roots response: %v\", err)\n\t\t}\n\t\treturn &result, nil\n\tcase <-ctx.Done():\n\t\treturn nil, ctx.Err()\n\t}\n}\n\n// RequestElicitation implements SessionWithElicitation interface for HTTP transport\nfunc (s *streamableHttpSession) RequestElicitation(ctx context.Context, request mcp.ElicitationRequest) (*mcp.ElicitationResult, error) {\n\t// Generate unique request ID\n\trequestID := s.requestIDCounter.Add(1)\n\n\t// Create response channel for this specific request\n\tresponseChan := make(chan samplingResponseItem, 1)\n\n\t// Create the sampling request item\n\telicitationRequest := elicitationRequestItem{\n\t\trequestID: requestID,\n\t\trequest:   request,\n\t\tresponse:  responseChan,\n\t}\n\n\t// Store the pending request\n\ts.samplingRequests.Store(requestID, responseChan)\n\tdefer s.samplingRequests.Delete(requestID)\n\n\t// Send the sampling request via the channel (non-blocking)\n\tselect {\n\tcase s.elicitationRequestChan <- elicitationRequest:\n\t\t// Request queued successfully\n\tcase <-ctx.Done():\n\t\treturn nil, ctx.Err()\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"elicitation request queue is full - server overloaded\")\n\t}\n\n\t// Wait for response or context cancellation\n\tselect {\n\tcase response := <-responseChan:\n\t\tif response.err != nil {\n\t\t\treturn nil, response.err\n\t\t}\n\t\tvar result mcp.ElicitationResult\n\t\tif err := json.Unmarshal(response.result, &result); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to unmarshal elicitation response: %v\", err)\n\t\t}\n\t\treturn &result, nil\n\tcase <-ctx.Done():\n\t\treturn nil, ctx.Err()\n\t}\n}\n\nvar _ SessionWithSampling = (*streamableHttpSession)(nil)\nvar _ SessionWithElicitation = (*streamableHttpSession)(nil)\nvar _ SessionWithRoots = (*streamableHttpSession)(nil)\n\n// --- session id manager ---\n\n// SessionIdManagerResolver resolves a SessionIdManager based on the HTTP request.\n// Implementations must handle a nil r, which may be passed from non-request\n// contexts such as the session idle TTL sweeper.\ntype SessionIdManagerResolver interface {\n\tResolveSessionIdManager(r *http.Request) SessionIdManager\n}\n\ntype SessionIdManager interface {\n\tGenerate() string\n\t// Validate checks if a session ID is valid and not terminated.\n\t// Returns isTerminated=true if the ID is valid but belongs to a terminated session.\n\t// Returns err!=nil if the ID format is invalid or lookup failed.\n\tValidate(sessionID string) (isTerminated bool, err error)\n\t// Terminate marks a session ID as terminated.\n\t// Returns isNotAllowed=true if the server policy prevents client termination.\n\t// Returns err!=nil if the ID is invalid or termination failed.\n\tTerminate(sessionID string) (isNotAllowed bool, err error)\n}\n\n// DefaultSessionIdManagerResolver is a simple resolver that returns the same SessionIdManager for all requests\ntype DefaultSessionIdManagerResolver struct {\n\tmanager SessionIdManager\n}\n\n// NewDefaultSessionIdManagerResolver creates a new DefaultSessionIdManagerResolver with the given SessionIdManager\nfunc NewDefaultSessionIdManagerResolver(manager SessionIdManager) *DefaultSessionIdManagerResolver {\n\tif manager == nil {\n\t\tmanager = &StatelessSessionIdManager{}\n\t}\n\treturn &DefaultSessionIdManagerResolver{manager: manager}\n}\n\n// ResolveSessionIdManager returns the configured SessionIdManager for all requests\nfunc (r *DefaultSessionIdManagerResolver) ResolveSessionIdManager(_ *http.Request) SessionIdManager {\n\treturn r.manager\n}\n\n// StatelessSessionIdManager does nothing, which means it has no session management, which is stateless.\ntype StatelessSessionIdManager struct{}\n\nfunc (s *StatelessSessionIdManager) Generate() string {\n\treturn \"\"\n}\n\nfunc (s *StatelessSessionIdManager) Validate(sessionID string) (isTerminated bool, err error) {\n\t// In stateless mode, ignore session IDs completely - don't validate or reject them\n\treturn false, nil\n}\n\nfunc (s *StatelessSessionIdManager) Terminate(sessionID string) (isNotAllowed bool, err error) {\n\treturn false, nil\n}\n\n// StatelessGeneratingSessionIdManager generates session IDs but doesn't validate them locally.\n// This allows session IDs to be generated for clients while working across multiple instances.\ntype StatelessGeneratingSessionIdManager struct{}\n\nfunc (s *StatelessGeneratingSessionIdManager) Generate() string {\n\treturn idPrefix + uuid.New().String()\n}\n\nfunc (s *StatelessGeneratingSessionIdManager) Validate(sessionID string) (isTerminated bool, err error) {\n\t// Only validate format, not existence - allows cross-instance operation\n\tif !strings.HasPrefix(sessionID, idPrefix) {\n\t\treturn false, fmt.Errorf(\"invalid session id: %s\", sessionID)\n\t}\n\tif _, err := uuid.Parse(sessionID[len(idPrefix):]); err != nil {\n\t\treturn false, fmt.Errorf(\"invalid session id: %s\", sessionID)\n\t}\n\treturn false, nil\n}\n\nfunc (s *StatelessGeneratingSessionIdManager) Terminate(sessionID string) (isNotAllowed bool, err error) {\n\t// No-op termination since we don't track sessions\n\treturn false, nil\n}\n\n// InsecureStatefulSessionIdManager generate id with uuid and tracks active sessions.\n// It validates both format and existence of session IDs.\n// For more secure session id, use a more complex generator, like a JWT.\ntype InsecureStatefulSessionIdManager struct {\n\tsessions   sync.Map\n\tterminated sync.Map\n}\n\nconst idPrefix = \"mcp-session-\"\n\nfunc (s *InsecureStatefulSessionIdManager) Generate() string {\n\tsessionID := idPrefix + uuid.New().String()\n\ts.sessions.Store(sessionID, true)\n\treturn sessionID\n}\n\nfunc (s *InsecureStatefulSessionIdManager) Validate(sessionID string) (isTerminated bool, err error) {\n\tif !strings.HasPrefix(sessionID, idPrefix) {\n\t\treturn false, fmt.Errorf(\"invalid session id: %s\", sessionID)\n\t}\n\tif _, err := uuid.Parse(sessionID[len(idPrefix):]); err != nil {\n\t\treturn false, fmt.Errorf(\"invalid session id: %s\", sessionID)\n\t}\n\tif _, exists := s.terminated.Load(sessionID); exists {\n\t\treturn true, nil\n\t}\n\tif _, exists := s.sessions.Load(sessionID); !exists {\n\t\treturn false, fmt.Errorf(\"session not found: %s\", sessionID)\n\t}\n\treturn false, nil\n}\n\nfunc (s *InsecureStatefulSessionIdManager) Terminate(sessionID string) (isNotAllowed bool, err error) {\n\tif _, exists := s.terminated.Load(sessionID); exists {\n\t\treturn false, nil\n\t}\n\tif _, exists := s.sessions.Load(sessionID); !exists {\n\t\treturn false, nil\n\t}\n\ts.terminated.Store(sessionID, true)\n\ts.sessions.Delete(sessionID)\n\treturn false, nil\n}\n\n// NewTestStreamableHTTPServer creates a test server for testing purposes\nfunc NewTestStreamableHTTPServer(server *MCPServer, opts ...StreamableHTTPOption) *httptest.Server {\n\tsseServer := NewStreamableHTTPServer(server, opts...)\n\ttestServer := httptest.NewServer(sseServer)\n\treturn testServer\n}\n\n// isJSONEmpty reports whether the provided JSON value is \"empty\":\n//   - null\n//   - empty object: {}\n//   - empty array: []\n//\n// It also treats nil/whitespace-only input as empty.\n// It does NOT treat 0, false, \"\" or non-empty composites as empty.\nfunc isJSONEmpty(data json.RawMessage) bool {\n\tif len(data) == 0 {\n\t\treturn true\n\t}\n\n\ttrimmed := bytes.TrimSpace(data)\n\tif len(trimmed) == 0 {\n\t\treturn true\n\t}\n\n\tswitch trimmed[0] {\n\tcase '{':\n\t\tif len(trimmed) == 2 && trimmed[1] == '}' {\n\t\t\treturn true\n\t\t}\n\t\tfor i := 1; i < len(trimmed); i++ {\n\t\t\tif !unicode.IsSpace(rune(trimmed[i])) {\n\t\t\t\treturn trimmed[i] == '}'\n\t\t\t}\n\t\t}\n\tcase '[':\n\t\tif len(trimmed) == 2 && trimmed[1] == ']' {\n\t\t\treturn true\n\t\t}\n\t\tfor i := 1; i < len(trimmed); i++ {\n\t\t\tif !unicode.IsSpace(rune(trimmed[i])) {\n\t\t\t\treturn trimmed[i] == ']'\n\t\t\t}\n\t\t}\n\n\tcase '\"': // treat \"\" as not empty\n\t\treturn false\n\n\tcase 'n': // null\n\t\treturn len(trimmed) == 4 &&\n\t\t\ttrimmed[1] == 'u' &&\n\t\t\ttrimmed[2] == 'l' &&\n\t\t\ttrimmed[3] == 'l'\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/server/task_hooks.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\t\"time\"\n\n\t\"github.com/mark3labs/mcp-go/mcp\"\n)\n\n// TaskMetrics contains metrics about task execution.\n// This struct is passed to observability hooks to enable monitoring and analysis.\ntype TaskMetrics struct {\n\tTaskID        string         // Unique identifier for the task\n\tToolName      string         // Name of the tool that created the task\n\tStatus        mcp.TaskStatus // Current status of the task\n\tStatusMessage string         // Optional status message\n\tCreatedAt     time.Time      // When the task was created\n\tCompletedAt   *time.Time     // When the task completed (nil if not completed)\n\tDuration      time.Duration  // How long the task took (0 if not completed)\n\tSessionID     string         // Session that owns this task\n\tError         error          // Error if task failed (nil otherwise)\n}\n\n// OnTaskCreatedHookFunc is called when a new task is created.\n// Use this to track task creation metrics, initialize monitoring, or log task starts.\ntype OnTaskCreatedHookFunc func(ctx context.Context, metrics TaskMetrics)\n\n// OnTaskCompletedHookFunc is called when a task completes successfully.\n// Use this to track completion metrics, record duration, or trigger follow-up actions.\ntype OnTaskCompletedHookFunc func(ctx context.Context, metrics TaskMetrics)\n\n// OnTaskFailedHookFunc is called when a task fails with an error.\n// Use this to track failure metrics, alert on errors, or log failure details.\ntype OnTaskFailedHookFunc func(ctx context.Context, metrics TaskMetrics)\n\n// OnTaskCancelledHookFunc is called when a task is cancelled.\n// Use this to track cancellation metrics or clean up resources.\ntype OnTaskCancelledHookFunc func(ctx context.Context, metrics TaskMetrics)\n\n// OnTaskStatusChangedHookFunc is called whenever a task's status changes.\n// This is a catch-all hook that fires for all status transitions.\n// Use this for general monitoring or when you need to track all state changes.\ntype OnTaskStatusChangedHookFunc func(ctx context.Context, metrics TaskMetrics)\n\n// TaskHooks contains lifecycle hooks for task execution.\n// These hooks enable observability and monitoring of task-augmented tools.\ntype TaskHooks struct {\n\tOnTaskCreated       []OnTaskCreatedHookFunc\n\tOnTaskCompleted     []OnTaskCompletedHookFunc\n\tOnTaskFailed        []OnTaskFailedHookFunc\n\tOnTaskCancelled     []OnTaskCancelledHookFunc\n\tOnTaskStatusChanged []OnTaskStatusChangedHookFunc\n}\n\n// AddOnTaskCreated registers a hook for task creation events.\nfunc (h *TaskHooks) AddOnTaskCreated(hook OnTaskCreatedHookFunc) {\n\th.OnTaskCreated = append(h.OnTaskCreated, hook)\n}\n\n// AddOnTaskCompleted registers a hook for task completion events.\nfunc (h *TaskHooks) AddOnTaskCompleted(hook OnTaskCompletedHookFunc) {\n\th.OnTaskCompleted = append(h.OnTaskCompleted, hook)\n}\n\n// AddOnTaskFailed registers a hook for task failure events.\nfunc (h *TaskHooks) AddOnTaskFailed(hook OnTaskFailedHookFunc) {\n\th.OnTaskFailed = append(h.OnTaskFailed, hook)\n}\n\n// AddOnTaskCancelled registers a hook for task cancellation events.\nfunc (h *TaskHooks) AddOnTaskCancelled(hook OnTaskCancelledHookFunc) {\n\th.OnTaskCancelled = append(h.OnTaskCancelled, hook)\n}\n\n// AddOnTaskStatusChanged registers a hook for all task status changes.\nfunc (h *TaskHooks) AddOnTaskStatusChanged(hook OnTaskStatusChangedHookFunc) {\n\th.OnTaskStatusChanged = append(h.OnTaskStatusChanged, hook)\n}\n\n// taskCreated calls all registered task creation hooks.\nfunc (h *TaskHooks) taskCreated(ctx context.Context, metrics TaskMetrics) {\n\tif h == nil {\n\t\treturn\n\t}\n\tfor _, hook := range h.OnTaskCreated {\n\t\thook(ctx, metrics)\n\t}\n\t// Also call status changed hook\n\th.taskStatusChanged(ctx, metrics)\n}\n\n// taskCompleted calls all registered task completion hooks.\nfunc (h *TaskHooks) taskCompleted(ctx context.Context, metrics TaskMetrics) {\n\tif h == nil {\n\t\treturn\n\t}\n\tfor _, hook := range h.OnTaskCompleted {\n\t\thook(ctx, metrics)\n\t}\n\t// Also call status changed hook\n\th.taskStatusChanged(ctx, metrics)\n}\n\n// taskFailed calls all registered task failure hooks.\nfunc (h *TaskHooks) taskFailed(ctx context.Context, metrics TaskMetrics) {\n\tif h == nil {\n\t\treturn\n\t}\n\tfor _, hook := range h.OnTaskFailed {\n\t\thook(ctx, metrics)\n\t}\n\t// Also call status changed hook\n\th.taskStatusChanged(ctx, metrics)\n}\n\n// taskCancelled calls all registered task cancellation hooks.\nfunc (h *TaskHooks) taskCancelled(ctx context.Context, metrics TaskMetrics) {\n\tif h == nil {\n\t\treturn\n\t}\n\tfor _, hook := range h.OnTaskCancelled {\n\t\thook(ctx, metrics)\n\t}\n\t// Also call status changed hook\n\th.taskStatusChanged(ctx, metrics)\n}\n\n// taskStatusChanged calls all registered status change hooks.\nfunc (h *TaskHooks) taskStatusChanged(ctx context.Context, metrics TaskMetrics) {\n\tif h == nil {\n\t\treturn\n\t}\n\tfor _, hook := range h.OnTaskStatusChanged {\n\t\thook(ctx, metrics)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/mark3labs/mcp-go/util/logger.go",
    "content": "package util\n\nimport (\n\t\"log\"\n)\n\n// Logger defines a minimal logging interface\ntype Logger interface {\n\tInfof(format string, v ...any)\n\tErrorf(format string, v ...any)\n}\n\n// --- Standard Library Logger Wrapper ---\n\n// DefaultStdLogger implements Logger using the standard library's log.Logger.\nfunc DefaultLogger() Logger {\n\treturn &stdLogger{\n\t\tlogger: log.Default(),\n\t}\n}\n\n// stdLogger wraps the standard library's log.Logger.\ntype stdLogger struct {\n\tlogger *log.Logger\n}\n\nfunc (l *stdLogger) Infof(format string, v ...any) {\n\tl.logger.Printf(\"INFO: \"+format, v...)\n}\n\nfunc (l *stdLogger) Errorf(format string, v ...any) {\n\tl.logger.Printf(\"ERROR: \"+format, v...)\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2016 Yasuhiro Matsumoto\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/README.md",
    "content": "# go-colorable\n\n[![Build Status](https://github.com/mattn/go-colorable/workflows/test/badge.svg)](https://github.com/mattn/go-colorable/actions?query=workflow%3Atest)\n[![Codecov](https://codecov.io/gh/mattn/go-colorable/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-colorable)\n[![GoDoc](https://godoc.org/github.com/mattn/go-colorable?status.svg)](http://godoc.org/github.com/mattn/go-colorable)\n[![Go Report Card](https://goreportcard.com/badge/mattn/go-colorable)](https://goreportcard.com/report/mattn/go-colorable)\n\nColorable writer for windows.\n\nFor example, most of logger packages doesn't show colors on windows. (I know we can do it with ansicon. But I don't want.)\nThis package is possible to handle escape sequence for ansi color on windows.\n\n## Too Bad!\n\n![](https://raw.githubusercontent.com/mattn/go-colorable/gh-pages/bad.png)\n\n\n## So Good!\n\n![](https://raw.githubusercontent.com/mattn/go-colorable/gh-pages/good.png)\n\n## Usage\n\n```go\nlogrus.SetFormatter(&logrus.TextFormatter{ForceColors: true})\nlogrus.SetOutput(colorable.NewColorableStdout())\n\nlogrus.Info(\"succeeded\")\nlogrus.Warn(\"not correct\")\nlogrus.Error(\"something error\")\nlogrus.Fatal(\"panic\")\n```\n\nYou can compile above code on non-windows OSs.\n\n## Installation\n\n```\n$ go get github.com/mattn/go-colorable\n```\n\n# License\n\nMIT\n\n# Author\n\nYasuhiro Matsumoto (a.k.a mattn)\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/colorable_appengine.go",
    "content": "//go:build appengine\n// +build appengine\n\npackage colorable\n\nimport (\n\t\"io\"\n\t\"os\"\n\n\t_ \"github.com/mattn/go-isatty\"\n)\n\n// NewColorable returns new instance of Writer which handles escape sequence.\nfunc NewColorable(file *os.File) io.Writer {\n\tif file == nil {\n\t\tpanic(\"nil passed instead of *os.File to NewColorable()\")\n\t}\n\n\treturn file\n}\n\n// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout.\nfunc NewColorableStdout() io.Writer {\n\treturn os.Stdout\n}\n\n// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr.\nfunc NewColorableStderr() io.Writer {\n\treturn os.Stderr\n}\n\n// EnableColorsStdout enable colors if possible.\nfunc EnableColorsStdout(enabled *bool) func() {\n\tif enabled != nil {\n\t\t*enabled = true\n\t}\n\treturn func() {}\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/colorable_others.go",
    "content": "//go:build !windows && !appengine\n// +build !windows,!appengine\n\npackage colorable\n\nimport (\n\t\"io\"\n\t\"os\"\n\n\t_ \"github.com/mattn/go-isatty\"\n)\n\n// NewColorable returns new instance of Writer which handles escape sequence.\nfunc NewColorable(file *os.File) io.Writer {\n\tif file == nil {\n\t\tpanic(\"nil passed instead of *os.File to NewColorable()\")\n\t}\n\n\treturn file\n}\n\n// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout.\nfunc NewColorableStdout() io.Writer {\n\treturn os.Stdout\n}\n\n// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr.\nfunc NewColorableStderr() io.Writer {\n\treturn os.Stderr\n}\n\n// EnableColorsStdout enable colors if possible.\nfunc EnableColorsStdout(enabled *bool) func() {\n\tif enabled != nil {\n\t\t*enabled = true\n\t}\n\treturn func() {}\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/colorable_windows.go",
    "content": "//go:build windows && !appengine\n// +build windows,!appengine\n\npackage colorable\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"math\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"github.com/mattn/go-isatty\"\n)\n\nconst (\n\tforegroundBlue      = 0x1\n\tforegroundGreen     = 0x2\n\tforegroundRed       = 0x4\n\tforegroundIntensity = 0x8\n\tforegroundMask      = (foregroundRed | foregroundBlue | foregroundGreen | foregroundIntensity)\n\tbackgroundBlue      = 0x10\n\tbackgroundGreen     = 0x20\n\tbackgroundRed       = 0x40\n\tbackgroundIntensity = 0x80\n\tbackgroundMask      = (backgroundRed | backgroundBlue | backgroundGreen | backgroundIntensity)\n\tcommonLvbUnderscore = 0x8000\n\n\tcENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4\n)\n\nconst (\n\tgenericRead  = 0x80000000\n\tgenericWrite = 0x40000000\n)\n\nconst (\n\tconsoleTextmodeBuffer = 0x1\n)\n\ntype wchar uint16\ntype short int16\ntype dword uint32\ntype word uint16\n\ntype coord struct {\n\tx short\n\ty short\n}\n\ntype smallRect struct {\n\tleft   short\n\ttop    short\n\tright  short\n\tbottom short\n}\n\ntype consoleScreenBufferInfo struct {\n\tsize              coord\n\tcursorPosition    coord\n\tattributes        word\n\twindow            smallRect\n\tmaximumWindowSize coord\n}\n\ntype consoleCursorInfo struct {\n\tsize    dword\n\tvisible int32\n}\n\nvar (\n\tkernel32                       = syscall.NewLazyDLL(\"kernel32.dll\")\n\tprocGetConsoleScreenBufferInfo = kernel32.NewProc(\"GetConsoleScreenBufferInfo\")\n\tprocSetConsoleTextAttribute    = kernel32.NewProc(\"SetConsoleTextAttribute\")\n\tprocSetConsoleCursorPosition   = kernel32.NewProc(\"SetConsoleCursorPosition\")\n\tprocFillConsoleOutputCharacter = kernel32.NewProc(\"FillConsoleOutputCharacterW\")\n\tprocFillConsoleOutputAttribute = kernel32.NewProc(\"FillConsoleOutputAttribute\")\n\tprocGetConsoleCursorInfo       = kernel32.NewProc(\"GetConsoleCursorInfo\")\n\tprocSetConsoleCursorInfo       = kernel32.NewProc(\"SetConsoleCursorInfo\")\n\tprocSetConsoleTitle            = kernel32.NewProc(\"SetConsoleTitleW\")\n\tprocGetConsoleMode             = kernel32.NewProc(\"GetConsoleMode\")\n\tprocSetConsoleMode             = kernel32.NewProc(\"SetConsoleMode\")\n\tprocCreateConsoleScreenBuffer  = kernel32.NewProc(\"CreateConsoleScreenBuffer\")\n)\n\n// Writer provides colorable Writer to the console\ntype Writer struct {\n\tout       io.Writer\n\thandle    syscall.Handle\n\talthandle syscall.Handle\n\toldattr   word\n\toldpos    coord\n\trest      bytes.Buffer\n\tmutex     sync.Mutex\n}\n\n// NewColorable returns new instance of Writer which handles escape sequence from File.\nfunc NewColorable(file *os.File) io.Writer {\n\tif file == nil {\n\t\tpanic(\"nil passed instead of *os.File to NewColorable()\")\n\t}\n\n\tif isatty.IsTerminal(file.Fd()) {\n\t\tvar mode uint32\n\t\tif r, _, _ := procGetConsoleMode.Call(file.Fd(), uintptr(unsafe.Pointer(&mode))); r != 0 && mode&cENABLE_VIRTUAL_TERMINAL_PROCESSING != 0 {\n\t\t\treturn file\n\t\t}\n\t\tvar csbi consoleScreenBufferInfo\n\t\thandle := syscall.Handle(file.Fd())\n\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\treturn &Writer{out: file, handle: handle, oldattr: csbi.attributes, oldpos: coord{0, 0}}\n\t}\n\treturn file\n}\n\n// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout.\nfunc NewColorableStdout() io.Writer {\n\treturn NewColorable(os.Stdout)\n}\n\n// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr.\nfunc NewColorableStderr() io.Writer {\n\treturn NewColorable(os.Stderr)\n}\n\nvar color256 = map[int]int{\n\t0:   0x000000,\n\t1:   0x800000,\n\t2:   0x008000,\n\t3:   0x808000,\n\t4:   0x000080,\n\t5:   0x800080,\n\t6:   0x008080,\n\t7:   0xc0c0c0,\n\t8:   0x808080,\n\t9:   0xff0000,\n\t10:  0x00ff00,\n\t11:  0xffff00,\n\t12:  0x0000ff,\n\t13:  0xff00ff,\n\t14:  0x00ffff,\n\t15:  0xffffff,\n\t16:  0x000000,\n\t17:  0x00005f,\n\t18:  0x000087,\n\t19:  0x0000af,\n\t20:  0x0000d7,\n\t21:  0x0000ff,\n\t22:  0x005f00,\n\t23:  0x005f5f,\n\t24:  0x005f87,\n\t25:  0x005faf,\n\t26:  0x005fd7,\n\t27:  0x005fff,\n\t28:  0x008700,\n\t29:  0x00875f,\n\t30:  0x008787,\n\t31:  0x0087af,\n\t32:  0x0087d7,\n\t33:  0x0087ff,\n\t34:  0x00af00,\n\t35:  0x00af5f,\n\t36:  0x00af87,\n\t37:  0x00afaf,\n\t38:  0x00afd7,\n\t39:  0x00afff,\n\t40:  0x00d700,\n\t41:  0x00d75f,\n\t42:  0x00d787,\n\t43:  0x00d7af,\n\t44:  0x00d7d7,\n\t45:  0x00d7ff,\n\t46:  0x00ff00,\n\t47:  0x00ff5f,\n\t48:  0x00ff87,\n\t49:  0x00ffaf,\n\t50:  0x00ffd7,\n\t51:  0x00ffff,\n\t52:  0x5f0000,\n\t53:  0x5f005f,\n\t54:  0x5f0087,\n\t55:  0x5f00af,\n\t56:  0x5f00d7,\n\t57:  0x5f00ff,\n\t58:  0x5f5f00,\n\t59:  0x5f5f5f,\n\t60:  0x5f5f87,\n\t61:  0x5f5faf,\n\t62:  0x5f5fd7,\n\t63:  0x5f5fff,\n\t64:  0x5f8700,\n\t65:  0x5f875f,\n\t66:  0x5f8787,\n\t67:  0x5f87af,\n\t68:  0x5f87d7,\n\t69:  0x5f87ff,\n\t70:  0x5faf00,\n\t71:  0x5faf5f,\n\t72:  0x5faf87,\n\t73:  0x5fafaf,\n\t74:  0x5fafd7,\n\t75:  0x5fafff,\n\t76:  0x5fd700,\n\t77:  0x5fd75f,\n\t78:  0x5fd787,\n\t79:  0x5fd7af,\n\t80:  0x5fd7d7,\n\t81:  0x5fd7ff,\n\t82:  0x5fff00,\n\t83:  0x5fff5f,\n\t84:  0x5fff87,\n\t85:  0x5fffaf,\n\t86:  0x5fffd7,\n\t87:  0x5fffff,\n\t88:  0x870000,\n\t89:  0x87005f,\n\t90:  0x870087,\n\t91:  0x8700af,\n\t92:  0x8700d7,\n\t93:  0x8700ff,\n\t94:  0x875f00,\n\t95:  0x875f5f,\n\t96:  0x875f87,\n\t97:  0x875faf,\n\t98:  0x875fd7,\n\t99:  0x875fff,\n\t100: 0x878700,\n\t101: 0x87875f,\n\t102: 0x878787,\n\t103: 0x8787af,\n\t104: 0x8787d7,\n\t105: 0x8787ff,\n\t106: 0x87af00,\n\t107: 0x87af5f,\n\t108: 0x87af87,\n\t109: 0x87afaf,\n\t110: 0x87afd7,\n\t111: 0x87afff,\n\t112: 0x87d700,\n\t113: 0x87d75f,\n\t114: 0x87d787,\n\t115: 0x87d7af,\n\t116: 0x87d7d7,\n\t117: 0x87d7ff,\n\t118: 0x87ff00,\n\t119: 0x87ff5f,\n\t120: 0x87ff87,\n\t121: 0x87ffaf,\n\t122: 0x87ffd7,\n\t123: 0x87ffff,\n\t124: 0xaf0000,\n\t125: 0xaf005f,\n\t126: 0xaf0087,\n\t127: 0xaf00af,\n\t128: 0xaf00d7,\n\t129: 0xaf00ff,\n\t130: 0xaf5f00,\n\t131: 0xaf5f5f,\n\t132: 0xaf5f87,\n\t133: 0xaf5faf,\n\t134: 0xaf5fd7,\n\t135: 0xaf5fff,\n\t136: 0xaf8700,\n\t137: 0xaf875f,\n\t138: 0xaf8787,\n\t139: 0xaf87af,\n\t140: 0xaf87d7,\n\t141: 0xaf87ff,\n\t142: 0xafaf00,\n\t143: 0xafaf5f,\n\t144: 0xafaf87,\n\t145: 0xafafaf,\n\t146: 0xafafd7,\n\t147: 0xafafff,\n\t148: 0xafd700,\n\t149: 0xafd75f,\n\t150: 0xafd787,\n\t151: 0xafd7af,\n\t152: 0xafd7d7,\n\t153: 0xafd7ff,\n\t154: 0xafff00,\n\t155: 0xafff5f,\n\t156: 0xafff87,\n\t157: 0xafffaf,\n\t158: 0xafffd7,\n\t159: 0xafffff,\n\t160: 0xd70000,\n\t161: 0xd7005f,\n\t162: 0xd70087,\n\t163: 0xd700af,\n\t164: 0xd700d7,\n\t165: 0xd700ff,\n\t166: 0xd75f00,\n\t167: 0xd75f5f,\n\t168: 0xd75f87,\n\t169: 0xd75faf,\n\t170: 0xd75fd7,\n\t171: 0xd75fff,\n\t172: 0xd78700,\n\t173: 0xd7875f,\n\t174: 0xd78787,\n\t175: 0xd787af,\n\t176: 0xd787d7,\n\t177: 0xd787ff,\n\t178: 0xd7af00,\n\t179: 0xd7af5f,\n\t180: 0xd7af87,\n\t181: 0xd7afaf,\n\t182: 0xd7afd7,\n\t183: 0xd7afff,\n\t184: 0xd7d700,\n\t185: 0xd7d75f,\n\t186: 0xd7d787,\n\t187: 0xd7d7af,\n\t188: 0xd7d7d7,\n\t189: 0xd7d7ff,\n\t190: 0xd7ff00,\n\t191: 0xd7ff5f,\n\t192: 0xd7ff87,\n\t193: 0xd7ffaf,\n\t194: 0xd7ffd7,\n\t195: 0xd7ffff,\n\t196: 0xff0000,\n\t197: 0xff005f,\n\t198: 0xff0087,\n\t199: 0xff00af,\n\t200: 0xff00d7,\n\t201: 0xff00ff,\n\t202: 0xff5f00,\n\t203: 0xff5f5f,\n\t204: 0xff5f87,\n\t205: 0xff5faf,\n\t206: 0xff5fd7,\n\t207: 0xff5fff,\n\t208: 0xff8700,\n\t209: 0xff875f,\n\t210: 0xff8787,\n\t211: 0xff87af,\n\t212: 0xff87d7,\n\t213: 0xff87ff,\n\t214: 0xffaf00,\n\t215: 0xffaf5f,\n\t216: 0xffaf87,\n\t217: 0xffafaf,\n\t218: 0xffafd7,\n\t219: 0xffafff,\n\t220: 0xffd700,\n\t221: 0xffd75f,\n\t222: 0xffd787,\n\t223: 0xffd7af,\n\t224: 0xffd7d7,\n\t225: 0xffd7ff,\n\t226: 0xffff00,\n\t227: 0xffff5f,\n\t228: 0xffff87,\n\t229: 0xffffaf,\n\t230: 0xffffd7,\n\t231: 0xffffff,\n\t232: 0x080808,\n\t233: 0x121212,\n\t234: 0x1c1c1c,\n\t235: 0x262626,\n\t236: 0x303030,\n\t237: 0x3a3a3a,\n\t238: 0x444444,\n\t239: 0x4e4e4e,\n\t240: 0x585858,\n\t241: 0x626262,\n\t242: 0x6c6c6c,\n\t243: 0x767676,\n\t244: 0x808080,\n\t245: 0x8a8a8a,\n\t246: 0x949494,\n\t247: 0x9e9e9e,\n\t248: 0xa8a8a8,\n\t249: 0xb2b2b2,\n\t250: 0xbcbcbc,\n\t251: 0xc6c6c6,\n\t252: 0xd0d0d0,\n\t253: 0xdadada,\n\t254: 0xe4e4e4,\n\t255: 0xeeeeee,\n}\n\n// `\\033]0;TITLESTR\\007`\nfunc doTitleSequence(er *bytes.Reader) error {\n\tvar c byte\n\tvar err error\n\n\tc, err = er.ReadByte()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif c != '0' && c != '2' {\n\t\treturn nil\n\t}\n\tc, err = er.ReadByte()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif c != ';' {\n\t\treturn nil\n\t}\n\ttitle := make([]byte, 0, 80)\n\tfor {\n\t\tc, err = er.ReadByte()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif c == 0x07 || c == '\\n' {\n\t\t\tbreak\n\t\t}\n\t\ttitle = append(title, c)\n\t}\n\tif len(title) > 0 {\n\t\ttitle8, err := syscall.UTF16PtrFromString(string(title))\n\t\tif err == nil {\n\t\t\tprocSetConsoleTitle.Call(uintptr(unsafe.Pointer(title8)))\n\t\t}\n\t}\n\treturn nil\n}\n\n// returns Atoi(s) unless s == \"\" in which case it returns def\nfunc atoiWithDefault(s string, def int) (int, error) {\n\tif s == \"\" {\n\t\treturn def, nil\n\t}\n\treturn strconv.Atoi(s)\n}\n\n// Write writes data on console\nfunc (w *Writer) Write(data []byte) (n int, err error) {\n\tw.mutex.Lock()\n\tdefer w.mutex.Unlock()\n\tvar csbi consoleScreenBufferInfo\n\tprocGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))\n\n\thandle := w.handle\n\n\tvar er *bytes.Reader\n\tif w.rest.Len() > 0 {\n\t\tvar rest bytes.Buffer\n\t\tw.rest.WriteTo(&rest)\n\t\tw.rest.Reset()\n\t\trest.Write(data)\n\t\ter = bytes.NewReader(rest.Bytes())\n\t} else {\n\t\ter = bytes.NewReader(data)\n\t}\n\tvar plaintext bytes.Buffer\nloop:\n\tfor {\n\t\tc1, err := er.ReadByte()\n\t\tif err != nil {\n\t\t\tplaintext.WriteTo(w.out)\n\t\t\tbreak loop\n\t\t}\n\t\tif c1 != 0x1b {\n\t\t\tplaintext.WriteByte(c1)\n\t\t\tcontinue\n\t\t}\n\t\t_, err = plaintext.WriteTo(w.out)\n\t\tif err != nil {\n\t\t\tbreak loop\n\t\t}\n\t\tc2, err := er.ReadByte()\n\t\tif err != nil {\n\t\t\tbreak loop\n\t\t}\n\n\t\tswitch c2 {\n\t\tcase '>':\n\t\t\tcontinue\n\t\tcase ']':\n\t\t\tw.rest.WriteByte(c1)\n\t\t\tw.rest.WriteByte(c2)\n\t\t\ter.WriteTo(&w.rest)\n\t\t\tif bytes.IndexByte(w.rest.Bytes(), 0x07) == -1 {\n\t\t\t\tbreak loop\n\t\t\t}\n\t\t\ter = bytes.NewReader(w.rest.Bytes()[2:])\n\t\t\terr := doTitleSequence(er)\n\t\t\tif err != nil {\n\t\t\t\tbreak loop\n\t\t\t}\n\t\t\tw.rest.Reset()\n\t\t\tcontinue\n\t\t// https://github.com/mattn/go-colorable/issues/27\n\t\tcase '7':\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tw.oldpos = csbi.cursorPosition\n\t\t\tcontinue\n\t\tcase '8':\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&w.oldpos)))\n\t\t\tcontinue\n\t\tcase 0x5b:\n\t\t\t// execute part after switch\n\t\tdefault:\n\t\t\tcontinue\n\t\t}\n\n\t\tw.rest.WriteByte(c1)\n\t\tw.rest.WriteByte(c2)\n\t\ter.WriteTo(&w.rest)\n\n\t\tvar buf bytes.Buffer\n\t\tvar m byte\n\t\tfor i, c := range w.rest.Bytes()[2:] {\n\t\t\tif ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' {\n\t\t\t\tm = c\n\t\t\t\ter = bytes.NewReader(w.rest.Bytes()[2+i+1:])\n\t\t\t\tw.rest.Reset()\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tbuf.Write([]byte(string(c)))\n\t\t}\n\t\tif m == 0 {\n\t\t\tbreak loop\n\t\t}\n\n\t\tswitch m {\n\t\tcase 'A':\n\t\t\tn, err = atoiWithDefault(buf.String(), 1)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.y -= short(n)\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'B':\n\t\t\tn, err = atoiWithDefault(buf.String(), 1)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.y += short(n)\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'C':\n\t\t\tn, err = atoiWithDefault(buf.String(), 1)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.x += short(n)\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'D':\n\t\t\tn, err = atoiWithDefault(buf.String(), 1)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.x -= short(n)\n\t\t\tif csbi.cursorPosition.x < 0 {\n\t\t\t\tcsbi.cursorPosition.x = 0\n\t\t\t}\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'E':\n\t\t\tn, err = strconv.Atoi(buf.String())\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.x = 0\n\t\t\tcsbi.cursorPosition.y += short(n)\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'F':\n\t\t\tn, err = strconv.Atoi(buf.String())\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.x = 0\n\t\t\tcsbi.cursorPosition.y -= short(n)\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'G':\n\t\t\tn, err = strconv.Atoi(buf.String())\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif n < 1 {\n\t\t\t\tn = 1\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.x = short(n - 1)\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'H', 'f':\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tif buf.Len() > 0 {\n\t\t\t\ttoken := strings.Split(buf.String(), \";\")\n\t\t\t\tswitch len(token) {\n\t\t\t\tcase 1:\n\t\t\t\t\tn1, err := strconv.Atoi(token[0])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tcsbi.cursorPosition.y = short(n1 - 1)\n\t\t\t\tcase 2:\n\t\t\t\t\tn1, err := strconv.Atoi(token[0])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tn2, err := strconv.Atoi(token[1])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tcsbi.cursorPosition.x = short(n2 - 1)\n\t\t\t\t\tcsbi.cursorPosition.y = short(n1 - 1)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcsbi.cursorPosition.y = 0\n\t\t\t}\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'J':\n\t\t\tn := 0\n\t\t\tif buf.Len() > 0 {\n\t\t\t\tn, err = strconv.Atoi(buf.String())\n\t\t\t\tif err != nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar count, written dword\n\t\t\tvar cursor coord\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tswitch n {\n\t\t\tcase 0:\n\t\t\t\tcursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y}\n\t\t\t\tcount = dword(csbi.size.x) - dword(csbi.cursorPosition.x) + dword(csbi.size.y-csbi.cursorPosition.y)*dword(csbi.size.x)\n\t\t\tcase 1:\n\t\t\t\tcursor = coord{x: csbi.window.left, y: csbi.window.top}\n\t\t\t\tcount = dword(csbi.size.x) - dword(csbi.cursorPosition.x) + dword(csbi.window.top-csbi.cursorPosition.y)*dword(csbi.size.x)\n\t\t\tcase 2:\n\t\t\t\tcursor = coord{x: csbi.window.left, y: csbi.window.top}\n\t\t\t\tcount = dword(csbi.size.x) - dword(csbi.cursorPosition.x) + dword(csbi.size.y-csbi.cursorPosition.y)*dword(csbi.size.x)\n\t\t\t}\n\t\t\tprocFillConsoleOutputCharacter.Call(uintptr(handle), uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))\n\t\t\tprocFillConsoleOutputAttribute.Call(uintptr(handle), uintptr(csbi.attributes), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))\n\t\tcase 'K':\n\t\t\tn := 0\n\t\t\tif buf.Len() > 0 {\n\t\t\t\tn, err = strconv.Atoi(buf.String())\n\t\t\t\tif err != nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tvar cursor coord\n\t\t\tvar count, written dword\n\t\t\tswitch n {\n\t\t\tcase 0:\n\t\t\t\tcursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y}\n\t\t\t\tcount = dword(csbi.size.x - csbi.cursorPosition.x)\n\t\t\tcase 1:\n\t\t\t\tcursor = coord{x: csbi.window.left, y: csbi.cursorPosition.y}\n\t\t\t\tcount = dword(csbi.size.x - csbi.cursorPosition.x)\n\t\t\tcase 2:\n\t\t\t\tcursor = coord{x: csbi.window.left, y: csbi.cursorPosition.y}\n\t\t\t\tcount = dword(csbi.size.x)\n\t\t\t}\n\t\t\tprocFillConsoleOutputCharacter.Call(uintptr(handle), uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))\n\t\t\tprocFillConsoleOutputAttribute.Call(uintptr(handle), uintptr(csbi.attributes), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))\n\t\tcase 'X':\n\t\t\tn := 0\n\t\t\tif buf.Len() > 0 {\n\t\t\t\tn, err = strconv.Atoi(buf.String())\n\t\t\t\tif err != nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tvar cursor coord\n\t\t\tvar written dword\n\t\t\tcursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y}\n\t\t\tprocFillConsoleOutputCharacter.Call(uintptr(handle), uintptr(' '), uintptr(n), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))\n\t\t\tprocFillConsoleOutputAttribute.Call(uintptr(handle), uintptr(csbi.attributes), uintptr(n), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))\n\t\tcase 'm':\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tattr := csbi.attributes\n\t\t\tcs := buf.String()\n\t\t\tif cs == \"\" {\n\t\t\t\tprocSetConsoleTextAttribute.Call(uintptr(handle), uintptr(w.oldattr))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttoken := strings.Split(cs, \";\")\n\t\t\tfor i := 0; i < len(token); i++ {\n\t\t\t\tns := token[i]\n\t\t\t\tif n, err = strconv.Atoi(ns); err == nil {\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase n == 0 || n == 100:\n\t\t\t\t\t\tattr = w.oldattr\n\t\t\t\t\tcase n == 4:\n\t\t\t\t\t\tattr |= commonLvbUnderscore\n\t\t\t\t\tcase (1 <= n && n <= 3) || n == 5:\n\t\t\t\t\t\tattr |= foregroundIntensity\n\t\t\t\t\tcase n == 7 || n == 27:\n\t\t\t\t\t\tattr =\n\t\t\t\t\t\t\t(attr &^ (foregroundMask | backgroundMask)) |\n\t\t\t\t\t\t\t\t((attr & foregroundMask) << 4) |\n\t\t\t\t\t\t\t\t((attr & backgroundMask) >> 4)\n\t\t\t\t\tcase n == 22:\n\t\t\t\t\t\tattr &^= foregroundIntensity\n\t\t\t\t\tcase n == 24:\n\t\t\t\t\t\tattr &^= commonLvbUnderscore\n\t\t\t\t\tcase 30 <= n && n <= 37:\n\t\t\t\t\t\tattr &= backgroundMask\n\t\t\t\t\t\tif (n-30)&1 != 0 {\n\t\t\t\t\t\t\tattr |= foregroundRed\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-30)&2 != 0 {\n\t\t\t\t\t\t\tattr |= foregroundGreen\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-30)&4 != 0 {\n\t\t\t\t\t\t\tattr |= foregroundBlue\n\t\t\t\t\t\t}\n\t\t\t\t\tcase n == 38: // set foreground color.\n\t\t\t\t\t\tif i < len(token)-2 && (token[i+1] == \"5\" || token[i+1] == \"05\") {\n\t\t\t\t\t\t\tif n256, err := strconv.Atoi(token[i+2]); err == nil {\n\t\t\t\t\t\t\t\tif n256foreAttr == nil {\n\t\t\t\t\t\t\t\t\tn256setup()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tattr &= backgroundMask\n\t\t\t\t\t\t\t\tattr |= n256foreAttr[n256%len(n256foreAttr)]\n\t\t\t\t\t\t\t\ti += 2\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if len(token) == 5 && token[i+1] == \"2\" {\n\t\t\t\t\t\t\tvar r, g, b int\n\t\t\t\t\t\t\tr, _ = strconv.Atoi(token[i+2])\n\t\t\t\t\t\t\tg, _ = strconv.Atoi(token[i+3])\n\t\t\t\t\t\t\tb, _ = strconv.Atoi(token[i+4])\n\t\t\t\t\t\t\ti += 4\n\t\t\t\t\t\t\tif r > 127 {\n\t\t\t\t\t\t\t\tattr |= foregroundRed\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif g > 127 {\n\t\t\t\t\t\t\t\tattr |= foregroundGreen\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif b > 127 {\n\t\t\t\t\t\t\t\tattr |= foregroundBlue\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tattr = attr & (w.oldattr & backgroundMask)\n\t\t\t\t\t\t}\n\t\t\t\t\tcase n == 39: // reset foreground color.\n\t\t\t\t\t\tattr &= backgroundMask\n\t\t\t\t\t\tattr |= w.oldattr & foregroundMask\n\t\t\t\t\tcase 40 <= n && n <= 47:\n\t\t\t\t\t\tattr &= foregroundMask\n\t\t\t\t\t\tif (n-40)&1 != 0 {\n\t\t\t\t\t\t\tattr |= backgroundRed\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-40)&2 != 0 {\n\t\t\t\t\t\t\tattr |= backgroundGreen\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-40)&4 != 0 {\n\t\t\t\t\t\t\tattr |= backgroundBlue\n\t\t\t\t\t\t}\n\t\t\t\t\tcase n == 48: // set background color.\n\t\t\t\t\t\tif i < len(token)-2 && token[i+1] == \"5\" {\n\t\t\t\t\t\t\tif n256, err := strconv.Atoi(token[i+2]); err == nil {\n\t\t\t\t\t\t\t\tif n256backAttr == nil {\n\t\t\t\t\t\t\t\t\tn256setup()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tattr &= foregroundMask\n\t\t\t\t\t\t\t\tattr |= n256backAttr[n256%len(n256backAttr)]\n\t\t\t\t\t\t\t\ti += 2\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if len(token) == 5 && token[i+1] == \"2\" {\n\t\t\t\t\t\t\tvar r, g, b int\n\t\t\t\t\t\t\tr, _ = strconv.Atoi(token[i+2])\n\t\t\t\t\t\t\tg, _ = strconv.Atoi(token[i+3])\n\t\t\t\t\t\t\tb, _ = strconv.Atoi(token[i+4])\n\t\t\t\t\t\t\ti += 4\n\t\t\t\t\t\t\tif r > 127 {\n\t\t\t\t\t\t\t\tattr |= backgroundRed\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif g > 127 {\n\t\t\t\t\t\t\t\tattr |= backgroundGreen\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif b > 127 {\n\t\t\t\t\t\t\t\tattr |= backgroundBlue\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tattr = attr & (w.oldattr & foregroundMask)\n\t\t\t\t\t\t}\n\t\t\t\t\tcase n == 49: // reset foreground color.\n\t\t\t\t\t\tattr &= foregroundMask\n\t\t\t\t\t\tattr |= w.oldattr & backgroundMask\n\t\t\t\t\tcase 90 <= n && n <= 97:\n\t\t\t\t\t\tattr = (attr & backgroundMask)\n\t\t\t\t\t\tattr |= foregroundIntensity\n\t\t\t\t\t\tif (n-90)&1 != 0 {\n\t\t\t\t\t\t\tattr |= foregroundRed\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-90)&2 != 0 {\n\t\t\t\t\t\t\tattr |= foregroundGreen\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-90)&4 != 0 {\n\t\t\t\t\t\t\tattr |= foregroundBlue\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 100 <= n && n <= 107:\n\t\t\t\t\t\tattr = (attr & foregroundMask)\n\t\t\t\t\t\tattr |= backgroundIntensity\n\t\t\t\t\t\tif (n-100)&1 != 0 {\n\t\t\t\t\t\t\tattr |= backgroundRed\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-100)&2 != 0 {\n\t\t\t\t\t\t\tattr |= backgroundGreen\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-100)&4 != 0 {\n\t\t\t\t\t\t\tattr |= backgroundBlue\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tprocSetConsoleTextAttribute.Call(uintptr(handle), uintptr(attr))\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'h':\n\t\t\tvar ci consoleCursorInfo\n\t\t\tcs := buf.String()\n\t\t\tif cs == \"5>\" {\n\t\t\t\tprocGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t\tci.visible = 0\n\t\t\t\tprocSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t} else if cs == \"?25\" {\n\t\t\t\tprocGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t\tci.visible = 1\n\t\t\t\tprocSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t} else if cs == \"?1049\" {\n\t\t\t\tif w.althandle == 0 {\n\t\t\t\t\th, _, _ := procCreateConsoleScreenBuffer.Call(uintptr(genericRead|genericWrite), 0, 0, uintptr(consoleTextmodeBuffer), 0, 0)\n\t\t\t\t\tw.althandle = syscall.Handle(h)\n\t\t\t\t\tif w.althandle != 0 {\n\t\t\t\t\t\thandle = w.althandle\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'l':\n\t\t\tvar ci consoleCursorInfo\n\t\t\tcs := buf.String()\n\t\t\tif cs == \"5>\" {\n\t\t\t\tprocGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t\tci.visible = 1\n\t\t\t\tprocSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t} else if cs == \"?25\" {\n\t\t\t\tprocGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t\tci.visible = 0\n\t\t\t\tprocSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t} else if cs == \"?1049\" {\n\t\t\t\tif w.althandle != 0 {\n\t\t\t\t\tsyscall.CloseHandle(w.althandle)\n\t\t\t\t\tw.althandle = 0\n\t\t\t\t\thandle = w.handle\n\t\t\t\t}\n\t\t\t}\n\t\tcase 's':\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tw.oldpos = csbi.cursorPosition\n\t\tcase 'u':\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&w.oldpos)))\n\t\t}\n\t}\n\n\treturn len(data), nil\n}\n\ntype consoleColor struct {\n\trgb       int\n\tred       bool\n\tgreen     bool\n\tblue      bool\n\tintensity bool\n}\n\nfunc (c consoleColor) foregroundAttr() (attr word) {\n\tif c.red {\n\t\tattr |= foregroundRed\n\t}\n\tif c.green {\n\t\tattr |= foregroundGreen\n\t}\n\tif c.blue {\n\t\tattr |= foregroundBlue\n\t}\n\tif c.intensity {\n\t\tattr |= foregroundIntensity\n\t}\n\treturn\n}\n\nfunc (c consoleColor) backgroundAttr() (attr word) {\n\tif c.red {\n\t\tattr |= backgroundRed\n\t}\n\tif c.green {\n\t\tattr |= backgroundGreen\n\t}\n\tif c.blue {\n\t\tattr |= backgroundBlue\n\t}\n\tif c.intensity {\n\t\tattr |= backgroundIntensity\n\t}\n\treturn\n}\n\nvar color16 = []consoleColor{\n\t{0x000000, false, false, false, false},\n\t{0x000080, false, false, true, false},\n\t{0x008000, false, true, false, false},\n\t{0x008080, false, true, true, false},\n\t{0x800000, true, false, false, false},\n\t{0x800080, true, false, true, false},\n\t{0x808000, true, true, false, false},\n\t{0xc0c0c0, true, true, true, false},\n\t{0x808080, false, false, false, true},\n\t{0x0000ff, false, false, true, true},\n\t{0x00ff00, false, true, false, true},\n\t{0x00ffff, false, true, true, true},\n\t{0xff0000, true, false, false, true},\n\t{0xff00ff, true, false, true, true},\n\t{0xffff00, true, true, false, true},\n\t{0xffffff, true, true, true, true},\n}\n\ntype hsv struct {\n\th, s, v float32\n}\n\nfunc (a hsv) dist(b hsv) float32 {\n\tdh := a.h - b.h\n\tswitch {\n\tcase dh > 0.5:\n\t\tdh = 1 - dh\n\tcase dh < -0.5:\n\t\tdh = -1 - dh\n\t}\n\tds := a.s - b.s\n\tdv := a.v - b.v\n\treturn float32(math.Sqrt(float64(dh*dh + ds*ds + dv*dv)))\n}\n\nfunc toHSV(rgb int) hsv {\n\tr, g, b := float32((rgb&0xFF0000)>>16)/256.0,\n\t\tfloat32((rgb&0x00FF00)>>8)/256.0,\n\t\tfloat32(rgb&0x0000FF)/256.0\n\tmin, max := minmax3f(r, g, b)\n\th := max - min\n\tif h > 0 {\n\t\tif max == r {\n\t\t\th = (g - b) / h\n\t\t\tif h < 0 {\n\t\t\t\th += 6\n\t\t\t}\n\t\t} else if max == g {\n\t\t\th = 2 + (b-r)/h\n\t\t} else {\n\t\t\th = 4 + (r-g)/h\n\t\t}\n\t}\n\th /= 6.0\n\ts := max - min\n\tif max != 0 {\n\t\ts /= max\n\t}\n\tv := max\n\treturn hsv{h: h, s: s, v: v}\n}\n\ntype hsvTable []hsv\n\nfunc toHSVTable(rgbTable []consoleColor) hsvTable {\n\tt := make(hsvTable, len(rgbTable))\n\tfor i, c := range rgbTable {\n\t\tt[i] = toHSV(c.rgb)\n\t}\n\treturn t\n}\n\nfunc (t hsvTable) find(rgb int) consoleColor {\n\thsv := toHSV(rgb)\n\tn := 7\n\tl := float32(5.0)\n\tfor i, p := range t {\n\t\td := hsv.dist(p)\n\t\tif d < l {\n\t\t\tl, n = d, i\n\t\t}\n\t}\n\treturn color16[n]\n}\n\nfunc minmax3f(a, b, c float32) (min, max float32) {\n\tif a < b {\n\t\tif b < c {\n\t\t\treturn a, c\n\t\t} else if a < c {\n\t\t\treturn a, b\n\t\t} else {\n\t\t\treturn c, b\n\t\t}\n\t} else {\n\t\tif a < c {\n\t\t\treturn b, c\n\t\t} else if b < c {\n\t\t\treturn b, a\n\t\t} else {\n\t\t\treturn c, a\n\t\t}\n\t}\n}\n\nvar n256foreAttr []word\nvar n256backAttr []word\n\nfunc n256setup() {\n\tn256foreAttr = make([]word, 256)\n\tn256backAttr = make([]word, 256)\n\tt := toHSVTable(color16)\n\tfor i, rgb := range color256 {\n\t\tc := t.find(rgb)\n\t\tn256foreAttr[i] = c.foregroundAttr()\n\t\tn256backAttr[i] = c.backgroundAttr()\n\t}\n}\n\n// EnableColorsStdout enable colors if possible.\nfunc EnableColorsStdout(enabled *bool) func() {\n\tvar mode uint32\n\th := os.Stdout.Fd()\n\tif r, _, _ := procGetConsoleMode.Call(h, uintptr(unsafe.Pointer(&mode))); r != 0 {\n\t\tif r, _, _ = procSetConsoleMode.Call(h, uintptr(mode|cENABLE_VIRTUAL_TERMINAL_PROCESSING)); r != 0 {\n\t\t\tif enabled != nil {\n\t\t\t\t*enabled = true\n\t\t\t}\n\t\t\treturn func() {\n\t\t\t\tprocSetConsoleMode.Call(h, uintptr(mode))\n\t\t\t}\n\t\t}\n\t}\n\tif enabled != nil {\n\t\t*enabled = true\n\t}\n\treturn func() {}\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/go.test.sh",
    "content": "#!/usr/bin/env bash\n\nset -e\necho \"\" > coverage.txt\n\nfor d in $(go list ./... | grep -v vendor); do\n    go test -race -coverprofile=profile.out -covermode=atomic \"$d\"\n    if [ -f profile.out ]; then\n        cat profile.out >> coverage.txt\n        rm profile.out\n    fi\ndone\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/noncolorable.go",
    "content": "package colorable\n\nimport (\n\t\"bytes\"\n\t\"io\"\n)\n\n// NonColorable holds writer but removes escape sequence.\ntype NonColorable struct {\n\tout io.Writer\n}\n\n// NewNonColorable returns new instance of Writer which removes escape sequence from Writer.\nfunc NewNonColorable(w io.Writer) io.Writer {\n\treturn &NonColorable{out: w}\n}\n\n// Write writes data on console\nfunc (w *NonColorable) Write(data []byte) (n int, err error) {\n\ter := bytes.NewReader(data)\n\tvar plaintext bytes.Buffer\nloop:\n\tfor {\n\t\tc1, err := er.ReadByte()\n\t\tif err != nil {\n\t\t\tplaintext.WriteTo(w.out)\n\t\t\tbreak loop\n\t\t}\n\t\tif c1 != 0x1b {\n\t\t\tplaintext.WriteByte(c1)\n\t\t\tcontinue\n\t\t}\n\t\t_, err = plaintext.WriteTo(w.out)\n\t\tif err != nil {\n\t\t\tbreak loop\n\t\t}\n\t\tc2, err := er.ReadByte()\n\t\tif err != nil {\n\t\t\tbreak loop\n\t\t}\n\t\tif c2 != 0x5b {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor {\n\t\t\tc, err := er.ReadByte()\n\t\t\tif err != nil {\n\t\t\t\tbreak loop\n\t\t\t}\n\t\t\tif ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn len(data), nil\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/LICENSE",
    "content": "Copyright (c) Yasuhiro MATSUMOTO <mattn.jp@gmail.com>\n\nMIT License (Expat)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/README.md",
    "content": "# go-isatty\n\n[![Godoc Reference](https://godoc.org/github.com/mattn/go-isatty?status.svg)](http://godoc.org/github.com/mattn/go-isatty)\n[![Codecov](https://codecov.io/gh/mattn/go-isatty/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-isatty)\n[![Coverage Status](https://coveralls.io/repos/github/mattn/go-isatty/badge.svg?branch=master)](https://coveralls.io/github/mattn/go-isatty?branch=master)\n[![Go Report Card](https://goreportcard.com/badge/mattn/go-isatty)](https://goreportcard.com/report/mattn/go-isatty)\n\nisatty for golang\n\n## Usage\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/mattn/go-isatty\"\n\t\"os\"\n)\n\nfunc main() {\n\tif isatty.IsTerminal(os.Stdout.Fd()) {\n\t\tfmt.Println(\"Is Terminal\")\n\t} else if isatty.IsCygwinTerminal(os.Stdout.Fd()) {\n\t\tfmt.Println(\"Is Cygwin/MSYS2 Terminal\")\n\t} else {\n\t\tfmt.Println(\"Is Not Terminal\")\n\t}\n}\n```\n\n## Installation\n\n```\n$ go get github.com/mattn/go-isatty\n```\n\n## License\n\nMIT\n\n## Author\n\nYasuhiro Matsumoto (a.k.a mattn)\n\n## Thanks\n\n* k-takata: base idea for IsCygwinTerminal\n\n    https://github.com/k-takata/go-iscygpty\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/doc.go",
    "content": "// Package isatty implements interface to isatty\npackage isatty\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/go.test.sh",
    "content": "#!/usr/bin/env bash\n\nset -e\necho \"\" > coverage.txt\n\nfor d in $(go list ./... | grep -v vendor); do\n    go test -race -coverprofile=profile.out -covermode=atomic \"$d\"\n    if [ -f profile.out ]; then\n        cat profile.out >> coverage.txt\n        rm profile.out\n    fi\ndone\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_bsd.go",
    "content": "//go:build (darwin || freebsd || openbsd || netbsd || dragonfly || hurd) && !appengine\n// +build darwin freebsd openbsd netbsd dragonfly hurd\n// +build !appengine\n\npackage isatty\n\nimport \"golang.org/x/sys/unix\"\n\n// IsTerminal return true if the file descriptor is terminal.\nfunc IsTerminal(fd uintptr) bool {\n\t_, err := unix.IoctlGetTermios(int(fd), unix.TIOCGETA)\n\treturn err == nil\n}\n\n// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_others.go",
    "content": "//go:build appengine || js || nacl || wasm\n// +build appengine js nacl wasm\n\npackage isatty\n\n// IsTerminal returns true if the file descriptor is terminal which\n// is always false on js and appengine classic which is a sandboxed PaaS.\nfunc IsTerminal(fd uintptr) bool {\n\treturn false\n}\n\n// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_plan9.go",
    "content": "//go:build plan9\n// +build plan9\n\npackage isatty\n\nimport (\n\t\"syscall\"\n)\n\n// IsTerminal returns true if the given file descriptor is a terminal.\nfunc IsTerminal(fd uintptr) bool {\n\tpath, err := syscall.Fd2path(int(fd))\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn path == \"/dev/cons\" || path == \"/mnt/term/dev/cons\"\n}\n\n// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_solaris.go",
    "content": "//go:build solaris && !appengine\n// +build solaris,!appengine\n\npackage isatty\n\nimport (\n\t\"golang.org/x/sys/unix\"\n)\n\n// IsTerminal returns true if the given file descriptor is a terminal.\n// see: https://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libc/port/gen/isatty.c\nfunc IsTerminal(fd uintptr) bool {\n\t_, err := unix.IoctlGetTermio(int(fd), unix.TCGETA)\n\treturn err == nil\n}\n\n// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_tcgets.go",
    "content": "//go:build (linux || aix || zos) && !appengine\n// +build linux aix zos\n// +build !appengine\n\npackage isatty\n\nimport \"golang.org/x/sys/unix\"\n\n// IsTerminal return true if the file descriptor is terminal.\nfunc IsTerminal(fd uintptr) bool {\n\t_, err := unix.IoctlGetTermios(int(fd), unix.TCGETS)\n\treturn err == nil\n}\n\n// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_windows.go",
    "content": "//go:build windows && !appengine\n// +build windows,!appengine\n\npackage isatty\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"syscall\"\n\t\"unicode/utf16\"\n\t\"unsafe\"\n)\n\nconst (\n\tobjectNameInfo uintptr = 1\n\tfileNameInfo           = 2\n\tfileTypePipe           = 3\n)\n\nvar (\n\tkernel32                         = syscall.NewLazyDLL(\"kernel32.dll\")\n\tntdll                            = syscall.NewLazyDLL(\"ntdll.dll\")\n\tprocGetConsoleMode               = kernel32.NewProc(\"GetConsoleMode\")\n\tprocGetFileInformationByHandleEx = kernel32.NewProc(\"GetFileInformationByHandleEx\")\n\tprocGetFileType                  = kernel32.NewProc(\"GetFileType\")\n\tprocNtQueryObject                = ntdll.NewProc(\"NtQueryObject\")\n)\n\nfunc init() {\n\t// Check if GetFileInformationByHandleEx is available.\n\tif procGetFileInformationByHandleEx.Find() != nil {\n\t\tprocGetFileInformationByHandleEx = nil\n\t}\n}\n\n// IsTerminal return true if the file descriptor is terminal.\nfunc IsTerminal(fd uintptr) bool {\n\tvar st uint32\n\tr, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0)\n\treturn r != 0 && e == 0\n}\n\n// Check pipe name is used for cygwin/msys2 pty.\n// Cygwin/MSYS2 PTY has a name like:\n//   \\{cygwin,msys}-XXXXXXXXXXXXXXXX-ptyN-{from,to}-master\nfunc isCygwinPipeName(name string) bool {\n\ttoken := strings.Split(name, \"-\")\n\tif len(token) < 5 {\n\t\treturn false\n\t}\n\n\tif token[0] != `\\msys` &&\n\t\ttoken[0] != `\\cygwin` &&\n\t\ttoken[0] != `\\Device\\NamedPipe\\msys` &&\n\t\ttoken[0] != `\\Device\\NamedPipe\\cygwin` {\n\t\treturn false\n\t}\n\n\tif token[1] == \"\" {\n\t\treturn false\n\t}\n\n\tif !strings.HasPrefix(token[2], \"pty\") {\n\t\treturn false\n\t}\n\n\tif token[3] != `from` && token[3] != `to` {\n\t\treturn false\n\t}\n\n\tif token[4] != \"master\" {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// getFileNameByHandle use the undocomented ntdll NtQueryObject to get file full name from file handler\n// since GetFileInformationByHandleEx is not available under windows Vista and still some old fashion\n// guys are using Windows XP, this is a workaround for those guys, it will also work on system from\n// Windows vista to 10\n// see https://stackoverflow.com/a/18792477 for details\nfunc getFileNameByHandle(fd uintptr) (string, error) {\n\tif procNtQueryObject == nil {\n\t\treturn \"\", errors.New(\"ntdll.dll: NtQueryObject not supported\")\n\t}\n\n\tvar buf [4 + syscall.MAX_PATH]uint16\n\tvar result int\n\tr, _, e := syscall.Syscall6(procNtQueryObject.Addr(), 5,\n\t\tfd, objectNameInfo, uintptr(unsafe.Pointer(&buf)), uintptr(2*len(buf)), uintptr(unsafe.Pointer(&result)), 0)\n\tif r != 0 {\n\t\treturn \"\", e\n\t}\n\treturn string(utf16.Decode(buf[4 : 4+buf[0]/2])), nil\n}\n\n// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2\n// terminal.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\tif procGetFileInformationByHandleEx == nil {\n\t\tname, err := getFileNameByHandle(fd)\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\t\treturn isCygwinPipeName(name)\n\t}\n\n\t// Cygwin/msys's pty is a pipe.\n\tft, _, e := syscall.Syscall(procGetFileType.Addr(), 1, fd, 0, 0)\n\tif ft != fileTypePipe || e != 0 {\n\t\treturn false\n\t}\n\n\tvar buf [2 + syscall.MAX_PATH]uint16\n\tr, _, e := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(),\n\t\t4, fd, fileNameInfo, uintptr(unsafe.Pointer(&buf)),\n\t\tuintptr(len(buf)*2), 0, 0)\n\tif r == 0 || e != 0 {\n\t\treturn false\n\t}\n\n\tl := *(*uint32)(unsafe.Pointer(&buf))\n\treturn isCygwinPipeName(string(utf16.Decode(buf[2 : 2+l/2])))\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2016 Yasuhiro Matsumoto\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/README.md",
    "content": "go-runewidth\n============\n\n[![Build Status](https://github.com/mattn/go-runewidth/workflows/test/badge.svg?branch=master)](https://github.com/mattn/go-runewidth/actions?query=workflow%3Atest)\n[![Codecov](https://codecov.io/gh/mattn/go-runewidth/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-runewidth)\n[![GoDoc](https://godoc.org/github.com/mattn/go-runewidth?status.svg)](http://godoc.org/github.com/mattn/go-runewidth)\n[![Go Report Card](https://goreportcard.com/badge/github.com/mattn/go-runewidth)](https://goreportcard.com/report/github.com/mattn/go-runewidth)\n\nProvides functions to get fixed width of the character or string.\n\nUsage\n-----\n\n```go\nrunewidth.StringWidth(\"つのだ☆HIRO\") == 12\n```\n\n\nAuthor\n------\n\nYasuhiro Matsumoto\n\nLicense\n-------\n\nunder the MIT License: http://mattn.mit-license.org/2013\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/benchstat.txt",
    "content": "goos: darwin\ngoarch: arm64\npkg: github.com/mattn/go-runewidth\ncpu: Apple M2\n                                   │   old.txt    │              new.txt               │\n                                   │    sec/op    │   sec/op     vs base               │\nString1WidthAll/regular-8            108.92m ± 0%   35.09m ± 3%  -67.78% (p=0.002 n=6)\nString1WidthAll/lut-8                 93.97m ± 0%   18.70m ± 0%  -80.10% (p=0.002 n=6)\nString1Width768/regular-8             60.62µ ± 1%   11.54µ ± 0%  -80.97% (p=0.002 n=6)\nString1Width768/lut-8                 60.66µ ± 1%   11.43µ ± 0%  -81.16% (p=0.002 n=6)\nString1WidthAllEastAsian/regular-8   115.13m ± 1%   40.79m ± 8%  -64.57% (p=0.002 n=6)\nString1WidthAllEastAsian/lut-8        93.65m ± 0%   18.70m ± 2%  -80.03% (p=0.002 n=6)\nString1Width768EastAsian/regular-8    75.32µ ± 0%   23.49µ ± 0%  -68.82% (p=0.002 n=6)\nString1Width768EastAsian/lut-8        60.76µ ± 0%   11.50µ ± 0%  -81.07% (p=0.002 n=6)\ngeomean                               2.562m        604.5µ       -76.41%\n\n                                   │   old.txt    │                 new.txt                 │\n                                   │     B/op     │    B/op      vs base                    │\nString1WidthAll/regular-8            106.3Mi ± 0%    0.0Mi ± 0%  -100.00% (p=0.002 n=6)\nString1WidthAll/lut-8                106.3Mi ± 0%    0.0Mi ± 0%  -100.00% (p=0.002 n=6)\nString1Width768/regular-8            75.00Ki ± 0%   0.00Ki ± 0%  -100.00% (p=0.002 n=6)\nString1Width768/lut-8                75.00Ki ± 0%   0.00Ki ± 0%  -100.00% (p=0.002 n=6)\nString1WidthAllEastAsian/regular-8   106.3Mi ± 0%    0.0Mi ± 0%  -100.00% (p=0.002 n=6)\nString1WidthAllEastAsian/lut-8       106.3Mi ± 0%    0.0Mi ± 0%  -100.00% (p=0.002 n=6)\nString1Width768EastAsian/regular-8   75.00Ki ± 0%   0.00Ki ± 0%  -100.00% (p=0.002 n=6)\nString1Width768EastAsian/lut-8       75.00Ki ± 0%   0.00Ki ± 0%  -100.00% (p=0.002 n=6)\ngeomean                              2.790Mi                     ?                      ¹ ²\n¹ summaries must be >0 to compute geomean\n² ratios must be >0 to compute geomean\n\n                                   │   old.txt   │                 new.txt                 │\n                                   │  allocs/op  │  allocs/op   vs base                    │\nString1WidthAll/regular-8            3.342M ± 0%   0.000M ± 0%  -100.00% (p=0.002 n=6)\nString1WidthAll/lut-8                3.342M ± 0%   0.000M ± 0%  -100.00% (p=0.002 n=6)\nString1Width768/regular-8            2.304k ± 0%   0.000k ± 0%  -100.00% (p=0.002 n=6)\nString1Width768/lut-8                2.304k ± 0%   0.000k ± 0%  -100.00% (p=0.002 n=6)\nString1WidthAllEastAsian/regular-8   3.342M ± 0%   0.000M ± 0%  -100.00% (p=0.002 n=6)\nString1WidthAllEastAsian/lut-8       3.342M ± 0%   0.000M ± 0%  -100.00% (p=0.002 n=6)\nString1Width768EastAsian/regular-8   2.304k ± 0%   0.000k ± 0%  -100.00% (p=0.002 n=6)\nString1Width768EastAsian/lut-8       2.304k ± 0%   0.000k ± 0%  -100.00% (p=0.002 n=6)\ngeomean                              87.75k                     ?                      ¹ ²\n¹ summaries must be >0 to compute geomean\n² ratios must be >0 to compute geomean\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/new.txt",
    "content": "goos: darwin\ngoarch: arm64\npkg: github.com/mattn/go-runewidth\ncpu: Apple M2\nBenchmarkString1WidthAll/regular-8    \t      33\t  35033923 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAll/regular-8    \t      33\t  34965112 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAll/regular-8    \t      33\t  36307234 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAll/regular-8    \t      33\t  35007705 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAll/regular-8    \t      33\t  35154182 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAll/regular-8    \t      34\t  35155400 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAll/lut-8        \t      63\t  18688500 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAll/lut-8        \t      63\t  18712474 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAll/lut-8        \t      63\t  18700211 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAll/lut-8        \t      62\t  18694179 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAll/lut-8        \t      62\t  18708392 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAll/lut-8        \t      63\t  18770608 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768/regular-8    \t  104137\t     11526 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768/regular-8    \t  103986\t     11540 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768/regular-8    \t  104079\t     11552 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768/regular-8    \t  103963\t     11530 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768/regular-8    \t  103714\t     11538 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768/regular-8    \t  104181\t     11537 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768/lut-8        \t  105150\t     11420 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768/lut-8        \t  104778\t     11423 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768/lut-8        \t  105069\t     11422 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768/lut-8        \t  105127\t     11475 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768/lut-8        \t  104742\t     11433 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768/lut-8        \t  105163\t     11432 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAllEastAsian/regular-8         \t      28\t  40723347 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAllEastAsian/regular-8         \t      28\t  40790299 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAllEastAsian/regular-8         \t      28\t  40801338 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAllEastAsian/regular-8         \t      28\t  40798216 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAllEastAsian/regular-8         \t      28\t  44135253 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAllEastAsian/regular-8         \t      28\t  40779546 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAllEastAsian/lut-8             \t      62\t  18694165 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAllEastAsian/lut-8             \t      62\t  18685047 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAllEastAsian/lut-8             \t      62\t  18689273 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAllEastAsian/lut-8             \t      62\t  19150346 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAllEastAsian/lut-8             \t      63\t  19126154 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1WidthAllEastAsian/lut-8             \t      62\t  18712619 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768EastAsian/regular-8         \t   50775\t     23595 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768EastAsian/regular-8         \t   51061\t     23563 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768EastAsian/regular-8         \t   51057\t     23492 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768EastAsian/regular-8         \t   51138\t     23445 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768EastAsian/regular-8         \t   51195\t     23469 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768EastAsian/regular-8         \t   51087\t     23482 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768EastAsian/lut-8             \t  104559\t     11549 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768EastAsian/lut-8             \t  104508\t     11483 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768EastAsian/lut-8             \t  104296\t     11503 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768EastAsian/lut-8             \t  104606\t     11485 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768EastAsian/lut-8             \t  104588\t     11495 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkString1Width768EastAsian/lut-8             \t  104602\t     11518 ns/op\t       0 B/op\t       0 allocs/op\nPASS\nok  \tgithub.com/mattn/go-runewidth\t64.455s\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/old.txt",
    "content": "goos: darwin\ngoarch: arm64\npkg: github.com/mattn/go-runewidth\ncpu: Apple M2\nBenchmarkString1WidthAll/regular-8    \t      10\t 108559258 ns/op\t111412145 B/op\t 3342342 allocs/op\nBenchmarkString1WidthAll/regular-8    \t      10\t 108968079 ns/op\t111412364 B/op\t 3342343 allocs/op\nBenchmarkString1WidthAll/regular-8    \t      10\t 108890338 ns/op\t111412388 B/op\t 3342344 allocs/op\nBenchmarkString1WidthAll/regular-8    \t      10\t 108940704 ns/op\t111412584 B/op\t 3342346 allocs/op\nBenchmarkString1WidthAll/regular-8    \t      10\t 108632796 ns/op\t111412348 B/op\t 3342343 allocs/op\nBenchmarkString1WidthAll/regular-8    \t      10\t 109354546 ns/op\t111412777 B/op\t 3342343 allocs/op\nBenchmarkString1WidthAll/lut-8        \t      12\t  93844406 ns/op\t111412569 B/op\t 3342345 allocs/op\nBenchmarkString1WidthAll/lut-8        \t      12\t  93991080 ns/op\t111412512 B/op\t 3342344 allocs/op\nBenchmarkString1WidthAll/lut-8        \t      12\t  93980632 ns/op\t111412413 B/op\t 3342343 allocs/op\nBenchmarkString1WidthAll/lut-8        \t      12\t  94004083 ns/op\t111412396 B/op\t 3342343 allocs/op\nBenchmarkString1WidthAll/lut-8        \t      12\t  93959795 ns/op\t111412445 B/op\t 3342343 allocs/op\nBenchmarkString1WidthAll/lut-8        \t      12\t  93846198 ns/op\t111412556 B/op\t 3342345 allocs/op\nBenchmarkString1Width768/regular-8    \t   19785\t     60696 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768/regular-8    \t   19824\t     60520 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768/regular-8    \t   19832\t     60547 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768/regular-8    \t   19778\t     60543 ns/op\t   76800 B/op\t    2304 allocs/op\nBenchmarkString1Width768/regular-8    \t   19842\t     61142 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768/regular-8    \t   19780\t     60696 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768/lut-8        \t   19598\t     61161 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768/lut-8        \t   19731\t     60707 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768/lut-8        \t   19738\t     60626 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768/lut-8        \t   19764\t     60670 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768/lut-8        \t   19797\t     60642 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768/lut-8        \t   19738\t     60608 ns/op\t   76800 B/op\t    2304 allocs/op\nBenchmarkString1WidthAllEastAsian/regular-8         \t       9\t 115080431 ns/op\t111412458 B/op\t 3342345 allocs/op\nBenchmarkString1WidthAllEastAsian/regular-8         \t       9\t 114908880 ns/op\t111412476 B/op\t 3342345 allocs/op\nBenchmarkString1WidthAllEastAsian/regular-8         \t       9\t 115077134 ns/op\t111412540 B/op\t 3342345 allocs/op\nBenchmarkString1WidthAllEastAsian/regular-8         \t       9\t 115175292 ns/op\t111412467 B/op\t 3342345 allocs/op\nBenchmarkString1WidthAllEastAsian/regular-8         \t       9\t 115792653 ns/op\t111412362 B/op\t 3342344 allocs/op\nBenchmarkString1WidthAllEastAsian/regular-8         \t       9\t 115255417 ns/op\t111412572 B/op\t 3342346 allocs/op\nBenchmarkString1WidthAllEastAsian/lut-8             \t      12\t  93761542 ns/op\t111412538 B/op\t 3342345 allocs/op\nBenchmarkString1WidthAllEastAsian/lut-8             \t      12\t  94089990 ns/op\t111412440 B/op\t 3342343 allocs/op\nBenchmarkString1WidthAllEastAsian/lut-8             \t      12\t  93721410 ns/op\t111412514 B/op\t 3342344 allocs/op\nBenchmarkString1WidthAllEastAsian/lut-8             \t      12\t  93572951 ns/op\t111412329 B/op\t 3342342 allocs/op\nBenchmarkString1WidthAllEastAsian/lut-8             \t      12\t  93536052 ns/op\t111412206 B/op\t 3342341 allocs/op\nBenchmarkString1WidthAllEastAsian/lut-8             \t      12\t  93532365 ns/op\t111412412 B/op\t 3342343 allocs/op\nBenchmarkString1Width768EastAsian/regular-8         \t   15904\t     75401 ns/op\t   76800 B/op\t    2304 allocs/op\nBenchmarkString1Width768EastAsian/regular-8         \t   15932\t     75449 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768EastAsian/regular-8         \t   15944\t     75181 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768EastAsian/regular-8         \t   15963\t     75311 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768EastAsian/regular-8         \t   15879\t     75292 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768EastAsian/regular-8         \t   15955\t     75334 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768EastAsian/lut-8             \t   19692\t     60692 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768EastAsian/lut-8             \t   19712\t     60699 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768EastAsian/lut-8             \t   19741\t     60819 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768EastAsian/lut-8             \t   19771\t     60653 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768EastAsian/lut-8             \t   19737\t     61027 ns/op\t   76801 B/op\t    2304 allocs/op\nBenchmarkString1Width768EastAsian/lut-8             \t   19657\t     60820 ns/op\t   76801 B/op\t    2304 allocs/op\nPASS\nok  \tgithub.com/mattn/go-runewidth\t76.165s\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/runewidth.go",
    "content": "package runewidth\n\nimport (\n\t\"os\"\n\t\"strings\"\n\n\t\"github.com/clipperhouse/uax29/v2/graphemes\"\n)\n\n//go:generate go run script/generate.go\n\nvar (\n\t// EastAsianWidth will be set true if the current locale is CJK\n\tEastAsianWidth bool\n\n\t// StrictEmojiNeutral should be set false if handle broken fonts\n\tStrictEmojiNeutral bool = true\n\n\t// DefaultCondition is a condition in current locale\n\tDefaultCondition = &Condition{\n\t\tEastAsianWidth:     false,\n\t\tStrictEmojiNeutral: true,\n\t}\n)\n\nfunc init() {\n\thandleEnv()\n}\n\nfunc handleEnv() {\n\tenv := os.Getenv(\"RUNEWIDTH_EASTASIAN\")\n\tif env == \"\" {\n\t\tEastAsianWidth = IsEastAsian()\n\t} else {\n\t\tEastAsianWidth = env == \"1\"\n\t}\n\t// update DefaultCondition\n\tif DefaultCondition.EastAsianWidth != EastAsianWidth {\n\t\tDefaultCondition.EastAsianWidth = EastAsianWidth\n\t\tif len(DefaultCondition.combinedLut) > 0 {\n\t\t\tDefaultCondition.combinedLut = DefaultCondition.combinedLut[:0]\n\t\t\tCreateLUT()\n\t\t}\n\t}\n}\n\ntype interval struct {\n\tfirst rune\n\tlast  rune\n}\n\ntype table []interval\n\nfunc inTables(r rune, ts ...table) bool {\n\tfor _, t := range ts {\n\t\tif inTable(r, t) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc inTable(r rune, t table) bool {\n\tif r < t[0].first {\n\t\treturn false\n\t}\n\tif r > t[len(t)-1].last {\n\t\treturn false\n\t}\n\n\tbot := 0\n\ttop := len(t) - 1\n\tfor top >= bot {\n\t\tmid := (bot + top) >> 1\n\n\t\tswitch {\n\t\tcase t[mid].last < r:\n\t\t\tbot = mid + 1\n\t\tcase t[mid].first > r:\n\t\t\ttop = mid - 1\n\t\tdefault:\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nvar private = table{\n\t{0x00E000, 0x00F8FF}, {0x0F0000, 0x0FFFFD}, {0x100000, 0x10FFFD},\n}\n\nvar nonprint = table{\n\t{0x0000, 0x001F}, {0x007F, 0x009F}, {0x00AD, 0x00AD},\n\t{0x070F, 0x070F}, {0x180B, 0x180E}, {0x200B, 0x200F},\n\t{0x2028, 0x202E}, {0x206A, 0x206F}, {0xD800, 0xDFFF},\n\t{0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFB}, {0xFFFE, 0xFFFF},\n}\n\n// Condition have flag EastAsianWidth whether the current locale is CJK or not.\ntype Condition struct {\n\tcombinedLut        []byte\n\tEastAsianWidth     bool\n\tStrictEmojiNeutral bool\n}\n\n// NewCondition return new instance of Condition which is current locale.\nfunc NewCondition() *Condition {\n\treturn &Condition{\n\t\tEastAsianWidth:     EastAsianWidth,\n\t\tStrictEmojiNeutral: StrictEmojiNeutral,\n\t}\n}\n\n// RuneWidth returns the number of cells in r.\n// See http://www.unicode.org/reports/tr11/\nfunc (c *Condition) RuneWidth(r rune) int {\n\tif r < 0 || r > 0x10FFFF {\n\t\treturn 0\n\t}\n\tif len(c.combinedLut) > 0 {\n\t\treturn int(c.combinedLut[r>>1]>>(uint(r&1)*4)) & 3\n\t}\n\t// optimized version, verified by TestRuneWidthChecksums()\n\tif !c.EastAsianWidth {\n\t\tswitch {\n\t\tcase r < 0x20:\n\t\t\treturn 0\n\t\tcase (r >= 0x7F && r <= 0x9F) || r == 0xAD: // nonprint\n\t\t\treturn 0\n\t\tcase r < 0x300:\n\t\t\treturn 1\n\t\tcase inTable(r, narrow):\n\t\t\treturn 1\n\t\tcase inTables(r, nonprint, combining):\n\t\t\treturn 0\n\t\tcase inTable(r, doublewidth):\n\t\t\treturn 2\n\t\tdefault:\n\t\t\treturn 1\n\t\t}\n\t} else {\n\t\tswitch {\n\t\tcase inTables(r, nonprint, combining):\n\t\t\treturn 0\n\t\tcase inTable(r, narrow):\n\t\t\treturn 1\n\t\tcase inTables(r, ambiguous, doublewidth):\n\t\t\treturn 2\n\t\tcase !c.StrictEmojiNeutral && inTables(r, ambiguous, emoji, narrow):\n\t\t\treturn 2\n\t\tdefault:\n\t\t\treturn 1\n\t\t}\n\t}\n}\n\n// CreateLUT will create an in-memory lookup table of 557056 bytes for faster operation.\n// This should not be called concurrently with other operations on c.\n// If options in c is changed, CreateLUT should be called again.\nfunc (c *Condition) CreateLUT() {\n\tconst max = 0x110000\n\tlut := c.combinedLut\n\tif len(c.combinedLut) != 0 {\n\t\t// Remove so we don't use it.\n\t\tc.combinedLut = nil\n\t} else {\n\t\tlut = make([]byte, max/2)\n\t}\n\tfor i := range lut {\n\t\ti32 := int32(i * 2)\n\t\tx0 := c.RuneWidth(i32)\n\t\tx1 := c.RuneWidth(i32 + 1)\n\t\tlut[i] = uint8(x0) | uint8(x1)<<4\n\t}\n\tc.combinedLut = lut\n}\n\n// StringWidth return width as you can see\nfunc (c *Condition) StringWidth(s string) (width int) {\n\tg := graphemes.FromString(s)\n\tfor g.Next() {\n\t\tvar chWidth int\n\t\tfor _, r := range g.Value() {\n\t\t\tchWidth = c.RuneWidth(r)\n\t\t\tif chWidth > 0 {\n\t\t\t\tbreak // Our best guess at this point is to use the width of the first non-zero-width rune.\n\t\t\t}\n\t\t}\n\t\twidth += chWidth\n\t}\n\treturn\n}\n\n// Truncate return string truncated with w cells\nfunc (c *Condition) Truncate(s string, w int, tail string) string {\n\tif c.StringWidth(s) <= w {\n\t\treturn s\n\t}\n\tw -= c.StringWidth(tail)\n\tvar width int\n\tpos := len(s)\n\tg := graphemes.FromString(s)\n\tfor g.Next() {\n\t\tvar chWidth int\n\t\tfor _, r := range g.Value() {\n\t\t\tchWidth = c.RuneWidth(r)\n\t\t\tif chWidth > 0 {\n\t\t\t\tbreak // See StringWidth() for details.\n\t\t\t}\n\t\t}\n\t\tif width+chWidth > w {\n\t\t\tpos = g.Start()\n\t\t\tbreak\n\t\t}\n\t\twidth += chWidth\n\t}\n\treturn s[:pos] + tail\n}\n\n// TruncateLeft cuts w cells from the beginning of the `s`.\nfunc (c *Condition) TruncateLeft(s string, w int, prefix string) string {\n\tif c.StringWidth(s) <= w {\n\t\treturn prefix\n\t}\n\n\tvar width int\n\tpos := len(s)\n\n\tg := graphemes.FromString(s)\n\tfor g.Next() {\n\t\tvar chWidth int\n\t\tfor _, r := range g.Value() {\n\t\t\tchWidth = c.RuneWidth(r)\n\t\t\tif chWidth > 0 {\n\t\t\t\tbreak // See StringWidth() for details.\n\t\t\t}\n\t\t}\n\n\t\tif width+chWidth > w {\n\t\t\tif width < w {\n\t\t\t\tpos = g.End()\n\t\t\t\tprefix += strings.Repeat(\" \", width+chWidth-w)\n\t\t\t} else {\n\t\t\t\tpos = g.Start()\n\t\t\t}\n\n\t\t\tbreak\n\t\t}\n\n\t\twidth += chWidth\n\t}\n\n\treturn prefix + s[pos:]\n}\n\n// Wrap return string wrapped with w cells\nfunc (c *Condition) Wrap(s string, w int) string {\n\twidth := 0\n\tout := \"\"\n\tfor _, r := range s {\n\t\tcw := c.RuneWidth(r)\n\t\tif r == '\\n' {\n\t\t\tout += string(r)\n\t\t\twidth = 0\n\t\t\tcontinue\n\t\t} else if width+cw > w {\n\t\t\tout += \"\\n\"\n\t\t\twidth = 0\n\t\t\tout += string(r)\n\t\t\twidth += cw\n\t\t\tcontinue\n\t\t}\n\t\tout += string(r)\n\t\twidth += cw\n\t}\n\treturn out\n}\n\n// FillLeft return string filled in left by spaces in w cells\nfunc (c *Condition) FillLeft(s string, w int) string {\n\twidth := c.StringWidth(s)\n\tcount := w - width\n\tif count > 0 {\n\t\tb := make([]byte, count)\n\t\tfor i := range b {\n\t\t\tb[i] = ' '\n\t\t}\n\t\treturn string(b) + s\n\t}\n\treturn s\n}\n\n// FillRight return string filled in left by spaces in w cells\nfunc (c *Condition) FillRight(s string, w int) string {\n\twidth := c.StringWidth(s)\n\tcount := w - width\n\tif count > 0 {\n\t\tb := make([]byte, count)\n\t\tfor i := range b {\n\t\t\tb[i] = ' '\n\t\t}\n\t\treturn s + string(b)\n\t}\n\treturn s\n}\n\n// RuneWidth returns the number of cells in r.\n// See http://www.unicode.org/reports/tr11/\nfunc RuneWidth(r rune) int {\n\treturn DefaultCondition.RuneWidth(r)\n}\n\n// IsAmbiguousWidth returns whether is ambiguous width or not.\nfunc IsAmbiguousWidth(r rune) bool {\n\treturn inTables(r, private, ambiguous)\n}\n\n// IsNeutralWidth returns whether is neutral width or not.\nfunc IsNeutralWidth(r rune) bool {\n\treturn inTable(r, neutral)\n}\n\n// StringWidth return width as you can see\nfunc StringWidth(s string) (width int) {\n\treturn DefaultCondition.StringWidth(s)\n}\n\n// Truncate return string truncated with w cells\nfunc Truncate(s string, w int, tail string) string {\n\treturn DefaultCondition.Truncate(s, w, tail)\n}\n\n// TruncateLeft cuts w cells from the beginning of the `s`.\nfunc TruncateLeft(s string, w int, prefix string) string {\n\treturn DefaultCondition.TruncateLeft(s, w, prefix)\n}\n\n// Wrap return string wrapped with w cells\nfunc Wrap(s string, w int) string {\n\treturn DefaultCondition.Wrap(s, w)\n}\n\n// FillLeft return string filled in left by spaces in w cells\nfunc FillLeft(s string, w int) string {\n\treturn DefaultCondition.FillLeft(s, w)\n}\n\n// FillRight return string filled in left by spaces in w cells\nfunc FillRight(s string, w int) string {\n\treturn DefaultCondition.FillRight(s, w)\n}\n\n// CreateLUT will create an in-memory lookup table of 557055 bytes for faster operation.\n// This should not be called concurrently with other operations.\nfunc CreateLUT() {\n\tif len(DefaultCondition.combinedLut) > 0 {\n\t\treturn\n\t}\n\tDefaultCondition.CreateLUT()\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/runewidth_appengine.go",
    "content": "//go:build appengine\n// +build appengine\n\npackage runewidth\n\n// IsEastAsian return true if the current locale is CJK\nfunc IsEastAsian() bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/runewidth_js.go",
    "content": "//go:build js && !appengine\n// +build js,!appengine\n\npackage runewidth\n\nfunc IsEastAsian() bool {\n\t// TODO: Implement this for the web. Detect east asian in a compatible way, and return true.\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/runewidth_posix.go",
    "content": "//go:build !windows && !js && !appengine\n// +build !windows,!js,!appengine\n\npackage runewidth\n\nimport (\n\t\"os\"\n\t\"regexp\"\n\t\"strings\"\n)\n\nvar reLoc = regexp.MustCompile(`^[a-z][a-z][a-z]?(?:_[A-Z][A-Z])?\\.(.+)`)\n\nvar mblenTable = map[string]int{\n\t\"utf-8\":   6,\n\t\"utf8\":    6,\n\t\"jis\":     8,\n\t\"eucjp\":   3,\n\t\"euckr\":   2,\n\t\"euccn\":   2,\n\t\"sjis\":    2,\n\t\"cp932\":   2,\n\t\"cp51932\": 2,\n\t\"cp936\":   2,\n\t\"cp949\":   2,\n\t\"cp950\":   2,\n\t\"big5\":    2,\n\t\"gbk\":     2,\n\t\"gb2312\":  2,\n}\n\nfunc isEastAsian(locale string) bool {\n\tcharset := strings.ToLower(locale)\n\tr := reLoc.FindStringSubmatch(locale)\n\tif len(r) == 2 {\n\t\tcharset = strings.ToLower(r[1])\n\t}\n\n\tif strings.HasSuffix(charset, \"@cjk_narrow\") {\n\t\treturn false\n\t}\n\n\tfor pos, b := range []byte(charset) {\n\t\tif b == '@' {\n\t\t\tcharset = charset[:pos]\n\t\t\tbreak\n\t\t}\n\t}\n\tmax := 1\n\tif m, ok := mblenTable[charset]; ok {\n\t\tmax = m\n\t}\n\tif max > 1 && (charset[0] != 'u' ||\n\t\tstrings.HasPrefix(locale, \"ja\") ||\n\t\tstrings.HasPrefix(locale, \"ko\") ||\n\t\tstrings.HasPrefix(locale, \"zh\")) {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsEastAsian return true if the current locale is CJK\nfunc IsEastAsian() bool {\n\tlocale := os.Getenv(\"LC_ALL\")\n\tif locale == \"\" {\n\t\tlocale = os.Getenv(\"LC_CTYPE\")\n\t}\n\tif locale == \"\" {\n\t\tlocale = os.Getenv(\"LANG\")\n\t}\n\n\t// ignore C locale\n\tif locale == \"POSIX\" || locale == \"C\" {\n\t\treturn false\n\t}\n\tif len(locale) > 1 && locale[0] == 'C' && (locale[1] == '.' || locale[1] == '-') {\n\t\treturn false\n\t}\n\n\treturn isEastAsian(locale)\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/runewidth_table.go",
    "content": "// Code generated by script/generate.go. DO NOT EDIT.\n\npackage runewidth\n\nvar combining = table{\n\t{0x0300, 0x036F}, {0x0483, 0x0489}, {0x07EB, 0x07F3},\n\t{0x0C00, 0x0C00}, {0x0C04, 0x0C04}, {0x0CF3, 0x0CF3},\n\t{0x0D00, 0x0D01}, {0x135D, 0x135F}, {0x1A7F, 0x1A7F},\n\t{0x1AB0, 0x1ACE}, {0x1B6B, 0x1B73}, {0x1DC0, 0x1DFF},\n\t{0x20D0, 0x20F0}, {0x2CEF, 0x2CF1}, {0x2DE0, 0x2DFF},\n\t{0x3099, 0x309A}, {0xA66F, 0xA672}, {0xA674, 0xA67D},\n\t{0xA69E, 0xA69F}, {0xA6F0, 0xA6F1}, {0xA8E0, 0xA8F1},\n\t{0xFE20, 0xFE2F}, {0x101FD, 0x101FD}, {0x10376, 0x1037A},\n\t{0x10EAB, 0x10EAC}, {0x10F46, 0x10F50}, {0x10F82, 0x10F85},\n\t{0x11300, 0x11301}, {0x1133B, 0x1133C}, {0x11366, 0x1136C},\n\t{0x11370, 0x11374}, {0x16AF0, 0x16AF4}, {0x1CF00, 0x1CF2D},\n\t{0x1CF30, 0x1CF46}, {0x1D165, 0x1D169}, {0x1D16D, 0x1D172},\n\t{0x1D17B, 0x1D182}, {0x1D185, 0x1D18B}, {0x1D1AA, 0x1D1AD},\n\t{0x1D242, 0x1D244}, {0x1E000, 0x1E006}, {0x1E008, 0x1E018},\n\t{0x1E01B, 0x1E021}, {0x1E023, 0x1E024}, {0x1E026, 0x1E02A},\n\t{0x1E08F, 0x1E08F}, {0x1E8D0, 0x1E8D6},\n}\n\nvar doublewidth = table{\n\t{0x1100, 0x115F}, {0x231A, 0x231B}, {0x2329, 0x232A},\n\t{0x23E9, 0x23EC}, {0x23F0, 0x23F0}, {0x23F3, 0x23F3},\n\t{0x25FD, 0x25FE}, {0x2614, 0x2615}, {0x2648, 0x2653},\n\t{0x267F, 0x267F}, {0x2693, 0x2693}, {0x26A1, 0x26A1},\n\t{0x26AA, 0x26AB}, {0x26BD, 0x26BE}, {0x26C4, 0x26C5},\n\t{0x26CE, 0x26CE}, {0x26D4, 0x26D4}, {0x26EA, 0x26EA},\n\t{0x26F2, 0x26F3}, {0x26F5, 0x26F5}, {0x26FA, 0x26FA},\n\t{0x26FD, 0x26FD}, {0x2705, 0x2705}, {0x270A, 0x270B},\n\t{0x2728, 0x2728}, {0x274C, 0x274C}, {0x274E, 0x274E},\n\t{0x2753, 0x2755}, {0x2757, 0x2757}, {0x2795, 0x2797},\n\t{0x27B0, 0x27B0}, {0x27BF, 0x27BF}, {0x2B1B, 0x2B1C},\n\t{0x2B50, 0x2B50}, {0x2B55, 0x2B55}, {0x2E80, 0x2E99},\n\t{0x2E9B, 0x2EF3}, {0x2F00, 0x2FD5}, {0x2FF0, 0x303E},\n\t{0x3041, 0x3096}, {0x3099, 0x30FF}, {0x3105, 0x312F},\n\t{0x3131, 0x318E}, {0x3190, 0x31E3}, {0x31EF, 0x321E},\n\t{0x3220, 0x3247}, {0x3250, 0x4DBF}, {0x4E00, 0xA48C},\n\t{0xA490, 0xA4C6}, {0xA960, 0xA97C}, {0xAC00, 0xD7A3},\n\t{0xF900, 0xFAFF}, {0xFE10, 0xFE19}, {0xFE30, 0xFE52},\n\t{0xFE54, 0xFE66}, {0xFE68, 0xFE6B}, {0xFF01, 0xFF60},\n\t{0xFFE0, 0xFFE6}, {0x16FE0, 0x16FE4}, {0x16FF0, 0x16FF1},\n\t{0x17000, 0x187F7}, {0x18800, 0x18CD5}, {0x18D00, 0x18D08},\n\t{0x1AFF0, 0x1AFF3}, {0x1AFF5, 0x1AFFB}, {0x1AFFD, 0x1AFFE},\n\t{0x1B000, 0x1B122}, {0x1B132, 0x1B132}, {0x1B150, 0x1B152},\n\t{0x1B155, 0x1B155}, {0x1B164, 0x1B167}, {0x1B170, 0x1B2FB},\n\t{0x1F004, 0x1F004}, {0x1F0CF, 0x1F0CF}, {0x1F18E, 0x1F18E},\n\t{0x1F191, 0x1F19A}, {0x1F200, 0x1F202}, {0x1F210, 0x1F23B},\n\t{0x1F240, 0x1F248}, {0x1F250, 0x1F251}, {0x1F260, 0x1F265},\n\t{0x1F300, 0x1F320}, {0x1F32D, 0x1F335}, {0x1F337, 0x1F37C},\n\t{0x1F37E, 0x1F393}, {0x1F3A0, 0x1F3CA}, {0x1F3CF, 0x1F3D3},\n\t{0x1F3E0, 0x1F3F0}, {0x1F3F4, 0x1F3F4}, {0x1F3F8, 0x1F43E},\n\t{0x1F440, 0x1F440}, {0x1F442, 0x1F4FC}, {0x1F4FF, 0x1F53D},\n\t{0x1F54B, 0x1F54E}, {0x1F550, 0x1F567}, {0x1F57A, 0x1F57A},\n\t{0x1F595, 0x1F596}, {0x1F5A4, 0x1F5A4}, {0x1F5FB, 0x1F64F},\n\t{0x1F680, 0x1F6C5}, {0x1F6CC, 0x1F6CC}, {0x1F6D0, 0x1F6D2},\n\t{0x1F6D5, 0x1F6D7}, {0x1F6DC, 0x1F6DF}, {0x1F6EB, 0x1F6EC},\n\t{0x1F6F4, 0x1F6FC}, {0x1F7E0, 0x1F7EB}, {0x1F7F0, 0x1F7F0},\n\t{0x1F90C, 0x1F93A}, {0x1F93C, 0x1F945}, {0x1F947, 0x1F9FF},\n\t{0x1FA70, 0x1FA7C}, {0x1FA80, 0x1FA88}, {0x1FA90, 0x1FABD},\n\t{0x1FABF, 0x1FAC5}, {0x1FACE, 0x1FADB}, {0x1FAE0, 0x1FAE8},\n\t{0x1FAF0, 0x1FAF8}, {0x20000, 0x2FFFD}, {0x30000, 0x3FFFD},\n}\n\nvar ambiguous = table{\n\t{0x00A1, 0x00A1}, {0x00A4, 0x00A4}, {0x00A7, 0x00A8},\n\t{0x00AA, 0x00AA}, {0x00AD, 0x00AE}, {0x00B0, 0x00B4},\n\t{0x00B6, 0x00BA}, {0x00BC, 0x00BF}, {0x00C6, 0x00C6},\n\t{0x00D0, 0x00D0}, {0x00D7, 0x00D8}, {0x00DE, 0x00E1},\n\t{0x00E6, 0x00E6}, {0x00E8, 0x00EA}, {0x00EC, 0x00ED},\n\t{0x00F0, 0x00F0}, {0x00F2, 0x00F3}, {0x00F7, 0x00FA},\n\t{0x00FC, 0x00FC}, {0x00FE, 0x00FE}, {0x0101, 0x0101},\n\t{0x0111, 0x0111}, {0x0113, 0x0113}, {0x011B, 0x011B},\n\t{0x0126, 0x0127}, {0x012B, 0x012B}, {0x0131, 0x0133},\n\t{0x0138, 0x0138}, {0x013F, 0x0142}, {0x0144, 0x0144},\n\t{0x0148, 0x014B}, {0x014D, 0x014D}, {0x0152, 0x0153},\n\t{0x0166, 0x0167}, {0x016B, 0x016B}, {0x01CE, 0x01CE},\n\t{0x01D0, 0x01D0}, {0x01D2, 0x01D2}, {0x01D4, 0x01D4},\n\t{0x01D6, 0x01D6}, {0x01D8, 0x01D8}, {0x01DA, 0x01DA},\n\t{0x01DC, 0x01DC}, {0x0251, 0x0251}, {0x0261, 0x0261},\n\t{0x02C4, 0x02C4}, {0x02C7, 0x02C7}, {0x02C9, 0x02CB},\n\t{0x02CD, 0x02CD}, {0x02D0, 0x02D0}, {0x02D8, 0x02DB},\n\t{0x02DD, 0x02DD}, {0x02DF, 0x02DF}, {0x0300, 0x036F},\n\t{0x0391, 0x03A1}, {0x03A3, 0x03A9}, {0x03B1, 0x03C1},\n\t{0x03C3, 0x03C9}, {0x0401, 0x0401}, {0x0410, 0x044F},\n\t{0x0451, 0x0451}, {0x2010, 0x2010}, {0x2013, 0x2016},\n\t{0x2018, 0x2019}, {0x201C, 0x201D}, {0x2020, 0x2022},\n\t{0x2024, 0x2027}, {0x2030, 0x2030}, {0x2032, 0x2033},\n\t{0x2035, 0x2035}, {0x203B, 0x203B}, {0x203E, 0x203E},\n\t{0x2074, 0x2074}, {0x207F, 0x207F}, {0x2081, 0x2084},\n\t{0x20AC, 0x20AC}, {0x2103, 0x2103}, {0x2105, 0x2105},\n\t{0x2109, 0x2109}, {0x2113, 0x2113}, {0x2116, 0x2116},\n\t{0x2121, 0x2122}, {0x2126, 0x2126}, {0x212B, 0x212B},\n\t{0x2153, 0x2154}, {0x215B, 0x215E}, {0x2160, 0x216B},\n\t{0x2170, 0x2179}, {0x2189, 0x2189}, {0x2190, 0x2199},\n\t{0x21B8, 0x21B9}, {0x21D2, 0x21D2}, {0x21D4, 0x21D4},\n\t{0x21E7, 0x21E7}, {0x2200, 0x2200}, {0x2202, 0x2203},\n\t{0x2207, 0x2208}, {0x220B, 0x220B}, {0x220F, 0x220F},\n\t{0x2211, 0x2211}, {0x2215, 0x2215}, {0x221A, 0x221A},\n\t{0x221D, 0x2220}, {0x2223, 0x2223}, {0x2225, 0x2225},\n\t{0x2227, 0x222C}, {0x222E, 0x222E}, {0x2234, 0x2237},\n\t{0x223C, 0x223D}, {0x2248, 0x2248}, {0x224C, 0x224C},\n\t{0x2252, 0x2252}, {0x2260, 0x2261}, {0x2264, 0x2267},\n\t{0x226A, 0x226B}, {0x226E, 0x226F}, {0x2282, 0x2283},\n\t{0x2286, 0x2287}, {0x2295, 0x2295}, {0x2299, 0x2299},\n\t{0x22A5, 0x22A5}, {0x22BF, 0x22BF}, {0x2312, 0x2312},\n\t{0x2460, 0x24E9}, {0x24EB, 0x254B}, {0x2550, 0x2573},\n\t{0x2580, 0x258F}, {0x2592, 0x2595}, {0x25A0, 0x25A1},\n\t{0x25A3, 0x25A9}, {0x25B2, 0x25B3}, {0x25B6, 0x25B7},\n\t{0x25BC, 0x25BD}, {0x25C0, 0x25C1}, {0x25C6, 0x25C8},\n\t{0x25CB, 0x25CB}, {0x25CE, 0x25D1}, {0x25E2, 0x25E5},\n\t{0x25EF, 0x25EF}, {0x2605, 0x2606}, {0x2609, 0x2609},\n\t{0x260E, 0x260F}, {0x261C, 0x261C}, {0x261E, 0x261E},\n\t{0x2640, 0x2640}, {0x2642, 0x2642}, {0x2660, 0x2661},\n\t{0x2663, 0x2665}, {0x2667, 0x266A}, {0x266C, 0x266D},\n\t{0x266F, 0x266F}, {0x269E, 0x269F}, {0x26BF, 0x26BF},\n\t{0x26C6, 0x26CD}, {0x26CF, 0x26D3}, {0x26D5, 0x26E1},\n\t{0x26E3, 0x26E3}, {0x26E8, 0x26E9}, {0x26EB, 0x26F1},\n\t{0x26F4, 0x26F4}, {0x26F6, 0x26F9}, {0x26FB, 0x26FC},\n\t{0x26FE, 0x26FF}, {0x273D, 0x273D}, {0x2776, 0x277F},\n\t{0x2B56, 0x2B59}, {0x3248, 0x324F}, {0xE000, 0xF8FF},\n\t{0xFE00, 0xFE0F}, {0xFFFD, 0xFFFD}, {0x1F100, 0x1F10A},\n\t{0x1F110, 0x1F12D}, {0x1F130, 0x1F169}, {0x1F170, 0x1F18D},\n\t{0x1F18F, 0x1F190}, {0x1F19B, 0x1F1AC}, {0xE0100, 0xE01EF},\n\t{0xF0000, 0xFFFFD}, {0x100000, 0x10FFFD},\n}\nvar narrow = table{\n\t{0x0020, 0x007E}, {0x00A2, 0x00A3}, {0x00A5, 0x00A6},\n\t{0x00AC, 0x00AC}, {0x00AF, 0x00AF}, {0x27E6, 0x27ED},\n\t{0x2985, 0x2986},\n}\n\nvar neutral = table{\n\t{0x0000, 0x001F}, {0x007F, 0x00A0}, {0x00A9, 0x00A9},\n\t{0x00AB, 0x00AB}, {0x00B5, 0x00B5}, {0x00BB, 0x00BB},\n\t{0x00C0, 0x00C5}, {0x00C7, 0x00CF}, {0x00D1, 0x00D6},\n\t{0x00D9, 0x00DD}, {0x00E2, 0x00E5}, {0x00E7, 0x00E7},\n\t{0x00EB, 0x00EB}, {0x00EE, 0x00EF}, {0x00F1, 0x00F1},\n\t{0x00F4, 0x00F6}, {0x00FB, 0x00FB}, {0x00FD, 0x00FD},\n\t{0x00FF, 0x0100}, {0x0102, 0x0110}, {0x0112, 0x0112},\n\t{0x0114, 0x011A}, {0x011C, 0x0125}, {0x0128, 0x012A},\n\t{0x012C, 0x0130}, {0x0134, 0x0137}, {0x0139, 0x013E},\n\t{0x0143, 0x0143}, {0x0145, 0x0147}, {0x014C, 0x014C},\n\t{0x014E, 0x0151}, {0x0154, 0x0165}, {0x0168, 0x016A},\n\t{0x016C, 0x01CD}, {0x01CF, 0x01CF}, {0x01D1, 0x01D1},\n\t{0x01D3, 0x01D3}, {0x01D5, 0x01D5}, {0x01D7, 0x01D7},\n\t{0x01D9, 0x01D9}, {0x01DB, 0x01DB}, {0x01DD, 0x0250},\n\t{0x0252, 0x0260}, {0x0262, 0x02C3}, {0x02C5, 0x02C6},\n\t{0x02C8, 0x02C8}, {0x02CC, 0x02CC}, {0x02CE, 0x02CF},\n\t{0x02D1, 0x02D7}, {0x02DC, 0x02DC}, {0x02DE, 0x02DE},\n\t{0x02E0, 0x02FF}, {0x0370, 0x0377}, {0x037A, 0x037F},\n\t{0x0384, 0x038A}, {0x038C, 0x038C}, {0x038E, 0x0390},\n\t{0x03AA, 0x03B0}, {0x03C2, 0x03C2}, {0x03CA, 0x0400},\n\t{0x0402, 0x040F}, {0x0450, 0x0450}, {0x0452, 0x052F},\n\t{0x0531, 0x0556}, {0x0559, 0x058A}, {0x058D, 0x058F},\n\t{0x0591, 0x05C7}, {0x05D0, 0x05EA}, {0x05EF, 0x05F4},\n\t{0x0600, 0x070D}, {0x070F, 0x074A}, {0x074D, 0x07B1},\n\t{0x07C0, 0x07FA}, {0x07FD, 0x082D}, {0x0830, 0x083E},\n\t{0x0840, 0x085B}, {0x085E, 0x085E}, {0x0860, 0x086A},\n\t{0x0870, 0x088E}, {0x0890, 0x0891}, {0x0898, 0x0983},\n\t{0x0985, 0x098C}, {0x098F, 0x0990}, {0x0993, 0x09A8},\n\t{0x09AA, 0x09B0}, {0x09B2, 0x09B2}, {0x09B6, 0x09B9},\n\t{0x09BC, 0x09C4}, {0x09C7, 0x09C8}, {0x09CB, 0x09CE},\n\t{0x09D7, 0x09D7}, {0x09DC, 0x09DD}, {0x09DF, 0x09E3},\n\t{0x09E6, 0x09FE}, {0x0A01, 0x0A03}, {0x0A05, 0x0A0A},\n\t{0x0A0F, 0x0A10}, {0x0A13, 0x0A28}, {0x0A2A, 0x0A30},\n\t{0x0A32, 0x0A33}, {0x0A35, 0x0A36}, {0x0A38, 0x0A39},\n\t{0x0A3C, 0x0A3C}, {0x0A3E, 0x0A42}, {0x0A47, 0x0A48},\n\t{0x0A4B, 0x0A4D}, {0x0A51, 0x0A51}, {0x0A59, 0x0A5C},\n\t{0x0A5E, 0x0A5E}, {0x0A66, 0x0A76}, {0x0A81, 0x0A83},\n\t{0x0A85, 0x0A8D}, {0x0A8F, 0x0A91}, {0x0A93, 0x0AA8},\n\t{0x0AAA, 0x0AB0}, {0x0AB2, 0x0AB3}, {0x0AB5, 0x0AB9},\n\t{0x0ABC, 0x0AC5}, {0x0AC7, 0x0AC9}, {0x0ACB, 0x0ACD},\n\t{0x0AD0, 0x0AD0}, {0x0AE0, 0x0AE3}, {0x0AE6, 0x0AF1},\n\t{0x0AF9, 0x0AFF}, {0x0B01, 0x0B03}, {0x0B05, 0x0B0C},\n\t{0x0B0F, 0x0B10}, {0x0B13, 0x0B28}, {0x0B2A, 0x0B30},\n\t{0x0B32, 0x0B33}, {0x0B35, 0x0B39}, {0x0B3C, 0x0B44},\n\t{0x0B47, 0x0B48}, {0x0B4B, 0x0B4D}, {0x0B55, 0x0B57},\n\t{0x0B5C, 0x0B5D}, {0x0B5F, 0x0B63}, {0x0B66, 0x0B77},\n\t{0x0B82, 0x0B83}, {0x0B85, 0x0B8A}, {0x0B8E, 0x0B90},\n\t{0x0B92, 0x0B95}, {0x0B99, 0x0B9A}, {0x0B9C, 0x0B9C},\n\t{0x0B9E, 0x0B9F}, {0x0BA3, 0x0BA4}, {0x0BA8, 0x0BAA},\n\t{0x0BAE, 0x0BB9}, {0x0BBE, 0x0BC2}, {0x0BC6, 0x0BC8},\n\t{0x0BCA, 0x0BCD}, {0x0BD0, 0x0BD0}, {0x0BD7, 0x0BD7},\n\t{0x0BE6, 0x0BFA}, {0x0C00, 0x0C0C}, {0x0C0E, 0x0C10},\n\t{0x0C12, 0x0C28}, {0x0C2A, 0x0C39}, {0x0C3C, 0x0C44},\n\t{0x0C46, 0x0C48}, {0x0C4A, 0x0C4D}, {0x0C55, 0x0C56},\n\t{0x0C58, 0x0C5A}, {0x0C5D, 0x0C5D}, {0x0C60, 0x0C63},\n\t{0x0C66, 0x0C6F}, {0x0C77, 0x0C8C}, {0x0C8E, 0x0C90},\n\t{0x0C92, 0x0CA8}, {0x0CAA, 0x0CB3}, {0x0CB5, 0x0CB9},\n\t{0x0CBC, 0x0CC4}, {0x0CC6, 0x0CC8}, {0x0CCA, 0x0CCD},\n\t{0x0CD5, 0x0CD6}, {0x0CDD, 0x0CDE}, {0x0CE0, 0x0CE3},\n\t{0x0CE6, 0x0CEF}, {0x0CF1, 0x0CF3}, {0x0D00, 0x0D0C},\n\t{0x0D0E, 0x0D10}, {0x0D12, 0x0D44}, {0x0D46, 0x0D48},\n\t{0x0D4A, 0x0D4F}, {0x0D54, 0x0D63}, {0x0D66, 0x0D7F},\n\t{0x0D81, 0x0D83}, {0x0D85, 0x0D96}, {0x0D9A, 0x0DB1},\n\t{0x0DB3, 0x0DBB}, {0x0DBD, 0x0DBD}, {0x0DC0, 0x0DC6},\n\t{0x0DCA, 0x0DCA}, {0x0DCF, 0x0DD4}, {0x0DD6, 0x0DD6},\n\t{0x0DD8, 0x0DDF}, {0x0DE6, 0x0DEF}, {0x0DF2, 0x0DF4},\n\t{0x0E01, 0x0E3A}, {0x0E3F, 0x0E5B}, {0x0E81, 0x0E82},\n\t{0x0E84, 0x0E84}, {0x0E86, 0x0E8A}, {0x0E8C, 0x0EA3},\n\t{0x0EA5, 0x0EA5}, {0x0EA7, 0x0EBD}, {0x0EC0, 0x0EC4},\n\t{0x0EC6, 0x0EC6}, {0x0EC8, 0x0ECE}, {0x0ED0, 0x0ED9},\n\t{0x0EDC, 0x0EDF}, {0x0F00, 0x0F47}, {0x0F49, 0x0F6C},\n\t{0x0F71, 0x0F97}, {0x0F99, 0x0FBC}, {0x0FBE, 0x0FCC},\n\t{0x0FCE, 0x0FDA}, {0x1000, 0x10C5}, {0x10C7, 0x10C7},\n\t{0x10CD, 0x10CD}, {0x10D0, 0x10FF}, {0x1160, 0x1248},\n\t{0x124A, 0x124D}, {0x1250, 0x1256}, {0x1258, 0x1258},\n\t{0x125A, 0x125D}, {0x1260, 0x1288}, {0x128A, 0x128D},\n\t{0x1290, 0x12B0}, {0x12B2, 0x12B5}, {0x12B8, 0x12BE},\n\t{0x12C0, 0x12C0}, {0x12C2, 0x12C5}, {0x12C8, 0x12D6},\n\t{0x12D8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135A},\n\t{0x135D, 0x137C}, {0x1380, 0x1399}, {0x13A0, 0x13F5},\n\t{0x13F8, 0x13FD}, {0x1400, 0x169C}, {0x16A0, 0x16F8},\n\t{0x1700, 0x1715}, {0x171F, 0x1736}, {0x1740, 0x1753},\n\t{0x1760, 0x176C}, {0x176E, 0x1770}, {0x1772, 0x1773},\n\t{0x1780, 0x17DD}, {0x17E0, 0x17E9}, {0x17F0, 0x17F9},\n\t{0x1800, 0x1819}, {0x1820, 0x1878}, {0x1880, 0x18AA},\n\t{0x18B0, 0x18F5}, {0x1900, 0x191E}, {0x1920, 0x192B},\n\t{0x1930, 0x193B}, {0x1940, 0x1940}, {0x1944, 0x196D},\n\t{0x1970, 0x1974}, {0x1980, 0x19AB}, {0x19B0, 0x19C9},\n\t{0x19D0, 0x19DA}, {0x19DE, 0x1A1B}, {0x1A1E, 0x1A5E},\n\t{0x1A60, 0x1A7C}, {0x1A7F, 0x1A89}, {0x1A90, 0x1A99},\n\t{0x1AA0, 0x1AAD}, {0x1AB0, 0x1ACE}, {0x1B00, 0x1B4C},\n\t{0x1B50, 0x1B7E}, {0x1B80, 0x1BF3}, {0x1BFC, 0x1C37},\n\t{0x1C3B, 0x1C49}, {0x1C4D, 0x1C88}, {0x1C90, 0x1CBA},\n\t{0x1CBD, 0x1CC7}, {0x1CD0, 0x1CFA}, {0x1D00, 0x1F15},\n\t{0x1F18, 0x1F1D}, {0x1F20, 0x1F45}, {0x1F48, 0x1F4D},\n\t{0x1F50, 0x1F57}, {0x1F59, 0x1F59}, {0x1F5B, 0x1F5B},\n\t{0x1F5D, 0x1F5D}, {0x1F5F, 0x1F7D}, {0x1F80, 0x1FB4},\n\t{0x1FB6, 0x1FC4}, {0x1FC6, 0x1FD3}, {0x1FD6, 0x1FDB},\n\t{0x1FDD, 0x1FEF}, {0x1FF2, 0x1FF4}, {0x1FF6, 0x1FFE},\n\t{0x2000, 0x200F}, {0x2011, 0x2012}, {0x2017, 0x2017},\n\t{0x201A, 0x201B}, {0x201E, 0x201F}, {0x2023, 0x2023},\n\t{0x2028, 0x202F}, {0x2031, 0x2031}, {0x2034, 0x2034},\n\t{0x2036, 0x203A}, {0x203C, 0x203D}, {0x203F, 0x2064},\n\t{0x2066, 0x2071}, {0x2075, 0x207E}, {0x2080, 0x2080},\n\t{0x2085, 0x208E}, {0x2090, 0x209C}, {0x20A0, 0x20A8},\n\t{0x20AA, 0x20AB}, {0x20AD, 0x20C0}, {0x20D0, 0x20F0},\n\t{0x2100, 0x2102}, {0x2104, 0x2104}, {0x2106, 0x2108},\n\t{0x210A, 0x2112}, {0x2114, 0x2115}, {0x2117, 0x2120},\n\t{0x2123, 0x2125}, {0x2127, 0x212A}, {0x212C, 0x2152},\n\t{0x2155, 0x215A}, {0x215F, 0x215F}, {0x216C, 0x216F},\n\t{0x217A, 0x2188}, {0x218A, 0x218B}, {0x219A, 0x21B7},\n\t{0x21BA, 0x21D1}, {0x21D3, 0x21D3}, {0x21D5, 0x21E6},\n\t{0x21E8, 0x21FF}, {0x2201, 0x2201}, {0x2204, 0x2206},\n\t{0x2209, 0x220A}, {0x220C, 0x220E}, {0x2210, 0x2210},\n\t{0x2212, 0x2214}, {0x2216, 0x2219}, {0x221B, 0x221C},\n\t{0x2221, 0x2222}, {0x2224, 0x2224}, {0x2226, 0x2226},\n\t{0x222D, 0x222D}, {0x222F, 0x2233}, {0x2238, 0x223B},\n\t{0x223E, 0x2247}, {0x2249, 0x224B}, {0x224D, 0x2251},\n\t{0x2253, 0x225F}, {0x2262, 0x2263}, {0x2268, 0x2269},\n\t{0x226C, 0x226D}, {0x2270, 0x2281}, {0x2284, 0x2285},\n\t{0x2288, 0x2294}, {0x2296, 0x2298}, {0x229A, 0x22A4},\n\t{0x22A6, 0x22BE}, {0x22C0, 0x2311}, {0x2313, 0x2319},\n\t{0x231C, 0x2328}, {0x232B, 0x23E8}, {0x23ED, 0x23EF},\n\t{0x23F1, 0x23F2}, {0x23F4, 0x2426}, {0x2440, 0x244A},\n\t{0x24EA, 0x24EA}, {0x254C, 0x254F}, {0x2574, 0x257F},\n\t{0x2590, 0x2591}, {0x2596, 0x259F}, {0x25A2, 0x25A2},\n\t{0x25AA, 0x25B1}, {0x25B4, 0x25B5}, {0x25B8, 0x25BB},\n\t{0x25BE, 0x25BF}, {0x25C2, 0x25C5}, {0x25C9, 0x25CA},\n\t{0x25CC, 0x25CD}, {0x25D2, 0x25E1}, {0x25E6, 0x25EE},\n\t{0x25F0, 0x25FC}, {0x25FF, 0x2604}, {0x2607, 0x2608},\n\t{0x260A, 0x260D}, {0x2610, 0x2613}, {0x2616, 0x261B},\n\t{0x261D, 0x261D}, {0x261F, 0x263F}, {0x2641, 0x2641},\n\t{0x2643, 0x2647}, {0x2654, 0x265F}, {0x2662, 0x2662},\n\t{0x2666, 0x2666}, {0x266B, 0x266B}, {0x266E, 0x266E},\n\t{0x2670, 0x267E}, {0x2680, 0x2692}, {0x2694, 0x269D},\n\t{0x26A0, 0x26A0}, {0x26A2, 0x26A9}, {0x26AC, 0x26BC},\n\t{0x26C0, 0x26C3}, {0x26E2, 0x26E2}, {0x26E4, 0x26E7},\n\t{0x2700, 0x2704}, {0x2706, 0x2709}, {0x270C, 0x2727},\n\t{0x2729, 0x273C}, {0x273E, 0x274B}, {0x274D, 0x274D},\n\t{0x274F, 0x2752}, {0x2756, 0x2756}, {0x2758, 0x2775},\n\t{0x2780, 0x2794}, {0x2798, 0x27AF}, {0x27B1, 0x27BE},\n\t{0x27C0, 0x27E5}, {0x27EE, 0x2984}, {0x2987, 0x2B1A},\n\t{0x2B1D, 0x2B4F}, {0x2B51, 0x2B54}, {0x2B5A, 0x2B73},\n\t{0x2B76, 0x2B95}, {0x2B97, 0x2CF3}, {0x2CF9, 0x2D25},\n\t{0x2D27, 0x2D27}, {0x2D2D, 0x2D2D}, {0x2D30, 0x2D67},\n\t{0x2D6F, 0x2D70}, {0x2D7F, 0x2D96}, {0x2DA0, 0x2DA6},\n\t{0x2DA8, 0x2DAE}, {0x2DB0, 0x2DB6}, {0x2DB8, 0x2DBE},\n\t{0x2DC0, 0x2DC6}, {0x2DC8, 0x2DCE}, {0x2DD0, 0x2DD6},\n\t{0x2DD8, 0x2DDE}, {0x2DE0, 0x2E5D}, {0x303F, 0x303F},\n\t{0x4DC0, 0x4DFF}, {0xA4D0, 0xA62B}, {0xA640, 0xA6F7},\n\t{0xA700, 0xA7CA}, {0xA7D0, 0xA7D1}, {0xA7D3, 0xA7D3},\n\t{0xA7D5, 0xA7D9}, {0xA7F2, 0xA82C}, {0xA830, 0xA839},\n\t{0xA840, 0xA877}, {0xA880, 0xA8C5}, {0xA8CE, 0xA8D9},\n\t{0xA8E0, 0xA953}, {0xA95F, 0xA95F}, {0xA980, 0xA9CD},\n\t{0xA9CF, 0xA9D9}, {0xA9DE, 0xA9FE}, {0xAA00, 0xAA36},\n\t{0xAA40, 0xAA4D}, {0xAA50, 0xAA59}, {0xAA5C, 0xAAC2},\n\t{0xAADB, 0xAAF6}, {0xAB01, 0xAB06}, {0xAB09, 0xAB0E},\n\t{0xAB11, 0xAB16}, {0xAB20, 0xAB26}, {0xAB28, 0xAB2E},\n\t{0xAB30, 0xAB6B}, {0xAB70, 0xABED}, {0xABF0, 0xABF9},\n\t{0xD7B0, 0xD7C6}, {0xD7CB, 0xD7FB}, {0xD800, 0xDFFF},\n\t{0xFB00, 0xFB06}, {0xFB13, 0xFB17}, {0xFB1D, 0xFB36},\n\t{0xFB38, 0xFB3C}, {0xFB3E, 0xFB3E}, {0xFB40, 0xFB41},\n\t{0xFB43, 0xFB44}, {0xFB46, 0xFBC2}, {0xFBD3, 0xFD8F},\n\t{0xFD92, 0xFDC7}, {0xFDCF, 0xFDCF}, {0xFDF0, 0xFDFF},\n\t{0xFE20, 0xFE2F}, {0xFE70, 0xFE74}, {0xFE76, 0xFEFC},\n\t{0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFC}, {0x10000, 0x1000B},\n\t{0x1000D, 0x10026}, {0x10028, 0x1003A}, {0x1003C, 0x1003D},\n\t{0x1003F, 0x1004D}, {0x10050, 0x1005D}, {0x10080, 0x100FA},\n\t{0x10100, 0x10102}, {0x10107, 0x10133}, {0x10137, 0x1018E},\n\t{0x10190, 0x1019C}, {0x101A0, 0x101A0}, {0x101D0, 0x101FD},\n\t{0x10280, 0x1029C}, {0x102A0, 0x102D0}, {0x102E0, 0x102FB},\n\t{0x10300, 0x10323}, {0x1032D, 0x1034A}, {0x10350, 0x1037A},\n\t{0x10380, 0x1039D}, {0x1039F, 0x103C3}, {0x103C8, 0x103D5},\n\t{0x10400, 0x1049D}, {0x104A0, 0x104A9}, {0x104B0, 0x104D3},\n\t{0x104D8, 0x104FB}, {0x10500, 0x10527}, {0x10530, 0x10563},\n\t{0x1056F, 0x1057A}, {0x1057C, 0x1058A}, {0x1058C, 0x10592},\n\t{0x10594, 0x10595}, {0x10597, 0x105A1}, {0x105A3, 0x105B1},\n\t{0x105B3, 0x105B9}, {0x105BB, 0x105BC}, {0x10600, 0x10736},\n\t{0x10740, 0x10755}, {0x10760, 0x10767}, {0x10780, 0x10785},\n\t{0x10787, 0x107B0}, {0x107B2, 0x107BA}, {0x10800, 0x10805},\n\t{0x10808, 0x10808}, {0x1080A, 0x10835}, {0x10837, 0x10838},\n\t{0x1083C, 0x1083C}, {0x1083F, 0x10855}, {0x10857, 0x1089E},\n\t{0x108A7, 0x108AF}, {0x108E0, 0x108F2}, {0x108F4, 0x108F5},\n\t{0x108FB, 0x1091B}, {0x1091F, 0x10939}, {0x1093F, 0x1093F},\n\t{0x10980, 0x109B7}, {0x109BC, 0x109CF}, {0x109D2, 0x10A03},\n\t{0x10A05, 0x10A06}, {0x10A0C, 0x10A13}, {0x10A15, 0x10A17},\n\t{0x10A19, 0x10A35}, {0x10A38, 0x10A3A}, {0x10A3F, 0x10A48},\n\t{0x10A50, 0x10A58}, {0x10A60, 0x10A9F}, {0x10AC0, 0x10AE6},\n\t{0x10AEB, 0x10AF6}, {0x10B00, 0x10B35}, {0x10B39, 0x10B55},\n\t{0x10B58, 0x10B72}, {0x10B78, 0x10B91}, {0x10B99, 0x10B9C},\n\t{0x10BA9, 0x10BAF}, {0x10C00, 0x10C48}, {0x10C80, 0x10CB2},\n\t{0x10CC0, 0x10CF2}, {0x10CFA, 0x10D27}, {0x10D30, 0x10D39},\n\t{0x10E60, 0x10E7E}, {0x10E80, 0x10EA9}, {0x10EAB, 0x10EAD},\n\t{0x10EB0, 0x10EB1}, {0x10EFD, 0x10F27}, {0x10F30, 0x10F59},\n\t{0x10F70, 0x10F89}, {0x10FB0, 0x10FCB}, {0x10FE0, 0x10FF6},\n\t{0x11000, 0x1104D}, {0x11052, 0x11075}, {0x1107F, 0x110C2},\n\t{0x110CD, 0x110CD}, {0x110D0, 0x110E8}, {0x110F0, 0x110F9},\n\t{0x11100, 0x11134}, {0x11136, 0x11147}, {0x11150, 0x11176},\n\t{0x11180, 0x111DF}, {0x111E1, 0x111F4}, {0x11200, 0x11211},\n\t{0x11213, 0x11241}, {0x11280, 0x11286}, {0x11288, 0x11288},\n\t{0x1128A, 0x1128D}, {0x1128F, 0x1129D}, {0x1129F, 0x112A9},\n\t{0x112B0, 0x112EA}, {0x112F0, 0x112F9}, {0x11300, 0x11303},\n\t{0x11305, 0x1130C}, {0x1130F, 0x11310}, {0x11313, 0x11328},\n\t{0x1132A, 0x11330}, {0x11332, 0x11333}, {0x11335, 0x11339},\n\t{0x1133B, 0x11344}, {0x11347, 0x11348}, {0x1134B, 0x1134D},\n\t{0x11350, 0x11350}, {0x11357, 0x11357}, {0x1135D, 0x11363},\n\t{0x11366, 0x1136C}, {0x11370, 0x11374}, {0x11400, 0x1145B},\n\t{0x1145D, 0x11461}, {0x11480, 0x114C7}, {0x114D0, 0x114D9},\n\t{0x11580, 0x115B5}, {0x115B8, 0x115DD}, {0x11600, 0x11644},\n\t{0x11650, 0x11659}, {0x11660, 0x1166C}, {0x11680, 0x116B9},\n\t{0x116C0, 0x116C9}, {0x11700, 0x1171A}, {0x1171D, 0x1172B},\n\t{0x11730, 0x11746}, {0x11800, 0x1183B}, {0x118A0, 0x118F2},\n\t{0x118FF, 0x11906}, {0x11909, 0x11909}, {0x1190C, 0x11913},\n\t{0x11915, 0x11916}, {0x11918, 0x11935}, {0x11937, 0x11938},\n\t{0x1193B, 0x11946}, {0x11950, 0x11959}, {0x119A0, 0x119A7},\n\t{0x119AA, 0x119D7}, {0x119DA, 0x119E4}, {0x11A00, 0x11A47},\n\t{0x11A50, 0x11AA2}, {0x11AB0, 0x11AF8}, {0x11B00, 0x11B09},\n\t{0x11C00, 0x11C08}, {0x11C0A, 0x11C36}, {0x11C38, 0x11C45},\n\t{0x11C50, 0x11C6C}, {0x11C70, 0x11C8F}, {0x11C92, 0x11CA7},\n\t{0x11CA9, 0x11CB6}, {0x11D00, 0x11D06}, {0x11D08, 0x11D09},\n\t{0x11D0B, 0x11D36}, {0x11D3A, 0x11D3A}, {0x11D3C, 0x11D3D},\n\t{0x11D3F, 0x11D47}, {0x11D50, 0x11D59}, {0x11D60, 0x11D65},\n\t{0x11D67, 0x11D68}, {0x11D6A, 0x11D8E}, {0x11D90, 0x11D91},\n\t{0x11D93, 0x11D98}, {0x11DA0, 0x11DA9}, {0x11EE0, 0x11EF8},\n\t{0x11F00, 0x11F10}, {0x11F12, 0x11F3A}, {0x11F3E, 0x11F59},\n\t{0x11FB0, 0x11FB0}, {0x11FC0, 0x11FF1}, {0x11FFF, 0x12399},\n\t{0x12400, 0x1246E}, {0x12470, 0x12474}, {0x12480, 0x12543},\n\t{0x12F90, 0x12FF2}, {0x13000, 0x13455}, {0x14400, 0x14646},\n\t{0x16800, 0x16A38}, {0x16A40, 0x16A5E}, {0x16A60, 0x16A69},\n\t{0x16A6E, 0x16ABE}, {0x16AC0, 0x16AC9}, {0x16AD0, 0x16AED},\n\t{0x16AF0, 0x16AF5}, {0x16B00, 0x16B45}, {0x16B50, 0x16B59},\n\t{0x16B5B, 0x16B61}, {0x16B63, 0x16B77}, {0x16B7D, 0x16B8F},\n\t{0x16E40, 0x16E9A}, {0x16F00, 0x16F4A}, {0x16F4F, 0x16F87},\n\t{0x16F8F, 0x16F9F}, {0x1BC00, 0x1BC6A}, {0x1BC70, 0x1BC7C},\n\t{0x1BC80, 0x1BC88}, {0x1BC90, 0x1BC99}, {0x1BC9C, 0x1BCA3},\n\t{0x1CF00, 0x1CF2D}, {0x1CF30, 0x1CF46}, {0x1CF50, 0x1CFC3},\n\t{0x1D000, 0x1D0F5}, {0x1D100, 0x1D126}, {0x1D129, 0x1D1EA},\n\t{0x1D200, 0x1D245}, {0x1D2C0, 0x1D2D3}, {0x1D2E0, 0x1D2F3},\n\t{0x1D300, 0x1D356}, {0x1D360, 0x1D378}, {0x1D400, 0x1D454},\n\t{0x1D456, 0x1D49C}, {0x1D49E, 0x1D49F}, {0x1D4A2, 0x1D4A2},\n\t{0x1D4A5, 0x1D4A6}, {0x1D4A9, 0x1D4AC}, {0x1D4AE, 0x1D4B9},\n\t{0x1D4BB, 0x1D4BB}, {0x1D4BD, 0x1D4C3}, {0x1D4C5, 0x1D505},\n\t{0x1D507, 0x1D50A}, {0x1D50D, 0x1D514}, {0x1D516, 0x1D51C},\n\t{0x1D51E, 0x1D539}, {0x1D53B, 0x1D53E}, {0x1D540, 0x1D544},\n\t{0x1D546, 0x1D546}, {0x1D54A, 0x1D550}, {0x1D552, 0x1D6A5},\n\t{0x1D6A8, 0x1D7CB}, {0x1D7CE, 0x1DA8B}, {0x1DA9B, 0x1DA9F},\n\t{0x1DAA1, 0x1DAAF}, {0x1DF00, 0x1DF1E}, {0x1DF25, 0x1DF2A},\n\t{0x1E000, 0x1E006}, {0x1E008, 0x1E018}, {0x1E01B, 0x1E021},\n\t{0x1E023, 0x1E024}, {0x1E026, 0x1E02A}, {0x1E030, 0x1E06D},\n\t{0x1E08F, 0x1E08F}, {0x1E100, 0x1E12C}, {0x1E130, 0x1E13D},\n\t{0x1E140, 0x1E149}, {0x1E14E, 0x1E14F}, {0x1E290, 0x1E2AE},\n\t{0x1E2C0, 0x1E2F9}, {0x1E2FF, 0x1E2FF}, {0x1E4D0, 0x1E4F9},\n\t{0x1E7E0, 0x1E7E6}, {0x1E7E8, 0x1E7EB}, {0x1E7ED, 0x1E7EE},\n\t{0x1E7F0, 0x1E7FE}, {0x1E800, 0x1E8C4}, {0x1E8C7, 0x1E8D6},\n\t{0x1E900, 0x1E94B}, {0x1E950, 0x1E959}, {0x1E95E, 0x1E95F},\n\t{0x1EC71, 0x1ECB4}, {0x1ED01, 0x1ED3D}, {0x1EE00, 0x1EE03},\n\t{0x1EE05, 0x1EE1F}, {0x1EE21, 0x1EE22}, {0x1EE24, 0x1EE24},\n\t{0x1EE27, 0x1EE27}, {0x1EE29, 0x1EE32}, {0x1EE34, 0x1EE37},\n\t{0x1EE39, 0x1EE39}, {0x1EE3B, 0x1EE3B}, {0x1EE42, 0x1EE42},\n\t{0x1EE47, 0x1EE47}, {0x1EE49, 0x1EE49}, {0x1EE4B, 0x1EE4B},\n\t{0x1EE4D, 0x1EE4F}, {0x1EE51, 0x1EE52}, {0x1EE54, 0x1EE54},\n\t{0x1EE57, 0x1EE57}, {0x1EE59, 0x1EE59}, {0x1EE5B, 0x1EE5B},\n\t{0x1EE5D, 0x1EE5D}, {0x1EE5F, 0x1EE5F}, {0x1EE61, 0x1EE62},\n\t{0x1EE64, 0x1EE64}, {0x1EE67, 0x1EE6A}, {0x1EE6C, 0x1EE72},\n\t{0x1EE74, 0x1EE77}, {0x1EE79, 0x1EE7C}, {0x1EE7E, 0x1EE7E},\n\t{0x1EE80, 0x1EE89}, {0x1EE8B, 0x1EE9B}, {0x1EEA1, 0x1EEA3},\n\t{0x1EEA5, 0x1EEA9}, {0x1EEAB, 0x1EEBB}, {0x1EEF0, 0x1EEF1},\n\t{0x1F000, 0x1F003}, {0x1F005, 0x1F02B}, {0x1F030, 0x1F093},\n\t{0x1F0A0, 0x1F0AE}, {0x1F0B1, 0x1F0BF}, {0x1F0C1, 0x1F0CE},\n\t{0x1F0D1, 0x1F0F5}, {0x1F10B, 0x1F10F}, {0x1F12E, 0x1F12F},\n\t{0x1F16A, 0x1F16F}, {0x1F1AD, 0x1F1AD}, {0x1F1E6, 0x1F1FF},\n\t{0x1F321, 0x1F32C}, {0x1F336, 0x1F336}, {0x1F37D, 0x1F37D},\n\t{0x1F394, 0x1F39F}, {0x1F3CB, 0x1F3CE}, {0x1F3D4, 0x1F3DF},\n\t{0x1F3F1, 0x1F3F3}, {0x1F3F5, 0x1F3F7}, {0x1F43F, 0x1F43F},\n\t{0x1F441, 0x1F441}, {0x1F4FD, 0x1F4FE}, {0x1F53E, 0x1F54A},\n\t{0x1F54F, 0x1F54F}, {0x1F568, 0x1F579}, {0x1F57B, 0x1F594},\n\t{0x1F597, 0x1F5A3}, {0x1F5A5, 0x1F5FA}, {0x1F650, 0x1F67F},\n\t{0x1F6C6, 0x1F6CB}, {0x1F6CD, 0x1F6CF}, {0x1F6D3, 0x1F6D4},\n\t{0x1F6E0, 0x1F6EA}, {0x1F6F0, 0x1F6F3}, {0x1F700, 0x1F776},\n\t{0x1F77B, 0x1F7D9}, {0x1F800, 0x1F80B}, {0x1F810, 0x1F847},\n\t{0x1F850, 0x1F859}, {0x1F860, 0x1F887}, {0x1F890, 0x1F8AD},\n\t{0x1F8B0, 0x1F8B1}, {0x1F900, 0x1F90B}, {0x1F93B, 0x1F93B},\n\t{0x1F946, 0x1F946}, {0x1FA00, 0x1FA53}, {0x1FA60, 0x1FA6D},\n\t{0x1FB00, 0x1FB92}, {0x1FB94, 0x1FBCA}, {0x1FBF0, 0x1FBF9},\n\t{0xE0001, 0xE0001}, {0xE0020, 0xE007F},\n}\n\nvar emoji = table{\n\t{0x203C, 0x203C}, {0x2049, 0x2049}, {0x2122, 0x2122},\n\t{0x2139, 0x2139}, {0x2194, 0x2199}, {0x21A9, 0x21AA},\n\t{0x231A, 0x231B}, {0x2328, 0x2328}, {0x2388, 0x2388},\n\t{0x23CF, 0x23CF}, {0x23E9, 0x23F3}, {0x23F8, 0x23FA},\n\t{0x24C2, 0x24C2}, {0x25AA, 0x25AB}, {0x25B6, 0x25B6},\n\t{0x25C0, 0x25C0}, {0x25FB, 0x25FE}, {0x2600, 0x2605},\n\t{0x2607, 0x2612}, {0x2614, 0x2685}, {0x2690, 0x2705},\n\t{0x2708, 0x2712}, {0x2714, 0x2714}, {0x2716, 0x2716},\n\t{0x271D, 0x271D}, {0x2721, 0x2721}, {0x2728, 0x2728},\n\t{0x2733, 0x2734}, {0x2744, 0x2744}, {0x2747, 0x2747},\n\t{0x274C, 0x274C}, {0x274E, 0x274E}, {0x2753, 0x2755},\n\t{0x2757, 0x2757}, {0x2763, 0x2767}, {0x2795, 0x2797},\n\t{0x27A1, 0x27A1}, {0x27B0, 0x27B0}, {0x27BF, 0x27BF},\n\t{0x2934, 0x2935}, {0x2B05, 0x2B07}, {0x2B1B, 0x2B1C},\n\t{0x2B50, 0x2B50}, {0x2B55, 0x2B55}, {0x3030, 0x3030},\n\t{0x303D, 0x303D}, {0x3297, 0x3297}, {0x3299, 0x3299},\n\t{0x1F000, 0x1F0FF}, {0x1F10D, 0x1F10F}, {0x1F12F, 0x1F12F},\n\t{0x1F16C, 0x1F171}, {0x1F17E, 0x1F17F}, {0x1F18E, 0x1F18E},\n\t{0x1F191, 0x1F19A}, {0x1F1AD, 0x1F1E5}, {0x1F201, 0x1F20F},\n\t{0x1F21A, 0x1F21A}, {0x1F22F, 0x1F22F}, {0x1F232, 0x1F23A},\n\t{0x1F23C, 0x1F23F}, {0x1F249, 0x1F3FA}, {0x1F400, 0x1F53D},\n\t{0x1F546, 0x1F64F}, {0x1F680, 0x1F6FF}, {0x1F774, 0x1F77F},\n\t{0x1F7D5, 0x1F7FF}, {0x1F80C, 0x1F80F}, {0x1F848, 0x1F84F},\n\t{0x1F85A, 0x1F85F}, {0x1F888, 0x1F88F}, {0x1F8AE, 0x1F8FF},\n\t{0x1F90C, 0x1F93A}, {0x1F93C, 0x1F945}, {0x1F947, 0x1FAFF},\n\t{0x1FC00, 0x1FFFD},\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/runewidth_windows.go",
    "content": "//go:build windows && !appengine\n// +build windows,!appengine\n\npackage runewidth\n\nimport (\n\t\"os\"\n\t\"syscall\"\n)\n\nvar (\n\tkernel32               = syscall.NewLazyDLL(\"kernel32\")\n\tprocGetConsoleOutputCP = kernel32.NewProc(\"GetConsoleOutputCP\")\n)\n\n// IsEastAsian return true if the current locale is CJK\nfunc IsEastAsian() bool {\n\tif os.Getenv(\"WT_SESSION\") != \"\" {\n\t\t// Windows Terminal always not use East Asian Ambiguous Width(s).\n\t\treturn false\n\t}\n\n\tr1, _, _ := procGetConsoleOutputCP.Call()\n\tif r1 == 0 {\n\t\treturn false\n\t}\n\n\tswitch int(r1) {\n\tcase 932, 51932, 936, 949, 950:\n\t\treturn true\n\t}\n\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/.gitignore",
    "content": "/coverage.txt\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.8.x\n  - 1.x\n\nbefore_install:\n  - go get -t -v ./...\n\nscript:\n  - ./test.sh\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/README.md",
    "content": "# concurrent\n\n[![Sourcegraph](https://sourcegraph.com/github.com/modern-go/concurrent/-/badge.svg)](https://sourcegraph.com/github.com/modern-go/concurrent?badge)\n[![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](http://godoc.org/github.com/modern-go/concurrent)\n[![Build Status](https://travis-ci.org/modern-go/concurrent.svg?branch=master)](https://travis-ci.org/modern-go/concurrent)\n[![codecov](https://codecov.io/gh/modern-go/concurrent/branch/master/graph/badge.svg)](https://codecov.io/gh/modern-go/concurrent)\n[![rcard](https://goreportcard.com/badge/github.com/modern-go/concurrent)](https://goreportcard.com/report/github.com/modern-go/concurrent)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://raw.githubusercontent.com/modern-go/concurrent/master/LICENSE)\n\n* concurrent.Map: backport sync.Map for go below 1.9\n* concurrent.Executor: goroutine with explicit ownership and cancellable\n\n# concurrent.Map\n\nbecause sync.Map is only available in go 1.9, we can use concurrent.Map to make code portable\n\n```go\nm := concurrent.NewMap()\nm.Store(\"hello\", \"world\")\nelem, found := m.Load(\"hello\")\n// elem will be \"world\"\n// found will be true\n```\n\n# concurrent.Executor\n\n```go\nexecutor := concurrent.NewUnboundedExecutor()\nexecutor.Go(func(ctx context.Context) {\n    everyMillisecond := time.NewTicker(time.Millisecond)\n    for {\n        select {\n        case <-ctx.Done():\n            fmt.Println(\"goroutine exited\")\n            return\n        case <-everyMillisecond.C:\n            // do something\n        }\n    }\n})\ntime.Sleep(time.Second)\nexecutor.StopAndWaitForever()\nfmt.Println(\"executor stopped\")\n```\n\nattach goroutine to executor instance, so that we can\n\n* cancel it by stop the executor with Stop/StopAndWait/StopAndWaitForever\n* handle panic by callback: the default behavior will no longer crash your application"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/executor.go",
    "content": "package concurrent\n\nimport \"context\"\n\n// Executor replace go keyword to start a new goroutine\n// the goroutine should cancel itself if the context passed in has been cancelled\n// the goroutine started by the executor, is owned by the executor\n// we can cancel all executors owned by the executor just by stop the executor itself\n// however Executor interface does not Stop method, the one starting and owning executor\n// should use the concrete type of executor, instead of this interface.\ntype Executor interface {\n\t// Go starts a new goroutine controlled by the context\n\tGo(handler func(ctx context.Context))\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/go_above_19.go",
    "content": "//+build go1.9\n\npackage concurrent\n\nimport \"sync\"\n\n// Map is a wrapper for sync.Map introduced in go1.9\ntype Map struct {\n\tsync.Map\n}\n\n// NewMap creates a thread safe Map\nfunc NewMap() *Map {\n\treturn &Map{}\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/go_below_19.go",
    "content": "//+build !go1.9\n\npackage concurrent\n\nimport \"sync\"\n\n// Map implements a thread safe map for go version below 1.9 using mutex\ntype Map struct {\n\tlock sync.RWMutex\n\tdata map[interface{}]interface{}\n}\n\n// NewMap creates a thread safe map\nfunc NewMap() *Map {\n\treturn &Map{\n\t\tdata: make(map[interface{}]interface{}, 32),\n\t}\n}\n\n// Load is same as sync.Map Load\nfunc (m *Map) Load(key interface{}) (elem interface{}, found bool) {\n\tm.lock.RLock()\n\telem, found = m.data[key]\n\tm.lock.RUnlock()\n\treturn\n}\n\n// Load is same as sync.Map Store\nfunc (m *Map) Store(key interface{}, elem interface{}) {\n\tm.lock.Lock()\n\tm.data[key] = elem\n\tm.lock.Unlock()\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/log.go",
    "content": "package concurrent\n\nimport (\n\t\"os\"\n\t\"log\"\n\t\"io/ioutil\"\n)\n\n// ErrorLogger is used to print out error, can be set to writer other than stderr\nvar ErrorLogger = log.New(os.Stderr, \"\", 0)\n\n// InfoLogger is used to print informational message, default to off\nvar InfoLogger = log.New(ioutil.Discard, \"\", 0)"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/test.sh",
    "content": "#!/usr/bin/env bash\n\nset -e\necho \"\" > coverage.txt\n\nfor d in $(go list ./... | grep -v vendor); do\n    go test -coverprofile=profile.out -coverpkg=github.com/modern-go/concurrent $d\n    if [ -f profile.out ]; then\n        cat profile.out >> coverage.txt\n        rm profile.out\n    fi\ndone\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/unbounded_executor.go",
    "content": "package concurrent\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"runtime/debug\"\n\t\"sync\"\n\t\"time\"\n\t\"reflect\"\n)\n\n// HandlePanic logs goroutine panic by default\nvar HandlePanic = func(recovered interface{}, funcName string) {\n\tErrorLogger.Println(fmt.Sprintf(\"%s panic: %v\", funcName, recovered))\n\tErrorLogger.Println(string(debug.Stack()))\n}\n\n// UnboundedExecutor is a executor without limits on counts of alive goroutines\n// it tracks the goroutine started by it, and can cancel them when shutdown\ntype UnboundedExecutor struct {\n\tctx                   context.Context\n\tcancel                context.CancelFunc\n\tactiveGoroutinesMutex *sync.Mutex\n\tactiveGoroutines      map[string]int\n\tHandlePanic           func(recovered interface{}, funcName string)\n}\n\n// GlobalUnboundedExecutor has the life cycle of the program itself\n// any goroutine want to be shutdown before main exit can be started from this executor\n// GlobalUnboundedExecutor expects the main function to call stop\n// it does not magically knows the main function exits\nvar GlobalUnboundedExecutor = NewUnboundedExecutor()\n\n// NewUnboundedExecutor creates a new UnboundedExecutor,\n// UnboundedExecutor can not be created by &UnboundedExecutor{}\n// HandlePanic can be set with a callback to override global HandlePanic\nfunc NewUnboundedExecutor() *UnboundedExecutor {\n\tctx, cancel := context.WithCancel(context.TODO())\n\treturn &UnboundedExecutor{\n\t\tctx:                   ctx,\n\t\tcancel:                cancel,\n\t\tactiveGoroutinesMutex: &sync.Mutex{},\n\t\tactiveGoroutines:      map[string]int{},\n\t}\n}\n\n// Go starts a new goroutine and tracks its lifecycle.\n// Panic will be recovered and logged automatically, except for StopSignal\nfunc (executor *UnboundedExecutor) Go(handler func(ctx context.Context)) {\n\tpc := reflect.ValueOf(handler).Pointer()\n\tf := runtime.FuncForPC(pc)\n\tfuncName := f.Name()\n\tfile, line := f.FileLine(pc)\n\texecutor.activeGoroutinesMutex.Lock()\n\tdefer executor.activeGoroutinesMutex.Unlock()\n\tstartFrom := fmt.Sprintf(\"%s:%d\", file, line)\n\texecutor.activeGoroutines[startFrom] += 1\n\tgo func() {\n\t\tdefer func() {\n\t\t\trecovered := recover()\n\t\t\t// if you want to quit a goroutine without trigger HandlePanic\n\t\t\t// use runtime.Goexit() to quit\n\t\t\tif recovered != nil {\n\t\t\t\tif executor.HandlePanic == nil {\n\t\t\t\t\tHandlePanic(recovered, funcName)\n\t\t\t\t} else {\n\t\t\t\t\texecutor.HandlePanic(recovered, funcName)\n\t\t\t\t}\n\t\t\t}\n\t\t\texecutor.activeGoroutinesMutex.Lock()\n\t\t\texecutor.activeGoroutines[startFrom] -= 1\n\t\t\texecutor.activeGoroutinesMutex.Unlock()\n\t\t}()\n\t\thandler(executor.ctx)\n\t}()\n}\n\n// Stop cancel all goroutines started by this executor without wait\nfunc (executor *UnboundedExecutor) Stop() {\n\texecutor.cancel()\n}\n\n// StopAndWaitForever cancel all goroutines started by this executor and\n// wait until all goroutines exited\nfunc (executor *UnboundedExecutor) StopAndWaitForever() {\n\texecutor.StopAndWait(context.Background())\n}\n\n// StopAndWait cancel all goroutines started by this executor and wait.\n// Wait can be cancelled by the context passed in.\nfunc (executor *UnboundedExecutor) StopAndWait(ctx context.Context) {\n\texecutor.cancel()\n\tfor {\n\t\toneHundredMilliseconds := time.NewTimer(time.Millisecond * 100)\n\t\tselect {\n\t\tcase <-oneHundredMilliseconds.C:\n\t\t\tif executor.checkNoActiveGoroutines() {\n\t\t\t\treturn\n\t\t\t}\n\t\tcase <-ctx.Done():\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (executor *UnboundedExecutor) checkNoActiveGoroutines() bool {\n\texecutor.activeGoroutinesMutex.Lock()\n\tdefer executor.activeGoroutinesMutex.Unlock()\n\tfor startFrom, count := range executor.activeGoroutines {\n\t\tif count > 0 {\n\t\t\tInfoLogger.Println(\"UnboundedExecutor is still waiting goroutines to quit\",\n\t\t\t\t\"startFrom\", startFrom,\n\t\t\t\t\"count\", count)\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/.gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\ntmp\n\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n*.exe\n*.test\n*.prof\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/CNAME",
    "content": "zerolog.io"
  },
  {
    "path": "vendor/github.com/rs/zerolog/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2017 Olivier Poitrey\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/rs/zerolog/README.md",
    "content": "# Zero Allocation JSON Logger\n\n[![godoc](http://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://godoc.org/github.com/rs/zerolog) [![license](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://raw.githubusercontent.com/rs/zerolog/master/LICENSE) [![Build Status](https://travis-ci.org/rs/zerolog.svg?branch=master)](https://travis-ci.org/rs/zerolog) [![Coverage](http://gocover.io/_badge/github.com/rs/zerolog)](http://gocover.io/github.com/rs/zerolog)\n\nThe zerolog package provides a fast and simple logger dedicated to JSON output.\n\nZerolog's API is designed to provide both a great developer experience and stunning [performance](#benchmarks). Its unique chaining API allows zerolog to write JSON (or CBOR) log events by avoiding allocations and reflection.\n\nUber's [zap](https://godoc.org/go.uber.org/zap) library pioneered this approach. Zerolog is taking this concept to the next level with a simpler to use API and even better performance.\n\nTo keep the code base and the API simple, zerolog focuses on efficient structured logging only. Pretty logging on the console is made possible using the provided (but inefficient) [`zerolog.ConsoleWriter`](#pretty-logging).\n\n![Pretty Logging Image](pretty.png)\n\n## Who uses zerolog\n\nFind out [who uses zerolog](https://github.com/rs/zerolog/wiki/Who-uses-zerolog) and add your company / project to the list.\n\n## Features\n\n* [Blazing fast](#benchmarks)\n* [Low to zero allocation](#benchmarks)\n* [Leveled logging](#leveled-logging)\n* [Sampling](#log-sampling)\n* [Hooks](#hooks)\n* [Contextual fields](#contextual-logging)\n* [`context.Context` integration](#contextcontext-integration)\n* [Integration with `net/http`](#integration-with-nethttp)\n* [JSON and CBOR encoding formats](#binary-encoding)\n* [Pretty logging for development](#pretty-logging)\n* [Error Logging (with optional Stacktrace)](#error-logging)\n\n## Installation\n\n```bash\ngo get -u github.com/rs/zerolog/log\n```\n\n## Getting Started\n\n### Simple Logging Example\n\nFor simple logging, import the global logger package **github.com/rs/zerolog/log**\n\n```go\npackage main\n\nimport (\n    \"github.com/rs/zerolog\"\n    \"github.com/rs/zerolog/log\"\n)\n\nfunc main() {\n    // UNIX Time is faster and smaller than most timestamps\n    zerolog.TimeFieldFormat = zerolog.TimeFormatUnix\n\n    log.Print(\"hello world\")\n}\n\n// Output: {\"time\":1516134303,\"level\":\"debug\",\"message\":\"hello world\"}\n```\n> Note: By default log writes to `os.Stderr`\n> Note: The default log level for `log.Print` is *debug*\n\n### Contextual Logging\n\n**zerolog** allows data to be added to log messages in the form of key:value pairs. The data added to the message adds \"context\" about the log event that can be critical for debugging as well as myriad other purposes. An example of this is below:\n\n```go\npackage main\n\nimport (\n    \"github.com/rs/zerolog\"\n    \"github.com/rs/zerolog/log\"\n)\n\nfunc main() {\n    zerolog.TimeFieldFormat = zerolog.TimeFormatUnix\n\n    log.Debug().\n        Str(\"Scale\", \"833 cents\").\n        Float64(\"Interval\", 833.09).\n        Msg(\"Fibonacci is everywhere\")\n    \n    log.Debug().\n        Str(\"Name\", \"Tom\").\n        Send()\n}\n\n// Output: {\"level\":\"debug\",\"Scale\":\"833 cents\",\"Interval\":833.09,\"time\":1562212768,\"message\":\"Fibonacci is everywhere\"}\n// Output: {\"level\":\"debug\",\"Name\":\"Tom\",\"time\":1562212768}\n```\n\n> You'll note in the above example that when adding contextual fields, the fields are strongly typed. You can find the full list of supported fields [here](#standard-types)\n\n### Leveled Logging\n\n#### Simple Leveled Logging Example\n\n```go\npackage main\n\nimport (\n    \"github.com/rs/zerolog\"\n    \"github.com/rs/zerolog/log\"\n)\n\nfunc main() {\n    zerolog.TimeFieldFormat = zerolog.TimeFormatUnix\n\n    log.Info().Msg(\"hello world\")\n}\n\n// Output: {\"time\":1516134303,\"level\":\"info\",\"message\":\"hello world\"}\n```\n\n> It is very important to note that when using the **zerolog** chaining API, as shown above (`log.Info().Msg(\"hello world\"`), the chain must have either the `Msg` or `Msgf` method call. If you forget to add either of these, the log will not occur and there is no compile time error to alert you of this.\n\n**zerolog** allows for logging at the following levels (from highest to lowest):\n\n* panic (`zerolog.PanicLevel`, 5)\n* fatal (`zerolog.FatalLevel`, 4)\n* error (`zerolog.ErrorLevel`, 3)\n* warn (`zerolog.WarnLevel`, 2)\n* info (`zerolog.InfoLevel`, 1)\n* debug (`zerolog.DebugLevel`, 0)\n* trace (`zerolog.TraceLevel`, -1)\n\nYou can set the Global logging level to any of these options using the `SetGlobalLevel` function in the zerolog package, passing in one of the given constants above, e.g. `zerolog.InfoLevel` would be the \"info\" level.  Whichever level is chosen, all logs with a level greater than or equal to that level will be written. To turn off logging entirely, pass the `zerolog.Disabled` constant.\n\n#### Setting Global Log Level\n\nThis example uses command-line flags to demonstrate various outputs depending on the chosen log level.\n\n```go\npackage main\n\nimport (\n    \"flag\"\n\n    \"github.com/rs/zerolog\"\n    \"github.com/rs/zerolog/log\"\n)\n\nfunc main() {\n    zerolog.TimeFieldFormat = zerolog.TimeFormatUnix\n    debug := flag.Bool(\"debug\", false, \"sets log level to debug\")\n\n    flag.Parse()\n\n    // Default level for this example is info, unless debug flag is present\n    zerolog.SetGlobalLevel(zerolog.InfoLevel)\n    if *debug {\n        zerolog.SetGlobalLevel(zerolog.DebugLevel)\n    }\n\n    log.Debug().Msg(\"This message appears only when log level set to Debug\")\n    log.Info().Msg(\"This message appears when log level set to Debug or Info\")\n\n    if e := log.Debug(); e.Enabled() {\n        // Compute log output only if enabled.\n        value := \"bar\"\n        e.Str(\"foo\", value).Msg(\"some debug message\")\n    }\n}\n```\n\nInfo Output (no flag)\n\n```bash\n$ ./logLevelExample\n{\"time\":1516387492,\"level\":\"info\",\"message\":\"This message appears when log level set to Debug or Info\"}\n```\n\nDebug Output (debug flag set)\n\n```bash\n$ ./logLevelExample -debug\n{\"time\":1516387573,\"level\":\"debug\",\"message\":\"This message appears only when log level set to Debug\"}\n{\"time\":1516387573,\"level\":\"info\",\"message\":\"This message appears when log level set to Debug or Info\"}\n{\"time\":1516387573,\"level\":\"debug\",\"foo\":\"bar\",\"message\":\"some debug message\"}\n```\n\n#### Logging without Level or Message\n\nYou may choose to log without a specific level by using the `Log` method. You may also write without a message by setting an empty string in the `msg string` parameter of the `Msg` method. Both are demonstrated in the example below.\n\n```go\npackage main\n\nimport (\n    \"github.com/rs/zerolog\"\n    \"github.com/rs/zerolog/log\"\n)\n\nfunc main() {\n    zerolog.TimeFieldFormat = zerolog.TimeFormatUnix\n\n    log.Log().\n        Str(\"foo\", \"bar\").\n        Msg(\"\")\n}\n\n// Output: {\"time\":1494567715,\"foo\":\"bar\"}\n```\n\n### Error Logging\n\nYou can log errors using the `Err` method\n\n```go\npackage main\n\nimport (\n\t\"errors\"\n\n\t\"github.com/rs/zerolog\"\n\t\"github.com/rs/zerolog/log\"\n)\n\nfunc main() {\n\tzerolog.TimeFieldFormat = zerolog.TimeFormatUnix\n\n\terr := errors.New(\"seems we have an error here\")\n\tlog.Error().Err(err).Msg(\"\")\n}\n\n// Output: {\"level\":\"error\",\"error\":\"seems we have an error here\",\"time\":1609085256}\n```\n\n> The default field name for errors is `error`, you can change this by setting `zerolog.ErrorFieldName` to meet your needs.\n\n#### Error Logging with Stacktrace\n\nUsing `github.com/pkg/errors`, you can add a formatted stacktrace to your errors. \n\n```go\npackage main\n\nimport (\n\t\"github.com/pkg/errors\"\n\t\"github.com/rs/zerolog/pkgerrors\"\n\n\t\"github.com/rs/zerolog\"\n\t\"github.com/rs/zerolog/log\"\n)\n\nfunc main() {\n\tzerolog.TimeFieldFormat = zerolog.TimeFormatUnix\n\tzerolog.ErrorStackMarshaler = pkgerrors.MarshalStack\n\n\terr := outer()\n\tlog.Error().Stack().Err(err).Msg(\"\")\n}\n\nfunc inner() error {\n\treturn errors.New(\"seems we have an error here\")\n}\n\nfunc middle() error {\n\terr := inner()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc outer() error {\n\terr := middle()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Output: {\"level\":\"error\",\"stack\":[{\"func\":\"inner\",\"line\":\"20\",\"source\":\"errors.go\"},{\"func\":\"middle\",\"line\":\"24\",\"source\":\"errors.go\"},{\"func\":\"outer\",\"line\":\"32\",\"source\":\"errors.go\"},{\"func\":\"main\",\"line\":\"15\",\"source\":\"errors.go\"},{\"func\":\"main\",\"line\":\"204\",\"source\":\"proc.go\"},{\"func\":\"goexit\",\"line\":\"1374\",\"source\":\"asm_amd64.s\"}],\"error\":\"seems we have an error here\",\"time\":1609086683}\n```\n\n> zerolog.ErrorStackMarshaler must be set in order for the stack to output anything.\n\n#### Logging Fatal Messages\n\n```go\npackage main\n\nimport (\n    \"errors\"\n\n    \"github.com/rs/zerolog\"\n    \"github.com/rs/zerolog/log\"\n)\n\nfunc main() {\n    err := errors.New(\"A repo man spends his life getting into tense situations\")\n    service := \"myservice\"\n\n    zerolog.TimeFieldFormat = zerolog.TimeFormatUnix\n\n    log.Fatal().\n        Err(err).\n        Str(\"service\", service).\n        Msgf(\"Cannot start %s\", service)\n}\n\n// Output: {\"time\":1516133263,\"level\":\"fatal\",\"error\":\"A repo man spends his life getting into tense situations\",\"service\":\"myservice\",\"message\":\"Cannot start myservice\"}\n//         exit status 1\n```\n\n> NOTE: Using `Msgf` generates one allocation even when the logger is disabled.\n\n\n### Create logger instance to manage different outputs\n\n```go\nlogger := zerolog.New(os.Stderr).With().Timestamp().Logger()\n\nlogger.Info().Str(\"foo\", \"bar\").Msg(\"hello world\")\n\n// Output: {\"level\":\"info\",\"time\":1494567715,\"message\":\"hello world\",\"foo\":\"bar\"}\n```\n\n### Sub-loggers let you chain loggers with additional context\n\n```go\nsublogger := log.With().\n                 Str(\"component\", \"foo\").\n                 Logger()\nsublogger.Info().Msg(\"hello world\")\n\n// Output: {\"level\":\"info\",\"time\":1494567715,\"message\":\"hello world\",\"component\":\"foo\"}\n```\n\n### Pretty logging\n\nTo log a human-friendly, colorized output, use `zerolog.ConsoleWriter`:\n\n```go\nlog.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr})\n\nlog.Info().Str(\"foo\", \"bar\").Msg(\"Hello world\")\n\n// Output: 3:04PM INF Hello World foo=bar\n```\n\nTo customize the configuration and formatting:\n\n```go\noutput := zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: time.RFC3339}\noutput.FormatLevel = func(i interface{}) string {\n    return strings.ToUpper(fmt.Sprintf(\"| %-6s|\", i))\n}\noutput.FormatMessage = func(i interface{}) string {\n    return fmt.Sprintf(\"***%s****\", i)\n}\noutput.FormatFieldName = func(i interface{}) string {\n    return fmt.Sprintf(\"%s:\", i)\n}\noutput.FormatFieldValue = func(i interface{}) string {\n    return strings.ToUpper(fmt.Sprintf(\"%s\", i))\n}\n\nlog := zerolog.New(output).With().Timestamp().Logger()\n\nlog.Info().Str(\"foo\", \"bar\").Msg(\"Hello World\")\n\n// Output: 2006-01-02T15:04:05Z07:00 | INFO  | ***Hello World**** foo:BAR\n```\n\n### Sub dictionary\n\n```go\nlog.Info().\n    Str(\"foo\", \"bar\").\n    Dict(\"dict\", zerolog.Dict().\n        Str(\"bar\", \"baz\").\n        Int(\"n\", 1),\n    ).Msg(\"hello world\")\n\n// Output: {\"level\":\"info\",\"time\":1494567715,\"foo\":\"bar\",\"dict\":{\"bar\":\"baz\",\"n\":1},\"message\":\"hello world\"}\n```\n\n### Customize automatic field names\n\n```go\nzerolog.TimestampFieldName = \"t\"\nzerolog.LevelFieldName = \"l\"\nzerolog.MessageFieldName = \"m\"\n\nlog.Info().Msg(\"hello world\")\n\n// Output: {\"l\":\"info\",\"t\":1494567715,\"m\":\"hello world\"}\n```\n\n### Add contextual fields to the global logger\n\n```go\nlog.Logger = log.With().Str(\"foo\", \"bar\").Logger()\n```\n\n### Add file and line number to log\n\nEquivalent of `Llongfile`:\n\n```go\nlog.Logger = log.With().Caller().Logger()\nlog.Info().Msg(\"hello world\")\n\n// Output: {\"level\": \"info\", \"message\": \"hello world\", \"caller\": \"/go/src/your_project/some_file:21\"}\n```\n\nEquivalent of `Lshortfile`:\n\n```go\nzerolog.CallerMarshalFunc = func(pc uintptr, file string, line int) string {\n    short := file\n    for i := len(file) - 1; i > 0; i-- {\n        if file[i] == '/' {\n            short = file[i+1:]\n            break\n        }\n    }\n    file = short\n    return file + \":\" + strconv.Itoa(line)\n}\nlog.Logger = log.With().Caller().Logger()\nlog.Info().Msg(\"hello world\")\n\n// Output: {\"level\": \"info\", \"message\": \"hello world\", \"caller\": \"some_file:21\"}\n```\n\n### Thread-safe, lock-free, non-blocking writer\n\nIf your writer might be slow or not thread-safe and you need your log producers to never get slowed down by a slow writer, you can use a `diode.Writer` as follows:\n\n```go\nwr := diode.NewWriter(os.Stdout, 1000, 10*time.Millisecond, func(missed int) {\n\t\tfmt.Printf(\"Logger Dropped %d messages\", missed)\n\t})\nlog := zerolog.New(wr)\nlog.Print(\"test\")\n```\n\nYou will need to install `code.cloudfoundry.org/go-diodes` to use this feature.\n\n### Log Sampling\n\n```go\nsampled := log.Sample(&zerolog.BasicSampler{N: 10})\nsampled.Info().Msg(\"will be logged every 10 messages\")\n\n// Output: {\"time\":1494567715,\"level\":\"info\",\"message\":\"will be logged every 10 messages\"}\n```\n\nMore advanced sampling:\n\n```go\n// Will let 5 debug messages per period of 1 second.\n// Over 5 debug message, 1 every 100 debug messages are logged.\n// Other levels are not sampled.\nsampled := log.Sample(zerolog.LevelSampler{\n    DebugSampler: &zerolog.BurstSampler{\n        Burst: 5,\n        Period: 1*time.Second,\n        NextSampler: &zerolog.BasicSampler{N: 100},\n    },\n})\nsampled.Debug().Msg(\"hello world\")\n\n// Output: {\"time\":1494567715,\"level\":\"debug\",\"message\":\"hello world\"}\n```\n\n### Hooks\n\n```go\ntype SeverityHook struct{}\n\nfunc (h SeverityHook) Run(e *zerolog.Event, level zerolog.Level, msg string) {\n    if level != zerolog.NoLevel {\n        e.Str(\"severity\", level.String())\n    }\n}\n\nhooked := log.Hook(SeverityHook{})\nhooked.Warn().Msg(\"\")\n\n// Output: {\"level\":\"warn\",\"severity\":\"warn\"}\n```\n\n### Pass a sub-logger by context\n\n```go\nctx := log.With().Str(\"component\", \"module\").Logger().WithContext(ctx)\n\nlog.Ctx(ctx).Info().Msg(\"hello world\")\n\n// Output: {\"component\":\"module\",\"level\":\"info\",\"message\":\"hello world\"}\n```\n\n### Set as standard logger output\n\n```go\nstdlog := zerolog.New(os.Stdout).With().\n    Str(\"foo\", \"bar\").\n    Logger()\n\nstdlog.SetFlags(0)\nstdlog.SetOutput(log)\n\nstdlog.Print(\"hello world\")\n\n// Output: {\"foo\":\"bar\",\"message\":\"hello world\"}\n```\n\n### context.Context integration\n\nGo contexts are commonly passed throughout Go code, and this can help you pass\nyour Logger into places it might otherwise be hard to inject.  The `Logger`\ninstance may be attached to Go context (`context.Context`) using\n`Logger.WithContext(ctx)` and extracted from it using `zerolog.Ctx(ctx)`.\nFor example:\n\n```go\nfunc f() {\n    logger := zerolog.New(os.Stdout)\n    ctx := context.Background()\n\n    // Attach the Logger to the context.Context\n    ctx = logger.WithContext(ctx)\n    someFunc(ctx)\n}\n\nfunc someFunc(ctx context.Context) {\n    // Get Logger from the go Context. if it's nil, then\n    // `zerolog.DefaultContextLogger` is returned, if\n    // `DefaultContextLogger` is nil, then a disabled logger is returned.\n    logger := zerolog.Ctx(ctx)\n    logger.Info().Msg(\"Hello\")\n}\n```\n\nA second form of `context.Context` integration allows you to pass the current\ncontext.Context into the logged event, and retrieve it from hooks.  This can be\nuseful to log trace and span IDs or other information stored in the go context,\nand facilitates the unification of logging and tracing in some systems:\n\n```go\ntype TracingHook struct{}\n\nfunc (h TracingHook) Run(e *zerolog.Event, level zerolog.Level, msg string) {\n    ctx := e.Ctx()\n    spanId := getSpanIdFromContext(ctx) // as per your tracing framework\n    e.Str(\"span-id\", spanId)\n}\n\nfunc f() {\n    // Setup the logger\n    logger := zerolog.New(os.Stdout)\n    logger = logger.Hook(TracingHook{})\n\n    ctx := context.Background()\n    // Use the Ctx function to make the context available to the hook\n    logger.Info().Ctx(ctx).Msg(\"Hello\")\n}\n```\n\n### Integration with `net/http`\n\nThe `github.com/rs/zerolog/hlog` package provides some helpers to integrate zerolog with `http.Handler`.\n\nIn this example we use [alice](https://github.com/justinas/alice) to install logger for better readability.\n\n```go\nlog := zerolog.New(os.Stdout).With().\n    Timestamp().\n    Str(\"role\", \"my-service\").\n    Str(\"host\", host).\n    Logger()\n\nc := alice.New()\n\n// Install the logger handler with default output on the console\nc = c.Append(hlog.NewHandler(log))\n\n// Install some provided extra handler to set some request's context fields.\n// Thanks to that handler, all our logs will come with some prepopulated fields.\nc = c.Append(hlog.AccessHandler(func(r *http.Request, status, size int, duration time.Duration) {\n    hlog.FromRequest(r).Info().\n        Str(\"method\", r.Method).\n        Stringer(\"url\", r.URL).\n        Int(\"status\", status).\n        Int(\"size\", size).\n        Dur(\"duration\", duration).\n        Msg(\"\")\n}))\nc = c.Append(hlog.RemoteAddrHandler(\"ip\"))\nc = c.Append(hlog.UserAgentHandler(\"user_agent\"))\nc = c.Append(hlog.RefererHandler(\"referer\"))\nc = c.Append(hlog.RequestIDHandler(\"req_id\", \"Request-Id\"))\n\n// Here is your final handler\nh := c.Then(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n    // Get the logger from the request's context. You can safely assume it\n    // will be always there: if the handler is removed, hlog.FromRequest\n    // will return a no-op logger.\n    hlog.FromRequest(r).Info().\n        Str(\"user\", \"current user\").\n        Str(\"status\", \"ok\").\n        Msg(\"Something happened\")\n\n    // Output: {\"level\":\"info\",\"time\":\"2001-02-03T04:05:06Z\",\"role\":\"my-service\",\"host\":\"local-hostname\",\"req_id\":\"b4g0l5t6tfid6dtrapu0\",\"user\":\"current user\",\"status\":\"ok\",\"message\":\"Something happened\"}\n}))\nhttp.Handle(\"/\", h)\n\nif err := http.ListenAndServe(\":8080\", nil); err != nil {\n    log.Fatal().Err(err).Msg(\"Startup failed\")\n}\n```\n\n## Multiple Log Output\n`zerolog.MultiLevelWriter` may be used to send the log message to multiple outputs. \nIn this example, we send the log message to both `os.Stdout` and the in-built ConsoleWriter.\n```go\nfunc main() {\n\tconsoleWriter := zerolog.ConsoleWriter{Out: os.Stdout}\n\n\tmulti := zerolog.MultiLevelWriter(consoleWriter, os.Stdout)\n\n\tlogger := zerolog.New(multi).With().Timestamp().Logger()\n\n\tlogger.Info().Msg(\"Hello World!\")\n}\n\n// Output (Line 1: Console; Line 2: Stdout)\n// 12:36PM INF Hello World!\n// {\"level\":\"info\",\"time\":\"2019-11-07T12:36:38+03:00\",\"message\":\"Hello World!\"}\n```\n\n## Global Settings\n\nSome settings can be changed and will be applied to all loggers:\n\n* `log.Logger`: You can set this value to customize the global logger (the one used by package level methods).\n* `zerolog.SetGlobalLevel`: Can raise the minimum level of all loggers. Call this with `zerolog.Disabled` to disable logging altogether (quiet mode).\n* `zerolog.DisableSampling`: If argument is `true`, all sampled loggers will stop sampling and issue 100% of their log events.\n* `zerolog.TimestampFieldName`: Can be set to customize `Timestamp` field name.\n* `zerolog.LevelFieldName`: Can be set to customize level field name.\n* `zerolog.MessageFieldName`: Can be set to customize message field name.\n* `zerolog.ErrorFieldName`: Can be set to customize `Err` field name.\n* `zerolog.TimeFieldFormat`: Can be set to customize `Time` field value formatting. If set with `zerolog.TimeFormatUnix`, `zerolog.TimeFormatUnixMs` or `zerolog.TimeFormatUnixMicro`, times are formated as UNIX timestamp.\n* `zerolog.DurationFieldUnit`: Can be set to customize the unit for time.Duration type fields added by `Dur` (default: `time.Millisecond`).\n* `zerolog.DurationFieldInteger`: If set to `true`, `Dur` fields are formatted as integers instead of floats (default: `false`). \n* `zerolog.ErrorHandler`: Called whenever zerolog fails to write an event on its output. If not set, an error is printed on the stderr. This handler must be thread safe and non-blocking.\n\n## Field Types\n\n### Standard Types\n\n* `Str`\n* `Bool`\n* `Int`, `Int8`, `Int16`, `Int32`, `Int64`\n* `Uint`, `Uint8`, `Uint16`, `Uint32`, `Uint64`\n* `Float32`, `Float64`\n\n### Advanced Fields\n\n* `Err`: Takes an `error` and renders it as a string using the `zerolog.ErrorFieldName` field name.\n* `Func`: Run a `func` only if the level is enabled.\n* `Timestamp`: Inserts a timestamp field with `zerolog.TimestampFieldName` field name, formatted using `zerolog.TimeFieldFormat`.\n* `Time`: Adds a field with time formatted with `zerolog.TimeFieldFormat`.\n* `Dur`: Adds a field with `time.Duration`.\n* `Dict`: Adds a sub-key/value as a field of the event.\n* `RawJSON`: Adds a field with an already encoded JSON (`[]byte`)\n* `Hex`: Adds a field with value formatted as a hexadecimal string (`[]byte`)\n* `Interface`: Uses reflection to marshal the type.\n\nMost fields are also available in the slice format (`Strs` for `[]string`, `Errs` for `[]error` etc.)\n\n## Binary Encoding\n\nIn addition to the default JSON encoding, `zerolog` can produce binary logs using [CBOR](https://cbor.io) encoding. The choice of encoding can be decided at compile time using the build tag `binary_log` as follows:\n\n```bash\ngo build -tags binary_log .\n```\n\nTo Decode binary encoded log files you can use any CBOR decoder. One has been tested to work\nwith zerolog library is [CSD](https://github.com/toravir/csd/).\n\n## Related Projects\n\n* [grpc-zerolog](https://github.com/cheapRoc/grpc-zerolog): Implementation of `grpclog.LoggerV2` interface using `zerolog`\n* [overlog](https://github.com/Trendyol/overlog): Implementation of `Mapped Diagnostic Context` interface using `zerolog`\n* [zerologr](https://github.com/go-logr/zerologr): Implementation of `logr.LogSink` interface using `zerolog`\n\n## Benchmarks\n\nSee [logbench](http://hackemist.com/logbench/) for more comprehensive and up-to-date benchmarks.\n\nAll operations are allocation free (those numbers *include* JSON encoding):\n\n```text\nBenchmarkLogEmpty-8        100000000    19.1 ns/op     0 B/op       0 allocs/op\nBenchmarkDisabled-8        500000000    4.07 ns/op     0 B/op       0 allocs/op\nBenchmarkInfo-8            30000000     42.5 ns/op     0 B/op       0 allocs/op\nBenchmarkContextFields-8   30000000     44.9 ns/op     0 B/op       0 allocs/op\nBenchmarkLogFields-8       10000000     184 ns/op      0 B/op       0 allocs/op\n```\n\nThere are a few Go logging benchmarks and comparisons that include zerolog.\n\n* [imkira/go-loggers-bench](https://github.com/imkira/go-loggers-bench)\n* [uber-common/zap](https://github.com/uber-go/zap#performance)\n\nUsing Uber's zap comparison benchmark:\n\nLog a message and 10 fields:\n\n| Library | Time | Bytes Allocated | Objects Allocated |\n| :--- | :---: | :---: | :---: |\n| zerolog | 767 ns/op | 552 B/op | 6 allocs/op |\n| :zap: zap | 848 ns/op | 704 B/op | 2 allocs/op |\n| :zap: zap (sugared) | 1363 ns/op | 1610 B/op | 20 allocs/op |\n| go-kit | 3614 ns/op | 2895 B/op | 66 allocs/op |\n| lion | 5392 ns/op | 5807 B/op | 63 allocs/op |\n| logrus | 5661 ns/op | 6092 B/op | 78 allocs/op |\n| apex/log | 15332 ns/op | 3832 B/op | 65 allocs/op |\n| log15 | 20657 ns/op | 5632 B/op | 93 allocs/op |\n\nLog a message with a logger that already has 10 fields of context:\n\n| Library | Time | Bytes Allocated | Objects Allocated |\n| :--- | :---: | :---: | :---: |\n| zerolog | 52 ns/op | 0 B/op | 0 allocs/op |\n| :zap: zap | 283 ns/op | 0 B/op | 0 allocs/op |\n| :zap: zap (sugared) | 337 ns/op | 80 B/op | 2 allocs/op |\n| lion | 2702 ns/op | 4074 B/op | 38 allocs/op |\n| go-kit | 3378 ns/op | 3046 B/op | 52 allocs/op |\n| logrus | 4309 ns/op | 4564 B/op | 63 allocs/op |\n| apex/log | 13456 ns/op | 2898 B/op | 51 allocs/op |\n| log15 | 14179 ns/op | 2642 B/op | 44 allocs/op |\n\nLog a static string, without any context or `printf`-style templating:\n\n| Library | Time | Bytes Allocated | Objects Allocated |\n| :--- | :---: | :---: | :---: |\n| zerolog | 50 ns/op | 0 B/op | 0 allocs/op |\n| :zap: zap | 236 ns/op | 0 B/op | 0 allocs/op |\n| standard library | 453 ns/op | 80 B/op | 2 allocs/op |\n| :zap: zap (sugared) | 337 ns/op | 80 B/op | 2 allocs/op |\n| go-kit | 508 ns/op | 656 B/op | 13 allocs/op |\n| lion | 771 ns/op | 1224 B/op | 10 allocs/op |\n| logrus | 1244 ns/op | 1505 B/op | 27 allocs/op |\n| apex/log | 2751 ns/op | 584 B/op | 11 allocs/op |\n| log15 | 5181 ns/op | 1592 B/op | 26 allocs/op |\n\n## Caveats\n\n### Field duplication\n\nNote that zerolog does no de-duplication of fields. Using the same key multiple times creates multiple keys in final JSON:\n\n```go\nlogger := zerolog.New(os.Stderr).With().Timestamp().Logger()\nlogger.Info().\n       Timestamp().\n       Msg(\"dup\")\n// Output: {\"level\":\"info\",\"time\":1494567715,\"time\":1494567715,\"message\":\"dup\"}\n```\n\nIn this case, many consumers will take the last value, but this is not guaranteed; check yours if in doubt.\n\n### Concurrency safety\n\nBe careful when calling UpdateContext. It is not concurrency safe. Use the With method to create a child logger:\n\n```go\nfunc handler(w http.ResponseWriter, r *http.Request) {\n    // Create a child logger for concurrency safety\n    logger := log.Logger.With().Logger()\n\n    // Add context fields, for example User-Agent from HTTP headers\n    logger.UpdateContext(func(c zerolog.Context) zerolog.Context {\n        ...\n    })\n}\n```\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/_config.yml",
    "content": "remote_theme: rs/gh-readme\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/array.go",
    "content": "package zerolog\n\nimport (\n\t\"net\"\n\t\"sync\"\n\t\"time\"\n)\n\nvar arrayPool = &sync.Pool{\n\tNew: func() interface{} {\n\t\treturn &Array{\n\t\t\tbuf: make([]byte, 0, 500),\n\t\t}\n\t},\n}\n\n// Array is used to prepopulate an array of items\n// which can be re-used to add to log messages.\ntype Array struct {\n\tbuf []byte\n}\n\nfunc putArray(a *Array) {\n\t// Proper usage of a sync.Pool requires each entry to have approximately\n\t// the same memory cost. To obtain this property when the stored type\n\t// contains a variably-sized buffer, we add a hard limit on the maximum buffer\n\t// to place back in the pool.\n\t//\n\t// See https://golang.org/issue/23199\n\tconst maxSize = 1 << 16 // 64KiB\n\tif cap(a.buf) > maxSize {\n\t\treturn\n\t}\n\tarrayPool.Put(a)\n}\n\n// Arr creates an array to be added to an Event or Context.\nfunc Arr() *Array {\n\ta := arrayPool.Get().(*Array)\n\ta.buf = a.buf[:0]\n\treturn a\n}\n\n// MarshalZerologArray method here is no-op - since data is\n// already in the needed format.\nfunc (*Array) MarshalZerologArray(*Array) {\n}\n\nfunc (a *Array) write(dst []byte) []byte {\n\tdst = enc.AppendArrayStart(dst)\n\tif len(a.buf) > 0 {\n\t\tdst = append(dst, a.buf...)\n\t}\n\tdst = enc.AppendArrayEnd(dst)\n\tputArray(a)\n\treturn dst\n}\n\n// Object marshals an object that implement the LogObjectMarshaler\n// interface and appends it to the array.\nfunc (a *Array) Object(obj LogObjectMarshaler) *Array {\n\te := Dict()\n\tobj.MarshalZerologObject(e)\n\te.buf = enc.AppendEndMarker(e.buf)\n\ta.buf = append(enc.AppendArrayDelim(a.buf), e.buf...)\n\tputEvent(e)\n\treturn a\n}\n\n// Str appends the val as a string to the array.\nfunc (a *Array) Str(val string) *Array {\n\ta.buf = enc.AppendString(enc.AppendArrayDelim(a.buf), val)\n\treturn a\n}\n\n// Bytes appends the val as a string to the array.\nfunc (a *Array) Bytes(val []byte) *Array {\n\ta.buf = enc.AppendBytes(enc.AppendArrayDelim(a.buf), val)\n\treturn a\n}\n\n// Hex appends the val as a hex string to the array.\nfunc (a *Array) Hex(val []byte) *Array {\n\ta.buf = enc.AppendHex(enc.AppendArrayDelim(a.buf), val)\n\treturn a\n}\n\n// RawJSON adds already encoded JSON to the array.\nfunc (a *Array) RawJSON(val []byte) *Array {\n\ta.buf = appendJSON(enc.AppendArrayDelim(a.buf), val)\n\treturn a\n}\n\n// Err serializes and appends the err to the array.\nfunc (a *Array) Err(err error) *Array {\n\tswitch m := ErrorMarshalFunc(err).(type) {\n\tcase LogObjectMarshaler:\n\t\te := newEvent(nil, 0)\n\t\te.buf = e.buf[:0]\n\t\te.appendObject(m)\n\t\ta.buf = append(enc.AppendArrayDelim(a.buf), e.buf...)\n\t\tputEvent(e)\n\tcase error:\n\t\tif m == nil || isNilValue(m) {\n\t\t\ta.buf = enc.AppendNil(enc.AppendArrayDelim(a.buf))\n\t\t} else {\n\t\t\ta.buf = enc.AppendString(enc.AppendArrayDelim(a.buf), m.Error())\n\t\t}\n\tcase string:\n\t\ta.buf = enc.AppendString(enc.AppendArrayDelim(a.buf), m)\n\tdefault:\n\t\ta.buf = enc.AppendInterface(enc.AppendArrayDelim(a.buf), m)\n\t}\n\n\treturn a\n}\n\n// Bool appends the val as a bool to the array.\nfunc (a *Array) Bool(b bool) *Array {\n\ta.buf = enc.AppendBool(enc.AppendArrayDelim(a.buf), b)\n\treturn a\n}\n\n// Int appends i as a int to the array.\nfunc (a *Array) Int(i int) *Array {\n\ta.buf = enc.AppendInt(enc.AppendArrayDelim(a.buf), i)\n\treturn a\n}\n\n// Int8 appends i as a int8 to the array.\nfunc (a *Array) Int8(i int8) *Array {\n\ta.buf = enc.AppendInt8(enc.AppendArrayDelim(a.buf), i)\n\treturn a\n}\n\n// Int16 appends i as a int16 to the array.\nfunc (a *Array) Int16(i int16) *Array {\n\ta.buf = enc.AppendInt16(enc.AppendArrayDelim(a.buf), i)\n\treturn a\n}\n\n// Int32 appends i as a int32 to the array.\nfunc (a *Array) Int32(i int32) *Array {\n\ta.buf = enc.AppendInt32(enc.AppendArrayDelim(a.buf), i)\n\treturn a\n}\n\n// Int64 appends i as a int64 to the array.\nfunc (a *Array) Int64(i int64) *Array {\n\ta.buf = enc.AppendInt64(enc.AppendArrayDelim(a.buf), i)\n\treturn a\n}\n\n// Uint appends i as a uint to the array.\nfunc (a *Array) Uint(i uint) *Array {\n\ta.buf = enc.AppendUint(enc.AppendArrayDelim(a.buf), i)\n\treturn a\n}\n\n// Uint8 appends i as a uint8 to the array.\nfunc (a *Array) Uint8(i uint8) *Array {\n\ta.buf = enc.AppendUint8(enc.AppendArrayDelim(a.buf), i)\n\treturn a\n}\n\n// Uint16 appends i as a uint16 to the array.\nfunc (a *Array) Uint16(i uint16) *Array {\n\ta.buf = enc.AppendUint16(enc.AppendArrayDelim(a.buf), i)\n\treturn a\n}\n\n// Uint32 appends i as a uint32 to the array.\nfunc (a *Array) Uint32(i uint32) *Array {\n\ta.buf = enc.AppendUint32(enc.AppendArrayDelim(a.buf), i)\n\treturn a\n}\n\n// Uint64 appends i as a uint64 to the array.\nfunc (a *Array) Uint64(i uint64) *Array {\n\ta.buf = enc.AppendUint64(enc.AppendArrayDelim(a.buf), i)\n\treturn a\n}\n\n// Float32 appends f as a float32 to the array.\nfunc (a *Array) Float32(f float32) *Array {\n\ta.buf = enc.AppendFloat32(enc.AppendArrayDelim(a.buf), f)\n\treturn a\n}\n\n// Float64 appends f as a float64 to the array.\nfunc (a *Array) Float64(f float64) *Array {\n\ta.buf = enc.AppendFloat64(enc.AppendArrayDelim(a.buf), f)\n\treturn a\n}\n\n// Time appends t formatted as string using zerolog.TimeFieldFormat.\nfunc (a *Array) Time(t time.Time) *Array {\n\ta.buf = enc.AppendTime(enc.AppendArrayDelim(a.buf), t, TimeFieldFormat)\n\treturn a\n}\n\n// Dur appends d to the array.\nfunc (a *Array) Dur(d time.Duration) *Array {\n\ta.buf = enc.AppendDuration(enc.AppendArrayDelim(a.buf), d, DurationFieldUnit, DurationFieldInteger)\n\treturn a\n}\n\n// Interface appends i marshaled using reflection.\nfunc (a *Array) Interface(i interface{}) *Array {\n\tif obj, ok := i.(LogObjectMarshaler); ok {\n\t\treturn a.Object(obj)\n\t}\n\ta.buf = enc.AppendInterface(enc.AppendArrayDelim(a.buf), i)\n\treturn a\n}\n\n// IPAddr adds IPv4 or IPv6 address to the array\nfunc (a *Array) IPAddr(ip net.IP) *Array {\n\ta.buf = enc.AppendIPAddr(enc.AppendArrayDelim(a.buf), ip)\n\treturn a\n}\n\n// IPPrefix adds IPv4 or IPv6 Prefix (IP + mask) to the array\nfunc (a *Array) IPPrefix(pfx net.IPNet) *Array {\n\ta.buf = enc.AppendIPPrefix(enc.AppendArrayDelim(a.buf), pfx)\n\treturn a\n}\n\n// MACAddr adds a MAC (Ethernet) address to the array\nfunc (a *Array) MACAddr(ha net.HardwareAddr) *Array {\n\ta.buf = enc.AppendMACAddr(enc.AppendArrayDelim(a.buf), ha)\n\treturn a\n}\n\n// Dict adds the dict Event to the array\nfunc (a *Array) Dict(dict *Event) *Array {\n\tdict.buf = enc.AppendEndMarker(dict.buf)\n\ta.buf = append(enc.AppendArrayDelim(a.buf), dict.buf...)\n\treturn a\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/console.go",
    "content": "package zerolog\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/mattn/go-colorable\"\n)\n\nconst (\n\tcolorBlack = iota + 30\n\tcolorRed\n\tcolorGreen\n\tcolorYellow\n\tcolorBlue\n\tcolorMagenta\n\tcolorCyan\n\tcolorWhite\n\n\tcolorBold     = 1\n\tcolorDarkGray = 90\n)\n\nvar (\n\tconsoleBufPool = sync.Pool{\n\t\tNew: func() interface{} {\n\t\t\treturn bytes.NewBuffer(make([]byte, 0, 100))\n\t\t},\n\t}\n)\n\nconst (\n\tconsoleDefaultTimeFormat = time.Kitchen\n)\n\n// Formatter transforms the input into a formatted string.\ntype Formatter func(interface{}) string\n\n// ConsoleWriter parses the JSON input and writes it in an\n// (optionally) colorized, human-friendly format to Out.\ntype ConsoleWriter struct {\n\t// Out is the output destination.\n\tOut io.Writer\n\n\t// NoColor disables the colorized output.\n\tNoColor bool\n\n\t// TimeFormat specifies the format for timestamp in output.\n\tTimeFormat string\n\n\t// PartsOrder defines the order of parts in output.\n\tPartsOrder []string\n\n\t// PartsExclude defines parts to not display in output.\n\tPartsExclude []string\n\n\t// FieldsExclude defines contextual fields to not display in output.\n\tFieldsExclude []string\n\n\tFormatTimestamp     Formatter\n\tFormatLevel         Formatter\n\tFormatCaller        Formatter\n\tFormatMessage       Formatter\n\tFormatFieldName     Formatter\n\tFormatFieldValue    Formatter\n\tFormatErrFieldName  Formatter\n\tFormatErrFieldValue Formatter\n\n\tFormatExtra func(map[string]interface{}, *bytes.Buffer) error\n}\n\n// NewConsoleWriter creates and initializes a new ConsoleWriter.\nfunc NewConsoleWriter(options ...func(w *ConsoleWriter)) ConsoleWriter {\n\tw := ConsoleWriter{\n\t\tOut:        os.Stdout,\n\t\tTimeFormat: consoleDefaultTimeFormat,\n\t\tPartsOrder: consoleDefaultPartsOrder(),\n\t}\n\n\tfor _, opt := range options {\n\t\topt(&w)\n\t}\n\n\t// Fix color on Windows\n\tif w.Out == os.Stdout || w.Out == os.Stderr {\n\t\tw.Out = colorable.NewColorable(w.Out.(*os.File))\n\t}\n\n\treturn w\n}\n\n// Write transforms the JSON input with formatters and appends to w.Out.\nfunc (w ConsoleWriter) Write(p []byte) (n int, err error) {\n\t// Fix color on Windows\n\tif w.Out == os.Stdout || w.Out == os.Stderr {\n\t\tw.Out = colorable.NewColorable(w.Out.(*os.File))\n\t}\n\n\tif w.PartsOrder == nil {\n\t\tw.PartsOrder = consoleDefaultPartsOrder()\n\t}\n\n\tvar buf = consoleBufPool.Get().(*bytes.Buffer)\n\tdefer func() {\n\t\tbuf.Reset()\n\t\tconsoleBufPool.Put(buf)\n\t}()\n\n\tvar evt map[string]interface{}\n\tp = decodeIfBinaryToBytes(p)\n\td := json.NewDecoder(bytes.NewReader(p))\n\td.UseNumber()\n\terr = d.Decode(&evt)\n\tif err != nil {\n\t\treturn n, fmt.Errorf(\"cannot decode event: %s\", err)\n\t}\n\n\tfor _, p := range w.PartsOrder {\n\t\tw.writePart(buf, evt, p)\n\t}\n\n\tw.writeFields(evt, buf)\n\n\tif w.FormatExtra != nil {\n\t\terr = w.FormatExtra(evt, buf)\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t}\n\n\terr = buf.WriteByte('\\n')\n\tif err != nil {\n\t\treturn n, err\n\t}\n\n\t_, err = buf.WriteTo(w.Out)\n\treturn len(p), err\n}\n\n// writeFields appends formatted key-value pairs to buf.\nfunc (w ConsoleWriter) writeFields(evt map[string]interface{}, buf *bytes.Buffer) {\n\tvar fields = make([]string, 0, len(evt))\n\tfor field := range evt {\n\t\tvar isExcluded bool\n\t\tfor _, excluded := range w.FieldsExclude {\n\t\t\tif field == excluded {\n\t\t\t\tisExcluded = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif isExcluded {\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch field {\n\t\tcase LevelFieldName, TimestampFieldName, MessageFieldName, CallerFieldName:\n\t\t\tcontinue\n\t\t}\n\t\tfields = append(fields, field)\n\t}\n\tsort.Strings(fields)\n\n\t// Write space only if something has already been written to the buffer, and if there are fields.\n\tif buf.Len() > 0 && len(fields) > 0 {\n\t\tbuf.WriteByte(' ')\n\t}\n\n\t// Move the \"error\" field to the front\n\tei := sort.Search(len(fields), func(i int) bool { return fields[i] >= ErrorFieldName })\n\tif ei < len(fields) && fields[ei] == ErrorFieldName {\n\t\tfields[ei] = \"\"\n\t\tfields = append([]string{ErrorFieldName}, fields...)\n\t\tvar xfields = make([]string, 0, len(fields))\n\t\tfor _, field := range fields {\n\t\t\tif field == \"\" { // Skip empty fields\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\txfields = append(xfields, field)\n\t\t}\n\t\tfields = xfields\n\t}\n\n\tfor i, field := range fields {\n\t\tvar fn Formatter\n\t\tvar fv Formatter\n\n\t\tif field == ErrorFieldName {\n\t\t\tif w.FormatErrFieldName == nil {\n\t\t\t\tfn = consoleDefaultFormatErrFieldName(w.NoColor)\n\t\t\t} else {\n\t\t\t\tfn = w.FormatErrFieldName\n\t\t\t}\n\n\t\t\tif w.FormatErrFieldValue == nil {\n\t\t\t\tfv = consoleDefaultFormatErrFieldValue(w.NoColor)\n\t\t\t} else {\n\t\t\t\tfv = w.FormatErrFieldValue\n\t\t\t}\n\t\t} else {\n\t\t\tif w.FormatFieldName == nil {\n\t\t\t\tfn = consoleDefaultFormatFieldName(w.NoColor)\n\t\t\t} else {\n\t\t\t\tfn = w.FormatFieldName\n\t\t\t}\n\n\t\t\tif w.FormatFieldValue == nil {\n\t\t\t\tfv = consoleDefaultFormatFieldValue\n\t\t\t} else {\n\t\t\t\tfv = w.FormatFieldValue\n\t\t\t}\n\t\t}\n\n\t\tbuf.WriteString(fn(field))\n\n\t\tswitch fValue := evt[field].(type) {\n\t\tcase string:\n\t\t\tif needsQuote(fValue) {\n\t\t\t\tbuf.WriteString(fv(strconv.Quote(fValue)))\n\t\t\t} else {\n\t\t\t\tbuf.WriteString(fv(fValue))\n\t\t\t}\n\t\tcase json.Number:\n\t\t\tbuf.WriteString(fv(fValue))\n\t\tdefault:\n\t\t\tb, err := InterfaceMarshalFunc(fValue)\n\t\t\tif err != nil {\n\t\t\t\tfmt.Fprintf(buf, colorize(\"[error: %v]\", colorRed, w.NoColor), err)\n\t\t\t} else {\n\t\t\t\tfmt.Fprint(buf, fv(b))\n\t\t\t}\n\t\t}\n\n\t\tif i < len(fields)-1 { // Skip space for last field\n\t\t\tbuf.WriteByte(' ')\n\t\t}\n\t}\n}\n\n// writePart appends a formatted part to buf.\nfunc (w ConsoleWriter) writePart(buf *bytes.Buffer, evt map[string]interface{}, p string) {\n\tvar f Formatter\n\n\tif w.PartsExclude != nil && len(w.PartsExclude) > 0 {\n\t\tfor _, exclude := range w.PartsExclude {\n\t\t\tif exclude == p {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch p {\n\tcase LevelFieldName:\n\t\tif w.FormatLevel == nil {\n\t\t\tf = consoleDefaultFormatLevel(w.NoColor)\n\t\t} else {\n\t\t\tf = w.FormatLevel\n\t\t}\n\tcase TimestampFieldName:\n\t\tif w.FormatTimestamp == nil {\n\t\t\tf = consoleDefaultFormatTimestamp(w.TimeFormat, w.NoColor)\n\t\t} else {\n\t\t\tf = w.FormatTimestamp\n\t\t}\n\tcase MessageFieldName:\n\t\tif w.FormatMessage == nil {\n\t\t\tf = consoleDefaultFormatMessage\n\t\t} else {\n\t\t\tf = w.FormatMessage\n\t\t}\n\tcase CallerFieldName:\n\t\tif w.FormatCaller == nil {\n\t\t\tf = consoleDefaultFormatCaller(w.NoColor)\n\t\t} else {\n\t\t\tf = w.FormatCaller\n\t\t}\n\tdefault:\n\t\tif w.FormatFieldValue == nil {\n\t\t\tf = consoleDefaultFormatFieldValue\n\t\t} else {\n\t\t\tf = w.FormatFieldValue\n\t\t}\n\t}\n\n\tvar s = f(evt[p])\n\n\tif len(s) > 0 {\n\t\tif buf.Len() > 0 {\n\t\t\tbuf.WriteByte(' ') // Write space only if not the first part\n\t\t}\n\t\tbuf.WriteString(s)\n\t}\n}\n\n// needsQuote returns true when the string s should be quoted in output.\nfunc needsQuote(s string) bool {\n\tfor i := range s {\n\t\tif s[i] < 0x20 || s[i] > 0x7e || s[i] == ' ' || s[i] == '\\\\' || s[i] == '\"' {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// colorize returns the string s wrapped in ANSI code c, unless disabled is true.\nfunc colorize(s interface{}, c int, disabled bool) string {\n\tif disabled {\n\t\treturn fmt.Sprintf(\"%s\", s)\n\t}\n\treturn fmt.Sprintf(\"\\x1b[%dm%v\\x1b[0m\", c, s)\n}\n\n// ----- DEFAULT FORMATTERS ---------------------------------------------------\n\nfunc consoleDefaultPartsOrder() []string {\n\treturn []string{\n\t\tTimestampFieldName,\n\t\tLevelFieldName,\n\t\tCallerFieldName,\n\t\tMessageFieldName,\n\t}\n}\n\nfunc consoleDefaultFormatTimestamp(timeFormat string, noColor bool) Formatter {\n\tif timeFormat == \"\" {\n\t\ttimeFormat = consoleDefaultTimeFormat\n\t}\n\treturn func(i interface{}) string {\n\t\tt := \"<nil>\"\n\t\tswitch tt := i.(type) {\n\t\tcase string:\n\t\t\tts, err := time.ParseInLocation(TimeFieldFormat, tt, time.Local)\n\t\t\tif err != nil {\n\t\t\t\tt = tt\n\t\t\t} else {\n\t\t\t\tt = ts.Local().Format(timeFormat)\n\t\t\t}\n\t\tcase json.Number:\n\t\t\ti, err := tt.Int64()\n\t\t\tif err != nil {\n\t\t\t\tt = tt.String()\n\t\t\t} else {\n\t\t\t\tvar sec, nsec int64\n\n\t\t\t\tswitch TimeFieldFormat {\n\t\t\t\tcase TimeFormatUnixNano:\n\t\t\t\t\tsec, nsec = 0, i\n\t\t\t\tcase TimeFormatUnixMicro:\n\t\t\t\t\tsec, nsec = 0, int64(time.Duration(i)*time.Microsecond)\n\t\t\t\tcase TimeFormatUnixMs:\n\t\t\t\t\tsec, nsec = 0, int64(time.Duration(i)*time.Millisecond)\n\t\t\t\tdefault:\n\t\t\t\t\tsec, nsec = i, 0\n\t\t\t\t}\n\n\t\t\t\tts := time.Unix(sec, nsec)\n\t\t\t\tt = ts.Format(timeFormat)\n\t\t\t}\n\t\t}\n\t\treturn colorize(t, colorDarkGray, noColor)\n\t}\n}\n\nfunc consoleDefaultFormatLevel(noColor bool) Formatter {\n\treturn func(i interface{}) string {\n\t\tvar l string\n\t\tif ll, ok := i.(string); ok {\n\t\t\tswitch ll {\n\t\t\tcase LevelTraceValue:\n\t\t\t\tl = colorize(\"TRC\", colorMagenta, noColor)\n\t\t\tcase LevelDebugValue:\n\t\t\t\tl = colorize(\"DBG\", colorYellow, noColor)\n\t\t\tcase LevelInfoValue:\n\t\t\t\tl = colorize(\"INF\", colorGreen, noColor)\n\t\t\tcase LevelWarnValue:\n\t\t\t\tl = colorize(\"WRN\", colorRed, noColor)\n\t\t\tcase LevelErrorValue:\n\t\t\t\tl = colorize(colorize(\"ERR\", colorRed, noColor), colorBold, noColor)\n\t\t\tcase LevelFatalValue:\n\t\t\t\tl = colorize(colorize(\"FTL\", colorRed, noColor), colorBold, noColor)\n\t\t\tcase LevelPanicValue:\n\t\t\t\tl = colorize(colorize(\"PNC\", colorRed, noColor), colorBold, noColor)\n\t\t\tdefault:\n\t\t\t\tl = colorize(ll, colorBold, noColor)\n\t\t\t}\n\t\t} else {\n\t\t\tif i == nil {\n\t\t\t\tl = colorize(\"???\", colorBold, noColor)\n\t\t\t} else {\n\t\t\t\tl = strings.ToUpper(fmt.Sprintf(\"%s\", i))[0:3]\n\t\t\t}\n\t\t}\n\t\treturn l\n\t}\n}\n\nfunc consoleDefaultFormatCaller(noColor bool) Formatter {\n\treturn func(i interface{}) string {\n\t\tvar c string\n\t\tif cc, ok := i.(string); ok {\n\t\t\tc = cc\n\t\t}\n\t\tif len(c) > 0 {\n\t\t\tif cwd, err := os.Getwd(); err == nil {\n\t\t\t\tif rel, err := filepath.Rel(cwd, c); err == nil {\n\t\t\t\t\tc = rel\n\t\t\t\t}\n\t\t\t}\n\t\t\tc = colorize(c, colorBold, noColor) + colorize(\" >\", colorCyan, noColor)\n\t\t}\n\t\treturn c\n\t}\n}\n\nfunc consoleDefaultFormatMessage(i interface{}) string {\n\tif i == nil {\n\t\treturn \"\"\n\t}\n\treturn fmt.Sprintf(\"%s\", i)\n}\n\nfunc consoleDefaultFormatFieldName(noColor bool) Formatter {\n\treturn func(i interface{}) string {\n\t\treturn colorize(fmt.Sprintf(\"%s=\", i), colorCyan, noColor)\n\t}\n}\n\nfunc consoleDefaultFormatFieldValue(i interface{}) string {\n\treturn fmt.Sprintf(\"%s\", i)\n}\n\nfunc consoleDefaultFormatErrFieldName(noColor bool) Formatter {\n\treturn func(i interface{}) string {\n\t\treturn colorize(fmt.Sprintf(\"%s=\", i), colorCyan, noColor)\n\t}\n}\n\nfunc consoleDefaultFormatErrFieldValue(noColor bool) Formatter {\n\treturn func(i interface{}) string {\n\t\treturn colorize(fmt.Sprintf(\"%s\", i), colorRed, noColor)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/context.go",
    "content": "package zerolog\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"math\"\n\t\"net\"\n\t\"time\"\n)\n\n// Context configures a new sub-logger with contextual fields.\ntype Context struct {\n\tl Logger\n}\n\n// Logger returns the logger with the context previously set.\nfunc (c Context) Logger() Logger {\n\treturn c.l\n}\n\n// Fields is a helper function to use a map or slice to set fields using type assertion.\n// Only map[string]interface{} and []interface{} are accepted. []interface{} must\n// alternate string keys and arbitrary values, and extraneous ones are ignored.\nfunc (c Context) Fields(fields interface{}) Context {\n\tc.l.context = appendFields(c.l.context, fields)\n\treturn c\n}\n\n// Dict adds the field key with the dict to the logger context.\nfunc (c Context) Dict(key string, dict *Event) Context {\n\tdict.buf = enc.AppendEndMarker(dict.buf)\n\tc.l.context = append(enc.AppendKey(c.l.context, key), dict.buf...)\n\tputEvent(dict)\n\treturn c\n}\n\n// Array adds the field key with an array to the event context.\n// Use zerolog.Arr() to create the array or pass a type that\n// implement the LogArrayMarshaler interface.\nfunc (c Context) Array(key string, arr LogArrayMarshaler) Context {\n\tc.l.context = enc.AppendKey(c.l.context, key)\n\tif arr, ok := arr.(*Array); ok {\n\t\tc.l.context = arr.write(c.l.context)\n\t\treturn c\n\t}\n\tvar a *Array\n\tif aa, ok := arr.(*Array); ok {\n\t\ta = aa\n\t} else {\n\t\ta = Arr()\n\t\tarr.MarshalZerologArray(a)\n\t}\n\tc.l.context = a.write(c.l.context)\n\treturn c\n}\n\n// Object marshals an object that implement the LogObjectMarshaler interface.\nfunc (c Context) Object(key string, obj LogObjectMarshaler) Context {\n\te := newEvent(levelWriterAdapter{ioutil.Discard}, 0)\n\te.Object(key, obj)\n\tc.l.context = enc.AppendObjectData(c.l.context, e.buf)\n\tputEvent(e)\n\treturn c\n}\n\n// EmbedObject marshals and Embeds an object that implement the LogObjectMarshaler interface.\nfunc (c Context) EmbedObject(obj LogObjectMarshaler) Context {\n\te := newEvent(levelWriterAdapter{ioutil.Discard}, 0)\n\te.EmbedObject(obj)\n\tc.l.context = enc.AppendObjectData(c.l.context, e.buf)\n\tputEvent(e)\n\treturn c\n}\n\n// Str adds the field key with val as a string to the logger context.\nfunc (c Context) Str(key, val string) Context {\n\tc.l.context = enc.AppendString(enc.AppendKey(c.l.context, key), val)\n\treturn c\n}\n\n// Strs adds the field key with val as a string to the logger context.\nfunc (c Context) Strs(key string, vals []string) Context {\n\tc.l.context = enc.AppendStrings(enc.AppendKey(c.l.context, key), vals)\n\treturn c\n}\n\n// Stringer adds the field key with val.String() (or null if val is nil) to the logger context.\nfunc (c Context) Stringer(key string, val fmt.Stringer) Context {\n\tif val != nil {\n\t\tc.l.context = enc.AppendString(enc.AppendKey(c.l.context, key), val.String())\n\t\treturn c\n\t}\n\n\tc.l.context = enc.AppendInterface(enc.AppendKey(c.l.context, key), nil)\n\treturn c\n}\n\n// Bytes adds the field key with val as a []byte to the logger context.\nfunc (c Context) Bytes(key string, val []byte) Context {\n\tc.l.context = enc.AppendBytes(enc.AppendKey(c.l.context, key), val)\n\treturn c\n}\n\n// Hex adds the field key with val as a hex string to the logger context.\nfunc (c Context) Hex(key string, val []byte) Context {\n\tc.l.context = enc.AppendHex(enc.AppendKey(c.l.context, key), val)\n\treturn c\n}\n\n// RawJSON adds already encoded JSON to context.\n//\n// No sanity check is performed on b; it must not contain carriage returns and\n// be valid JSON.\nfunc (c Context) RawJSON(key string, b []byte) Context {\n\tc.l.context = appendJSON(enc.AppendKey(c.l.context, key), b)\n\treturn c\n}\n\n// AnErr adds the field key with serialized err to the logger context.\nfunc (c Context) AnErr(key string, err error) Context {\n\tswitch m := ErrorMarshalFunc(err).(type) {\n\tcase nil:\n\t\treturn c\n\tcase LogObjectMarshaler:\n\t\treturn c.Object(key, m)\n\tcase error:\n\t\tif m == nil || isNilValue(m) {\n\t\t\treturn c\n\t\t} else {\n\t\t\treturn c.Str(key, m.Error())\n\t\t}\n\tcase string:\n\t\treturn c.Str(key, m)\n\tdefault:\n\t\treturn c.Interface(key, m)\n\t}\n}\n\n// Errs adds the field key with errs as an array of serialized errors to the\n// logger context.\nfunc (c Context) Errs(key string, errs []error) Context {\n\tarr := Arr()\n\tfor _, err := range errs {\n\t\tswitch m := ErrorMarshalFunc(err).(type) {\n\t\tcase LogObjectMarshaler:\n\t\t\tarr = arr.Object(m)\n\t\tcase error:\n\t\t\tif m == nil || isNilValue(m) {\n\t\t\t\tarr = arr.Interface(nil)\n\t\t\t} else {\n\t\t\t\tarr = arr.Str(m.Error())\n\t\t\t}\n\t\tcase string:\n\t\t\tarr = arr.Str(m)\n\t\tdefault:\n\t\t\tarr = arr.Interface(m)\n\t\t}\n\t}\n\n\treturn c.Array(key, arr)\n}\n\n// Err adds the field \"error\" with serialized err to the logger context.\nfunc (c Context) Err(err error) Context {\n\treturn c.AnErr(ErrorFieldName, err)\n}\n\n// Ctx adds the context.Context to the logger context. The context.Context is\n// not rendered in the error message, but is made available for hooks to use.\n// A typical use case is to extract tracing information from the\n// context.Context.\nfunc (c Context) Ctx(ctx context.Context) Context {\n\tc.l.ctx = ctx\n\treturn c\n}\n\n// Bool adds the field key with val as a bool to the logger context.\nfunc (c Context) Bool(key string, b bool) Context {\n\tc.l.context = enc.AppendBool(enc.AppendKey(c.l.context, key), b)\n\treturn c\n}\n\n// Bools adds the field key with val as a []bool to the logger context.\nfunc (c Context) Bools(key string, b []bool) Context {\n\tc.l.context = enc.AppendBools(enc.AppendKey(c.l.context, key), b)\n\treturn c\n}\n\n// Int adds the field key with i as a int to the logger context.\nfunc (c Context) Int(key string, i int) Context {\n\tc.l.context = enc.AppendInt(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Ints adds the field key with i as a []int to the logger context.\nfunc (c Context) Ints(key string, i []int) Context {\n\tc.l.context = enc.AppendInts(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Int8 adds the field key with i as a int8 to the logger context.\nfunc (c Context) Int8(key string, i int8) Context {\n\tc.l.context = enc.AppendInt8(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Ints8 adds the field key with i as a []int8 to the logger context.\nfunc (c Context) Ints8(key string, i []int8) Context {\n\tc.l.context = enc.AppendInts8(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Int16 adds the field key with i as a int16 to the logger context.\nfunc (c Context) Int16(key string, i int16) Context {\n\tc.l.context = enc.AppendInt16(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Ints16 adds the field key with i as a []int16 to the logger context.\nfunc (c Context) Ints16(key string, i []int16) Context {\n\tc.l.context = enc.AppendInts16(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Int32 adds the field key with i as a int32 to the logger context.\nfunc (c Context) Int32(key string, i int32) Context {\n\tc.l.context = enc.AppendInt32(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Ints32 adds the field key with i as a []int32 to the logger context.\nfunc (c Context) Ints32(key string, i []int32) Context {\n\tc.l.context = enc.AppendInts32(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Int64 adds the field key with i as a int64 to the logger context.\nfunc (c Context) Int64(key string, i int64) Context {\n\tc.l.context = enc.AppendInt64(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Ints64 adds the field key with i as a []int64 to the logger context.\nfunc (c Context) Ints64(key string, i []int64) Context {\n\tc.l.context = enc.AppendInts64(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Uint adds the field key with i as a uint to the logger context.\nfunc (c Context) Uint(key string, i uint) Context {\n\tc.l.context = enc.AppendUint(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Uints adds the field key with i as a []uint to the logger context.\nfunc (c Context) Uints(key string, i []uint) Context {\n\tc.l.context = enc.AppendUints(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Uint8 adds the field key with i as a uint8 to the logger context.\nfunc (c Context) Uint8(key string, i uint8) Context {\n\tc.l.context = enc.AppendUint8(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Uints8 adds the field key with i as a []uint8 to the logger context.\nfunc (c Context) Uints8(key string, i []uint8) Context {\n\tc.l.context = enc.AppendUints8(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Uint16 adds the field key with i as a uint16 to the logger context.\nfunc (c Context) Uint16(key string, i uint16) Context {\n\tc.l.context = enc.AppendUint16(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Uints16 adds the field key with i as a []uint16 to the logger context.\nfunc (c Context) Uints16(key string, i []uint16) Context {\n\tc.l.context = enc.AppendUints16(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Uint32 adds the field key with i as a uint32 to the logger context.\nfunc (c Context) Uint32(key string, i uint32) Context {\n\tc.l.context = enc.AppendUint32(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Uints32 adds the field key with i as a []uint32 to the logger context.\nfunc (c Context) Uints32(key string, i []uint32) Context {\n\tc.l.context = enc.AppendUints32(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Uint64 adds the field key with i as a uint64 to the logger context.\nfunc (c Context) Uint64(key string, i uint64) Context {\n\tc.l.context = enc.AppendUint64(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Uints64 adds the field key with i as a []uint64 to the logger context.\nfunc (c Context) Uints64(key string, i []uint64) Context {\n\tc.l.context = enc.AppendUints64(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\n// Float32 adds the field key with f as a float32 to the logger context.\nfunc (c Context) Float32(key string, f float32) Context {\n\tc.l.context = enc.AppendFloat32(enc.AppendKey(c.l.context, key), f)\n\treturn c\n}\n\n// Floats32 adds the field key with f as a []float32 to the logger context.\nfunc (c Context) Floats32(key string, f []float32) Context {\n\tc.l.context = enc.AppendFloats32(enc.AppendKey(c.l.context, key), f)\n\treturn c\n}\n\n// Float64 adds the field key with f as a float64 to the logger context.\nfunc (c Context) Float64(key string, f float64) Context {\n\tc.l.context = enc.AppendFloat64(enc.AppendKey(c.l.context, key), f)\n\treturn c\n}\n\n// Floats64 adds the field key with f as a []float64 to the logger context.\nfunc (c Context) Floats64(key string, f []float64) Context {\n\tc.l.context = enc.AppendFloats64(enc.AppendKey(c.l.context, key), f)\n\treturn c\n}\n\ntype timestampHook struct{}\n\nfunc (ts timestampHook) Run(e *Event, level Level, msg string) {\n\te.Timestamp()\n}\n\nvar th = timestampHook{}\n\n// Timestamp adds the current local time to the logger context with the \"time\" key, formatted using zerolog.TimeFieldFormat.\n// To customize the key name, change zerolog.TimestampFieldName.\n// To customize the time format, change zerolog.TimeFieldFormat.\n//\n// NOTE: It won't dedupe the \"time\" key if the *Context has one already.\nfunc (c Context) Timestamp() Context {\n\tc.l = c.l.Hook(th)\n\treturn c\n}\n\n// Time adds the field key with t formated as string using zerolog.TimeFieldFormat.\nfunc (c Context) Time(key string, t time.Time) Context {\n\tc.l.context = enc.AppendTime(enc.AppendKey(c.l.context, key), t, TimeFieldFormat)\n\treturn c\n}\n\n// Times adds the field key with t formated as string using zerolog.TimeFieldFormat.\nfunc (c Context) Times(key string, t []time.Time) Context {\n\tc.l.context = enc.AppendTimes(enc.AppendKey(c.l.context, key), t, TimeFieldFormat)\n\treturn c\n}\n\n// Dur adds the fields key with d divided by unit and stored as a float.\nfunc (c Context) Dur(key string, d time.Duration) Context {\n\tc.l.context = enc.AppendDuration(enc.AppendKey(c.l.context, key), d, DurationFieldUnit, DurationFieldInteger)\n\treturn c\n}\n\n// Durs adds the fields key with d divided by unit and stored as a float.\nfunc (c Context) Durs(key string, d []time.Duration) Context {\n\tc.l.context = enc.AppendDurations(enc.AppendKey(c.l.context, key), d, DurationFieldUnit, DurationFieldInteger)\n\treturn c\n}\n\n// Interface adds the field key with obj marshaled using reflection.\nfunc (c Context) Interface(key string, i interface{}) Context {\n\tc.l.context = enc.AppendInterface(enc.AppendKey(c.l.context, key), i)\n\treturn c\n}\n\ntype callerHook struct {\n\tcallerSkipFrameCount int\n}\n\nfunc newCallerHook(skipFrameCount int) callerHook {\n\treturn callerHook{callerSkipFrameCount: skipFrameCount}\n}\n\nfunc (ch callerHook) Run(e *Event, level Level, msg string) {\n\tswitch ch.callerSkipFrameCount {\n\tcase useGlobalSkipFrameCount:\n\t\t// Extra frames to skip (added by hook infra).\n\t\te.caller(CallerSkipFrameCount + contextCallerSkipFrameCount)\n\tdefault:\n\t\t// Extra frames to skip (added by hook infra).\n\t\te.caller(ch.callerSkipFrameCount + contextCallerSkipFrameCount)\n\t}\n}\n\n// useGlobalSkipFrameCount acts as a flag to informat callerHook.Run\n// to use the global CallerSkipFrameCount.\nconst useGlobalSkipFrameCount = math.MinInt32\n\n// ch is the default caller hook using the global CallerSkipFrameCount.\nvar ch = newCallerHook(useGlobalSkipFrameCount)\n\n// Caller adds the file:line of the caller with the zerolog.CallerFieldName key.\nfunc (c Context) Caller() Context {\n\tc.l = c.l.Hook(ch)\n\treturn c\n}\n\n// CallerWithSkipFrameCount adds the file:line of the caller with the zerolog.CallerFieldName key.\n// The specified skipFrameCount int will override the global CallerSkipFrameCount for this context's respective logger.\n// If set to -1 the global CallerSkipFrameCount will be used.\nfunc (c Context) CallerWithSkipFrameCount(skipFrameCount int) Context {\n\tc.l = c.l.Hook(newCallerHook(skipFrameCount))\n\treturn c\n}\n\n// Stack enables stack trace printing for the error passed to Err().\nfunc (c Context) Stack() Context {\n\tc.l.stack = true\n\treturn c\n}\n\n// IPAddr adds IPv4 or IPv6 Address to the context\nfunc (c Context) IPAddr(key string, ip net.IP) Context {\n\tc.l.context = enc.AppendIPAddr(enc.AppendKey(c.l.context, key), ip)\n\treturn c\n}\n\n// IPPrefix adds IPv4 or IPv6 Prefix (address and mask) to the context\nfunc (c Context) IPPrefix(key string, pfx net.IPNet) Context {\n\tc.l.context = enc.AppendIPPrefix(enc.AppendKey(c.l.context, key), pfx)\n\treturn c\n}\n\n// MACAddr adds MAC address to the context\nfunc (c Context) MACAddr(key string, ha net.HardwareAddr) Context {\n\tc.l.context = enc.AppendMACAddr(enc.AppendKey(c.l.context, key), ha)\n\treturn c\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/ctx.go",
    "content": "package zerolog\n\nimport (\n\t\"context\"\n)\n\nvar disabledLogger *Logger\n\nfunc init() {\n\tSetGlobalLevel(TraceLevel)\n\tl := Nop()\n\tdisabledLogger = &l\n}\n\ntype ctxKey struct{}\n\n// WithContext returns a copy of ctx with the receiver attached. The Logger\n// attached to the provided Context (if any) will not be effected.  If the\n// receiver's log level is Disabled it will only be attached to the returned\n// Context if the provided Context has a previously attached Logger. If the\n// provided Context has no attached Logger, a Disabled Logger will not be\n// attached.\n//\n// Note: to modify the existing Logger attached to a Context (instead of\n// replacing it in a new Context), use UpdateContext with the following\n// notation:\n//\n//     ctx := r.Context()\n//     l := zerolog.Ctx(ctx)\n//     l.UpdateContext(func(c Context) Context {\n//         return c.Str(\"bar\", \"baz\")\n//     })\n//\nfunc (l Logger) WithContext(ctx context.Context) context.Context {\n\tif _, ok := ctx.Value(ctxKey{}).(*Logger); !ok && l.level == Disabled {\n\t\t// Do not store disabled logger.\n\t\treturn ctx\n\t}\n\treturn context.WithValue(ctx, ctxKey{}, &l)\n}\n\n// Ctx returns the Logger associated with the ctx. If no logger\n// is associated, DefaultContextLogger is returned, unless DefaultContextLogger\n// is nil, in which case a disabled logger is returned.\nfunc Ctx(ctx context.Context) *Logger {\n\tif l, ok := ctx.Value(ctxKey{}).(*Logger); ok {\n\t\treturn l\n\t} else if l = DefaultContextLogger; l != nil {\n\t\treturn l\n\t}\n\treturn disabledLogger\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/encoder.go",
    "content": "package zerolog\n\nimport (\n\t\"net\"\n\t\"time\"\n)\n\ntype encoder interface {\n\tAppendArrayDelim(dst []byte) []byte\n\tAppendArrayEnd(dst []byte) []byte\n\tAppendArrayStart(dst []byte) []byte\n\tAppendBeginMarker(dst []byte) []byte\n\tAppendBool(dst []byte, val bool) []byte\n\tAppendBools(dst []byte, vals []bool) []byte\n\tAppendBytes(dst, s []byte) []byte\n\tAppendDuration(dst []byte, d time.Duration, unit time.Duration, useInt bool) []byte\n\tAppendDurations(dst []byte, vals []time.Duration, unit time.Duration, useInt bool) []byte\n\tAppendEndMarker(dst []byte) []byte\n\tAppendFloat32(dst []byte, val float32) []byte\n\tAppendFloat64(dst []byte, val float64) []byte\n\tAppendFloats32(dst []byte, vals []float32) []byte\n\tAppendFloats64(dst []byte, vals []float64) []byte\n\tAppendHex(dst, s []byte) []byte\n\tAppendIPAddr(dst []byte, ip net.IP) []byte\n\tAppendIPPrefix(dst []byte, pfx net.IPNet) []byte\n\tAppendInt(dst []byte, val int) []byte\n\tAppendInt16(dst []byte, val int16) []byte\n\tAppendInt32(dst []byte, val int32) []byte\n\tAppendInt64(dst []byte, val int64) []byte\n\tAppendInt8(dst []byte, val int8) []byte\n\tAppendInterface(dst []byte, i interface{}) []byte\n\tAppendInts(dst []byte, vals []int) []byte\n\tAppendInts16(dst []byte, vals []int16) []byte\n\tAppendInts32(dst []byte, vals []int32) []byte\n\tAppendInts64(dst []byte, vals []int64) []byte\n\tAppendInts8(dst []byte, vals []int8) []byte\n\tAppendKey(dst []byte, key string) []byte\n\tAppendLineBreak(dst []byte) []byte\n\tAppendMACAddr(dst []byte, ha net.HardwareAddr) []byte\n\tAppendNil(dst []byte) []byte\n\tAppendObjectData(dst []byte, o []byte) []byte\n\tAppendString(dst []byte, s string) []byte\n\tAppendStrings(dst []byte, vals []string) []byte\n\tAppendTime(dst []byte, t time.Time, format string) []byte\n\tAppendTimes(dst []byte, vals []time.Time, format string) []byte\n\tAppendUint(dst []byte, val uint) []byte\n\tAppendUint16(dst []byte, val uint16) []byte\n\tAppendUint32(dst []byte, val uint32) []byte\n\tAppendUint64(dst []byte, val uint64) []byte\n\tAppendUint8(dst []byte, val uint8) []byte\n\tAppendUints(dst []byte, vals []uint) []byte\n\tAppendUints16(dst []byte, vals []uint16) []byte\n\tAppendUints32(dst []byte, vals []uint32) []byte\n\tAppendUints64(dst []byte, vals []uint64) []byte\n\tAppendUints8(dst []byte, vals []uint8) []byte\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/encoder_cbor.go",
    "content": "// +build binary_log\n\npackage zerolog\n\n// This file contains bindings to do binary encoding.\n\nimport (\n\t\"github.com/rs/zerolog/internal/cbor\"\n)\n\nvar (\n\t_ encoder = (*cbor.Encoder)(nil)\n\n\tenc = cbor.Encoder{}\n)\n\nfunc init() {\n\t// using closure to reflect the changes at runtime.\n\tcbor.JSONMarshalFunc = func(v interface{}) ([]byte, error) {\n\t\treturn InterfaceMarshalFunc(v)\n\t}\n}\n\nfunc appendJSON(dst []byte, j []byte) []byte {\n\treturn cbor.AppendEmbeddedJSON(dst, j)\n}\nfunc appendCBOR(dst []byte, c []byte) []byte {\n\treturn cbor.AppendEmbeddedCBOR(dst, c)\n}\n\n// decodeIfBinaryToString - converts a binary formatted log msg to a\n// JSON formatted String Log message.\nfunc decodeIfBinaryToString(in []byte) string {\n\treturn cbor.DecodeIfBinaryToString(in)\n}\n\nfunc decodeObjectToStr(in []byte) string {\n\treturn cbor.DecodeObjectToStr(in)\n}\n\n// decodeIfBinaryToBytes - converts a binary formatted log msg to a\n// JSON formatted Bytes Log message.\nfunc decodeIfBinaryToBytes(in []byte) []byte {\n\treturn cbor.DecodeIfBinaryToBytes(in)\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/encoder_json.go",
    "content": "// +build !binary_log\n\npackage zerolog\n\n// encoder_json.go file contains bindings to generate\n// JSON encoded byte stream.\n\nimport (\n\t\"encoding/base64\"\n\t\"github.com/rs/zerolog/internal/json\"\n)\n\nvar (\n\t_ encoder = (*json.Encoder)(nil)\n\n\tenc = json.Encoder{}\n)\n\nfunc init() {\n\t// using closure to reflect the changes at runtime.\n\tjson.JSONMarshalFunc = func(v interface{}) ([]byte, error) {\n\t\treturn InterfaceMarshalFunc(v)\n\t}\n}\n\nfunc appendJSON(dst []byte, j []byte) []byte {\n\treturn append(dst, j...)\n}\nfunc appendCBOR(dst []byte, cbor []byte) []byte {\n\tdst = append(dst, []byte(\"\\\"data:application/cbor;base64,\")...)\n\tl := len(dst)\n\tenc := base64.StdEncoding\n\tn := enc.EncodedLen(len(cbor))\n\tfor i := 0; i < n; i++ {\n\t\tdst = append(dst, '.')\n\t}\n\tenc.Encode(dst[l:], cbor)\n\treturn append(dst, '\"')\n}\n\nfunc decodeIfBinaryToString(in []byte) string {\n\treturn string(in)\n}\n\nfunc decodeObjectToStr(in []byte) string {\n\treturn string(in)\n}\n\nfunc decodeIfBinaryToBytes(in []byte) []byte {\n\treturn in\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/event.go",
    "content": "package zerolog\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net\"\n\t\"os\"\n\t\"runtime\"\n\t\"sync\"\n\t\"time\"\n)\n\nvar eventPool = &sync.Pool{\n\tNew: func() interface{} {\n\t\treturn &Event{\n\t\t\tbuf: make([]byte, 0, 500),\n\t\t}\n\t},\n}\n\n// Event represents a log event. It is instanced by one of the level method of\n// Logger and finalized by the Msg or Msgf method.\ntype Event struct {\n\tbuf       []byte\n\tw         LevelWriter\n\tlevel     Level\n\tdone      func(msg string)\n\tstack     bool            // enable error stack trace\n\tch        []Hook          // hooks from context\n\tskipFrame int             // The number of additional frames to skip when printing the caller.\n\tctx       context.Context // Optional Go context for event\n}\n\nfunc putEvent(e *Event) {\n\t// Proper usage of a sync.Pool requires each entry to have approximately\n\t// the same memory cost. To obtain this property when the stored type\n\t// contains a variably-sized buffer, we add a hard limit on the maximum buffer\n\t// to place back in the pool.\n\t//\n\t// See https://golang.org/issue/23199\n\tconst maxSize = 1 << 16 // 64KiB\n\tif cap(e.buf) > maxSize {\n\t\treturn\n\t}\n\teventPool.Put(e)\n}\n\n// LogObjectMarshaler provides a strongly-typed and encoding-agnostic interface\n// to be implemented by types used with Event/Context's Object methods.\ntype LogObjectMarshaler interface {\n\tMarshalZerologObject(e *Event)\n}\n\n// LogArrayMarshaler provides a strongly-typed and encoding-agnostic interface\n// to be implemented by types used with Event/Context's Array methods.\ntype LogArrayMarshaler interface {\n\tMarshalZerologArray(a *Array)\n}\n\nfunc newEvent(w LevelWriter, level Level) *Event {\n\te := eventPool.Get().(*Event)\n\te.buf = e.buf[:0]\n\te.ch = nil\n\te.buf = enc.AppendBeginMarker(e.buf)\n\te.w = w\n\te.level = level\n\te.stack = false\n\te.skipFrame = 0\n\treturn e\n}\n\nfunc (e *Event) write() (err error) {\n\tif e == nil {\n\t\treturn nil\n\t}\n\tif e.level != Disabled {\n\t\te.buf = enc.AppendEndMarker(e.buf)\n\t\te.buf = enc.AppendLineBreak(e.buf)\n\t\tif e.w != nil {\n\t\t\t_, err = e.w.WriteLevel(e.level, e.buf)\n\t\t}\n\t}\n\tputEvent(e)\n\treturn\n}\n\n// Enabled return false if the *Event is going to be filtered out by\n// log level or sampling.\nfunc (e *Event) Enabled() bool {\n\treturn e != nil && e.level != Disabled\n}\n\n// Discard disables the event so Msg(f) won't print it.\nfunc (e *Event) Discard() *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.level = Disabled\n\treturn nil\n}\n\n// Msg sends the *Event with msg added as the message field if not empty.\n//\n// NOTICE: once this method is called, the *Event should be disposed.\n// Calling Msg twice can have unexpected result.\nfunc (e *Event) Msg(msg string) {\n\tif e == nil {\n\t\treturn\n\t}\n\te.msg(msg)\n}\n\n// Send is equivalent to calling Msg(\"\").\n//\n// NOTICE: once this method is called, the *Event should be disposed.\nfunc (e *Event) Send() {\n\tif e == nil {\n\t\treturn\n\t}\n\te.msg(\"\")\n}\n\n// Msgf sends the event with formatted msg added as the message field if not empty.\n//\n// NOTICE: once this method is called, the *Event should be disposed.\n// Calling Msgf twice can have unexpected result.\nfunc (e *Event) Msgf(format string, v ...interface{}) {\n\tif e == nil {\n\t\treturn\n\t}\n\te.msg(fmt.Sprintf(format, v...))\n}\n\nfunc (e *Event) MsgFunc(createMsg func() string) {\n\tif e == nil {\n\t\treturn\n\t}\n\te.msg(createMsg())\n}\n\nfunc (e *Event) msg(msg string) {\n\tfor _, hook := range e.ch {\n\t\thook.Run(e, e.level, msg)\n\t}\n\tif msg != \"\" {\n\t\te.buf = enc.AppendString(enc.AppendKey(e.buf, MessageFieldName), msg)\n\t}\n\tif e.done != nil {\n\t\tdefer e.done(msg)\n\t}\n\tif err := e.write(); err != nil {\n\t\tif ErrorHandler != nil {\n\t\t\tErrorHandler(err)\n\t\t} else {\n\t\t\tfmt.Fprintf(os.Stderr, \"zerolog: could not write event: %v\\n\", err)\n\t\t}\n\t}\n}\n\n// Fields is a helper function to use a map or slice to set fields using type assertion.\n// Only map[string]interface{} and []interface{} are accepted. []interface{} must\n// alternate string keys and arbitrary values, and extraneous ones are ignored.\nfunc (e *Event) Fields(fields interface{}) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = appendFields(e.buf, fields)\n\treturn e\n}\n\n// Dict adds the field key with a dict to the event context.\n// Use zerolog.Dict() to create the dictionary.\nfunc (e *Event) Dict(key string, dict *Event) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\tdict.buf = enc.AppendEndMarker(dict.buf)\n\te.buf = append(enc.AppendKey(e.buf, key), dict.buf...)\n\tputEvent(dict)\n\treturn e\n}\n\n// Dict creates an Event to be used with the *Event.Dict method.\n// Call usual field methods like Str, Int etc to add fields to this\n// event and give it as argument the *Event.Dict method.\nfunc Dict() *Event {\n\treturn newEvent(nil, 0)\n}\n\n// Array adds the field key with an array to the event context.\n// Use zerolog.Arr() to create the array or pass a type that\n// implement the LogArrayMarshaler interface.\nfunc (e *Event) Array(key string, arr LogArrayMarshaler) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendKey(e.buf, key)\n\tvar a *Array\n\tif aa, ok := arr.(*Array); ok {\n\t\ta = aa\n\t} else {\n\t\ta = Arr()\n\t\tarr.MarshalZerologArray(a)\n\t}\n\te.buf = a.write(e.buf)\n\treturn e\n}\n\nfunc (e *Event) appendObject(obj LogObjectMarshaler) {\n\te.buf = enc.AppendBeginMarker(e.buf)\n\tobj.MarshalZerologObject(e)\n\te.buf = enc.AppendEndMarker(e.buf)\n}\n\n// Object marshals an object that implement the LogObjectMarshaler interface.\nfunc (e *Event) Object(key string, obj LogObjectMarshaler) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendKey(e.buf, key)\n\tif obj == nil {\n\t\te.buf = enc.AppendNil(e.buf)\n\n\t\treturn e\n\t}\n\n\te.appendObject(obj)\n\treturn e\n}\n\n// Func allows an anonymous func to run only if the event is enabled.\nfunc (e *Event) Func(f func(e *Event)) *Event {\n\tif e != nil && e.Enabled() {\n\t\tf(e)\n\t}\n\treturn e\n}\n\n// EmbedObject marshals an object that implement the LogObjectMarshaler interface.\nfunc (e *Event) EmbedObject(obj LogObjectMarshaler) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\tif obj == nil {\n\t\treturn e\n\t}\n\tobj.MarshalZerologObject(e)\n\treturn e\n}\n\n// Str adds the field key with val as a string to the *Event context.\nfunc (e *Event) Str(key, val string) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendString(enc.AppendKey(e.buf, key), val)\n\treturn e\n}\n\n// Strs adds the field key with vals as a []string to the *Event context.\nfunc (e *Event) Strs(key string, vals []string) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendStrings(enc.AppendKey(e.buf, key), vals)\n\treturn e\n}\n\n// Stringer adds the field key with val.String() (or null if val is nil)\n// to the *Event context.\nfunc (e *Event) Stringer(key string, val fmt.Stringer) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendStringer(enc.AppendKey(e.buf, key), val)\n\treturn e\n}\n\n// Stringers adds the field key with vals where each individual val\n// is used as val.String() (or null if val is empty) to the *Event\n// context.\nfunc (e *Event) Stringers(key string, vals []fmt.Stringer) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendStringers(enc.AppendKey(e.buf, key), vals)\n\treturn e\n}\n\n// Bytes adds the field key with val as a string to the *Event context.\n//\n// Runes outside of normal ASCII ranges will be hex-encoded in the resulting\n// JSON.\nfunc (e *Event) Bytes(key string, val []byte) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendBytes(enc.AppendKey(e.buf, key), val)\n\treturn e\n}\n\n// Hex adds the field key with val as a hex string to the *Event context.\nfunc (e *Event) Hex(key string, val []byte) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendHex(enc.AppendKey(e.buf, key), val)\n\treturn e\n}\n\n// RawJSON adds already encoded JSON to the log line under key.\n//\n// No sanity check is performed on b; it must not contain carriage returns and\n// be valid JSON.\nfunc (e *Event) RawJSON(key string, b []byte) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = appendJSON(enc.AppendKey(e.buf, key), b)\n\treturn e\n}\n\n// RawCBOR adds already encoded CBOR to the log line under key.\n//\n// No sanity check is performed on b\n// Note: The full featureset of CBOR is supported as data will not be mapped to json but stored as data-url\nfunc (e *Event) RawCBOR(key string, b []byte) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = appendCBOR(enc.AppendKey(e.buf, key), b)\n\treturn e\n}\n\n// AnErr adds the field key with serialized err to the *Event context.\n// If err is nil, no field is added.\nfunc (e *Event) AnErr(key string, err error) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\tswitch m := ErrorMarshalFunc(err).(type) {\n\tcase nil:\n\t\treturn e\n\tcase LogObjectMarshaler:\n\t\treturn e.Object(key, m)\n\tcase error:\n\t\tif m == nil || isNilValue(m) {\n\t\t\treturn e\n\t\t} else {\n\t\t\treturn e.Str(key, m.Error())\n\t\t}\n\tcase string:\n\t\treturn e.Str(key, m)\n\tdefault:\n\t\treturn e.Interface(key, m)\n\t}\n}\n\n// Errs adds the field key with errs as an array of serialized errors to the\n// *Event context.\nfunc (e *Event) Errs(key string, errs []error) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\tarr := Arr()\n\tfor _, err := range errs {\n\t\tswitch m := ErrorMarshalFunc(err).(type) {\n\t\tcase LogObjectMarshaler:\n\t\t\tarr = arr.Object(m)\n\t\tcase error:\n\t\t\tarr = arr.Err(m)\n\t\tcase string:\n\t\t\tarr = arr.Str(m)\n\t\tdefault:\n\t\t\tarr = arr.Interface(m)\n\t\t}\n\t}\n\n\treturn e.Array(key, arr)\n}\n\n// Err adds the field \"error\" with serialized err to the *Event context.\n// If err is nil, no field is added.\n//\n// To customize the key name, change zerolog.ErrorFieldName.\n//\n// If Stack() has been called before and zerolog.ErrorStackMarshaler is defined,\n// the err is passed to ErrorStackMarshaler and the result is appended to the\n// zerolog.ErrorStackFieldName.\nfunc (e *Event) Err(err error) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\tif e.stack && ErrorStackMarshaler != nil {\n\t\tswitch m := ErrorStackMarshaler(err).(type) {\n\t\tcase nil:\n\t\tcase LogObjectMarshaler:\n\t\t\te.Object(ErrorStackFieldName, m)\n\t\tcase error:\n\t\t\tif m != nil && !isNilValue(m) {\n\t\t\t\te.Str(ErrorStackFieldName, m.Error())\n\t\t\t}\n\t\tcase string:\n\t\t\te.Str(ErrorStackFieldName, m)\n\t\tdefault:\n\t\t\te.Interface(ErrorStackFieldName, m)\n\t\t}\n\t}\n\treturn e.AnErr(ErrorFieldName, err)\n}\n\n// Stack enables stack trace printing for the error passed to Err().\n//\n// ErrorStackMarshaler must be set for this method to do something.\nfunc (e *Event) Stack() *Event {\n\tif e != nil {\n\t\te.stack = true\n\t}\n\treturn e\n}\n\n// Ctx adds the Go Context to the *Event context.  The context is not rendered\n// in the output message, but is available to hooks and to Func() calls via the\n// GetCtx() accessor. A typical use case is to extract tracing information from\n// the Go Ctx.\nfunc (e *Event) Ctx(ctx context.Context) *Event {\n\tif e != nil {\n\t\te.ctx = ctx\n\t}\n\treturn e\n}\n\n// GetCtx retrieves the Go context.Context which is optionally stored in the\n// Event.  This allows Hooks and functions passed to Func() to retrieve values\n// which are stored in the context.Context.  This can be useful in tracing,\n// where span information is commonly propagated in the context.Context.\nfunc (e *Event) GetCtx() context.Context {\n\tif e == nil || e.ctx == nil {\n\t\treturn context.Background()\n\t}\n\treturn e.ctx\n}\n\n// Bool adds the field key with val as a bool to the *Event context.\nfunc (e *Event) Bool(key string, b bool) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendBool(enc.AppendKey(e.buf, key), b)\n\treturn e\n}\n\n// Bools adds the field key with val as a []bool to the *Event context.\nfunc (e *Event) Bools(key string, b []bool) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendBools(enc.AppendKey(e.buf, key), b)\n\treturn e\n}\n\n// Int adds the field key with i as a int to the *Event context.\nfunc (e *Event) Int(key string, i int) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendInt(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Ints adds the field key with i as a []int to the *Event context.\nfunc (e *Event) Ints(key string, i []int) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendInts(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Int8 adds the field key with i as a int8 to the *Event context.\nfunc (e *Event) Int8(key string, i int8) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendInt8(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Ints8 adds the field key with i as a []int8 to the *Event context.\nfunc (e *Event) Ints8(key string, i []int8) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendInts8(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Int16 adds the field key with i as a int16 to the *Event context.\nfunc (e *Event) Int16(key string, i int16) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendInt16(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Ints16 adds the field key with i as a []int16 to the *Event context.\nfunc (e *Event) Ints16(key string, i []int16) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendInts16(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Int32 adds the field key with i as a int32 to the *Event context.\nfunc (e *Event) Int32(key string, i int32) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendInt32(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Ints32 adds the field key with i as a []int32 to the *Event context.\nfunc (e *Event) Ints32(key string, i []int32) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendInts32(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Int64 adds the field key with i as a int64 to the *Event context.\nfunc (e *Event) Int64(key string, i int64) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendInt64(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Ints64 adds the field key with i as a []int64 to the *Event context.\nfunc (e *Event) Ints64(key string, i []int64) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendInts64(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Uint adds the field key with i as a uint to the *Event context.\nfunc (e *Event) Uint(key string, i uint) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendUint(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Uints adds the field key with i as a []int to the *Event context.\nfunc (e *Event) Uints(key string, i []uint) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendUints(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Uint8 adds the field key with i as a uint8 to the *Event context.\nfunc (e *Event) Uint8(key string, i uint8) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendUint8(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Uints8 adds the field key with i as a []int8 to the *Event context.\nfunc (e *Event) Uints8(key string, i []uint8) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendUints8(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Uint16 adds the field key with i as a uint16 to the *Event context.\nfunc (e *Event) Uint16(key string, i uint16) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendUint16(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Uints16 adds the field key with i as a []int16 to the *Event context.\nfunc (e *Event) Uints16(key string, i []uint16) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendUints16(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Uint32 adds the field key with i as a uint32 to the *Event context.\nfunc (e *Event) Uint32(key string, i uint32) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendUint32(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Uints32 adds the field key with i as a []int32 to the *Event context.\nfunc (e *Event) Uints32(key string, i []uint32) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendUints32(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Uint64 adds the field key with i as a uint64 to the *Event context.\nfunc (e *Event) Uint64(key string, i uint64) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendUint64(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Uints64 adds the field key with i as a []int64 to the *Event context.\nfunc (e *Event) Uints64(key string, i []uint64) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendUints64(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Float32 adds the field key with f as a float32 to the *Event context.\nfunc (e *Event) Float32(key string, f float32) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendFloat32(enc.AppendKey(e.buf, key), f)\n\treturn e\n}\n\n// Floats32 adds the field key with f as a []float32 to the *Event context.\nfunc (e *Event) Floats32(key string, f []float32) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendFloats32(enc.AppendKey(e.buf, key), f)\n\treturn e\n}\n\n// Float64 adds the field key with f as a float64 to the *Event context.\nfunc (e *Event) Float64(key string, f float64) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendFloat64(enc.AppendKey(e.buf, key), f)\n\treturn e\n}\n\n// Floats64 adds the field key with f as a []float64 to the *Event context.\nfunc (e *Event) Floats64(key string, f []float64) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendFloats64(enc.AppendKey(e.buf, key), f)\n\treturn e\n}\n\n// Timestamp adds the current local time as UNIX timestamp to the *Event context with the \"time\" key.\n// To customize the key name, change zerolog.TimestampFieldName.\n//\n// NOTE: It won't dedupe the \"time\" key if the *Event (or *Context) has one\n// already.\nfunc (e *Event) Timestamp() *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendTime(enc.AppendKey(e.buf, TimestampFieldName), TimestampFunc(), TimeFieldFormat)\n\treturn e\n}\n\n// Time adds the field key with t formatted as string using zerolog.TimeFieldFormat.\nfunc (e *Event) Time(key string, t time.Time) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendTime(enc.AppendKey(e.buf, key), t, TimeFieldFormat)\n\treturn e\n}\n\n// Times adds the field key with t formatted as string using zerolog.TimeFieldFormat.\nfunc (e *Event) Times(key string, t []time.Time) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendTimes(enc.AppendKey(e.buf, key), t, TimeFieldFormat)\n\treturn e\n}\n\n// Dur adds the field key with duration d stored as zerolog.DurationFieldUnit.\n// If zerolog.DurationFieldInteger is true, durations are rendered as integer\n// instead of float.\nfunc (e *Event) Dur(key string, d time.Duration) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendDuration(enc.AppendKey(e.buf, key), d, DurationFieldUnit, DurationFieldInteger)\n\treturn e\n}\n\n// Durs adds the field key with duration d stored as zerolog.DurationFieldUnit.\n// If zerolog.DurationFieldInteger is true, durations are rendered as integer\n// instead of float.\nfunc (e *Event) Durs(key string, d []time.Duration) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendDurations(enc.AppendKey(e.buf, key), d, DurationFieldUnit, DurationFieldInteger)\n\treturn e\n}\n\n// TimeDiff adds the field key with positive duration between time t and start.\n// If time t is not greater than start, duration will be 0.\n// Duration format follows the same principle as Dur().\nfunc (e *Event) TimeDiff(key string, t time.Time, start time.Time) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\tvar d time.Duration\n\tif t.After(start) {\n\t\td = t.Sub(start)\n\t}\n\te.buf = enc.AppendDuration(enc.AppendKey(e.buf, key), d, DurationFieldUnit, DurationFieldInteger)\n\treturn e\n}\n\n// Any is a wrapper around Event.Interface.\nfunc (e *Event) Any(key string, i interface{}) *Event {\n\treturn e.Interface(key, i)\n}\n\n// Interface adds the field key with i marshaled using reflection.\nfunc (e *Event) Interface(key string, i interface{}) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\tif obj, ok := i.(LogObjectMarshaler); ok {\n\t\treturn e.Object(key, obj)\n\t}\n\te.buf = enc.AppendInterface(enc.AppendKey(e.buf, key), i)\n\treturn e\n}\n\n// Type adds the field key with val's type using reflection.\nfunc (e *Event) Type(key string, val interface{}) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendType(enc.AppendKey(e.buf, key), val)\n\treturn e\n}\n\n// CallerSkipFrame instructs any future Caller calls to skip the specified number of frames.\n// This includes those added via hooks from the context.\nfunc (e *Event) CallerSkipFrame(skip int) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.skipFrame += skip\n\treturn e\n}\n\n// Caller adds the file:line of the caller with the zerolog.CallerFieldName key.\n// The argument skip is the number of stack frames to ascend\n// Skip If not passed, use the global variable CallerSkipFrameCount\nfunc (e *Event) Caller(skip ...int) *Event {\n\tsk := CallerSkipFrameCount\n\tif len(skip) > 0 {\n\t\tsk = skip[0] + CallerSkipFrameCount\n\t}\n\treturn e.caller(sk)\n}\n\nfunc (e *Event) caller(skip int) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\tpc, file, line, ok := runtime.Caller(skip + e.skipFrame)\n\tif !ok {\n\t\treturn e\n\t}\n\te.buf = enc.AppendString(enc.AppendKey(e.buf, CallerFieldName), CallerMarshalFunc(pc, file, line))\n\treturn e\n}\n\n// IPAddr adds IPv4 or IPv6 Address to the event\nfunc (e *Event) IPAddr(key string, ip net.IP) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendIPAddr(enc.AppendKey(e.buf, key), ip)\n\treturn e\n}\n\n// IPPrefix adds IPv4 or IPv6 Prefix (address and mask) to the event\nfunc (e *Event) IPPrefix(key string, pfx net.IPNet) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendIPPrefix(enc.AppendKey(e.buf, key), pfx)\n\treturn e\n}\n\n// MACAddr adds MAC address to the event\nfunc (e *Event) MACAddr(key string, ha net.HardwareAddr) *Event {\n\tif e == nil {\n\t\treturn e\n\t}\n\te.buf = enc.AppendMACAddr(enc.AppendKey(e.buf, key), ha)\n\treturn e\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/fields.go",
    "content": "package zerolog\n\nimport (\n\t\"encoding/json\"\n\t\"net\"\n\t\"sort\"\n\t\"time\"\n\t\"unsafe\"\n)\n\nfunc isNilValue(i interface{}) bool {\n\treturn (*[2]uintptr)(unsafe.Pointer(&i))[1] == 0\n}\n\nfunc appendFields(dst []byte, fields interface{}) []byte {\n\tswitch fields := fields.(type) {\n\tcase []interface{}:\n\t\tif n := len(fields); n&0x1 == 1 { // odd number\n\t\t\tfields = fields[:n-1]\n\t\t}\n\t\tdst = appendFieldList(dst, fields)\n\tcase map[string]interface{}:\n\t\tkeys := make([]string, 0, len(fields))\n\t\tfor key := range fields {\n\t\t\tkeys = append(keys, key)\n\t\t}\n\t\tsort.Strings(keys)\n\t\tkv := make([]interface{}, 2)\n\t\tfor _, key := range keys {\n\t\t\tkv[0], kv[1] = key, fields[key]\n\t\t\tdst = appendFieldList(dst, kv)\n\t\t}\n\t}\n\treturn dst\n}\n\nfunc appendFieldList(dst []byte, kvList []interface{}) []byte {\n\tfor i, n := 0, len(kvList); i < n; i += 2 {\n\t\tkey, val := kvList[i], kvList[i+1]\n\t\tif key, ok := key.(string); ok {\n\t\t\tdst = enc.AppendKey(dst, key)\n\t\t} else {\n\t\t\tcontinue\n\t\t}\n\t\tif val, ok := val.(LogObjectMarshaler); ok {\n\t\t\te := newEvent(nil, 0)\n\t\t\te.buf = e.buf[:0]\n\t\t\te.appendObject(val)\n\t\t\tdst = append(dst, e.buf...)\n\t\t\tputEvent(e)\n\t\t\tcontinue\n\t\t}\n\t\tswitch val := val.(type) {\n\t\tcase string:\n\t\t\tdst = enc.AppendString(dst, val)\n\t\tcase []byte:\n\t\t\tdst = enc.AppendBytes(dst, val)\n\t\tcase error:\n\t\t\tswitch m := ErrorMarshalFunc(val).(type) {\n\t\t\tcase LogObjectMarshaler:\n\t\t\t\te := newEvent(nil, 0)\n\t\t\t\te.buf = e.buf[:0]\n\t\t\t\te.appendObject(m)\n\t\t\t\tdst = append(dst, e.buf...)\n\t\t\t\tputEvent(e)\n\t\t\tcase error:\n\t\t\t\tif m == nil || isNilValue(m) {\n\t\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t\t} else {\n\t\t\t\t\tdst = enc.AppendString(dst, m.Error())\n\t\t\t\t}\n\t\t\tcase string:\n\t\t\t\tdst = enc.AppendString(dst, m)\n\t\t\tdefault:\n\t\t\t\tdst = enc.AppendInterface(dst, m)\n\t\t\t}\n\t\tcase []error:\n\t\t\tdst = enc.AppendArrayStart(dst)\n\t\t\tfor i, err := range val {\n\t\t\t\tswitch m := ErrorMarshalFunc(err).(type) {\n\t\t\t\tcase LogObjectMarshaler:\n\t\t\t\t\te := newEvent(nil, 0)\n\t\t\t\t\te.buf = e.buf[:0]\n\t\t\t\t\te.appendObject(m)\n\t\t\t\t\tdst = append(dst, e.buf...)\n\t\t\t\t\tputEvent(e)\n\t\t\t\tcase error:\n\t\t\t\t\tif m == nil || isNilValue(m) {\n\t\t\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdst = enc.AppendString(dst, m.Error())\n\t\t\t\t\t}\n\t\t\t\tcase string:\n\t\t\t\t\tdst = enc.AppendString(dst, m)\n\t\t\t\tdefault:\n\t\t\t\t\tdst = enc.AppendInterface(dst, m)\n\t\t\t\t}\n\n\t\t\t\tif i < (len(val) - 1) {\n\t\t\t\t\tenc.AppendArrayDelim(dst)\n\t\t\t\t}\n\t\t\t}\n\t\t\tdst = enc.AppendArrayEnd(dst)\n\t\tcase bool:\n\t\t\tdst = enc.AppendBool(dst, val)\n\t\tcase int:\n\t\t\tdst = enc.AppendInt(dst, val)\n\t\tcase int8:\n\t\t\tdst = enc.AppendInt8(dst, val)\n\t\tcase int16:\n\t\t\tdst = enc.AppendInt16(dst, val)\n\t\tcase int32:\n\t\t\tdst = enc.AppendInt32(dst, val)\n\t\tcase int64:\n\t\t\tdst = enc.AppendInt64(dst, val)\n\t\tcase uint:\n\t\t\tdst = enc.AppendUint(dst, val)\n\t\tcase uint8:\n\t\t\tdst = enc.AppendUint8(dst, val)\n\t\tcase uint16:\n\t\t\tdst = enc.AppendUint16(dst, val)\n\t\tcase uint32:\n\t\t\tdst = enc.AppendUint32(dst, val)\n\t\tcase uint64:\n\t\t\tdst = enc.AppendUint64(dst, val)\n\t\tcase float32:\n\t\t\tdst = enc.AppendFloat32(dst, val)\n\t\tcase float64:\n\t\t\tdst = enc.AppendFloat64(dst, val)\n\t\tcase time.Time:\n\t\t\tdst = enc.AppendTime(dst, val, TimeFieldFormat)\n\t\tcase time.Duration:\n\t\t\tdst = enc.AppendDuration(dst, val, DurationFieldUnit, DurationFieldInteger)\n\t\tcase *string:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendString(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *bool:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendBool(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *int:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendInt(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *int8:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendInt8(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *int16:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendInt16(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *int32:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendInt32(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *int64:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendInt64(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *uint:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendUint(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *uint8:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendUint8(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *uint16:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendUint16(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *uint32:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendUint32(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *uint64:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendUint64(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *float32:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendFloat32(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *float64:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendFloat64(dst, *val)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *time.Time:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendTime(dst, *val, TimeFieldFormat)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase *time.Duration:\n\t\t\tif val != nil {\n\t\t\t\tdst = enc.AppendDuration(dst, *val, DurationFieldUnit, DurationFieldInteger)\n\t\t\t} else {\n\t\t\t\tdst = enc.AppendNil(dst)\n\t\t\t}\n\t\tcase []string:\n\t\t\tdst = enc.AppendStrings(dst, val)\n\t\tcase []bool:\n\t\t\tdst = enc.AppendBools(dst, val)\n\t\tcase []int:\n\t\t\tdst = enc.AppendInts(dst, val)\n\t\tcase []int8:\n\t\t\tdst = enc.AppendInts8(dst, val)\n\t\tcase []int16:\n\t\t\tdst = enc.AppendInts16(dst, val)\n\t\tcase []int32:\n\t\t\tdst = enc.AppendInts32(dst, val)\n\t\tcase []int64:\n\t\t\tdst = enc.AppendInts64(dst, val)\n\t\tcase []uint:\n\t\t\tdst = enc.AppendUints(dst, val)\n\t\t// case []uint8:\n\t\t// \tdst = enc.AppendUints8(dst, val)\n\t\tcase []uint16:\n\t\t\tdst = enc.AppendUints16(dst, val)\n\t\tcase []uint32:\n\t\t\tdst = enc.AppendUints32(dst, val)\n\t\tcase []uint64:\n\t\t\tdst = enc.AppendUints64(dst, val)\n\t\tcase []float32:\n\t\t\tdst = enc.AppendFloats32(dst, val)\n\t\tcase []float64:\n\t\t\tdst = enc.AppendFloats64(dst, val)\n\t\tcase []time.Time:\n\t\t\tdst = enc.AppendTimes(dst, val, TimeFieldFormat)\n\t\tcase []time.Duration:\n\t\t\tdst = enc.AppendDurations(dst, val, DurationFieldUnit, DurationFieldInteger)\n\t\tcase nil:\n\t\t\tdst = enc.AppendNil(dst)\n\t\tcase net.IP:\n\t\t\tdst = enc.AppendIPAddr(dst, val)\n\t\tcase net.IPNet:\n\t\t\tdst = enc.AppendIPPrefix(dst, val)\n\t\tcase net.HardwareAddr:\n\t\t\tdst = enc.AppendMACAddr(dst, val)\n\t\tcase json.RawMessage:\n\t\t\tdst = appendJSON(dst, val)\n\t\tdefault:\n\t\t\tdst = enc.AppendInterface(dst, val)\n\t\t}\n\t}\n\treturn dst\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/globals.go",
    "content": "package zerolog\n\nimport (\n\t\"encoding/json\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\t\"time\"\n)\n\nconst (\n\t// TimeFormatUnix defines a time format that makes time fields to be\n\t// serialized as Unix timestamp integers.\n\tTimeFormatUnix = \"\"\n\n\t// TimeFormatUnixMs defines a time format that makes time fields to be\n\t// serialized as Unix timestamp integers in milliseconds.\n\tTimeFormatUnixMs = \"UNIXMS\"\n\n\t// TimeFormatUnixMicro defines a time format that makes time fields to be\n\t// serialized as Unix timestamp integers in microseconds.\n\tTimeFormatUnixMicro = \"UNIXMICRO\"\n\n\t// TimeFormatUnixNano defines a time format that makes time fields to be\n\t// serialized as Unix timestamp integers in nanoseconds.\n\tTimeFormatUnixNano = \"UNIXNANO\"\n)\n\nvar (\n\t// TimestampFieldName is the field name used for the timestamp field.\n\tTimestampFieldName = \"time\"\n\n\t// LevelFieldName is the field name used for the level field.\n\tLevelFieldName = \"level\"\n\n\t// LevelTraceValue is the value used for the trace level field.\n\tLevelTraceValue = \"trace\"\n\t// LevelDebugValue is the value used for the debug level field.\n\tLevelDebugValue = \"debug\"\n\t// LevelInfoValue is the value used for the info level field.\n\tLevelInfoValue = \"info\"\n\t// LevelWarnValue is the value used for the warn level field.\n\tLevelWarnValue = \"warn\"\n\t// LevelErrorValue is the value used for the error level field.\n\tLevelErrorValue = \"error\"\n\t// LevelFatalValue is the value used for the fatal level field.\n\tLevelFatalValue = \"fatal\"\n\t// LevelPanicValue is the value used for the panic level field.\n\tLevelPanicValue = \"panic\"\n\n\t// LevelFieldMarshalFunc allows customization of global level field marshaling.\n\tLevelFieldMarshalFunc = func(l Level) string {\n\t\treturn l.String()\n\t}\n\n\t// MessageFieldName is the field name used for the message field.\n\tMessageFieldName = \"message\"\n\n\t// ErrorFieldName is the field name used for error fields.\n\tErrorFieldName = \"error\"\n\n\t// CallerFieldName is the field name used for caller field.\n\tCallerFieldName = \"caller\"\n\n\t// CallerSkipFrameCount is the number of stack frames to skip to find the caller.\n\tCallerSkipFrameCount = 2\n\n\t// CallerMarshalFunc allows customization of global caller marshaling\n\tCallerMarshalFunc = func(pc uintptr, file string, line int) string {\n\t\treturn file + \":\" + strconv.Itoa(line)\n\t}\n\n\t// ErrorStackFieldName is the field name used for error stacks.\n\tErrorStackFieldName = \"stack\"\n\n\t// ErrorStackMarshaler extract the stack from err if any.\n\tErrorStackMarshaler func(err error) interface{}\n\n\t// ErrorMarshalFunc allows customization of global error marshaling\n\tErrorMarshalFunc = func(err error) interface{} {\n\t\treturn err\n\t}\n\n\t// InterfaceMarshalFunc allows customization of interface marshaling.\n\t// Default: \"encoding/json.Marshal\"\n\tInterfaceMarshalFunc = json.Marshal\n\n\t// TimeFieldFormat defines the time format of the Time field type. If set to\n\t// TimeFormatUnix, TimeFormatUnixMs, TimeFormatUnixMicro or TimeFormatUnixNano, the time is formatted as a UNIX\n\t// timestamp as integer.\n\tTimeFieldFormat = time.RFC3339\n\n\t// TimestampFunc defines the function called to generate a timestamp.\n\tTimestampFunc = time.Now\n\n\t// DurationFieldUnit defines the unit for time.Duration type fields added\n\t// using the Dur method.\n\tDurationFieldUnit = time.Millisecond\n\n\t// DurationFieldInteger renders Dur fields as integer instead of float if\n\t// set to true.\n\tDurationFieldInteger = false\n\n\t// ErrorHandler is called whenever zerolog fails to write an event on its\n\t// output. If not set, an error is printed on the stderr. This handler must\n\t// be thread safe and non-blocking.\n\tErrorHandler func(err error)\n\n\t// DefaultContextLogger is returned from Ctx() if there is no logger associated\n\t// with the context.\n\tDefaultContextLogger *Logger\n)\n\nvar (\n\tgLevel          = new(int32)\n\tdisableSampling = new(int32)\n)\n\n// SetGlobalLevel sets the global override for log level. If this\n// values is raised, all Loggers will use at least this value.\n//\n// To globally disable logs, set GlobalLevel to Disabled.\nfunc SetGlobalLevel(l Level) {\n\tatomic.StoreInt32(gLevel, int32(l))\n}\n\n// GlobalLevel returns the current global log level\nfunc GlobalLevel() Level {\n\treturn Level(atomic.LoadInt32(gLevel))\n}\n\n// DisableSampling will disable sampling in all Loggers if true.\nfunc DisableSampling(v bool) {\n\tvar i int32\n\tif v {\n\t\ti = 1\n\t}\n\tatomic.StoreInt32(disableSampling, i)\n}\n\nfunc samplingDisabled() bool {\n\treturn atomic.LoadInt32(disableSampling) == 1\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/go112.go",
    "content": "// +build go1.12\n\npackage zerolog\n\n// Since go 1.12, some auto generated init functions are hidden from\n// runtime.Caller.\nconst contextCallerSkipFrameCount = 2\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/hook.go",
    "content": "package zerolog\n\n// Hook defines an interface to a log hook.\ntype Hook interface {\n\t// Run runs the hook with the event.\n\tRun(e *Event, level Level, message string)\n}\n\n// HookFunc is an adaptor to allow the use of an ordinary function\n// as a Hook.\ntype HookFunc func(e *Event, level Level, message string)\n\n// Run implements the Hook interface.\nfunc (h HookFunc) Run(e *Event, level Level, message string) {\n\th(e, level, message)\n}\n\n// LevelHook applies a different hook for each level.\ntype LevelHook struct {\n\tNoLevelHook, TraceHook, DebugHook, InfoHook, WarnHook, ErrorHook, FatalHook, PanicHook Hook\n}\n\n// Run implements the Hook interface.\nfunc (h LevelHook) Run(e *Event, level Level, message string) {\n\tswitch level {\n\tcase TraceLevel:\n\t\tif h.TraceHook != nil {\n\t\t\th.TraceHook.Run(e, level, message)\n\t\t}\n\tcase DebugLevel:\n\t\tif h.DebugHook != nil {\n\t\t\th.DebugHook.Run(e, level, message)\n\t\t}\n\tcase InfoLevel:\n\t\tif h.InfoHook != nil {\n\t\t\th.InfoHook.Run(e, level, message)\n\t\t}\n\tcase WarnLevel:\n\t\tif h.WarnHook != nil {\n\t\t\th.WarnHook.Run(e, level, message)\n\t\t}\n\tcase ErrorLevel:\n\t\tif h.ErrorHook != nil {\n\t\t\th.ErrorHook.Run(e, level, message)\n\t\t}\n\tcase FatalLevel:\n\t\tif h.FatalHook != nil {\n\t\t\th.FatalHook.Run(e, level, message)\n\t\t}\n\tcase PanicLevel:\n\t\tif h.PanicHook != nil {\n\t\t\th.PanicHook.Run(e, level, message)\n\t\t}\n\tcase NoLevel:\n\t\tif h.NoLevelHook != nil {\n\t\t\th.NoLevelHook.Run(e, level, message)\n\t\t}\n\t}\n}\n\n// NewLevelHook returns a new LevelHook.\nfunc NewLevelHook() LevelHook {\n\treturn LevelHook{}\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/internal/cbor/README.md",
    "content": "## Reference:\n   CBOR Encoding is described in [RFC7049](https://tools.ietf.org/html/rfc7049)\n\n## Comparison of JSON vs CBOR\n\nTwo main areas of reduction are:\n\n1. CPU usage to write a log msg \n2. Size (in bytes) of log messages.\n\n\nCPU Usage savings are below:\n```\nname                                    JSON time/op    CBOR time/op   delta\nInfo-32                                   15.3ns ± 1%    11.7ns ± 3%  -23.78%  (p=0.000 n=9+10)      \nContextFields-32                          16.2ns ± 2%    12.3ns ± 3%  -23.97%  (p=0.000 n=9+9)       \nContextAppend-32                          6.70ns ± 0%    6.20ns ± 0%   -7.44%  (p=0.000 n=9+9)       \nLogFields-32                              66.4ns ± 0%    24.6ns ± 2%  -62.89%  (p=0.000 n=10+9)      \nLogArrayObject-32                          911ns ±11%     768ns ± 6%  -15.64%  (p=0.000 n=10+10)     \nLogFieldType/Floats-32                    70.3ns ± 2%    29.5ns ± 1%  -57.98%  (p=0.000 n=10+10)     \nLogFieldType/Err-32                       14.0ns ± 3%    12.1ns ± 8%  -13.20%  (p=0.000 n=8+10)      \nLogFieldType/Dur-32                       17.2ns ± 2%    13.1ns ± 1%  -24.27%  (p=0.000 n=10+9)      \nLogFieldType/Object-32                    54.3ns ±11%    52.3ns ± 7%     ~     (p=0.239 n=10+10)     \nLogFieldType/Ints-32                      20.3ns ± 2%    15.1ns ± 2%  -25.50%  (p=0.000 n=9+10)      \nLogFieldType/Interfaces-32                 642ns ±11%     621ns ± 9%     ~     (p=0.118 n=10+10)     \nLogFieldType/Interface(Objects)-32         635ns ±13%     632ns ± 9%     ~     (p=0.592 n=10+10)     \nLogFieldType/Times-32                      294ns ± 0%      27ns ± 1%  -90.71%  (p=0.000 n=10+9)      \nLogFieldType/Durs-32                       121ns ± 0%      33ns ± 2%  -72.44%  (p=0.000 n=9+9)       \nLogFieldType/Interface(Object)-32         56.6ns ± 8%    52.3ns ± 8%   -7.54%  (p=0.007 n=10+10)     \nLogFieldType/Errs-32                      17.8ns ± 3%    16.1ns ± 2%   -9.71%  (p=0.000 n=10+9)      \nLogFieldType/Time-32                      40.5ns ± 1%    12.7ns ± 6%  -68.66%  (p=0.000 n=8+9)       \nLogFieldType/Bool-32                      12.0ns ± 5%    10.2ns ± 2%  -15.18%  (p=0.000 n=10+8)      \nLogFieldType/Bools-32                     17.2ns ± 2%    12.6ns ± 4%  -26.63%  (p=0.000 n=10+10)     \nLogFieldType/Int-32                       12.3ns ± 2%    11.2ns ± 4%   -9.27%  (p=0.000 n=9+10)      \nLogFieldType/Float-32                     16.7ns ± 1%    12.6ns ± 2%  -24.42%  (p=0.000 n=7+9)       \nLogFieldType/Str-32                       12.7ns ± 7%    11.3ns ± 7%  -10.88%  (p=0.000 n=10+9)      \nLogFieldType/Strs-32                      20.3ns ± 3%    18.2ns ± 3%  -10.25%  (p=0.000 n=9+10)      \nLogFieldType/Interface-32                  183ns ±12%     175ns ± 9%     ~     (p=0.078 n=10+10)     \n```\n\nLog message size savings is greatly dependent on the number and type of fields in the log message.\nAssuming this log message (with an Integer, timestamp and string, in addition to level).\n\n`{\"level\":\"error\",\"Fault\":41650,\"time\":\"2018-04-01T15:18:19-07:00\",\"message\":\"Some Message\"}`\n\nTwo measurements were done for the log file sizes - one without any compression, second\nusing [compress/zlib](https://golang.org/pkg/compress/zlib/). \n\nResults for 10,000 log messages:\n\n| Log Format |  Plain File Size (in KB) | Compressed File Size (in KB) |\n| :--- | :---: | :---: |\n| JSON | 920 | 28 |\n| CBOR | 550 | 28 |\n\nThe example used to calculate the above data is available in [Examples](examples).\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/internal/cbor/base.go",
    "content": "package cbor\n\n// JSONMarshalFunc is used to marshal interface to JSON encoded byte slice.\n// Making it package level instead of embedded in Encoder brings\n// some extra efforts at importing, but avoids value copy when the functions\n// of Encoder being invoked.\n// DO REMEMBER to set this variable at importing, or\n// you might get a nil pointer dereference panic at runtime.\nvar JSONMarshalFunc func(v interface{}) ([]byte, error)\n\ntype Encoder struct{}\n\n// AppendKey adds a key (string) to the binary encoded log message\nfunc (e Encoder) AppendKey(dst []byte, key string) []byte {\n\tif len(dst) < 1 {\n\t\tdst = e.AppendBeginMarker(dst)\n\t}\n\treturn e.AppendString(dst, key)\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/internal/cbor/cbor.go",
    "content": "// Package cbor provides primitives for storing different data\n// in the CBOR (binary) format. CBOR is defined in RFC7049.\npackage cbor\n\nimport \"time\"\n\nconst (\n\tmajorOffset   = 5\n\tadditionalMax = 23\n\n\t// Non Values.\n\tadditionalTypeBoolFalse byte = 20\n\tadditionalTypeBoolTrue  byte = 21\n\tadditionalTypeNull      byte = 22\n\n\t// Integer (+ve and -ve) Sub-types.\n\tadditionalTypeIntUint8  byte = 24\n\tadditionalTypeIntUint16 byte = 25\n\tadditionalTypeIntUint32 byte = 26\n\tadditionalTypeIntUint64 byte = 27\n\n\t// Float Sub-types.\n\tadditionalTypeFloat16 byte = 25\n\tadditionalTypeFloat32 byte = 26\n\tadditionalTypeFloat64 byte = 27\n\tadditionalTypeBreak   byte = 31\n\n\t// Tag Sub-types.\n\tadditionalTypeTimestamp    byte = 01\n\tadditionalTypeEmbeddedCBOR byte = 63\n\n\t// Extended Tags - from https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml\n\tadditionalTypeTagNetworkAddr   uint16 = 260\n\tadditionalTypeTagNetworkPrefix uint16 = 261\n\tadditionalTypeEmbeddedJSON     uint16 = 262\n\tadditionalTypeTagHexString     uint16 = 263\n\n\t// Unspecified number of elements.\n\tadditionalTypeInfiniteCount byte = 31\n)\nconst (\n\tmajorTypeUnsignedInt    byte = iota << majorOffset // Major type 0\n\tmajorTypeNegativeInt                               // Major type 1\n\tmajorTypeByteString                                // Major type 2\n\tmajorTypeUtf8String                                // Major type 3\n\tmajorTypeArray                                     // Major type 4\n\tmajorTypeMap                                       // Major type 5\n\tmajorTypeTags                                      // Major type 6\n\tmajorTypeSimpleAndFloat                            // Major type 7\n)\n\nconst (\n\tmaskOutAdditionalType byte = (7 << majorOffset)\n\tmaskOutMajorType      byte = 31\n)\n\nconst (\n\tfloat32Nan         = \"\\xfa\\x7f\\xc0\\x00\\x00\"\n\tfloat32PosInfinity = \"\\xfa\\x7f\\x80\\x00\\x00\"\n\tfloat32NegInfinity = \"\\xfa\\xff\\x80\\x00\\x00\"\n\tfloat64Nan         = \"\\xfb\\x7f\\xf8\\x00\\x00\\x00\\x00\\x00\\x00\"\n\tfloat64PosInfinity = \"\\xfb\\x7f\\xf0\\x00\\x00\\x00\\x00\\x00\\x00\"\n\tfloat64NegInfinity = \"\\xfb\\xff\\xf0\\x00\\x00\\x00\\x00\\x00\\x00\"\n)\n\n// IntegerTimeFieldFormat indicates the format of timestamp decoded\n// from an integer (time in seconds).\nvar IntegerTimeFieldFormat = time.RFC3339\n\n// NanoTimeFieldFormat indicates the format of timestamp decoded\n// from a float value (time in seconds and nanoseconds).\nvar NanoTimeFieldFormat = time.RFC3339Nano\n\nfunc appendCborTypePrefix(dst []byte, major byte, number uint64) []byte {\n\tbyteCount := 8\n\tvar minor byte\n\tswitch {\n\tcase number < 256:\n\t\tbyteCount = 1\n\t\tminor = additionalTypeIntUint8\n\n\tcase number < 65536:\n\t\tbyteCount = 2\n\t\tminor = additionalTypeIntUint16\n\n\tcase number < 4294967296:\n\t\tbyteCount = 4\n\t\tminor = additionalTypeIntUint32\n\n\tdefault:\n\t\tbyteCount = 8\n\t\tminor = additionalTypeIntUint64\n\n\t}\n\n\tdst = append(dst, major|minor)\n\tbyteCount--\n\tfor ; byteCount >= 0; byteCount-- {\n\t\tdst = append(dst, byte(number>>(uint(byteCount)*8)))\n\t}\n\treturn dst\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/internal/cbor/decode_stream.go",
    "content": "package cbor\n\n// This file contains code to decode a stream of CBOR Data into JSON.\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"net\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\nvar decodeTimeZone *time.Location\n\nconst hexTable = \"0123456789abcdef\"\n\nconst isFloat32 = 4\nconst isFloat64 = 8\n\nfunc readNBytes(src *bufio.Reader, n int) []byte {\n\tret := make([]byte, n)\n\tfor i := 0; i < n; i++ {\n\t\tch, e := src.ReadByte()\n\t\tif e != nil {\n\t\t\tpanic(fmt.Errorf(\"Tried to Read %d Bytes.. But hit end of file\", n))\n\t\t}\n\t\tret[i] = ch\n\t}\n\treturn ret\n}\n\nfunc readByte(src *bufio.Reader) byte {\n\tb, e := src.ReadByte()\n\tif e != nil {\n\t\tpanic(fmt.Errorf(\"Tried to Read 1 Byte.. But hit end of file\"))\n\t}\n\treturn b\n}\n\nfunc decodeIntAdditionalType(src *bufio.Reader, minor byte) int64 {\n\tval := int64(0)\n\tif minor <= 23 {\n\t\tval = int64(minor)\n\t} else {\n\t\tbytesToRead := 0\n\t\tswitch minor {\n\t\tcase additionalTypeIntUint8:\n\t\t\tbytesToRead = 1\n\t\tcase additionalTypeIntUint16:\n\t\t\tbytesToRead = 2\n\t\tcase additionalTypeIntUint32:\n\t\t\tbytesToRead = 4\n\t\tcase additionalTypeIntUint64:\n\t\t\tbytesToRead = 8\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"Invalid Additional Type: %d in decodeInteger (expected <28)\", minor))\n\t\t}\n\t\tpb := readNBytes(src, bytesToRead)\n\t\tfor i := 0; i < bytesToRead; i++ {\n\t\t\tval = val * 256\n\t\t\tval += int64(pb[i])\n\t\t}\n\t}\n\treturn val\n}\n\nfunc decodeInteger(src *bufio.Reader) int64 {\n\tpb := readByte(src)\n\tmajor := pb & maskOutAdditionalType\n\tminor := pb & maskOutMajorType\n\tif major != majorTypeUnsignedInt && major != majorTypeNegativeInt {\n\t\tpanic(fmt.Errorf(\"Major type is: %d in decodeInteger!! (expected 0 or 1)\", major))\n\t}\n\tval := decodeIntAdditionalType(src, minor)\n\tif major == 0 {\n\t\treturn val\n\t}\n\treturn (-1 - val)\n}\n\nfunc decodeFloat(src *bufio.Reader) (float64, int) {\n\tpb := readByte(src)\n\tmajor := pb & maskOutAdditionalType\n\tminor := pb & maskOutMajorType\n\tif major != majorTypeSimpleAndFloat {\n\t\tpanic(fmt.Errorf(\"Incorrect Major type is: %d in decodeFloat\", major))\n\t}\n\n\tswitch minor {\n\tcase additionalTypeFloat16:\n\t\tpanic(fmt.Errorf(\"float16 is not suppported in decodeFloat\"))\n\n\tcase additionalTypeFloat32:\n\t\tpb := readNBytes(src, 4)\n\t\tswitch string(pb) {\n\t\tcase float32Nan:\n\t\t\treturn math.NaN(), isFloat32\n\t\tcase float32PosInfinity:\n\t\t\treturn math.Inf(0), isFloat32\n\t\tcase float32NegInfinity:\n\t\t\treturn math.Inf(-1), isFloat32\n\t\t}\n\t\tn := uint32(0)\n\t\tfor i := 0; i < 4; i++ {\n\t\t\tn = n * 256\n\t\t\tn += uint32(pb[i])\n\t\t}\n\t\tval := math.Float32frombits(n)\n\t\treturn float64(val), isFloat32\n\tcase additionalTypeFloat64:\n\t\tpb := readNBytes(src, 8)\n\t\tswitch string(pb) {\n\t\tcase float64Nan:\n\t\t\treturn math.NaN(), isFloat64\n\t\tcase float64PosInfinity:\n\t\t\treturn math.Inf(0), isFloat64\n\t\tcase float64NegInfinity:\n\t\t\treturn math.Inf(-1), isFloat64\n\t\t}\n\t\tn := uint64(0)\n\t\tfor i := 0; i < 8; i++ {\n\t\t\tn = n * 256\n\t\t\tn += uint64(pb[i])\n\t\t}\n\t\tval := math.Float64frombits(n)\n\t\treturn val, isFloat64\n\t}\n\tpanic(fmt.Errorf(\"Invalid Additional Type: %d in decodeFloat\", minor))\n}\n\nfunc decodeStringComplex(dst []byte, s string, pos uint) []byte {\n\ti := int(pos)\n\tstart := 0\n\n\tfor i < len(s) {\n\t\tb := s[i]\n\t\tif b >= utf8.RuneSelf {\n\t\t\tr, size := utf8.DecodeRuneInString(s[i:])\n\t\t\tif r == utf8.RuneError && size == 1 {\n\t\t\t\t// In case of error, first append previous simple characters to\n\t\t\t\t// the byte slice if any and append a replacement character code\n\t\t\t\t// in place of the invalid sequence.\n\t\t\t\tif start < i {\n\t\t\t\t\tdst = append(dst, s[start:i]...)\n\t\t\t\t}\n\t\t\t\tdst = append(dst, `\\ufffd`...)\n\t\t\t\ti += size\n\t\t\t\tstart = i\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ti += size\n\t\t\tcontinue\n\t\t}\n\t\tif b >= 0x20 && b <= 0x7e && b != '\\\\' && b != '\"' {\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\t// We encountered a character that needs to be encoded.\n\t\t// Let's append the previous simple characters to the byte slice\n\t\t// and switch our operation to read and encode the remainder\n\t\t// characters byte-by-byte.\n\t\tif start < i {\n\t\t\tdst = append(dst, s[start:i]...)\n\t\t}\n\t\tswitch b {\n\t\tcase '\"', '\\\\':\n\t\t\tdst = append(dst, '\\\\', b)\n\t\tcase '\\b':\n\t\t\tdst = append(dst, '\\\\', 'b')\n\t\tcase '\\f':\n\t\t\tdst = append(dst, '\\\\', 'f')\n\t\tcase '\\n':\n\t\t\tdst = append(dst, '\\\\', 'n')\n\t\tcase '\\r':\n\t\t\tdst = append(dst, '\\\\', 'r')\n\t\tcase '\\t':\n\t\t\tdst = append(dst, '\\\\', 't')\n\t\tdefault:\n\t\t\tdst = append(dst, '\\\\', 'u', '0', '0', hexTable[b>>4], hexTable[b&0xF])\n\t\t}\n\t\ti++\n\t\tstart = i\n\t}\n\tif start < len(s) {\n\t\tdst = append(dst, s[start:]...)\n\t}\n\treturn dst\n}\n\nfunc decodeString(src *bufio.Reader, noQuotes bool) []byte {\n\tpb := readByte(src)\n\tmajor := pb & maskOutAdditionalType\n\tminor := pb & maskOutMajorType\n\tif major != majorTypeByteString {\n\t\tpanic(fmt.Errorf(\"Major type is: %d in decodeString\", major))\n\t}\n\tresult := []byte{}\n\tif !noQuotes {\n\t\tresult = append(result, '\"')\n\t}\n\tlength := decodeIntAdditionalType(src, minor)\n\tlen := int(length)\n\tpbs := readNBytes(src, len)\n\tresult = append(result, pbs...)\n\tif noQuotes {\n\t\treturn result\n\t}\n\treturn append(result, '\"')\n}\nfunc decodeStringToDataUrl(src *bufio.Reader, mimeType string) []byte {\n\tpb := readByte(src)\n\tmajor := pb & maskOutAdditionalType\n\tminor := pb & maskOutMajorType\n\tif major != majorTypeByteString {\n\t\tpanic(fmt.Errorf(\"Major type is: %d in decodeString\", major))\n\t}\n\tlength := decodeIntAdditionalType(src, minor)\n\tl := int(length)\n\tenc := base64.StdEncoding\n\tlEnc := enc.EncodedLen(l)\n\tresult := make([]byte, len(\"\\\"data:;base64,\\\"\")+len(mimeType)+lEnc)\n\tdest := result\n\tu := copy(dest, \"\\\"data:\")\n\tdest = dest[u:]\n\tu = copy(dest, mimeType)\n\tdest = dest[u:]\n\tu = copy(dest, \";base64,\")\n\tdest = dest[u:]\n\tpbs := readNBytes(src, l)\n\tenc.Encode(dest, pbs)\n\tdest = dest[lEnc:]\n\tdest[0] = '\"'\n\treturn result\n}\n\nfunc decodeUTF8String(src *bufio.Reader) []byte {\n\tpb := readByte(src)\n\tmajor := pb & maskOutAdditionalType\n\tminor := pb & maskOutMajorType\n\tif major != majorTypeUtf8String {\n\t\tpanic(fmt.Errorf(\"Major type is: %d in decodeUTF8String\", major))\n\t}\n\tresult := []byte{'\"'}\n\tlength := decodeIntAdditionalType(src, minor)\n\tlen := int(length)\n\tpbs := readNBytes(src, len)\n\n\tfor i := 0; i < len; i++ {\n\t\t// Check if the character needs encoding. Control characters, slashes,\n\t\t// and the double quote need json encoding. Bytes above the ascii\n\t\t// boundary needs utf8 encoding.\n\t\tif pbs[i] < 0x20 || pbs[i] > 0x7e || pbs[i] == '\\\\' || pbs[i] == '\"' {\n\t\t\t// We encountered a character that needs to be encoded. Switch\n\t\t\t// to complex version of the algorithm.\n\t\t\tdst := []byte{'\"'}\n\t\t\tdst = decodeStringComplex(dst, string(pbs), uint(i))\n\t\t\treturn append(dst, '\"')\n\t\t}\n\t}\n\t// The string has no need for encoding and therefore is directly\n\t// appended to the byte slice.\n\tresult = append(result, pbs...)\n\treturn append(result, '\"')\n}\n\nfunc array2Json(src *bufio.Reader, dst io.Writer) {\n\tdst.Write([]byte{'['})\n\tpb := readByte(src)\n\tmajor := pb & maskOutAdditionalType\n\tminor := pb & maskOutMajorType\n\tif major != majorTypeArray {\n\t\tpanic(fmt.Errorf(\"Major type is: %d in array2Json\", major))\n\t}\n\tlen := 0\n\tunSpecifiedCount := false\n\tif minor == additionalTypeInfiniteCount {\n\t\tunSpecifiedCount = true\n\t} else {\n\t\tlength := decodeIntAdditionalType(src, minor)\n\t\tlen = int(length)\n\t}\n\tfor i := 0; unSpecifiedCount || i < len; i++ {\n\t\tif unSpecifiedCount {\n\t\t\tpb, e := src.Peek(1)\n\t\t\tif e != nil {\n\t\t\t\tpanic(e)\n\t\t\t}\n\t\t\tif pb[0] == majorTypeSimpleAndFloat|additionalTypeBreak {\n\t\t\t\treadByte(src)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tcbor2JsonOneObject(src, dst)\n\t\tif unSpecifiedCount {\n\t\t\tpb, e := src.Peek(1)\n\t\t\tif e != nil {\n\t\t\t\tpanic(e)\n\t\t\t}\n\t\t\tif pb[0] == majorTypeSimpleAndFloat|additionalTypeBreak {\n\t\t\t\treadByte(src)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tdst.Write([]byte{','})\n\t\t} else if i+1 < len {\n\t\t\tdst.Write([]byte{','})\n\t\t}\n\t}\n\tdst.Write([]byte{']'})\n}\n\nfunc map2Json(src *bufio.Reader, dst io.Writer) {\n\tpb := readByte(src)\n\tmajor := pb & maskOutAdditionalType\n\tminor := pb & maskOutMajorType\n\tif major != majorTypeMap {\n\t\tpanic(fmt.Errorf(\"Major type is: %d in map2Json\", major))\n\t}\n\tlen := 0\n\tunSpecifiedCount := false\n\tif minor == additionalTypeInfiniteCount {\n\t\tunSpecifiedCount = true\n\t} else {\n\t\tlength := decodeIntAdditionalType(src, minor)\n\t\tlen = int(length)\n\t}\n\tdst.Write([]byte{'{'})\n\tfor i := 0; unSpecifiedCount || i < len; i++ {\n\t\tif unSpecifiedCount {\n\t\t\tpb, e := src.Peek(1)\n\t\t\tif e != nil {\n\t\t\t\tpanic(e)\n\t\t\t}\n\t\t\tif pb[0] == majorTypeSimpleAndFloat|additionalTypeBreak {\n\t\t\t\treadByte(src)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tcbor2JsonOneObject(src, dst)\n\t\tif i%2 == 0 {\n\t\t\t// Even position values are keys.\n\t\t\tdst.Write([]byte{':'})\n\t\t} else {\n\t\t\tif unSpecifiedCount {\n\t\t\t\tpb, e := src.Peek(1)\n\t\t\t\tif e != nil {\n\t\t\t\t\tpanic(e)\n\t\t\t\t}\n\t\t\t\tif pb[0] == majorTypeSimpleAndFloat|additionalTypeBreak {\n\t\t\t\t\treadByte(src)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tdst.Write([]byte{','})\n\t\t\t} else if i+1 < len {\n\t\t\t\tdst.Write([]byte{','})\n\t\t\t}\n\t\t}\n\t}\n\tdst.Write([]byte{'}'})\n}\n\nfunc decodeTagData(src *bufio.Reader) []byte {\n\tpb := readByte(src)\n\tmajor := pb & maskOutAdditionalType\n\tminor := pb & maskOutMajorType\n\tif major != majorTypeTags {\n\t\tpanic(fmt.Errorf(\"Major type is: %d in decodeTagData\", major))\n\t}\n\tswitch minor {\n\tcase additionalTypeTimestamp:\n\t\treturn decodeTimeStamp(src)\n\tcase additionalTypeIntUint8:\n\t\tval := decodeIntAdditionalType(src, minor)\n\t\tswitch byte(val) {\n\t\tcase additionalTypeEmbeddedCBOR:\n\t\t\tpb := readByte(src)\n\t\t\tdataMajor := pb & maskOutAdditionalType\n\t\t\tif dataMajor != majorTypeByteString {\n\t\t\t\tpanic(fmt.Errorf(\"Unsupported embedded Type: %d in decodeEmbeddedCBOR\", dataMajor))\n\t\t\t}\n\t\t\tsrc.UnreadByte()\n\t\t\treturn decodeStringToDataUrl(src, \"application/cbor\")\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"Unsupported Additional Tag Type: %d in decodeTagData\", val))\n\t\t}\n\n\t// Tag value is larger than 256 (so uint16).\n\tcase additionalTypeIntUint16:\n\t\tval := decodeIntAdditionalType(src, minor)\n\n\t\tswitch uint16(val) {\n\t\tcase additionalTypeEmbeddedJSON:\n\t\t\tpb := readByte(src)\n\t\t\tdataMajor := pb & maskOutAdditionalType\n\t\t\tif dataMajor != majorTypeByteString {\n\t\t\t\tpanic(fmt.Errorf(\"Unsupported embedded Type: %d in decodeEmbeddedJSON\", dataMajor))\n\t\t\t}\n\t\t\tsrc.UnreadByte()\n\t\t\treturn decodeString(src, true)\n\n\t\tcase additionalTypeTagNetworkAddr:\n\t\t\toctets := decodeString(src, true)\n\t\t\tss := []byte{'\"'}\n\t\t\tswitch len(octets) {\n\t\t\tcase 6: // MAC address.\n\t\t\t\tha := net.HardwareAddr(octets)\n\t\t\t\tss = append(append(ss, ha.String()...), '\"')\n\t\t\tcase 4: // IPv4 address.\n\t\t\t\tfallthrough\n\t\t\tcase 16: // IPv6 address.\n\t\t\t\tip := net.IP(octets)\n\t\t\t\tss = append(append(ss, ip.String()...), '\"')\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Errorf(\"Unexpected Network Address length: %d (expected 4,6,16)\", len(octets)))\n\t\t\t}\n\t\t\treturn ss\n\n\t\tcase additionalTypeTagNetworkPrefix:\n\t\t\tpb := readByte(src)\n\t\t\tif pb != majorTypeMap|0x1 {\n\t\t\t\tpanic(fmt.Errorf(\"IP Prefix is NOT of MAP of 1 elements as expected\"))\n\t\t\t}\n\t\t\toctets := decodeString(src, true)\n\t\t\tval := decodeInteger(src)\n\t\t\tip := net.IP(octets)\n\t\t\tvar mask net.IPMask\n\t\t\tpfxLen := int(val)\n\t\t\tif len(octets) == 4 {\n\t\t\t\tmask = net.CIDRMask(pfxLen, 32)\n\t\t\t} else {\n\t\t\t\tmask = net.CIDRMask(pfxLen, 128)\n\t\t\t}\n\t\t\tipPfx := net.IPNet{IP: ip, Mask: mask}\n\t\t\tss := []byte{'\"'}\n\t\t\tss = append(append(ss, ipPfx.String()...), '\"')\n\t\t\treturn ss\n\n\t\tcase additionalTypeTagHexString:\n\t\t\toctets := decodeString(src, true)\n\t\t\tss := []byte{'\"'}\n\t\t\tfor _, v := range octets {\n\t\t\t\tss = append(ss, hexTable[v>>4], hexTable[v&0x0f])\n\t\t\t}\n\t\t\treturn append(ss, '\"')\n\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"Unsupported Additional Tag Type: %d in decodeTagData\", val))\n\t\t}\n\t}\n\tpanic(fmt.Errorf(\"Unsupported Additional Type: %d in decodeTagData\", minor))\n}\n\nfunc decodeTimeStamp(src *bufio.Reader) []byte {\n\tpb := readByte(src)\n\tsrc.UnreadByte()\n\ttsMajor := pb & maskOutAdditionalType\n\tif tsMajor == majorTypeUnsignedInt || tsMajor == majorTypeNegativeInt {\n\t\tn := decodeInteger(src)\n\t\tt := time.Unix(n, 0)\n\t\tif decodeTimeZone != nil {\n\t\t\tt = t.In(decodeTimeZone)\n\t\t} else {\n\t\t\tt = t.In(time.UTC)\n\t\t}\n\t\ttsb := []byte{}\n\t\ttsb = append(tsb, '\"')\n\t\ttsb = t.AppendFormat(tsb, IntegerTimeFieldFormat)\n\t\ttsb = append(tsb, '\"')\n\t\treturn tsb\n\t} else if tsMajor == majorTypeSimpleAndFloat {\n\t\tn, _ := decodeFloat(src)\n\t\tsecs := int64(n)\n\t\tn -= float64(secs)\n\t\tn *= float64(1e9)\n\t\tt := time.Unix(secs, int64(n))\n\t\tif decodeTimeZone != nil {\n\t\t\tt = t.In(decodeTimeZone)\n\t\t} else {\n\t\t\tt = t.In(time.UTC)\n\t\t}\n\t\ttsb := []byte{}\n\t\ttsb = append(tsb, '\"')\n\t\ttsb = t.AppendFormat(tsb, NanoTimeFieldFormat)\n\t\ttsb = append(tsb, '\"')\n\t\treturn tsb\n\t}\n\tpanic(fmt.Errorf(\"TS format is neigther int nor float: %d\", tsMajor))\n}\n\nfunc decodeSimpleFloat(src *bufio.Reader) []byte {\n\tpb := readByte(src)\n\tmajor := pb & maskOutAdditionalType\n\tminor := pb & maskOutMajorType\n\tif major != majorTypeSimpleAndFloat {\n\t\tpanic(fmt.Errorf(\"Major type is: %d in decodeSimpleFloat\", major))\n\t}\n\tswitch minor {\n\tcase additionalTypeBoolTrue:\n\t\treturn []byte(\"true\")\n\tcase additionalTypeBoolFalse:\n\t\treturn []byte(\"false\")\n\tcase additionalTypeNull:\n\t\treturn []byte(\"null\")\n\tcase additionalTypeFloat16:\n\t\tfallthrough\n\tcase additionalTypeFloat32:\n\t\tfallthrough\n\tcase additionalTypeFloat64:\n\t\tsrc.UnreadByte()\n\t\tv, bc := decodeFloat(src)\n\t\tba := []byte{}\n\t\tswitch {\n\t\tcase math.IsNaN(v):\n\t\t\treturn []byte(\"\\\"NaN\\\"\")\n\t\tcase math.IsInf(v, 1):\n\t\t\treturn []byte(\"\\\"+Inf\\\"\")\n\t\tcase math.IsInf(v, -1):\n\t\t\treturn []byte(\"\\\"-Inf\\\"\")\n\t\t}\n\t\tif bc == isFloat32 {\n\t\t\tba = strconv.AppendFloat(ba, v, 'f', -1, 32)\n\t\t} else if bc == isFloat64 {\n\t\t\tba = strconv.AppendFloat(ba, v, 'f', -1, 64)\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"Invalid Float precision from decodeFloat: %d\", bc))\n\t\t}\n\t\treturn ba\n\tdefault:\n\t\tpanic(fmt.Errorf(\"Invalid Additional Type: %d in decodeSimpleFloat\", minor))\n\t}\n}\n\nfunc cbor2JsonOneObject(src *bufio.Reader, dst io.Writer) {\n\tpb, e := src.Peek(1)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\tmajor := (pb[0] & maskOutAdditionalType)\n\n\tswitch major {\n\tcase majorTypeUnsignedInt:\n\t\tfallthrough\n\tcase majorTypeNegativeInt:\n\t\tn := decodeInteger(src)\n\t\tdst.Write([]byte(strconv.Itoa(int(n))))\n\n\tcase majorTypeByteString:\n\t\ts := decodeString(src, false)\n\t\tdst.Write(s)\n\n\tcase majorTypeUtf8String:\n\t\ts := decodeUTF8String(src)\n\t\tdst.Write(s)\n\n\tcase majorTypeArray:\n\t\tarray2Json(src, dst)\n\n\tcase majorTypeMap:\n\t\tmap2Json(src, dst)\n\n\tcase majorTypeTags:\n\t\ts := decodeTagData(src)\n\t\tdst.Write(s)\n\n\tcase majorTypeSimpleAndFloat:\n\t\ts := decodeSimpleFloat(src)\n\t\tdst.Write(s)\n\t}\n}\n\nfunc moreBytesToRead(src *bufio.Reader) bool {\n\t_, e := src.ReadByte()\n\tif e == nil {\n\t\tsrc.UnreadByte()\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Cbor2JsonManyObjects decodes all the CBOR Objects read from src\n// reader. It keeps on decoding until reader returns EOF (error when reading).\n// Decoded string is written to the dst. At the end of every CBOR Object\n// newline is written to the output stream.\n//\n// Returns error (if any) that was encountered during decode.\n// The child functions will generate a panic when error is encountered and\n// this function will recover non-runtime Errors and return the reason as error.\nfunc Cbor2JsonManyObjects(src io.Reader, dst io.Writer) (err error) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tif _, ok := r.(runtime.Error); ok {\n\t\t\t\tpanic(r)\n\t\t\t}\n\t\t\terr = r.(error)\n\t\t}\n\t}()\n\tbufRdr := bufio.NewReader(src)\n\tfor moreBytesToRead(bufRdr) {\n\t\tcbor2JsonOneObject(bufRdr, dst)\n\t\tdst.Write([]byte(\"\\n\"))\n\t}\n\treturn nil\n}\n\n// Detect if the bytes to be printed is Binary or not.\nfunc binaryFmt(p []byte) bool {\n\tif len(p) > 0 && p[0] > 0x7F {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc getReader(str string) *bufio.Reader {\n\treturn bufio.NewReader(strings.NewReader(str))\n}\n\n// DecodeIfBinaryToString converts a binary formatted log msg to a\n// JSON formatted String Log message - suitable for printing to Console/Syslog.\nfunc DecodeIfBinaryToString(in []byte) string {\n\tif binaryFmt(in) {\n\t\tvar b bytes.Buffer\n\t\tCbor2JsonManyObjects(strings.NewReader(string(in)), &b)\n\t\treturn b.String()\n\t}\n\treturn string(in)\n}\n\n// DecodeObjectToStr checks if the input is a binary format, if so,\n// it will decode a single Object and return the decoded string.\nfunc DecodeObjectToStr(in []byte) string {\n\tif binaryFmt(in) {\n\t\tvar b bytes.Buffer\n\t\tcbor2JsonOneObject(getReader(string(in)), &b)\n\t\treturn b.String()\n\t}\n\treturn string(in)\n}\n\n// DecodeIfBinaryToBytes checks if the input is a binary format, if so,\n// it will decode all Objects and return the decoded string as byte array.\nfunc DecodeIfBinaryToBytes(in []byte) []byte {\n\tif binaryFmt(in) {\n\t\tvar b bytes.Buffer\n\t\tCbor2JsonManyObjects(bytes.NewReader(in), &b)\n\t\treturn b.Bytes()\n\t}\n\treturn in\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/internal/cbor/string.go",
    "content": "package cbor\n\nimport \"fmt\"\n\n// AppendStrings encodes and adds an array of strings to the dst byte array.\nfunc (e Encoder) AppendStrings(dst []byte, vals []string) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendString(dst, v)\n\t}\n\treturn dst\n}\n\n// AppendString encodes and adds a string to the dst byte array.\nfunc (Encoder) AppendString(dst []byte, s string) []byte {\n\tmajor := majorTypeUtf8String\n\n\tl := len(s)\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, majorTypeUtf8String, uint64(l))\n\t}\n\treturn append(dst, s...)\n}\n\n// AppendStringers encodes and adds an array of Stringer values\n// to the dst byte array.\nfunc (e Encoder) AppendStringers(dst []byte, vals []fmt.Stringer) []byte {\n\tif len(vals) == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tdst = e.AppendArrayStart(dst)\n\tdst = e.AppendStringer(dst, vals[0])\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = e.AppendStringer(dst, val)\n\t\t}\n\t}\n\treturn e.AppendArrayEnd(dst)\n}\n\n// AppendStringer encodes and adds the Stringer value to the dst\n// byte array.\nfunc (e Encoder) AppendStringer(dst []byte, val fmt.Stringer) []byte {\n\tif val == nil {\n\t\treturn e.AppendNil(dst)\n\t}\n\treturn e.AppendString(dst, val.String())\n}\n\n// AppendBytes encodes and adds an array of bytes to the dst byte array.\nfunc (Encoder) AppendBytes(dst, s []byte) []byte {\n\tmajor := majorTypeByteString\n\n\tl := len(s)\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\treturn append(dst, s...)\n}\n\n// AppendEmbeddedJSON adds a tag and embeds input JSON as such.\nfunc AppendEmbeddedJSON(dst, s []byte) []byte {\n\tmajor := majorTypeTags\n\tminor := additionalTypeEmbeddedJSON\n\n\t// Append the TAG to indicate this is Embedded JSON.\n\tdst = append(dst, major|additionalTypeIntUint16)\n\tdst = append(dst, byte(minor>>8))\n\tdst = append(dst, byte(minor&0xff))\n\n\t// Append the JSON Object as Byte String.\n\tmajor = majorTypeByteString\n\n\tl := len(s)\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\treturn append(dst, s...)\n}\n\n// AppendEmbeddedCBOR adds a tag and embeds input CBOR as such.\nfunc AppendEmbeddedCBOR(dst, s []byte) []byte {\n\tmajor := majorTypeTags\n\tminor := additionalTypeEmbeddedCBOR\n\n\t// Append the TAG to indicate this is Embedded JSON.\n\tdst = append(dst, major|additionalTypeIntUint8)\n\tdst = append(dst, minor)\n\n\t// Append the CBOR Object as Byte String.\n\tmajor = majorTypeByteString\n\n\tl := len(s)\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\treturn append(dst, s...)\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/internal/cbor/time.go",
    "content": "package cbor\n\nimport (\n\t\"time\"\n)\n\nfunc appendIntegerTimestamp(dst []byte, t time.Time) []byte {\n\tmajor := majorTypeTags\n\tminor := additionalTypeTimestamp\n\tdst = append(dst, major|minor)\n\tsecs := t.Unix()\n\tvar val uint64\n\tif secs < 0 {\n\t\tmajor = majorTypeNegativeInt\n\t\tval = uint64(-secs - 1)\n\t} else {\n\t\tmajor = majorTypeUnsignedInt\n\t\tval = uint64(secs)\n\t}\n\tdst = appendCborTypePrefix(dst, major, val)\n\treturn dst\n}\n\nfunc (e Encoder) appendFloatTimestamp(dst []byte, t time.Time) []byte {\n\tmajor := majorTypeTags\n\tminor := additionalTypeTimestamp\n\tdst = append(dst, major|minor)\n\tsecs := t.Unix()\n\tnanos := t.Nanosecond()\n\tvar val float64\n\tval = float64(secs)*1.0 + float64(nanos)*1e-9\n\treturn e.AppendFloat64(dst, val)\n}\n\n// AppendTime encodes and adds a timestamp to the dst byte array.\nfunc (e Encoder) AppendTime(dst []byte, t time.Time, unused string) []byte {\n\tutc := t.UTC()\n\tif utc.Nanosecond() == 0 {\n\t\treturn appendIntegerTimestamp(dst, utc)\n\t}\n\treturn e.appendFloatTimestamp(dst, utc)\n}\n\n// AppendTimes encodes and adds an array of timestamps to the dst byte array.\nfunc (e Encoder) AppendTimes(dst []byte, vals []time.Time, unused string) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\n\tfor _, t := range vals {\n\t\tdst = e.AppendTime(dst, t, unused)\n\t}\n\treturn dst\n}\n\n// AppendDuration encodes and adds a duration to the dst byte array.\n// useInt field indicates whether to store the duration as seconds (integer) or\n// as seconds+nanoseconds (float).\nfunc (e Encoder) AppendDuration(dst []byte, d time.Duration, unit time.Duration, useInt bool) []byte {\n\tif useInt {\n\t\treturn e.AppendInt64(dst, int64(d/unit))\n\t}\n\treturn e.AppendFloat64(dst, float64(d)/float64(unit))\n}\n\n// AppendDurations encodes and adds an array of durations to the dst byte array.\n// useInt field indicates whether to store the duration as seconds (integer) or\n// as seconds+nanoseconds (float).\nfunc (e Encoder) AppendDurations(dst []byte, vals []time.Duration, unit time.Duration, useInt bool) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, d := range vals {\n\t\tdst = e.AppendDuration(dst, d, unit, useInt)\n\t}\n\treturn dst\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/internal/cbor/types.go",
    "content": "package cbor\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"net\"\n\t\"reflect\"\n)\n\n// AppendNil inserts a 'Nil' object into the dst byte array.\nfunc (Encoder) AppendNil(dst []byte) []byte {\n\treturn append(dst, majorTypeSimpleAndFloat|additionalTypeNull)\n}\n\n// AppendBeginMarker inserts a map start into the dst byte array.\nfunc (Encoder) AppendBeginMarker(dst []byte) []byte {\n\treturn append(dst, majorTypeMap|additionalTypeInfiniteCount)\n}\n\n// AppendEndMarker inserts a map end into the dst byte array.\nfunc (Encoder) AppendEndMarker(dst []byte) []byte {\n\treturn append(dst, majorTypeSimpleAndFloat|additionalTypeBreak)\n}\n\n// AppendObjectData takes an object in form of a byte array and appends to dst.\nfunc (Encoder) AppendObjectData(dst []byte, o []byte) []byte {\n\t// BeginMarker is present in the dst, which\n\t// should not be copied when appending to existing data.\n\treturn append(dst, o[1:]...)\n}\n\n// AppendArrayStart adds markers to indicate the start of an array.\nfunc (Encoder) AppendArrayStart(dst []byte) []byte {\n\treturn append(dst, majorTypeArray|additionalTypeInfiniteCount)\n}\n\n// AppendArrayEnd adds markers to indicate the end of an array.\nfunc (Encoder) AppendArrayEnd(dst []byte) []byte {\n\treturn append(dst, majorTypeSimpleAndFloat|additionalTypeBreak)\n}\n\n// AppendArrayDelim adds markers to indicate end of a particular array element.\nfunc (Encoder) AppendArrayDelim(dst []byte) []byte {\n\t//No delimiters needed in cbor\n\treturn dst\n}\n\n// AppendLineBreak is a noop that keep API compat with json encoder.\nfunc (Encoder) AppendLineBreak(dst []byte) []byte {\n\t// No line breaks needed in binary format.\n\treturn dst\n}\n\n// AppendBool encodes and inserts a boolean value into the dst byte array.\nfunc (Encoder) AppendBool(dst []byte, val bool) []byte {\n\tb := additionalTypeBoolFalse\n\tif val {\n\t\tb = additionalTypeBoolTrue\n\t}\n\treturn append(dst, majorTypeSimpleAndFloat|b)\n}\n\n// AppendBools encodes and inserts an array of boolean values into the dst byte array.\nfunc (e Encoder) AppendBools(dst []byte, vals []bool) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendBool(dst, v)\n\t}\n\treturn dst\n}\n\n// AppendInt encodes and inserts an integer value into the dst byte array.\nfunc (Encoder) AppendInt(dst []byte, val int) []byte {\n\tmajor := majorTypeUnsignedInt\n\tcontentVal := val\n\tif val < 0 {\n\t\tmajor = majorTypeNegativeInt\n\t\tcontentVal = -val - 1\n\t}\n\tif contentVal <= additionalMax {\n\t\tlb := byte(contentVal)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(contentVal))\n\t}\n\treturn dst\n}\n\n// AppendInts encodes and inserts an array of integer values into the dst byte array.\nfunc (e Encoder) AppendInts(dst []byte, vals []int) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendInt(dst, v)\n\t}\n\treturn dst\n}\n\n// AppendInt8 encodes and inserts an int8 value into the dst byte array.\nfunc (e Encoder) AppendInt8(dst []byte, val int8) []byte {\n\treturn e.AppendInt(dst, int(val))\n}\n\n// AppendInts8 encodes and inserts an array of integer values into the dst byte array.\nfunc (e Encoder) AppendInts8(dst []byte, vals []int8) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendInt(dst, int(v))\n\t}\n\treturn dst\n}\n\n// AppendInt16 encodes and inserts a int16 value into the dst byte array.\nfunc (e Encoder) AppendInt16(dst []byte, val int16) []byte {\n\treturn e.AppendInt(dst, int(val))\n}\n\n// AppendInts16 encodes and inserts an array of int16 values into the dst byte array.\nfunc (e Encoder) AppendInts16(dst []byte, vals []int16) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendInt(dst, int(v))\n\t}\n\treturn dst\n}\n\n// AppendInt32 encodes and inserts a int32 value into the dst byte array.\nfunc (e Encoder) AppendInt32(dst []byte, val int32) []byte {\n\treturn e.AppendInt(dst, int(val))\n}\n\n// AppendInts32 encodes and inserts an array of int32 values into the dst byte array.\nfunc (e Encoder) AppendInts32(dst []byte, vals []int32) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendInt(dst, int(v))\n\t}\n\treturn dst\n}\n\n// AppendInt64 encodes and inserts a int64 value into the dst byte array.\nfunc (Encoder) AppendInt64(dst []byte, val int64) []byte {\n\tmajor := majorTypeUnsignedInt\n\tcontentVal := val\n\tif val < 0 {\n\t\tmajor = majorTypeNegativeInt\n\t\tcontentVal = -val - 1\n\t}\n\tif contentVal <= additionalMax {\n\t\tlb := byte(contentVal)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(contentVal))\n\t}\n\treturn dst\n}\n\n// AppendInts64 encodes and inserts an array of int64 values into the dst byte array.\nfunc (e Encoder) AppendInts64(dst []byte, vals []int64) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendInt64(dst, v)\n\t}\n\treturn dst\n}\n\n// AppendUint encodes and inserts an unsigned integer value into the dst byte array.\nfunc (e Encoder) AppendUint(dst []byte, val uint) []byte {\n\treturn e.AppendInt64(dst, int64(val))\n}\n\n// AppendUints encodes and inserts an array of unsigned integer values into the dst byte array.\nfunc (e Encoder) AppendUints(dst []byte, vals []uint) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendUint(dst, v)\n\t}\n\treturn dst\n}\n\n// AppendUint8 encodes and inserts a unsigned int8 value into the dst byte array.\nfunc (e Encoder) AppendUint8(dst []byte, val uint8) []byte {\n\treturn e.AppendUint(dst, uint(val))\n}\n\n// AppendUints8 encodes and inserts an array of uint8 values into the dst byte array.\nfunc (e Encoder) AppendUints8(dst []byte, vals []uint8) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendUint8(dst, v)\n\t}\n\treturn dst\n}\n\n// AppendUint16 encodes and inserts a uint16 value into the dst byte array.\nfunc (e Encoder) AppendUint16(dst []byte, val uint16) []byte {\n\treturn e.AppendUint(dst, uint(val))\n}\n\n// AppendUints16 encodes and inserts an array of uint16 values into the dst byte array.\nfunc (e Encoder) AppendUints16(dst []byte, vals []uint16) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendUint16(dst, v)\n\t}\n\treturn dst\n}\n\n// AppendUint32 encodes and inserts a uint32 value into the dst byte array.\nfunc (e Encoder) AppendUint32(dst []byte, val uint32) []byte {\n\treturn e.AppendUint(dst, uint(val))\n}\n\n// AppendUints32 encodes and inserts an array of uint32 values into the dst byte array.\nfunc (e Encoder) AppendUints32(dst []byte, vals []uint32) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendUint32(dst, v)\n\t}\n\treturn dst\n}\n\n// AppendUint64 encodes and inserts a uint64 value into the dst byte array.\nfunc (Encoder) AppendUint64(dst []byte, val uint64) []byte {\n\tmajor := majorTypeUnsignedInt\n\tcontentVal := val\n\tif contentVal <= additionalMax {\n\t\tlb := byte(contentVal)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, contentVal)\n\t}\n\treturn dst\n}\n\n// AppendUints64 encodes and inserts an array of uint64 values into the dst byte array.\nfunc (e Encoder) AppendUints64(dst []byte, vals []uint64) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendUint64(dst, v)\n\t}\n\treturn dst\n}\n\n// AppendFloat32 encodes and inserts a single precision float value into the dst byte array.\nfunc (Encoder) AppendFloat32(dst []byte, val float32) []byte {\n\tswitch {\n\tcase math.IsNaN(float64(val)):\n\t\treturn append(dst, \"\\xfa\\x7f\\xc0\\x00\\x00\"...)\n\tcase math.IsInf(float64(val), 1):\n\t\treturn append(dst, \"\\xfa\\x7f\\x80\\x00\\x00\"...)\n\tcase math.IsInf(float64(val), -1):\n\t\treturn append(dst, \"\\xfa\\xff\\x80\\x00\\x00\"...)\n\t}\n\tmajor := majorTypeSimpleAndFloat\n\tsubType := additionalTypeFloat32\n\tn := math.Float32bits(val)\n\tvar buf [4]byte\n\tfor i := uint(0); i < 4; i++ {\n\t\tbuf[i] = byte(n >> ((3 - i) * 8))\n\t}\n\treturn append(append(dst, major|subType), buf[0], buf[1], buf[2], buf[3])\n}\n\n// AppendFloats32 encodes and inserts an array of single precision float value into the dst byte array.\nfunc (e Encoder) AppendFloats32(dst []byte, vals []float32) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendFloat32(dst, v)\n\t}\n\treturn dst\n}\n\n// AppendFloat64 encodes and inserts a double precision float value into the dst byte array.\nfunc (Encoder) AppendFloat64(dst []byte, val float64) []byte {\n\tswitch {\n\tcase math.IsNaN(val):\n\t\treturn append(dst, \"\\xfb\\x7f\\xf8\\x00\\x00\\x00\\x00\\x00\\x00\"...)\n\tcase math.IsInf(val, 1):\n\t\treturn append(dst, \"\\xfb\\x7f\\xf0\\x00\\x00\\x00\\x00\\x00\\x00\"...)\n\tcase math.IsInf(val, -1):\n\t\treturn append(dst, \"\\xfb\\xff\\xf0\\x00\\x00\\x00\\x00\\x00\\x00\"...)\n\t}\n\tmajor := majorTypeSimpleAndFloat\n\tsubType := additionalTypeFloat64\n\tn := math.Float64bits(val)\n\tdst = append(dst, major|subType)\n\tfor i := uint(1); i <= 8; i++ {\n\t\tb := byte(n >> ((8 - i) * 8))\n\t\tdst = append(dst, b)\n\t}\n\treturn dst\n}\n\n// AppendFloats64 encodes and inserts an array of double precision float values into the dst byte array.\nfunc (e Encoder) AppendFloats64(dst []byte, vals []float64) []byte {\n\tmajor := majorTypeArray\n\tl := len(vals)\n\tif l == 0 {\n\t\treturn e.AppendArrayEnd(e.AppendArrayStart(dst))\n\t}\n\tif l <= additionalMax {\n\t\tlb := byte(l)\n\t\tdst = append(dst, major|lb)\n\t} else {\n\t\tdst = appendCborTypePrefix(dst, major, uint64(l))\n\t}\n\tfor _, v := range vals {\n\t\tdst = e.AppendFloat64(dst, v)\n\t}\n\treturn dst\n}\n\n// AppendInterface takes an arbitrary object and converts it to JSON and embeds it dst.\nfunc (e Encoder) AppendInterface(dst []byte, i interface{}) []byte {\n\tmarshaled, err := JSONMarshalFunc(i)\n\tif err != nil {\n\t\treturn e.AppendString(dst, fmt.Sprintf(\"marshaling error: %v\", err))\n\t}\n\treturn AppendEmbeddedJSON(dst, marshaled)\n}\n\n// AppendType appends the parameter type (as a string) to the input byte slice.\nfunc (e Encoder) AppendType(dst []byte, i interface{}) []byte {\n\tif i == nil {\n\t\treturn e.AppendString(dst, \"<nil>\")\n\t}\n\treturn e.AppendString(dst, reflect.TypeOf(i).String())\n}\n\n// AppendIPAddr encodes and inserts an IP Address (IPv4 or IPv6).\nfunc (e Encoder) AppendIPAddr(dst []byte, ip net.IP) []byte {\n\tdst = append(dst, majorTypeTags|additionalTypeIntUint16)\n\tdst = append(dst, byte(additionalTypeTagNetworkAddr>>8))\n\tdst = append(dst, byte(additionalTypeTagNetworkAddr&0xff))\n\treturn e.AppendBytes(dst, ip)\n}\n\n// AppendIPPrefix encodes and inserts an IP Address Prefix (Address + Mask Length).\nfunc (e Encoder) AppendIPPrefix(dst []byte, pfx net.IPNet) []byte {\n\tdst = append(dst, majorTypeTags|additionalTypeIntUint16)\n\tdst = append(dst, byte(additionalTypeTagNetworkPrefix>>8))\n\tdst = append(dst, byte(additionalTypeTagNetworkPrefix&0xff))\n\n\t// Prefix is a tuple (aka MAP of 1 pair of elements) -\n\t// first element is prefix, second is mask length.\n\tdst = append(dst, majorTypeMap|0x1)\n\tdst = e.AppendBytes(dst, pfx.IP)\n\tmaskLen, _ := pfx.Mask.Size()\n\treturn e.AppendUint8(dst, uint8(maskLen))\n}\n\n// AppendMACAddr encodes and inserts a Hardware (MAC) address.\nfunc (e Encoder) AppendMACAddr(dst []byte, ha net.HardwareAddr) []byte {\n\tdst = append(dst, majorTypeTags|additionalTypeIntUint16)\n\tdst = append(dst, byte(additionalTypeTagNetworkAddr>>8))\n\tdst = append(dst, byte(additionalTypeTagNetworkAddr&0xff))\n\treturn e.AppendBytes(dst, ha)\n}\n\n// AppendHex adds a TAG and inserts a hex bytes as a string.\nfunc (e Encoder) AppendHex(dst []byte, val []byte) []byte {\n\tdst = append(dst, majorTypeTags|additionalTypeIntUint16)\n\tdst = append(dst, byte(additionalTypeTagHexString>>8))\n\tdst = append(dst, byte(additionalTypeTagHexString&0xff))\n\treturn e.AppendBytes(dst, val)\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/internal/json/base.go",
    "content": "package json\n\n// JSONMarshalFunc is used to marshal interface to JSON encoded byte slice.\n// Making it package level instead of embedded in Encoder brings\n// some extra efforts at importing, but avoids value copy when the functions\n// of Encoder being invoked.\n// DO REMEMBER to set this variable at importing, or\n// you might get a nil pointer dereference panic at runtime.\nvar JSONMarshalFunc func(v interface{}) ([]byte, error)\n\ntype Encoder struct{}\n\n// AppendKey appends a new key to the output JSON.\nfunc (e Encoder) AppendKey(dst []byte, key string) []byte {\n\tif dst[len(dst)-1] != '{' {\n\t\tdst = append(dst, ',')\n\t}\n\treturn append(e.AppendString(dst, key), ':')\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/internal/json/bytes.go",
    "content": "package json\n\nimport \"unicode/utf8\"\n\n// AppendBytes is a mirror of appendString with []byte arg\nfunc (Encoder) AppendBytes(dst, s []byte) []byte {\n\tdst = append(dst, '\"')\n\tfor i := 0; i < len(s); i++ {\n\t\tif !noEscapeTable[s[i]] {\n\t\t\tdst = appendBytesComplex(dst, s, i)\n\t\t\treturn append(dst, '\"')\n\t\t}\n\t}\n\tdst = append(dst, s...)\n\treturn append(dst, '\"')\n}\n\n// AppendHex encodes the input bytes to a hex string and appends\n// the encoded string to the input byte slice.\n//\n// The operation loops though each byte and encodes it as hex using\n// the hex lookup table.\nfunc (Encoder) AppendHex(dst, s []byte) []byte {\n\tdst = append(dst, '\"')\n\tfor _, v := range s {\n\t\tdst = append(dst, hex[v>>4], hex[v&0x0f])\n\t}\n\treturn append(dst, '\"')\n}\n\n// appendBytesComplex is a mirror of the appendStringComplex\n// with []byte arg\nfunc appendBytesComplex(dst, s []byte, i int) []byte {\n\tstart := 0\n\tfor i < len(s) {\n\t\tb := s[i]\n\t\tif b >= utf8.RuneSelf {\n\t\t\tr, size := utf8.DecodeRune(s[i:])\n\t\t\tif r == utf8.RuneError && size == 1 {\n\t\t\t\tif start < i {\n\t\t\t\t\tdst = append(dst, s[start:i]...)\n\t\t\t\t}\n\t\t\t\tdst = append(dst, `\\ufffd`...)\n\t\t\t\ti += size\n\t\t\t\tstart = i\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ti += size\n\t\t\tcontinue\n\t\t}\n\t\tif noEscapeTable[b] {\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\t// We encountered a character that needs to be encoded.\n\t\t// Let's append the previous simple characters to the byte slice\n\t\t// and switch our operation to read and encode the remainder\n\t\t// characters byte-by-byte.\n\t\tif start < i {\n\t\t\tdst = append(dst, s[start:i]...)\n\t\t}\n\t\tswitch b {\n\t\tcase '\"', '\\\\':\n\t\t\tdst = append(dst, '\\\\', b)\n\t\tcase '\\b':\n\t\t\tdst = append(dst, '\\\\', 'b')\n\t\tcase '\\f':\n\t\t\tdst = append(dst, '\\\\', 'f')\n\t\tcase '\\n':\n\t\t\tdst = append(dst, '\\\\', 'n')\n\t\tcase '\\r':\n\t\t\tdst = append(dst, '\\\\', 'r')\n\t\tcase '\\t':\n\t\t\tdst = append(dst, '\\\\', 't')\n\t\tdefault:\n\t\t\tdst = append(dst, '\\\\', 'u', '0', '0', hex[b>>4], hex[b&0xF])\n\t\t}\n\t\ti++\n\t\tstart = i\n\t}\n\tif start < len(s) {\n\t\tdst = append(dst, s[start:]...)\n\t}\n\treturn dst\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/internal/json/string.go",
    "content": "package json\n\nimport (\n\t\"fmt\"\n\t\"unicode/utf8\"\n)\n\nconst hex = \"0123456789abcdef\"\n\nvar noEscapeTable = [256]bool{}\n\nfunc init() {\n\tfor i := 0; i <= 0x7e; i++ {\n\t\tnoEscapeTable[i] = i >= 0x20 && i != '\\\\' && i != '\"'\n\t}\n}\n\n// AppendStrings encodes the input strings to json and\n// appends the encoded string list to the input byte slice.\nfunc (e Encoder) AppendStrings(dst []byte, vals []string) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = e.AppendString(dst, vals[0])\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = e.AppendString(append(dst, ','), val)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendString encodes the input string to json and appends\n// the encoded string to the input byte slice.\n//\n// The operation loops though each byte in the string looking\n// for characters that need json or utf8 encoding. If the string\n// does not need encoding, then the string is appended in its\n// entirety to the byte slice.\n// If we encounter a byte that does need encoding, switch up\n// the operation and perform a byte-by-byte read-encode-append.\nfunc (Encoder) AppendString(dst []byte, s string) []byte {\n\t// Start with a double quote.\n\tdst = append(dst, '\"')\n\t// Loop through each character in the string.\n\tfor i := 0; i < len(s); i++ {\n\t\t// Check if the character needs encoding. Control characters, slashes,\n\t\t// and the double quote need json encoding. Bytes above the ascii\n\t\t// boundary needs utf8 encoding.\n\t\tif !noEscapeTable[s[i]] {\n\t\t\t// We encountered a character that needs to be encoded. Switch\n\t\t\t// to complex version of the algorithm.\n\t\t\tdst = appendStringComplex(dst, s, i)\n\t\t\treturn append(dst, '\"')\n\t\t}\n\t}\n\t// The string has no need for encoding and therefore is directly\n\t// appended to the byte slice.\n\tdst = append(dst, s...)\n\t// End with a double quote\n\treturn append(dst, '\"')\n}\n\n// AppendStringers encodes the provided Stringer list to json and\n// appends the encoded Stringer list to the input byte slice.\nfunc (e Encoder) AppendStringers(dst []byte, vals []fmt.Stringer) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = e.AppendStringer(dst, vals[0])\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = e.AppendStringer(append(dst, ','), val)\n\t\t}\n\t}\n\treturn append(dst, ']')\n}\n\n// AppendStringer encodes the input Stringer to json and appends the\n// encoded Stringer value to the input byte slice.\nfunc (e Encoder) AppendStringer(dst []byte, val fmt.Stringer) []byte {\n\tif val == nil {\n\t\treturn e.AppendInterface(dst, nil)\n\t}\n\treturn e.AppendString(dst, val.String())\n}\n\n//// appendStringComplex is used by appendString to take over an in\n// progress JSON string encoding that encountered a character that needs\n// to be encoded.\nfunc appendStringComplex(dst []byte, s string, i int) []byte {\n\tstart := 0\n\tfor i < len(s) {\n\t\tb := s[i]\n\t\tif b >= utf8.RuneSelf {\n\t\t\tr, size := utf8.DecodeRuneInString(s[i:])\n\t\t\tif r == utf8.RuneError && size == 1 {\n\t\t\t\t// In case of error, first append previous simple characters to\n\t\t\t\t// the byte slice if any and append a replacement character code\n\t\t\t\t// in place of the invalid sequence.\n\t\t\t\tif start < i {\n\t\t\t\t\tdst = append(dst, s[start:i]...)\n\t\t\t\t}\n\t\t\t\tdst = append(dst, `\\ufffd`...)\n\t\t\t\ti += size\n\t\t\t\tstart = i\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ti += size\n\t\t\tcontinue\n\t\t}\n\t\tif noEscapeTable[b] {\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\t// We encountered a character that needs to be encoded.\n\t\t// Let's append the previous simple characters to the byte slice\n\t\t// and switch our operation to read and encode the remainder\n\t\t// characters byte-by-byte.\n\t\tif start < i {\n\t\t\tdst = append(dst, s[start:i]...)\n\t\t}\n\t\tswitch b {\n\t\tcase '\"', '\\\\':\n\t\t\tdst = append(dst, '\\\\', b)\n\t\tcase '\\b':\n\t\t\tdst = append(dst, '\\\\', 'b')\n\t\tcase '\\f':\n\t\t\tdst = append(dst, '\\\\', 'f')\n\t\tcase '\\n':\n\t\t\tdst = append(dst, '\\\\', 'n')\n\t\tcase '\\r':\n\t\t\tdst = append(dst, '\\\\', 'r')\n\t\tcase '\\t':\n\t\t\tdst = append(dst, '\\\\', 't')\n\t\tdefault:\n\t\t\tdst = append(dst, '\\\\', 'u', '0', '0', hex[b>>4], hex[b&0xF])\n\t\t}\n\t\ti++\n\t\tstart = i\n\t}\n\tif start < len(s) {\n\t\tdst = append(dst, s[start:]...)\n\t}\n\treturn dst\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/internal/json/time.go",
    "content": "package json\n\nimport (\n\t\"strconv\"\n\t\"time\"\n)\n\nconst (\n\t// Import from zerolog/global.go\n\ttimeFormatUnix      = \"\"\n\ttimeFormatUnixMs    = \"UNIXMS\"\n\ttimeFormatUnixMicro = \"UNIXMICRO\"\n\ttimeFormatUnixNano  = \"UNIXNANO\"\n)\n\n// AppendTime formats the input time with the given format\n// and appends the encoded string to the input byte slice.\nfunc (e Encoder) AppendTime(dst []byte, t time.Time, format string) []byte {\n\tswitch format {\n\tcase timeFormatUnix:\n\t\treturn e.AppendInt64(dst, t.Unix())\n\tcase timeFormatUnixMs:\n\t\treturn e.AppendInt64(dst, t.UnixNano()/1000000)\n\tcase timeFormatUnixMicro:\n\t\treturn e.AppendInt64(dst, t.UnixNano()/1000)\n\tcase timeFormatUnixNano:\n\t\treturn e.AppendInt64(dst, t.UnixNano())\n\t}\n\treturn append(t.AppendFormat(append(dst, '\"'), format), '\"')\n}\n\n// AppendTimes converts the input times with the given format\n// and appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendTimes(dst []byte, vals []time.Time, format string) []byte {\n\tswitch format {\n\tcase timeFormatUnix:\n\t\treturn appendUnixTimes(dst, vals)\n\tcase timeFormatUnixMs:\n\t\treturn appendUnixNanoTimes(dst, vals, 1000000)\n\tcase timeFormatUnixMicro:\n\t\treturn appendUnixNanoTimes(dst, vals, 1000)\n\tcase timeFormatUnixNano:\n\t\treturn appendUnixNanoTimes(dst, vals, 1)\n\t}\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = append(vals[0].AppendFormat(append(dst, '\"'), format), '\"')\n\tif len(vals) > 1 {\n\t\tfor _, t := range vals[1:] {\n\t\t\tdst = append(t.AppendFormat(append(dst, ',', '\"'), format), '\"')\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\nfunc appendUnixTimes(dst []byte, vals []time.Time) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendInt(dst, vals[0].Unix(), 10)\n\tif len(vals) > 1 {\n\t\tfor _, t := range vals[1:] {\n\t\t\tdst = strconv.AppendInt(append(dst, ','), t.Unix(), 10)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\nfunc appendUnixNanoTimes(dst []byte, vals []time.Time, div int64) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendInt(dst, vals[0].UnixNano()/div, 10)\n\tif len(vals) > 1 {\n\t\tfor _, t := range vals[1:] {\n\t\t\tdst = strconv.AppendInt(append(dst, ','), t.UnixNano()/div, 10)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendDuration formats the input duration with the given unit & format\n// and appends the encoded string to the input byte slice.\nfunc (e Encoder) AppendDuration(dst []byte, d time.Duration, unit time.Duration, useInt bool) []byte {\n\tif useInt {\n\t\treturn strconv.AppendInt(dst, int64(d/unit), 10)\n\t}\n\treturn e.AppendFloat64(dst, float64(d)/float64(unit))\n}\n\n// AppendDurations formats the input durations with the given unit & format\n// and appends the encoded string list to the input byte slice.\nfunc (e Encoder) AppendDurations(dst []byte, vals []time.Duration, unit time.Duration, useInt bool) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = e.AppendDuration(dst, vals[0], unit, useInt)\n\tif len(vals) > 1 {\n\t\tfor _, d := range vals[1:] {\n\t\t\tdst = e.AppendDuration(append(dst, ','), d, unit, useInt)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/internal/json/types.go",
    "content": "package json\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"net\"\n\t\"reflect\"\n\t\"strconv\"\n)\n\n// AppendNil inserts a 'Nil' object into the dst byte array.\nfunc (Encoder) AppendNil(dst []byte) []byte {\n\treturn append(dst, \"null\"...)\n}\n\n// AppendBeginMarker inserts a map start into the dst byte array.\nfunc (Encoder) AppendBeginMarker(dst []byte) []byte {\n\treturn append(dst, '{')\n}\n\n// AppendEndMarker inserts a map end into the dst byte array.\nfunc (Encoder) AppendEndMarker(dst []byte) []byte {\n\treturn append(dst, '}')\n}\n\n// AppendLineBreak appends a line break.\nfunc (Encoder) AppendLineBreak(dst []byte) []byte {\n\treturn append(dst, '\\n')\n}\n\n// AppendArrayStart adds markers to indicate the start of an array.\nfunc (Encoder) AppendArrayStart(dst []byte) []byte {\n\treturn append(dst, '[')\n}\n\n// AppendArrayEnd adds markers to indicate the end of an array.\nfunc (Encoder) AppendArrayEnd(dst []byte) []byte {\n\treturn append(dst, ']')\n}\n\n// AppendArrayDelim adds markers to indicate end of a particular array element.\nfunc (Encoder) AppendArrayDelim(dst []byte) []byte {\n\tif len(dst) > 0 {\n\t\treturn append(dst, ',')\n\t}\n\treturn dst\n}\n\n// AppendBool converts the input bool to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendBool(dst []byte, val bool) []byte {\n\treturn strconv.AppendBool(dst, val)\n}\n\n// AppendBools encodes the input bools to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendBools(dst []byte, vals []bool) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendBool(dst, vals[0])\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = strconv.AppendBool(append(dst, ','), val)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendInt converts the input int to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendInt(dst []byte, val int) []byte {\n\treturn strconv.AppendInt(dst, int64(val), 10)\n}\n\n// AppendInts encodes the input ints to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendInts(dst []byte, vals []int) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendInt(dst, int64(vals[0]), 10)\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = strconv.AppendInt(append(dst, ','), int64(val), 10)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendInt8 converts the input []int8 to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendInt8(dst []byte, val int8) []byte {\n\treturn strconv.AppendInt(dst, int64(val), 10)\n}\n\n// AppendInts8 encodes the input int8s to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendInts8(dst []byte, vals []int8) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendInt(dst, int64(vals[0]), 10)\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = strconv.AppendInt(append(dst, ','), int64(val), 10)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendInt16 converts the input int16 to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendInt16(dst []byte, val int16) []byte {\n\treturn strconv.AppendInt(dst, int64(val), 10)\n}\n\n// AppendInts16 encodes the input int16s to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendInts16(dst []byte, vals []int16) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendInt(dst, int64(vals[0]), 10)\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = strconv.AppendInt(append(dst, ','), int64(val), 10)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendInt32 converts the input int32 to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendInt32(dst []byte, val int32) []byte {\n\treturn strconv.AppendInt(dst, int64(val), 10)\n}\n\n// AppendInts32 encodes the input int32s to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendInts32(dst []byte, vals []int32) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendInt(dst, int64(vals[0]), 10)\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = strconv.AppendInt(append(dst, ','), int64(val), 10)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendInt64 converts the input int64 to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendInt64(dst []byte, val int64) []byte {\n\treturn strconv.AppendInt(dst, val, 10)\n}\n\n// AppendInts64 encodes the input int64s to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendInts64(dst []byte, vals []int64) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendInt(dst, vals[0], 10)\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = strconv.AppendInt(append(dst, ','), val, 10)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendUint converts the input uint to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendUint(dst []byte, val uint) []byte {\n\treturn strconv.AppendUint(dst, uint64(val), 10)\n}\n\n// AppendUints encodes the input uints to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendUints(dst []byte, vals []uint) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendUint(dst, uint64(vals[0]), 10)\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = strconv.AppendUint(append(dst, ','), uint64(val), 10)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendUint8 converts the input uint8 to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendUint8(dst []byte, val uint8) []byte {\n\treturn strconv.AppendUint(dst, uint64(val), 10)\n}\n\n// AppendUints8 encodes the input uint8s to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendUints8(dst []byte, vals []uint8) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendUint(dst, uint64(vals[0]), 10)\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = strconv.AppendUint(append(dst, ','), uint64(val), 10)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendUint16 converts the input uint16 to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendUint16(dst []byte, val uint16) []byte {\n\treturn strconv.AppendUint(dst, uint64(val), 10)\n}\n\n// AppendUints16 encodes the input uint16s to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendUints16(dst []byte, vals []uint16) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendUint(dst, uint64(vals[0]), 10)\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = strconv.AppendUint(append(dst, ','), uint64(val), 10)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendUint32 converts the input uint32 to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendUint32(dst []byte, val uint32) []byte {\n\treturn strconv.AppendUint(dst, uint64(val), 10)\n}\n\n// AppendUints32 encodes the input uint32s to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendUints32(dst []byte, vals []uint32) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendUint(dst, uint64(vals[0]), 10)\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = strconv.AppendUint(append(dst, ','), uint64(val), 10)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendUint64 converts the input uint64 to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendUint64(dst []byte, val uint64) []byte {\n\treturn strconv.AppendUint(dst, val, 10)\n}\n\n// AppendUints64 encodes the input uint64s to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendUints64(dst []byte, vals []uint64) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = strconv.AppendUint(dst, vals[0], 10)\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = strconv.AppendUint(append(dst, ','), val, 10)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\nfunc appendFloat(dst []byte, val float64, bitSize int) []byte {\n\t// JSON does not permit NaN or Infinity. A typical JSON encoder would fail\n\t// with an error, but a logging library wants the data to get through so we\n\t// make a tradeoff and store those types as string.\n\tswitch {\n\tcase math.IsNaN(val):\n\t\treturn append(dst, `\"NaN\"`...)\n\tcase math.IsInf(val, 1):\n\t\treturn append(dst, `\"+Inf\"`...)\n\tcase math.IsInf(val, -1):\n\t\treturn append(dst, `\"-Inf\"`...)\n\t}\n\treturn strconv.AppendFloat(dst, val, 'f', -1, bitSize)\n}\n\n// AppendFloat32 converts the input float32 to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendFloat32(dst []byte, val float32) []byte {\n\treturn appendFloat(dst, float64(val), 32)\n}\n\n// AppendFloats32 encodes the input float32s to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendFloats32(dst []byte, vals []float32) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = appendFloat(dst, float64(vals[0]), 32)\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = appendFloat(append(dst, ','), float64(val), 32)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendFloat64 converts the input float64 to a string and\n// appends the encoded string to the input byte slice.\nfunc (Encoder) AppendFloat64(dst []byte, val float64) []byte {\n\treturn appendFloat(dst, val, 64)\n}\n\n// AppendFloats64 encodes the input float64s to json and\n// appends the encoded string list to the input byte slice.\nfunc (Encoder) AppendFloats64(dst []byte, vals []float64) []byte {\n\tif len(vals) == 0 {\n\t\treturn append(dst, '[', ']')\n\t}\n\tdst = append(dst, '[')\n\tdst = appendFloat(dst, vals[0], 64)\n\tif len(vals) > 1 {\n\t\tfor _, val := range vals[1:] {\n\t\t\tdst = appendFloat(append(dst, ','), val, 64)\n\t\t}\n\t}\n\tdst = append(dst, ']')\n\treturn dst\n}\n\n// AppendInterface marshals the input interface to a string and\n// appends the encoded string to the input byte slice.\nfunc (e Encoder) AppendInterface(dst []byte, i interface{}) []byte {\n\tmarshaled, err := JSONMarshalFunc(i)\n\tif err != nil {\n\t\treturn e.AppendString(dst, fmt.Sprintf(\"marshaling error: %v\", err))\n\t}\n\treturn append(dst, marshaled...)\n}\n\n// AppendType appends the parameter type (as a string) to the input byte slice.\nfunc (e Encoder) AppendType(dst []byte, i interface{}) []byte {\n\tif i == nil {\n\t\treturn e.AppendString(dst, \"<nil>\")\n\t}\n\treturn e.AppendString(dst, reflect.TypeOf(i).String())\n}\n\n// AppendObjectData takes in an object that is already in a byte array\n// and adds it to the dst.\nfunc (Encoder) AppendObjectData(dst []byte, o []byte) []byte {\n\t// Three conditions apply here:\n\t// 1. new content starts with '{' - which should be dropped   OR\n\t// 2. new content starts with '{' - which should be replaced with ','\n\t//    to separate with existing content OR\n\t// 3. existing content has already other fields\n\tif o[0] == '{' {\n\t\tif len(dst) > 1 {\n\t\t\tdst = append(dst, ',')\n\t\t}\n\t\to = o[1:]\n\t} else if len(dst) > 1 {\n\t\tdst = append(dst, ',')\n\t}\n\treturn append(dst, o...)\n}\n\n// AppendIPAddr adds IPv4 or IPv6 address to dst.\nfunc (e Encoder) AppendIPAddr(dst []byte, ip net.IP) []byte {\n\treturn e.AppendString(dst, ip.String())\n}\n\n// AppendIPPrefix adds IPv4 or IPv6 Prefix (address & mask) to dst.\nfunc (e Encoder) AppendIPPrefix(dst []byte, pfx net.IPNet) []byte {\n\treturn e.AppendString(dst, pfx.String())\n\n}\n\n// AppendMACAddr adds MAC address to dst.\nfunc (e Encoder) AppendMACAddr(dst []byte, ha net.HardwareAddr) []byte {\n\treturn e.AppendString(dst, ha.String())\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/log/log.go",
    "content": "// Package log provides a global logger for zerolog.\npackage log\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\n\t\"github.com/rs/zerolog\"\n)\n\n// Logger is the global logger.\nvar Logger = zerolog.New(os.Stderr).With().Timestamp().Logger()\n\n// Output duplicates the global logger and sets w as its output.\nfunc Output(w io.Writer) zerolog.Logger {\n\treturn Logger.Output(w)\n}\n\n// With creates a child logger with the field added to its context.\nfunc With() zerolog.Context {\n\treturn Logger.With()\n}\n\n// Level creates a child logger with the minimum accepted level set to level.\nfunc Level(level zerolog.Level) zerolog.Logger {\n\treturn Logger.Level(level)\n}\n\n// Sample returns a logger with the s sampler.\nfunc Sample(s zerolog.Sampler) zerolog.Logger {\n\treturn Logger.Sample(s)\n}\n\n// Hook returns a logger with the h Hook.\nfunc Hook(h zerolog.Hook) zerolog.Logger {\n\treturn Logger.Hook(h)\n}\n\n// Err starts a new message with error level with err as a field if not nil or\n// with info level if err is nil.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc Err(err error) *zerolog.Event {\n\treturn Logger.Err(err)\n}\n\n// Trace starts a new message with trace level.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc Trace() *zerolog.Event {\n\treturn Logger.Trace()\n}\n\n// Debug starts a new message with debug level.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc Debug() *zerolog.Event {\n\treturn Logger.Debug()\n}\n\n// Info starts a new message with info level.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc Info() *zerolog.Event {\n\treturn Logger.Info()\n}\n\n// Warn starts a new message with warn level.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc Warn() *zerolog.Event {\n\treturn Logger.Warn()\n}\n\n// Error starts a new message with error level.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc Error() *zerolog.Event {\n\treturn Logger.Error()\n}\n\n// Fatal starts a new message with fatal level. The os.Exit(1) function\n// is called by the Msg method.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc Fatal() *zerolog.Event {\n\treturn Logger.Fatal()\n}\n\n// Panic starts a new message with panic level. The message is also sent\n// to the panic function.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc Panic() *zerolog.Event {\n\treturn Logger.Panic()\n}\n\n// WithLevel starts a new message with level.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc WithLevel(level zerolog.Level) *zerolog.Event {\n\treturn Logger.WithLevel(level)\n}\n\n// Log starts a new message with no level. Setting zerolog.GlobalLevel to\n// zerolog.Disabled will still disable events produced by this method.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc Log() *zerolog.Event {\n\treturn Logger.Log()\n}\n\n// Print sends a log event using debug level and no extra field.\n// Arguments are handled in the manner of fmt.Print.\nfunc Print(v ...interface{}) {\n\tLogger.Debug().CallerSkipFrame(1).Msg(fmt.Sprint(v...))\n}\n\n// Printf sends a log event using debug level and no extra field.\n// Arguments are handled in the manner of fmt.Printf.\nfunc Printf(format string, v ...interface{}) {\n\tLogger.Debug().CallerSkipFrame(1).Msgf(format, v...)\n}\n\n// Ctx returns the Logger associated with the ctx. If no logger\n// is associated, a disabled logger is returned.\nfunc Ctx(ctx context.Context) *zerolog.Logger {\n\treturn zerolog.Ctx(ctx)\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/log.go",
    "content": "// Package zerolog provides a lightweight logging library dedicated to JSON logging.\n//\n// A global Logger can be use for simple logging:\n//\n//     import \"github.com/rs/zerolog/log\"\n//\n//     log.Info().Msg(\"hello world\")\n//     // Output: {\"time\":1494567715,\"level\":\"info\",\"message\":\"hello world\"}\n//\n// NOTE: To import the global logger, import the \"log\" subpackage \"github.com/rs/zerolog/log\".\n//\n// Fields can be added to log messages:\n//\n//     log.Info().Str(\"foo\", \"bar\").Msg(\"hello world\")\n//     // Output: {\"time\":1494567715,\"level\":\"info\",\"message\":\"hello world\",\"foo\":\"bar\"}\n//\n// Create logger instance to manage different outputs:\n//\n//     logger := zerolog.New(os.Stderr).With().Timestamp().Logger()\n//     logger.Info().\n//            Str(\"foo\", \"bar\").\n//            Msg(\"hello world\")\n//     // Output: {\"time\":1494567715,\"level\":\"info\",\"message\":\"hello world\",\"foo\":\"bar\"}\n//\n// Sub-loggers let you chain loggers with additional context:\n//\n//     sublogger := log.With().Str(\"component\": \"foo\").Logger()\n//     sublogger.Info().Msg(\"hello world\")\n//     // Output: {\"time\":1494567715,\"level\":\"info\",\"message\":\"hello world\",\"component\":\"foo\"}\n//\n// Level logging\n//\n//     zerolog.SetGlobalLevel(zerolog.InfoLevel)\n//\n//     log.Debug().Msg(\"filtered out message\")\n//     log.Info().Msg(\"routed message\")\n//\n//     if e := log.Debug(); e.Enabled() {\n//         // Compute log output only if enabled.\n//         value := compute()\n//         e.Str(\"foo\": value).Msg(\"some debug message\")\n//     }\n//     // Output: {\"level\":\"info\",\"time\":1494567715,\"routed message\"}\n//\n// Customize automatic field names:\n//\n//     log.TimestampFieldName = \"t\"\n//     log.LevelFieldName = \"p\"\n//     log.MessageFieldName = \"m\"\n//\n//     log.Info().Msg(\"hello world\")\n//     // Output: {\"t\":1494567715,\"p\":\"info\",\"m\":\"hello world\"}\n//\n// Log with no level and message:\n//\n//     log.Log().Str(\"foo\",\"bar\").Msg(\"\")\n//     // Output: {\"time\":1494567715,\"foo\":\"bar\"}\n//\n// Add contextual fields to global Logger:\n//\n//     log.Logger = log.With().Str(\"foo\", \"bar\").Logger()\n//\n// Sample logs:\n//\n//     sampled := log.Sample(&zerolog.BasicSampler{N: 10})\n//     sampled.Info().Msg(\"will be logged every 10 messages\")\n//\n// Log with contextual hooks:\n//\n//     // Create the hook:\n//     type SeverityHook struct{}\n//\n//     func (h SeverityHook) Run(e *zerolog.Event, level zerolog.Level, msg string) {\n//          if level != zerolog.NoLevel {\n//              e.Str(\"severity\", level.String())\n//          }\n//     }\n//\n//     // And use it:\n//     var h SeverityHook\n//     log := zerolog.New(os.Stdout).Hook(h)\n//     log.Warn().Msg(\"\")\n//     // Output: {\"level\":\"warn\",\"severity\":\"warn\"}\n//\n// # Caveats\n//\n// Field duplication:\n//\n// There is no fields deduplication out-of-the-box.\n// Using the same key multiple times creates new key in final JSON each time.\n//\n//     logger := zerolog.New(os.Stderr).With().Timestamp().Logger()\n//     logger.Info().\n//            Timestamp().\n//            Msg(\"dup\")\n//     // Output: {\"level\":\"info\",\"time\":1494567715,\"time\":1494567715,\"message\":\"dup\"}\n//\n// In this case, many consumers will take the last value,\n// but this is not guaranteed; check yours if in doubt.\n//\n// Concurrency safety:\n//\n// Be careful when calling UpdateContext. It is not concurrency safe. Use the With method to create a child logger:\n//\n//     func handler(w http.ResponseWriter, r *http.Request) {\n//         // Create a child logger for concurrency safety\n//         logger := log.Logger.With().Logger()\n//\n//         // Add context fields, for example User-Agent from HTTP headers\n//         logger.UpdateContext(func(c zerolog.Context) zerolog.Context {\n//             ...\n//         })\n//     }\npackage zerolog\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Level defines log levels.\ntype Level int8\n\nconst (\n\t// DebugLevel defines debug log level.\n\tDebugLevel Level = iota\n\t// InfoLevel defines info log level.\n\tInfoLevel\n\t// WarnLevel defines warn log level.\n\tWarnLevel\n\t// ErrorLevel defines error log level.\n\tErrorLevel\n\t// FatalLevel defines fatal log level.\n\tFatalLevel\n\t// PanicLevel defines panic log level.\n\tPanicLevel\n\t// NoLevel defines an absent log level.\n\tNoLevel\n\t// Disabled disables the logger.\n\tDisabled\n\n\t// TraceLevel defines trace log level.\n\tTraceLevel Level = -1\n\t// Values less than TraceLevel are handled as numbers.\n)\n\nfunc (l Level) String() string {\n\tswitch l {\n\tcase TraceLevel:\n\t\treturn LevelTraceValue\n\tcase DebugLevel:\n\t\treturn LevelDebugValue\n\tcase InfoLevel:\n\t\treturn LevelInfoValue\n\tcase WarnLevel:\n\t\treturn LevelWarnValue\n\tcase ErrorLevel:\n\t\treturn LevelErrorValue\n\tcase FatalLevel:\n\t\treturn LevelFatalValue\n\tcase PanicLevel:\n\t\treturn LevelPanicValue\n\tcase Disabled:\n\t\treturn \"disabled\"\n\tcase NoLevel:\n\t\treturn \"\"\n\t}\n\treturn strconv.Itoa(int(l))\n}\n\n// ParseLevel converts a level string into a zerolog Level value.\n// returns an error if the input string does not match known values.\nfunc ParseLevel(levelStr string) (Level, error) {\n\tswitch {\n\tcase strings.EqualFold(levelStr, LevelFieldMarshalFunc(TraceLevel)):\n\t\treturn TraceLevel, nil\n\tcase strings.EqualFold(levelStr, LevelFieldMarshalFunc(DebugLevel)):\n\t\treturn DebugLevel, nil\n\tcase strings.EqualFold(levelStr, LevelFieldMarshalFunc(InfoLevel)):\n\t\treturn InfoLevel, nil\n\tcase strings.EqualFold(levelStr, LevelFieldMarshalFunc(WarnLevel)):\n\t\treturn WarnLevel, nil\n\tcase strings.EqualFold(levelStr, LevelFieldMarshalFunc(ErrorLevel)):\n\t\treturn ErrorLevel, nil\n\tcase strings.EqualFold(levelStr, LevelFieldMarshalFunc(FatalLevel)):\n\t\treturn FatalLevel, nil\n\tcase strings.EqualFold(levelStr, LevelFieldMarshalFunc(PanicLevel)):\n\t\treturn PanicLevel, nil\n\tcase strings.EqualFold(levelStr, LevelFieldMarshalFunc(Disabled)):\n\t\treturn Disabled, nil\n\tcase strings.EqualFold(levelStr, LevelFieldMarshalFunc(NoLevel)):\n\t\treturn NoLevel, nil\n\t}\n\ti, err := strconv.Atoi(levelStr)\n\tif err != nil {\n\t\treturn NoLevel, fmt.Errorf(\"Unknown Level String: '%s', defaulting to NoLevel\", levelStr)\n\t}\n\tif i > 127 || i < -128 {\n\t\treturn NoLevel, fmt.Errorf(\"Out-Of-Bounds Level: '%d', defaulting to NoLevel\", i)\n\t}\n\treturn Level(i), nil\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler to allow for easy reading from toml/yaml/json formats\nfunc (l *Level) UnmarshalText(text []byte) error {\n\tif l == nil {\n\t\treturn errors.New(\"can't unmarshal a nil *Level\")\n\t}\n\tvar err error\n\t*l, err = ParseLevel(string(text))\n\treturn err\n}\n\n// MarshalText implements encoding.TextMarshaler to allow for easy writing into toml/yaml/json formats\nfunc (l Level) MarshalText() ([]byte, error) {\n\treturn []byte(LevelFieldMarshalFunc(l)), nil\n}\n\n// A Logger represents an active logging object that generates lines\n// of JSON output to an io.Writer. Each logging operation makes a single\n// call to the Writer's Write method. There is no guarantee on access\n// serialization to the Writer. If your Writer is not thread safe,\n// you may consider a sync wrapper.\ntype Logger struct {\n\tw       LevelWriter\n\tlevel   Level\n\tsampler Sampler\n\tcontext []byte\n\thooks   []Hook\n\tstack   bool\n\tctx     context.Context\n}\n\n// New creates a root logger with given output writer. If the output writer implements\n// the LevelWriter interface, the WriteLevel method will be called instead of the Write\n// one.\n//\n// Each logging operation makes a single call to the Writer's Write method. There is no\n// guarantee on access serialization to the Writer. If your Writer is not thread safe,\n// you may consider using sync wrapper.\nfunc New(w io.Writer) Logger {\n\tif w == nil {\n\t\tw = ioutil.Discard\n\t}\n\tlw, ok := w.(LevelWriter)\n\tif !ok {\n\t\tlw = levelWriterAdapter{w}\n\t}\n\treturn Logger{w: lw, level: TraceLevel}\n}\n\n// Nop returns a disabled logger for which all operation are no-op.\nfunc Nop() Logger {\n\treturn New(nil).Level(Disabled)\n}\n\n// Output duplicates the current logger and sets w as its output.\nfunc (l Logger) Output(w io.Writer) Logger {\n\tl2 := New(w)\n\tl2.level = l.level\n\tl2.sampler = l.sampler\n\tl2.stack = l.stack\n\tif len(l.hooks) > 0 {\n\t\tl2.hooks = append(l2.hooks, l.hooks...)\n\t}\n\tif l.context != nil {\n\t\tl2.context = make([]byte, len(l.context), cap(l.context))\n\t\tcopy(l2.context, l.context)\n\t}\n\treturn l2\n}\n\n// With creates a child logger with the field added to its context.\nfunc (l Logger) With() Context {\n\tcontext := l.context\n\tl.context = make([]byte, 0, 500)\n\tif context != nil {\n\t\tl.context = append(l.context, context...)\n\t} else {\n\t\t// This is needed for AppendKey to not check len of input\n\t\t// thus making it inlinable\n\t\tl.context = enc.AppendBeginMarker(l.context)\n\t}\n\treturn Context{l}\n}\n\n// UpdateContext updates the internal logger's context.\n//\n// Caution: This method is not concurrency safe.\n// Use the With method to create a child logger before modifying the context from concurrent goroutines.\nfunc (l *Logger) UpdateContext(update func(c Context) Context) {\n\tif l == disabledLogger {\n\t\treturn\n\t}\n\tif cap(l.context) == 0 {\n\t\tl.context = make([]byte, 0, 500)\n\t}\n\tif len(l.context) == 0 {\n\t\tl.context = enc.AppendBeginMarker(l.context)\n\t}\n\tc := update(Context{*l})\n\tl.context = c.l.context\n}\n\n// Level creates a child logger with the minimum accepted level set to level.\nfunc (l Logger) Level(lvl Level) Logger {\n\tl.level = lvl\n\treturn l\n}\n\n// GetLevel returns the current Level of l.\nfunc (l Logger) GetLevel() Level {\n\treturn l.level\n}\n\n// Sample returns a logger with the s sampler.\nfunc (l Logger) Sample(s Sampler) Logger {\n\tl.sampler = s\n\treturn l\n}\n\n// Hook returns a logger with the h Hook.\nfunc (l Logger) Hook(h Hook) Logger {\n\tnewHooks := make([]Hook, len(l.hooks), len(l.hooks)+1)\n\tcopy(newHooks, l.hooks)\n\tl.hooks = append(newHooks, h)\n\treturn l\n}\n\n// Trace starts a new message with trace level.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc (l *Logger) Trace() *Event {\n\treturn l.newEvent(TraceLevel, nil)\n}\n\n// Debug starts a new message with debug level.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc (l *Logger) Debug() *Event {\n\treturn l.newEvent(DebugLevel, nil)\n}\n\n// Info starts a new message with info level.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc (l *Logger) Info() *Event {\n\treturn l.newEvent(InfoLevel, nil)\n}\n\n// Warn starts a new message with warn level.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc (l *Logger) Warn() *Event {\n\treturn l.newEvent(WarnLevel, nil)\n}\n\n// Error starts a new message with error level.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc (l *Logger) Error() *Event {\n\treturn l.newEvent(ErrorLevel, nil)\n}\n\n// Err starts a new message with error level with err as a field if not nil or\n// with info level if err is nil.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc (l *Logger) Err(err error) *Event {\n\tif err != nil {\n\t\treturn l.Error().Err(err)\n\t}\n\n\treturn l.Info()\n}\n\n// Fatal starts a new message with fatal level. The os.Exit(1) function\n// is called by the Msg method, which terminates the program immediately.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc (l *Logger) Fatal() *Event {\n\treturn l.newEvent(FatalLevel, func(msg string) { os.Exit(1) })\n}\n\n// Panic starts a new message with panic level. The panic() function\n// is called by the Msg method, which stops the ordinary flow of a goroutine.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc (l *Logger) Panic() *Event {\n\treturn l.newEvent(PanicLevel, func(msg string) { panic(msg) })\n}\n\n// WithLevel starts a new message with level. Unlike Fatal and Panic\n// methods, WithLevel does not terminate the program or stop the ordinary\n// flow of a goroutine when used with their respective levels.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc (l *Logger) WithLevel(level Level) *Event {\n\tswitch level {\n\tcase TraceLevel:\n\t\treturn l.Trace()\n\tcase DebugLevel:\n\t\treturn l.Debug()\n\tcase InfoLevel:\n\t\treturn l.Info()\n\tcase WarnLevel:\n\t\treturn l.Warn()\n\tcase ErrorLevel:\n\t\treturn l.Error()\n\tcase FatalLevel:\n\t\treturn l.newEvent(FatalLevel, nil)\n\tcase PanicLevel:\n\t\treturn l.newEvent(PanicLevel, nil)\n\tcase NoLevel:\n\t\treturn l.Log()\n\tcase Disabled:\n\t\treturn nil\n\tdefault:\n\t\treturn l.newEvent(level, nil)\n\t}\n}\n\n// Log starts a new message with no level. Setting GlobalLevel to Disabled\n// will still disable events produced by this method.\n//\n// You must call Msg on the returned event in order to send the event.\nfunc (l *Logger) Log() *Event {\n\treturn l.newEvent(NoLevel, nil)\n}\n\n// Print sends a log event using debug level and no extra field.\n// Arguments are handled in the manner of fmt.Print.\nfunc (l *Logger) Print(v ...interface{}) {\n\tif e := l.Debug(); e.Enabled() {\n\t\te.CallerSkipFrame(1).Msg(fmt.Sprint(v...))\n\t}\n}\n\n// Printf sends a log event using debug level and no extra field.\n// Arguments are handled in the manner of fmt.Printf.\nfunc (l *Logger) Printf(format string, v ...interface{}) {\n\tif e := l.Debug(); e.Enabled() {\n\t\te.CallerSkipFrame(1).Msg(fmt.Sprintf(format, v...))\n\t}\n}\n\n// Write implements the io.Writer interface. This is useful to set as a writer\n// for the standard library log.\nfunc (l Logger) Write(p []byte) (n int, err error) {\n\tn = len(p)\n\tif n > 0 && p[n-1] == '\\n' {\n\t\t// Trim CR added by stdlog.\n\t\tp = p[0 : n-1]\n\t}\n\tl.Log().CallerSkipFrame(1).Msg(string(p))\n\treturn\n}\n\nfunc (l *Logger) newEvent(level Level, done func(string)) *Event {\n\tenabled := l.should(level)\n\tif !enabled {\n\t\tif done != nil {\n\t\t\tdone(\"\")\n\t\t}\n\t\treturn nil\n\t}\n\te := newEvent(l.w, level)\n\te.done = done\n\te.ch = l.hooks\n\te.ctx = l.ctx\n\tif level != NoLevel && LevelFieldName != \"\" {\n\t\te.Str(LevelFieldName, LevelFieldMarshalFunc(level))\n\t}\n\tif l.context != nil && len(l.context) > 1 {\n\t\te.buf = enc.AppendObjectData(e.buf, l.context)\n\t}\n\tif l.stack {\n\t\te.Stack()\n\t}\n\treturn e\n}\n\n// should returns true if the log event should be logged.\nfunc (l *Logger) should(lvl Level) bool {\n\tif lvl < l.level || lvl < GlobalLevel() {\n\t\treturn false\n\t}\n\tif l.sampler != nil && !samplingDisabled() {\n\t\treturn l.sampler.Sample(lvl)\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/not_go112.go",
    "content": "// +build !go1.12\n\npackage zerolog\n\nconst contextCallerSkipFrameCount = 3\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/sampler.go",
    "content": "package zerolog\n\nimport (\n\t\"math/rand\"\n\t\"sync/atomic\"\n\t\"time\"\n)\n\nvar (\n\t// Often samples log every ~ 10 events.\n\tOften = RandomSampler(10)\n\t// Sometimes samples log every ~ 100 events.\n\tSometimes = RandomSampler(100)\n\t// Rarely samples log every ~ 1000 events.\n\tRarely = RandomSampler(1000)\n)\n\n// Sampler defines an interface to a log sampler.\ntype Sampler interface {\n\t// Sample returns true if the event should be part of the sample, false if\n\t// the event should be dropped.\n\tSample(lvl Level) bool\n}\n\n// RandomSampler use a PRNG to randomly sample an event out of N events,\n// regardless of their level.\ntype RandomSampler uint32\n\n// Sample implements the Sampler interface.\nfunc (s RandomSampler) Sample(lvl Level) bool {\n\tif s <= 0 {\n\t\treturn false\n\t}\n\tif rand.Intn(int(s)) != 0 {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// BasicSampler is a sampler that will send every Nth events, regardless of\n// their level.\ntype BasicSampler struct {\n\tN       uint32\n\tcounter uint32\n}\n\n// Sample implements the Sampler interface.\nfunc (s *BasicSampler) Sample(lvl Level) bool {\n\tn := s.N\n\tif n == 1 {\n\t\treturn true\n\t}\n\tc := atomic.AddUint32(&s.counter, 1)\n\treturn c%n == 1\n}\n\n// BurstSampler lets Burst events pass per Period then pass the decision to\n// NextSampler. If Sampler is not set, all subsequent events are rejected.\ntype BurstSampler struct {\n\t// Burst is the maximum number of event per period allowed before calling\n\t// NextSampler.\n\tBurst uint32\n\t// Period defines the burst period. If 0, NextSampler is always called.\n\tPeriod time.Duration\n\t// NextSampler is the sampler used after the burst is reached. If nil,\n\t// events are always rejected after the burst.\n\tNextSampler Sampler\n\n\tcounter uint32\n\tresetAt int64\n}\n\n// Sample implements the Sampler interface.\nfunc (s *BurstSampler) Sample(lvl Level) bool {\n\tif s.Burst > 0 && s.Period > 0 {\n\t\tif s.inc() <= s.Burst {\n\t\t\treturn true\n\t\t}\n\t}\n\tif s.NextSampler == nil {\n\t\treturn false\n\t}\n\treturn s.NextSampler.Sample(lvl)\n}\n\nfunc (s *BurstSampler) inc() uint32 {\n\tnow := time.Now().UnixNano()\n\tresetAt := atomic.LoadInt64(&s.resetAt)\n\tvar c uint32\n\tif now > resetAt {\n\t\tc = 1\n\t\tatomic.StoreUint32(&s.counter, c)\n\t\tnewResetAt := now + s.Period.Nanoseconds()\n\t\treset := atomic.CompareAndSwapInt64(&s.resetAt, resetAt, newResetAt)\n\t\tif !reset {\n\t\t\t// Lost the race with another goroutine trying to reset.\n\t\t\tc = atomic.AddUint32(&s.counter, 1)\n\t\t}\n\t} else {\n\t\tc = atomic.AddUint32(&s.counter, 1)\n\t}\n\treturn c\n}\n\n// LevelSampler applies a different sampler for each level.\ntype LevelSampler struct {\n\tTraceSampler, DebugSampler, InfoSampler, WarnSampler, ErrorSampler Sampler\n}\n\nfunc (s LevelSampler) Sample(lvl Level) bool {\n\tswitch lvl {\n\tcase TraceLevel:\n\t\tif s.TraceSampler != nil {\n\t\t\treturn s.TraceSampler.Sample(lvl)\n\t\t}\n\tcase DebugLevel:\n\t\tif s.DebugSampler != nil {\n\t\t\treturn s.DebugSampler.Sample(lvl)\n\t\t}\n\tcase InfoLevel:\n\t\tif s.InfoSampler != nil {\n\t\t\treturn s.InfoSampler.Sample(lvl)\n\t\t}\n\tcase WarnLevel:\n\t\tif s.WarnSampler != nil {\n\t\t\treturn s.WarnSampler.Sample(lvl)\n\t\t}\n\tcase ErrorLevel:\n\t\tif s.ErrorSampler != nil {\n\t\t\treturn s.ErrorSampler.Sample(lvl)\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/syslog.go",
    "content": "// +build !windows\n// +build !binary_log\n\npackage zerolog\n\nimport (\n\t\"io\"\n)\n\n// See http://cee.mitre.org/language/1.0-beta1/clt.html#syslog\n// or https://www.rsyslog.com/json-elasticsearch/\nconst ceePrefix = \"@cee:\"\n\n// SyslogWriter is an interface matching a syslog.Writer struct.\ntype SyslogWriter interface {\n\tio.Writer\n\tDebug(m string) error\n\tInfo(m string) error\n\tWarning(m string) error\n\tErr(m string) error\n\tEmerg(m string) error\n\tCrit(m string) error\n}\n\ntype syslogWriter struct {\n\tw      SyslogWriter\n\tprefix string\n}\n\n// SyslogLevelWriter wraps a SyslogWriter and call the right syslog level\n// method matching the zerolog level.\nfunc SyslogLevelWriter(w SyslogWriter) LevelWriter {\n\treturn syslogWriter{w, \"\"}\n}\n\n// SyslogCEEWriter wraps a SyslogWriter with a SyslogLevelWriter that adds a\n// MITRE CEE prefix for JSON syslog entries, compatible with rsyslog \n// and syslog-ng JSON logging support. \n// See https://www.rsyslog.com/json-elasticsearch/\nfunc SyslogCEEWriter(w SyslogWriter) LevelWriter {\n\treturn syslogWriter{w, ceePrefix}\n}\n\nfunc (sw syslogWriter) Write(p []byte) (n int, err error) {\n\tvar pn int\n\tif sw.prefix != \"\" {\n\t\tpn, err = sw.w.Write([]byte(sw.prefix))\n\t\tif err != nil {\n\t\t\treturn pn, err\n\t\t}\n\t}\n\tn, err = sw.w.Write(p)\n\treturn pn + n, err\n}\n\n// WriteLevel implements LevelWriter interface.\nfunc (sw syslogWriter) WriteLevel(level Level, p []byte) (n int, err error) {\n\tswitch level {\n\tcase TraceLevel:\n\tcase DebugLevel:\n\t\terr = sw.w.Debug(sw.prefix + string(p))\n\tcase InfoLevel:\n\t\terr = sw.w.Info(sw.prefix + string(p))\n\tcase WarnLevel:\n\t\terr = sw.w.Warning(sw.prefix + string(p))\n\tcase ErrorLevel:\n\t\terr = sw.w.Err(sw.prefix + string(p))\n\tcase FatalLevel:\n\t\terr = sw.w.Emerg(sw.prefix + string(p))\n\tcase PanicLevel:\n\t\terr = sw.w.Crit(sw.prefix + string(p))\n\tcase NoLevel:\n\t\terr = sw.w.Info(sw.prefix + string(p))\n\tdefault:\n\t\tpanic(\"invalid level\")\n\t}\n\t// Any CEE prefix is not part of the message, so we don't include its length\n\tn = len(p)\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/rs/zerolog/writer.go",
    "content": "package zerolog\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"path\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// LevelWriter defines as interface a writer may implement in order\n// to receive level information with payload.\ntype LevelWriter interface {\n\tio.Writer\n\tWriteLevel(level Level, p []byte) (n int, err error)\n}\n\ntype levelWriterAdapter struct {\n\tio.Writer\n}\n\nfunc (lw levelWriterAdapter) WriteLevel(l Level, p []byte) (n int, err error) {\n\treturn lw.Write(p)\n}\n\ntype syncWriter struct {\n\tmu sync.Mutex\n\tlw LevelWriter\n}\n\n// SyncWriter wraps w so that each call to Write is synchronized with a mutex.\n// This syncer can be used to wrap the call to writer's Write method if it is\n// not thread safe. Note that you do not need this wrapper for os.File Write\n// operations on POSIX and Windows systems as they are already thread-safe.\nfunc SyncWriter(w io.Writer) io.Writer {\n\tif lw, ok := w.(LevelWriter); ok {\n\t\treturn &syncWriter{lw: lw}\n\t}\n\treturn &syncWriter{lw: levelWriterAdapter{w}}\n}\n\n// Write implements the io.Writer interface.\nfunc (s *syncWriter) Write(p []byte) (n int, err error) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\treturn s.lw.Write(p)\n}\n\n// WriteLevel implements the LevelWriter interface.\nfunc (s *syncWriter) WriteLevel(l Level, p []byte) (n int, err error) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\treturn s.lw.WriteLevel(l, p)\n}\n\ntype multiLevelWriter struct {\n\twriters []LevelWriter\n}\n\nfunc (t multiLevelWriter) Write(p []byte) (n int, err error) {\n\tfor _, w := range t.writers {\n\t\tif _n, _err := w.Write(p); err == nil {\n\t\t\tn = _n\n\t\t\tif _err != nil {\n\t\t\t\terr = _err\n\t\t\t} else if _n != len(p) {\n\t\t\t\terr = io.ErrShortWrite\n\t\t\t}\n\t\t}\n\t}\n\treturn n, err\n}\n\nfunc (t multiLevelWriter) WriteLevel(l Level, p []byte) (n int, err error) {\n\tfor _, w := range t.writers {\n\t\tif _n, _err := w.WriteLevel(l, p); err == nil {\n\t\t\tn = _n\n\t\t\tif _err != nil {\n\t\t\t\terr = _err\n\t\t\t} else if _n != len(p) {\n\t\t\t\terr = io.ErrShortWrite\n\t\t\t}\n\t\t}\n\t}\n\treturn n, err\n}\n\n// MultiLevelWriter creates a writer that duplicates its writes to all the\n// provided writers, similar to the Unix tee(1) command. If some writers\n// implement LevelWriter, their WriteLevel method will be used instead of Write.\nfunc MultiLevelWriter(writers ...io.Writer) LevelWriter {\n\tlwriters := make([]LevelWriter, 0, len(writers))\n\tfor _, w := range writers {\n\t\tif lw, ok := w.(LevelWriter); ok {\n\t\t\tlwriters = append(lwriters, lw)\n\t\t} else {\n\t\t\tlwriters = append(lwriters, levelWriterAdapter{w})\n\t\t}\n\t}\n\treturn multiLevelWriter{lwriters}\n}\n\n// TestingLog is the logging interface of testing.TB.\ntype TestingLog interface {\n\tLog(args ...interface{})\n\tLogf(format string, args ...interface{})\n\tHelper()\n}\n\n// TestWriter is a writer that writes to testing.TB.\ntype TestWriter struct {\n\tT TestingLog\n\n\t// Frame skips caller frames to capture the original file and line numbers.\n\tFrame int\n}\n\n// NewTestWriter creates a writer that logs to the testing.TB.\nfunc NewTestWriter(t TestingLog) TestWriter {\n\treturn TestWriter{T: t}\n}\n\n// Write to testing.TB.\nfunc (t TestWriter) Write(p []byte) (n int, err error) {\n\tt.T.Helper()\n\n\tn = len(p)\n\n\t// Strip trailing newline because t.Log always adds one.\n\tp = bytes.TrimRight(p, \"\\n\")\n\n\t// Try to correct the log file and line number to the caller.\n\tif t.Frame > 0 {\n\t\t_, origFile, origLine, _ := runtime.Caller(1)\n\t\t_, frameFile, frameLine, ok := runtime.Caller(1 + t.Frame)\n\t\tif ok {\n\t\t\terase := strings.Repeat(\"\\b\", len(path.Base(origFile))+len(strconv.Itoa(origLine))+3)\n\t\t\tt.T.Logf(\"%s%s:%d: %s\", erase, path.Base(frameFile), frameLine, p)\n\t\t\treturn n, err\n\t\t}\n\t}\n\tt.T.Log(string(p))\n\n\treturn n, err\n}\n\n// ConsoleTestWriter creates an option that correctly sets the file frame depth for testing.TB log.\nfunc ConsoleTestWriter(t TestingLog) func(w *ConsoleWriter) {\n\treturn func(w *ConsoleWriter) {\n\t\tw.Out = TestWriter{T: t, Frame: 6}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cast/.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\n*.bench\n"
  },
  {
    "path": "vendor/github.com/spf13/cast/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014 Steve Francia\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/spf13/cast/Makefile",
    "content": "GOVERSION := $(shell go version | cut -d ' ' -f 3 | cut -d '.' -f 2)\n\n.PHONY: check fmt lint test test-race vet test-cover-html help\n.DEFAULT_GOAL := help\n\ncheck: test-race fmt vet lint ## Run tests and linters\n\ntest: ## Run tests\n\tgo test ./...\n\ntest-race: ## Run tests with race detector\n\tgo test -race ./...\n\nfmt: ## Run gofmt linter\nifeq \"$(GOVERSION)\" \"12\"\n\t@for d in `go list` ; do \\\n\t\tif [ \"`gofmt -l -s $$GOPATH/src/$$d | tee /dev/stderr`\" ]; then \\\n\t\t\techo \"^ improperly formatted go files\" && echo && exit 1; \\\n\t\tfi \\\n\tdone\nendif\n\nlint: ## Run golint linter\n\t@for d in `go list` ; do \\\n\t\tif [ \"`golint $$d | tee /dev/stderr`\" ]; then \\\n\t\t\techo \"^ golint errors!\" && echo && exit 1; \\\n\t\tfi \\\n\tdone\n\nvet: ## Run go vet linter\n\t@if [ \"`go vet | tee /dev/stderr`\" ]; then \\\n\t\techo \"^ go vet errors!\" && echo && exit 1; \\\n\tfi\n\ntest-cover-html: ## Generate test coverage report\n\tgo test -coverprofile=coverage.out -covermode=count\n\tgo tool cover -func=coverage.out\n\nhelp:\n\t@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = \":.*?## \"}; {printf \"\\033[36m%-30s\\033[0m %s\\n\", $$1, $$2}'\n"
  },
  {
    "path": "vendor/github.com/spf13/cast/README.md",
    "content": "# cast\n\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/spf13/cast/test.yaml?branch=master&style=flat-square)](https://github.com/spf13/cast/actions/workflows/test.yaml)\n[![PkgGoDev](https://pkg.go.dev/badge/mod/github.com/spf13/cast)](https://pkg.go.dev/mod/github.com/spf13/cast)\n![Go Version](https://img.shields.io/badge/go%20version-%3E=1.16-61CFDD.svg?style=flat-square)\n[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/cast?style=flat-square)](https://goreportcard.com/report/github.com/spf13/cast)\n\nEasy and safe casting from one type to another in Go\n\nDon’t Panic! ... Cast\n\n## What is Cast?\n\nCast is a library to convert between different go types in a consistent and easy way.\n\nCast provides simple functions to easily convert a number to a string, an\ninterface into a bool, etc. Cast does this intelligently when an obvious\nconversion is possible. It doesn’t make any attempts to guess what you meant,\nfor example you can only convert a string to an int when it is a string\nrepresentation of an int such as “8”. Cast was developed for use in\n[Hugo](https://gohugo.io), a website engine which uses YAML, TOML or JSON\nfor meta data.\n\n## Why use Cast?\n\nWhen working with dynamic data in Go you often need to cast or convert the data\nfrom one type into another. Cast goes beyond just using type assertion (though\nit uses that when possible) to provide a very straightforward and convenient\nlibrary.\n\nIf you are working with interfaces to handle things like dynamic content\nyou’ll need an easy way to convert an interface into a given type. This\nis the library for you.\n\nIf you are taking in data from YAML, TOML or JSON or other formats which lack\nfull types, then Cast is the library for you.\n\n## Usage\n\nCast provides a handful of To_____ methods. These methods will always return\nthe desired type. **If input is provided that will not convert to that type, the\n0 or nil value for that type will be returned**.\n\nCast also provides identical methods To_____E. These return the same result as\nthe To_____ methods, plus an additional error which tells you if it successfully\nconverted. Using these methods you can tell the difference between when the\ninput matched the zero value or when the conversion failed and the zero value\nwas returned.\n\nThe following examples are merely a sample of what is available. Please review\nthe code for a complete set.\n\n### Example ‘ToString’:\n\n    cast.ToString(\"mayonegg\")         // \"mayonegg\"\n    cast.ToString(8)                  // \"8\"\n    cast.ToString(8.31)               // \"8.31\"\n    cast.ToString([]byte(\"one time\")) // \"one time\"\n    cast.ToString(nil)                // \"\"\n\n\tvar foo interface{} = \"one more time\"\n    cast.ToString(foo)                // \"one more time\"\n\n\n### Example ‘ToInt’:\n\n    cast.ToInt(8)                  // 8\n    cast.ToInt(8.31)               // 8\n    cast.ToInt(\"8\")                // 8\n    cast.ToInt(true)               // 1\n    cast.ToInt(false)              // 0\n\n\tvar eight interface{} = 8\n    cast.ToInt(eight)              // 8\n    cast.ToInt(nil)                // 0\n"
  },
  {
    "path": "vendor/github.com/spf13/cast/cast.go",
    "content": "// Copyright © 2014 Steve Francia <spf@spf13.com>.\n//\n// Use of this source code is governed by an MIT-style\n// license that can be found in the LICENSE file.\n\n// Package cast provides easy and safe casting in Go.\npackage cast\n\nimport \"time\"\n\n// ToBool casts an interface to a bool type.\nfunc ToBool(i interface{}) bool {\n\tv, _ := ToBoolE(i)\n\treturn v\n}\n\n// ToTime casts an interface to a time.Time type.\nfunc ToTime(i interface{}) time.Time {\n\tv, _ := ToTimeE(i)\n\treturn v\n}\n\nfunc ToTimeInDefaultLocation(i interface{}, location *time.Location) time.Time {\n\tv, _ := ToTimeInDefaultLocationE(i, location)\n\treturn v\n}\n\n// ToDuration casts an interface to a time.Duration type.\nfunc ToDuration(i interface{}) time.Duration {\n\tv, _ := ToDurationE(i)\n\treturn v\n}\n\n// ToFloat64 casts an interface to a float64 type.\nfunc ToFloat64(i interface{}) float64 {\n\tv, _ := ToFloat64E(i)\n\treturn v\n}\n\n// ToFloat32 casts an interface to a float32 type.\nfunc ToFloat32(i interface{}) float32 {\n\tv, _ := ToFloat32E(i)\n\treturn v\n}\n\n// ToInt64 casts an interface to an int64 type.\nfunc ToInt64(i interface{}) int64 {\n\tv, _ := ToInt64E(i)\n\treturn v\n}\n\n// ToInt32 casts an interface to an int32 type.\nfunc ToInt32(i interface{}) int32 {\n\tv, _ := ToInt32E(i)\n\treturn v\n}\n\n// ToInt16 casts an interface to an int16 type.\nfunc ToInt16(i interface{}) int16 {\n\tv, _ := ToInt16E(i)\n\treturn v\n}\n\n// ToInt8 casts an interface to an int8 type.\nfunc ToInt8(i interface{}) int8 {\n\tv, _ := ToInt8E(i)\n\treturn v\n}\n\n// ToInt casts an interface to an int type.\nfunc ToInt(i interface{}) int {\n\tv, _ := ToIntE(i)\n\treturn v\n}\n\n// ToUint casts an interface to a uint type.\nfunc ToUint(i interface{}) uint {\n\tv, _ := ToUintE(i)\n\treturn v\n}\n\n// ToUint64 casts an interface to a uint64 type.\nfunc ToUint64(i interface{}) uint64 {\n\tv, _ := ToUint64E(i)\n\treturn v\n}\n\n// ToUint32 casts an interface to a uint32 type.\nfunc ToUint32(i interface{}) uint32 {\n\tv, _ := ToUint32E(i)\n\treturn v\n}\n\n// ToUint16 casts an interface to a uint16 type.\nfunc ToUint16(i interface{}) uint16 {\n\tv, _ := ToUint16E(i)\n\treturn v\n}\n\n// ToUint8 casts an interface to a uint8 type.\nfunc ToUint8(i interface{}) uint8 {\n\tv, _ := ToUint8E(i)\n\treturn v\n}\n\n// ToString casts an interface to a string type.\nfunc ToString(i interface{}) string {\n\tv, _ := ToStringE(i)\n\treturn v\n}\n\n// ToStringMapString casts an interface to a map[string]string type.\nfunc ToStringMapString(i interface{}) map[string]string {\n\tv, _ := ToStringMapStringE(i)\n\treturn v\n}\n\n// ToStringMapStringSlice casts an interface to a map[string][]string type.\nfunc ToStringMapStringSlice(i interface{}) map[string][]string {\n\tv, _ := ToStringMapStringSliceE(i)\n\treturn v\n}\n\n// ToStringMapBool casts an interface to a map[string]bool type.\nfunc ToStringMapBool(i interface{}) map[string]bool {\n\tv, _ := ToStringMapBoolE(i)\n\treturn v\n}\n\n// ToStringMapInt casts an interface to a map[string]int type.\nfunc ToStringMapInt(i interface{}) map[string]int {\n\tv, _ := ToStringMapIntE(i)\n\treturn v\n}\n\n// ToStringMapInt64 casts an interface to a map[string]int64 type.\nfunc ToStringMapInt64(i interface{}) map[string]int64 {\n\tv, _ := ToStringMapInt64E(i)\n\treturn v\n}\n\n// ToStringMap casts an interface to a map[string]interface{} type.\nfunc ToStringMap(i interface{}) map[string]interface{} {\n\tv, _ := ToStringMapE(i)\n\treturn v\n}\n\n// ToSlice casts an interface to a []interface{} type.\nfunc ToSlice(i interface{}) []interface{} {\n\tv, _ := ToSliceE(i)\n\treturn v\n}\n\n// ToBoolSlice casts an interface to a []bool type.\nfunc ToBoolSlice(i interface{}) []bool {\n\tv, _ := ToBoolSliceE(i)\n\treturn v\n}\n\n// ToStringSlice casts an interface to a []string type.\nfunc ToStringSlice(i interface{}) []string {\n\tv, _ := ToStringSliceE(i)\n\treturn v\n}\n\n// ToIntSlice casts an interface to a []int type.\nfunc ToIntSlice(i interface{}) []int {\n\tv, _ := ToIntSliceE(i)\n\treturn v\n}\n\n// ToDurationSlice casts an interface to a []time.Duration type.\nfunc ToDurationSlice(i interface{}) []time.Duration {\n\tv, _ := ToDurationSliceE(i)\n\treturn v\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cast/caste.go",
    "content": "// Copyright © 2014 Steve Francia <spf@spf13.com>.\n//\n// Use of this source code is governed by an MIT-style\n// license that can be found in the LICENSE file.\n\npackage cast\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"html/template\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\nvar errNegativeNotAllowed = errors.New(\"unable to cast negative value\")\n\ntype float64EProvider interface {\n\tFloat64() (float64, error)\n}\n\ntype float64Provider interface {\n\tFloat64() float64\n}\n\n// ToTimeE casts an interface to a time.Time type.\nfunc ToTimeE(i interface{}) (tim time.Time, err error) {\n\treturn ToTimeInDefaultLocationE(i, time.UTC)\n}\n\n// ToTimeInDefaultLocationE casts an empty interface to time.Time,\n// interpreting inputs without a timezone to be in the given location,\n// or the local timezone if nil.\nfunc ToTimeInDefaultLocationE(i interface{}, location *time.Location) (tim time.Time, err error) {\n\ti = indirect(i)\n\n\tswitch v := i.(type) {\n\tcase time.Time:\n\t\treturn v, nil\n\tcase string:\n\t\treturn StringToDateInDefaultLocation(v, location)\n\tcase json.Number:\n\t\ts, err1 := ToInt64E(v)\n\t\tif err1 != nil {\n\t\t\treturn time.Time{}, fmt.Errorf(\"unable to cast %#v of type %T to Time\", i, i)\n\t\t}\n\t\treturn time.Unix(s, 0), nil\n\tcase int:\n\t\treturn time.Unix(int64(v), 0), nil\n\tcase int64:\n\t\treturn time.Unix(v, 0), nil\n\tcase int32:\n\t\treturn time.Unix(int64(v), 0), nil\n\tcase uint:\n\t\treturn time.Unix(int64(v), 0), nil\n\tcase uint64:\n\t\treturn time.Unix(int64(v), 0), nil\n\tcase uint32:\n\t\treturn time.Unix(int64(v), 0), nil\n\tdefault:\n\t\treturn time.Time{}, fmt.Errorf(\"unable to cast %#v of type %T to Time\", i, i)\n\t}\n}\n\n// ToDurationE casts an interface to a time.Duration type.\nfunc ToDurationE(i interface{}) (d time.Duration, err error) {\n\ti = indirect(i)\n\n\tswitch s := i.(type) {\n\tcase time.Duration:\n\t\treturn s, nil\n\tcase int, int64, int32, int16, int8, uint, uint64, uint32, uint16, uint8:\n\t\td = time.Duration(ToInt64(s))\n\t\treturn\n\tcase float32, float64:\n\t\td = time.Duration(ToFloat64(s))\n\t\treturn\n\tcase string:\n\t\tif strings.ContainsAny(s, \"nsuµmh\") {\n\t\t\td, err = time.ParseDuration(s)\n\t\t} else {\n\t\t\td, err = time.ParseDuration(s + \"ns\")\n\t\t}\n\t\treturn\n\tcase float64EProvider:\n\t\tvar v float64\n\t\tv, err = s.Float64()\n\t\td = time.Duration(v)\n\t\treturn\n\tcase float64Provider:\n\t\td = time.Duration(s.Float64())\n\t\treturn\n\tdefault:\n\t\terr = fmt.Errorf(\"unable to cast %#v of type %T to Duration\", i, i)\n\t\treturn\n\t}\n}\n\n// ToBoolE casts an interface to a bool type.\nfunc ToBoolE(i interface{}) (bool, error) {\n\ti = indirect(i)\n\n\tswitch b := i.(type) {\n\tcase bool:\n\t\treturn b, nil\n\tcase nil:\n\t\treturn false, nil\n\tcase int:\n\t\treturn b != 0, nil\n\tcase int64:\n\t\treturn b != 0, nil\n\tcase int32:\n\t\treturn b != 0, nil\n\tcase int16:\n\t\treturn b != 0, nil\n\tcase int8:\n\t\treturn b != 0, nil\n\tcase uint:\n\t\treturn b != 0, nil\n\tcase uint64:\n\t\treturn b != 0, nil\n\tcase uint32:\n\t\treturn b != 0, nil\n\tcase uint16:\n\t\treturn b != 0, nil\n\tcase uint8:\n\t\treturn b != 0, nil\n\tcase float64:\n\t\treturn b != 0, nil\n\tcase float32:\n\t\treturn b != 0, nil\n\tcase time.Duration:\n\t\treturn b != 0, nil\n\tcase string:\n\t\treturn strconv.ParseBool(i.(string))\n\tcase json.Number:\n\t\tv, err := ToInt64E(b)\n\t\tif err == nil {\n\t\t\treturn v != 0, nil\n\t\t}\n\t\treturn false, fmt.Errorf(\"unable to cast %#v of type %T to bool\", i, i)\n\tdefault:\n\t\treturn false, fmt.Errorf(\"unable to cast %#v of type %T to bool\", i, i)\n\t}\n}\n\n// ToFloat64E casts an interface to a float64 type.\nfunc ToFloat64E(i interface{}) (float64, error) {\n\ti = indirect(i)\n\n\tintv, ok := toInt(i)\n\tif ok {\n\t\treturn float64(intv), nil\n\t}\n\n\tswitch s := i.(type) {\n\tcase float64:\n\t\treturn s, nil\n\tcase float32:\n\t\treturn float64(s), nil\n\tcase int64:\n\t\treturn float64(s), nil\n\tcase int32:\n\t\treturn float64(s), nil\n\tcase int16:\n\t\treturn float64(s), nil\n\tcase int8:\n\t\treturn float64(s), nil\n\tcase uint:\n\t\treturn float64(s), nil\n\tcase uint64:\n\t\treturn float64(s), nil\n\tcase uint32:\n\t\treturn float64(s), nil\n\tcase uint16:\n\t\treturn float64(s), nil\n\tcase uint8:\n\t\treturn float64(s), nil\n\tcase string:\n\t\tv, err := strconv.ParseFloat(s, 64)\n\t\tif err == nil {\n\t\t\treturn v, nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to float64\", i, i)\n\tcase float64EProvider:\n\t\tv, err := s.Float64()\n\t\tif err == nil {\n\t\t\treturn v, nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to float64\", i, i)\n\tcase float64Provider:\n\t\treturn s.Float64(), nil\n\tcase bool:\n\t\tif s {\n\t\t\treturn 1, nil\n\t\t}\n\t\treturn 0, nil\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to float64\", i, i)\n\t}\n}\n\n// ToFloat32E casts an interface to a float32 type.\nfunc ToFloat32E(i interface{}) (float32, error) {\n\ti = indirect(i)\n\n\tintv, ok := toInt(i)\n\tif ok {\n\t\treturn float32(intv), nil\n\t}\n\n\tswitch s := i.(type) {\n\tcase float64:\n\t\treturn float32(s), nil\n\tcase float32:\n\t\treturn s, nil\n\tcase int64:\n\t\treturn float32(s), nil\n\tcase int32:\n\t\treturn float32(s), nil\n\tcase int16:\n\t\treturn float32(s), nil\n\tcase int8:\n\t\treturn float32(s), nil\n\tcase uint:\n\t\treturn float32(s), nil\n\tcase uint64:\n\t\treturn float32(s), nil\n\tcase uint32:\n\t\treturn float32(s), nil\n\tcase uint16:\n\t\treturn float32(s), nil\n\tcase uint8:\n\t\treturn float32(s), nil\n\tcase string:\n\t\tv, err := strconv.ParseFloat(s, 32)\n\t\tif err == nil {\n\t\t\treturn float32(v), nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to float32\", i, i)\n\tcase float64EProvider:\n\t\tv, err := s.Float64()\n\t\tif err == nil {\n\t\t\treturn float32(v), nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to float32\", i, i)\n\tcase float64Provider:\n\t\treturn float32(s.Float64()), nil\n\tcase bool:\n\t\tif s {\n\t\t\treturn 1, nil\n\t\t}\n\t\treturn 0, nil\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to float32\", i, i)\n\t}\n}\n\n// ToInt64E casts an interface to an int64 type.\nfunc ToInt64E(i interface{}) (int64, error) {\n\ti = indirect(i)\n\n\tintv, ok := toInt(i)\n\tif ok {\n\t\treturn int64(intv), nil\n\t}\n\n\tswitch s := i.(type) {\n\tcase int64:\n\t\treturn s, nil\n\tcase int32:\n\t\treturn int64(s), nil\n\tcase int16:\n\t\treturn int64(s), nil\n\tcase int8:\n\t\treturn int64(s), nil\n\tcase uint:\n\t\treturn int64(s), nil\n\tcase uint64:\n\t\treturn int64(s), nil\n\tcase uint32:\n\t\treturn int64(s), nil\n\tcase uint16:\n\t\treturn int64(s), nil\n\tcase uint8:\n\t\treturn int64(s), nil\n\tcase float64:\n\t\treturn int64(s), nil\n\tcase float32:\n\t\treturn int64(s), nil\n\tcase string:\n\t\tv, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)\n\t\tif err == nil {\n\t\t\treturn v, nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to int64\", i, i)\n\tcase json.Number:\n\t\treturn ToInt64E(string(s))\n\tcase bool:\n\t\tif s {\n\t\t\treturn 1, nil\n\t\t}\n\t\treturn 0, nil\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to int64\", i, i)\n\t}\n}\n\n// ToInt32E casts an interface to an int32 type.\nfunc ToInt32E(i interface{}) (int32, error) {\n\ti = indirect(i)\n\n\tintv, ok := toInt(i)\n\tif ok {\n\t\treturn int32(intv), nil\n\t}\n\n\tswitch s := i.(type) {\n\tcase int64:\n\t\treturn int32(s), nil\n\tcase int32:\n\t\treturn s, nil\n\tcase int16:\n\t\treturn int32(s), nil\n\tcase int8:\n\t\treturn int32(s), nil\n\tcase uint:\n\t\treturn int32(s), nil\n\tcase uint64:\n\t\treturn int32(s), nil\n\tcase uint32:\n\t\treturn int32(s), nil\n\tcase uint16:\n\t\treturn int32(s), nil\n\tcase uint8:\n\t\treturn int32(s), nil\n\tcase float64:\n\t\treturn int32(s), nil\n\tcase float32:\n\t\treturn int32(s), nil\n\tcase string:\n\t\tv, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)\n\t\tif err == nil {\n\t\t\treturn int32(v), nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to int32\", i, i)\n\tcase json.Number:\n\t\treturn ToInt32E(string(s))\n\tcase bool:\n\t\tif s {\n\t\t\treturn 1, nil\n\t\t}\n\t\treturn 0, nil\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to int32\", i, i)\n\t}\n}\n\n// ToInt16E casts an interface to an int16 type.\nfunc ToInt16E(i interface{}) (int16, error) {\n\ti = indirect(i)\n\n\tintv, ok := toInt(i)\n\tif ok {\n\t\treturn int16(intv), nil\n\t}\n\n\tswitch s := i.(type) {\n\tcase int64:\n\t\treturn int16(s), nil\n\tcase int32:\n\t\treturn int16(s), nil\n\tcase int16:\n\t\treturn s, nil\n\tcase int8:\n\t\treturn int16(s), nil\n\tcase uint:\n\t\treturn int16(s), nil\n\tcase uint64:\n\t\treturn int16(s), nil\n\tcase uint32:\n\t\treturn int16(s), nil\n\tcase uint16:\n\t\treturn int16(s), nil\n\tcase uint8:\n\t\treturn int16(s), nil\n\tcase float64:\n\t\treturn int16(s), nil\n\tcase float32:\n\t\treturn int16(s), nil\n\tcase string:\n\t\tv, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)\n\t\tif err == nil {\n\t\t\treturn int16(v), nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to int16\", i, i)\n\tcase json.Number:\n\t\treturn ToInt16E(string(s))\n\tcase bool:\n\t\tif s {\n\t\t\treturn 1, nil\n\t\t}\n\t\treturn 0, nil\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to int16\", i, i)\n\t}\n}\n\n// ToInt8E casts an interface to an int8 type.\nfunc ToInt8E(i interface{}) (int8, error) {\n\ti = indirect(i)\n\n\tintv, ok := toInt(i)\n\tif ok {\n\t\treturn int8(intv), nil\n\t}\n\n\tswitch s := i.(type) {\n\tcase int64:\n\t\treturn int8(s), nil\n\tcase int32:\n\t\treturn int8(s), nil\n\tcase int16:\n\t\treturn int8(s), nil\n\tcase int8:\n\t\treturn s, nil\n\tcase uint:\n\t\treturn int8(s), nil\n\tcase uint64:\n\t\treturn int8(s), nil\n\tcase uint32:\n\t\treturn int8(s), nil\n\tcase uint16:\n\t\treturn int8(s), nil\n\tcase uint8:\n\t\treturn int8(s), nil\n\tcase float64:\n\t\treturn int8(s), nil\n\tcase float32:\n\t\treturn int8(s), nil\n\tcase string:\n\t\tv, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)\n\t\tif err == nil {\n\t\t\treturn int8(v), nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to int8\", i, i)\n\tcase json.Number:\n\t\treturn ToInt8E(string(s))\n\tcase bool:\n\t\tif s {\n\t\t\treturn 1, nil\n\t\t}\n\t\treturn 0, nil\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to int8\", i, i)\n\t}\n}\n\n// ToIntE casts an interface to an int type.\nfunc ToIntE(i interface{}) (int, error) {\n\ti = indirect(i)\n\n\tintv, ok := toInt(i)\n\tif ok {\n\t\treturn intv, nil\n\t}\n\n\tswitch s := i.(type) {\n\tcase int64:\n\t\treturn int(s), nil\n\tcase int32:\n\t\treturn int(s), nil\n\tcase int16:\n\t\treturn int(s), nil\n\tcase int8:\n\t\treturn int(s), nil\n\tcase uint:\n\t\treturn int(s), nil\n\tcase uint64:\n\t\treturn int(s), nil\n\tcase uint32:\n\t\treturn int(s), nil\n\tcase uint16:\n\t\treturn int(s), nil\n\tcase uint8:\n\t\treturn int(s), nil\n\tcase float64:\n\t\treturn int(s), nil\n\tcase float32:\n\t\treturn int(s), nil\n\tcase string:\n\t\tv, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)\n\t\tif err == nil {\n\t\t\treturn int(v), nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to int64\", i, i)\n\tcase json.Number:\n\t\treturn ToIntE(string(s))\n\tcase bool:\n\t\tif s {\n\t\t\treturn 1, nil\n\t\t}\n\t\treturn 0, nil\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to int\", i, i)\n\t}\n}\n\n// ToUintE casts an interface to a uint type.\nfunc ToUintE(i interface{}) (uint, error) {\n\ti = indirect(i)\n\n\tintv, ok := toInt(i)\n\tif ok {\n\t\tif intv < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint(intv), nil\n\t}\n\n\tswitch s := i.(type) {\n\tcase string:\n\t\tv, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)\n\t\tif err == nil {\n\t\t\tif v < 0 {\n\t\t\t\treturn 0, errNegativeNotAllowed\n\t\t\t}\n\t\t\treturn uint(v), nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to uint\", i, i)\n\tcase json.Number:\n\t\treturn ToUintE(string(s))\n\tcase int64:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint(s), nil\n\tcase int32:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint(s), nil\n\tcase int16:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint(s), nil\n\tcase int8:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint(s), nil\n\tcase uint:\n\t\treturn s, nil\n\tcase uint64:\n\t\treturn uint(s), nil\n\tcase uint32:\n\t\treturn uint(s), nil\n\tcase uint16:\n\t\treturn uint(s), nil\n\tcase uint8:\n\t\treturn uint(s), nil\n\tcase float64:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint(s), nil\n\tcase float32:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint(s), nil\n\tcase bool:\n\t\tif s {\n\t\t\treturn 1, nil\n\t\t}\n\t\treturn 0, nil\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to uint\", i, i)\n\t}\n}\n\n// ToUint64E casts an interface to a uint64 type.\nfunc ToUint64E(i interface{}) (uint64, error) {\n\ti = indirect(i)\n\n\tintv, ok := toInt(i)\n\tif ok {\n\t\tif intv < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint64(intv), nil\n\t}\n\n\tswitch s := i.(type) {\n\tcase string:\n\t\tv, err := strconv.ParseUint(trimZeroDecimal(s), 0, 0)\n\t\tif err == nil {\n\t\t\tif v < 0 {\n\t\t\t\treturn 0, errNegativeNotAllowed\n\t\t\t}\n\t\t\treturn v, nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to uint64\", i, i)\n\tcase json.Number:\n\t\treturn ToUint64E(string(s))\n\tcase int64:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint64(s), nil\n\tcase int32:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint64(s), nil\n\tcase int16:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint64(s), nil\n\tcase int8:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint64(s), nil\n\tcase uint:\n\t\treturn uint64(s), nil\n\tcase uint64:\n\t\treturn s, nil\n\tcase uint32:\n\t\treturn uint64(s), nil\n\tcase uint16:\n\t\treturn uint64(s), nil\n\tcase uint8:\n\t\treturn uint64(s), nil\n\tcase float32:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint64(s), nil\n\tcase float64:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint64(s), nil\n\tcase bool:\n\t\tif s {\n\t\t\treturn 1, nil\n\t\t}\n\t\treturn 0, nil\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to uint64\", i, i)\n\t}\n}\n\n// ToUint32E casts an interface to a uint32 type.\nfunc ToUint32E(i interface{}) (uint32, error) {\n\ti = indirect(i)\n\n\tintv, ok := toInt(i)\n\tif ok {\n\t\tif intv < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint32(intv), nil\n\t}\n\n\tswitch s := i.(type) {\n\tcase string:\n\t\tv, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)\n\t\tif err == nil {\n\t\t\tif v < 0 {\n\t\t\t\treturn 0, errNegativeNotAllowed\n\t\t\t}\n\t\t\treturn uint32(v), nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to uint32\", i, i)\n\tcase json.Number:\n\t\treturn ToUint32E(string(s))\n\tcase int64:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint32(s), nil\n\tcase int32:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint32(s), nil\n\tcase int16:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint32(s), nil\n\tcase int8:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint32(s), nil\n\tcase uint:\n\t\treturn uint32(s), nil\n\tcase uint64:\n\t\treturn uint32(s), nil\n\tcase uint32:\n\t\treturn s, nil\n\tcase uint16:\n\t\treturn uint32(s), nil\n\tcase uint8:\n\t\treturn uint32(s), nil\n\tcase float64:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint32(s), nil\n\tcase float32:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint32(s), nil\n\tcase bool:\n\t\tif s {\n\t\t\treturn 1, nil\n\t\t}\n\t\treturn 0, nil\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to uint32\", i, i)\n\t}\n}\n\n// ToUint16E casts an interface to a uint16 type.\nfunc ToUint16E(i interface{}) (uint16, error) {\n\ti = indirect(i)\n\n\tintv, ok := toInt(i)\n\tif ok {\n\t\tif intv < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint16(intv), nil\n\t}\n\n\tswitch s := i.(type) {\n\tcase string:\n\t\tv, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)\n\t\tif err == nil {\n\t\t\tif v < 0 {\n\t\t\t\treturn 0, errNegativeNotAllowed\n\t\t\t}\n\t\t\treturn uint16(v), nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to uint16\", i, i)\n\tcase json.Number:\n\t\treturn ToUint16E(string(s))\n\tcase int64:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint16(s), nil\n\tcase int32:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint16(s), nil\n\tcase int16:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint16(s), nil\n\tcase int8:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint16(s), nil\n\tcase uint:\n\t\treturn uint16(s), nil\n\tcase uint64:\n\t\treturn uint16(s), nil\n\tcase uint32:\n\t\treturn uint16(s), nil\n\tcase uint16:\n\t\treturn s, nil\n\tcase uint8:\n\t\treturn uint16(s), nil\n\tcase float64:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint16(s), nil\n\tcase float32:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint16(s), nil\n\tcase bool:\n\t\tif s {\n\t\t\treturn 1, nil\n\t\t}\n\t\treturn 0, nil\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to uint16\", i, i)\n\t}\n}\n\n// ToUint8E casts an interface to a uint type.\nfunc ToUint8E(i interface{}) (uint8, error) {\n\ti = indirect(i)\n\n\tintv, ok := toInt(i)\n\tif ok {\n\t\tif intv < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint8(intv), nil\n\t}\n\n\tswitch s := i.(type) {\n\tcase string:\n\t\tv, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)\n\t\tif err == nil {\n\t\t\tif v < 0 {\n\t\t\t\treturn 0, errNegativeNotAllowed\n\t\t\t}\n\t\t\treturn uint8(v), nil\n\t\t}\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to uint8\", i, i)\n\tcase json.Number:\n\t\treturn ToUint8E(string(s))\n\tcase int64:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint8(s), nil\n\tcase int32:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint8(s), nil\n\tcase int16:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint8(s), nil\n\tcase int8:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint8(s), nil\n\tcase uint:\n\t\treturn uint8(s), nil\n\tcase uint64:\n\t\treturn uint8(s), nil\n\tcase uint32:\n\t\treturn uint8(s), nil\n\tcase uint16:\n\t\treturn uint8(s), nil\n\tcase uint8:\n\t\treturn s, nil\n\tcase float64:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint8(s), nil\n\tcase float32:\n\t\tif s < 0 {\n\t\t\treturn 0, errNegativeNotAllowed\n\t\t}\n\t\treturn uint8(s), nil\n\tcase bool:\n\t\tif s {\n\t\t\treturn 1, nil\n\t\t}\n\t\treturn 0, nil\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unable to cast %#v of type %T to uint8\", i, i)\n\t}\n}\n\n// From html/template/content.go\n// Copyright 2011 The Go Authors. All rights reserved.\n// indirect returns the value, after dereferencing as many times\n// as necessary to reach the base type (or nil).\nfunc indirect(a interface{}) interface{} {\n\tif a == nil {\n\t\treturn nil\n\t}\n\tif t := reflect.TypeOf(a); t.Kind() != reflect.Ptr {\n\t\t// Avoid creating a reflect.Value if it's not a pointer.\n\t\treturn a\n\t}\n\tv := reflect.ValueOf(a)\n\tfor v.Kind() == reflect.Ptr && !v.IsNil() {\n\t\tv = v.Elem()\n\t}\n\treturn v.Interface()\n}\n\n// From html/template/content.go\n// Copyright 2011 The Go Authors. All rights reserved.\n// indirectToStringerOrError returns the value, after dereferencing as many times\n// as necessary to reach the base type (or nil) or an implementation of fmt.Stringer\n// or error,\nfunc indirectToStringerOrError(a interface{}) interface{} {\n\tif a == nil {\n\t\treturn nil\n\t}\n\n\terrorType := reflect.TypeOf((*error)(nil)).Elem()\n\tfmtStringerType := reflect.TypeOf((*fmt.Stringer)(nil)).Elem()\n\n\tv := reflect.ValueOf(a)\n\tfor !v.Type().Implements(fmtStringerType) && !v.Type().Implements(errorType) && v.Kind() == reflect.Ptr && !v.IsNil() {\n\t\tv = v.Elem()\n\t}\n\treturn v.Interface()\n}\n\n// ToStringE casts an interface to a string type.\nfunc ToStringE(i interface{}) (string, error) {\n\ti = indirectToStringerOrError(i)\n\n\tswitch s := i.(type) {\n\tcase string:\n\t\treturn s, nil\n\tcase bool:\n\t\treturn strconv.FormatBool(s), nil\n\tcase float64:\n\t\treturn strconv.FormatFloat(s, 'f', -1, 64), nil\n\tcase float32:\n\t\treturn strconv.FormatFloat(float64(s), 'f', -1, 32), nil\n\tcase int:\n\t\treturn strconv.Itoa(s), nil\n\tcase int64:\n\t\treturn strconv.FormatInt(s, 10), nil\n\tcase int32:\n\t\treturn strconv.Itoa(int(s)), nil\n\tcase int16:\n\t\treturn strconv.FormatInt(int64(s), 10), nil\n\tcase int8:\n\t\treturn strconv.FormatInt(int64(s), 10), nil\n\tcase uint:\n\t\treturn strconv.FormatUint(uint64(s), 10), nil\n\tcase uint64:\n\t\treturn strconv.FormatUint(uint64(s), 10), nil\n\tcase uint32:\n\t\treturn strconv.FormatUint(uint64(s), 10), nil\n\tcase uint16:\n\t\treturn strconv.FormatUint(uint64(s), 10), nil\n\tcase uint8:\n\t\treturn strconv.FormatUint(uint64(s), 10), nil\n\tcase json.Number:\n\t\treturn s.String(), nil\n\tcase []byte:\n\t\treturn string(s), nil\n\tcase template.HTML:\n\t\treturn string(s), nil\n\tcase template.URL:\n\t\treturn string(s), nil\n\tcase template.JS:\n\t\treturn string(s), nil\n\tcase template.CSS:\n\t\treturn string(s), nil\n\tcase template.HTMLAttr:\n\t\treturn string(s), nil\n\tcase nil:\n\t\treturn \"\", nil\n\tcase fmt.Stringer:\n\t\treturn s.String(), nil\n\tcase error:\n\t\treturn s.Error(), nil\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"unable to cast %#v of type %T to string\", i, i)\n\t}\n}\n\n// ToStringMapStringE casts an interface to a map[string]string type.\nfunc ToStringMapStringE(i interface{}) (map[string]string, error) {\n\tm := map[string]string{}\n\n\tswitch v := i.(type) {\n\tcase map[string]string:\n\t\treturn v, nil\n\tcase map[string]interface{}:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = ToString(val)\n\t\t}\n\t\treturn m, nil\n\tcase map[interface{}]string:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = ToString(val)\n\t\t}\n\t\treturn m, nil\n\tcase map[interface{}]interface{}:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = ToString(val)\n\t\t}\n\t\treturn m, nil\n\tcase string:\n\t\terr := jsonStringToObject(v, &m)\n\t\treturn m, err\n\tdefault:\n\t\treturn m, fmt.Errorf(\"unable to cast %#v of type %T to map[string]string\", i, i)\n\t}\n}\n\n// ToStringMapStringSliceE casts an interface to a map[string][]string type.\nfunc ToStringMapStringSliceE(i interface{}) (map[string][]string, error) {\n\tm := map[string][]string{}\n\n\tswitch v := i.(type) {\n\tcase map[string][]string:\n\t\treturn v, nil\n\tcase map[string][]interface{}:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = ToStringSlice(val)\n\t\t}\n\t\treturn m, nil\n\tcase map[string]string:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = []string{val}\n\t\t}\n\tcase map[string]interface{}:\n\t\tfor k, val := range v {\n\t\t\tswitch vt := val.(type) {\n\t\t\tcase []interface{}:\n\t\t\t\tm[ToString(k)] = ToStringSlice(vt)\n\t\t\tcase []string:\n\t\t\t\tm[ToString(k)] = vt\n\t\t\tdefault:\n\t\t\t\tm[ToString(k)] = []string{ToString(val)}\n\t\t\t}\n\t\t}\n\t\treturn m, nil\n\tcase map[interface{}][]string:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = ToStringSlice(val)\n\t\t}\n\t\treturn m, nil\n\tcase map[interface{}]string:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = ToStringSlice(val)\n\t\t}\n\t\treturn m, nil\n\tcase map[interface{}][]interface{}:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = ToStringSlice(val)\n\t\t}\n\t\treturn m, nil\n\tcase map[interface{}]interface{}:\n\t\tfor k, val := range v {\n\t\t\tkey, err := ToStringE(k)\n\t\t\tif err != nil {\n\t\t\t\treturn m, fmt.Errorf(\"unable to cast %#v of type %T to map[string][]string\", i, i)\n\t\t\t}\n\t\t\tvalue, err := ToStringSliceE(val)\n\t\t\tif err != nil {\n\t\t\t\treturn m, fmt.Errorf(\"unable to cast %#v of type %T to map[string][]string\", i, i)\n\t\t\t}\n\t\t\tm[key] = value\n\t\t}\n\tcase string:\n\t\terr := jsonStringToObject(v, &m)\n\t\treturn m, err\n\tdefault:\n\t\treturn m, fmt.Errorf(\"unable to cast %#v of type %T to map[string][]string\", i, i)\n\t}\n\treturn m, nil\n}\n\n// ToStringMapBoolE casts an interface to a map[string]bool type.\nfunc ToStringMapBoolE(i interface{}) (map[string]bool, error) {\n\tm := map[string]bool{}\n\n\tswitch v := i.(type) {\n\tcase map[interface{}]interface{}:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = ToBool(val)\n\t\t}\n\t\treturn m, nil\n\tcase map[string]interface{}:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = ToBool(val)\n\t\t}\n\t\treturn m, nil\n\tcase map[string]bool:\n\t\treturn v, nil\n\tcase string:\n\t\terr := jsonStringToObject(v, &m)\n\t\treturn m, err\n\tdefault:\n\t\treturn m, fmt.Errorf(\"unable to cast %#v of type %T to map[string]bool\", i, i)\n\t}\n}\n\n// ToStringMapE casts an interface to a map[string]interface{} type.\nfunc ToStringMapE(i interface{}) (map[string]interface{}, error) {\n\tm := map[string]interface{}{}\n\n\tswitch v := i.(type) {\n\tcase map[interface{}]interface{}:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = val\n\t\t}\n\t\treturn m, nil\n\tcase map[string]interface{}:\n\t\treturn v, nil\n\tcase string:\n\t\terr := jsonStringToObject(v, &m)\n\t\treturn m, err\n\tdefault:\n\t\treturn m, fmt.Errorf(\"unable to cast %#v of type %T to map[string]interface{}\", i, i)\n\t}\n}\n\n// ToStringMapIntE casts an interface to a map[string]int{} type.\nfunc ToStringMapIntE(i interface{}) (map[string]int, error) {\n\tm := map[string]int{}\n\tif i == nil {\n\t\treturn m, fmt.Errorf(\"unable to cast %#v of type %T to map[string]int\", i, i)\n\t}\n\n\tswitch v := i.(type) {\n\tcase map[interface{}]interface{}:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = ToInt(val)\n\t\t}\n\t\treturn m, nil\n\tcase map[string]interface{}:\n\t\tfor k, val := range v {\n\t\t\tm[k] = ToInt(val)\n\t\t}\n\t\treturn m, nil\n\tcase map[string]int:\n\t\treturn v, nil\n\tcase string:\n\t\terr := jsonStringToObject(v, &m)\n\t\treturn m, err\n\t}\n\n\tif reflect.TypeOf(i).Kind() != reflect.Map {\n\t\treturn m, fmt.Errorf(\"unable to cast %#v of type %T to map[string]int\", i, i)\n\t}\n\n\tmVal := reflect.ValueOf(m)\n\tv := reflect.ValueOf(i)\n\tfor _, keyVal := range v.MapKeys() {\n\t\tval, err := ToIntE(v.MapIndex(keyVal).Interface())\n\t\tif err != nil {\n\t\t\treturn m, fmt.Errorf(\"unable to cast %#v of type %T to map[string]int\", i, i)\n\t\t}\n\t\tmVal.SetMapIndex(keyVal, reflect.ValueOf(val))\n\t}\n\treturn m, nil\n}\n\n// ToStringMapInt64E casts an interface to a map[string]int64{} type.\nfunc ToStringMapInt64E(i interface{}) (map[string]int64, error) {\n\tm := map[string]int64{}\n\tif i == nil {\n\t\treturn m, fmt.Errorf(\"unable to cast %#v of type %T to map[string]int64\", i, i)\n\t}\n\n\tswitch v := i.(type) {\n\tcase map[interface{}]interface{}:\n\t\tfor k, val := range v {\n\t\t\tm[ToString(k)] = ToInt64(val)\n\t\t}\n\t\treturn m, nil\n\tcase map[string]interface{}:\n\t\tfor k, val := range v {\n\t\t\tm[k] = ToInt64(val)\n\t\t}\n\t\treturn m, nil\n\tcase map[string]int64:\n\t\treturn v, nil\n\tcase string:\n\t\terr := jsonStringToObject(v, &m)\n\t\treturn m, err\n\t}\n\n\tif reflect.TypeOf(i).Kind() != reflect.Map {\n\t\treturn m, fmt.Errorf(\"unable to cast %#v of type %T to map[string]int64\", i, i)\n\t}\n\tmVal := reflect.ValueOf(m)\n\tv := reflect.ValueOf(i)\n\tfor _, keyVal := range v.MapKeys() {\n\t\tval, err := ToInt64E(v.MapIndex(keyVal).Interface())\n\t\tif err != nil {\n\t\t\treturn m, fmt.Errorf(\"unable to cast %#v of type %T to map[string]int64\", i, i)\n\t\t}\n\t\tmVal.SetMapIndex(keyVal, reflect.ValueOf(val))\n\t}\n\treturn m, nil\n}\n\n// ToSliceE casts an interface to a []interface{} type.\nfunc ToSliceE(i interface{}) ([]interface{}, error) {\n\tvar s []interface{}\n\n\tswitch v := i.(type) {\n\tcase []interface{}:\n\t\treturn append(s, v...), nil\n\tcase []map[string]interface{}:\n\t\tfor _, u := range v {\n\t\t\ts = append(s, u)\n\t\t}\n\t\treturn s, nil\n\tdefault:\n\t\treturn s, fmt.Errorf(\"unable to cast %#v of type %T to []interface{}\", i, i)\n\t}\n}\n\n// ToBoolSliceE casts an interface to a []bool type.\nfunc ToBoolSliceE(i interface{}) ([]bool, error) {\n\tif i == nil {\n\t\treturn []bool{}, fmt.Errorf(\"unable to cast %#v of type %T to []bool\", i, i)\n\t}\n\n\tswitch v := i.(type) {\n\tcase []bool:\n\t\treturn v, nil\n\t}\n\n\tkind := reflect.TypeOf(i).Kind()\n\tswitch kind {\n\tcase reflect.Slice, reflect.Array:\n\t\ts := reflect.ValueOf(i)\n\t\ta := make([]bool, s.Len())\n\t\tfor j := 0; j < s.Len(); j++ {\n\t\t\tval, err := ToBoolE(s.Index(j).Interface())\n\t\t\tif err != nil {\n\t\t\t\treturn []bool{}, fmt.Errorf(\"unable to cast %#v of type %T to []bool\", i, i)\n\t\t\t}\n\t\t\ta[j] = val\n\t\t}\n\t\treturn a, nil\n\tdefault:\n\t\treturn []bool{}, fmt.Errorf(\"unable to cast %#v of type %T to []bool\", i, i)\n\t}\n}\n\n// ToStringSliceE casts an interface to a []string type.\nfunc ToStringSliceE(i interface{}) ([]string, error) {\n\tvar a []string\n\n\tswitch v := i.(type) {\n\tcase []interface{}:\n\t\tfor _, u := range v {\n\t\t\ta = append(a, ToString(u))\n\t\t}\n\t\treturn a, nil\n\tcase []string:\n\t\treturn v, nil\n\tcase []int8:\n\t\tfor _, u := range v {\n\t\t\ta = append(a, ToString(u))\n\t\t}\n\t\treturn a, nil\n\tcase []int:\n\t\tfor _, u := range v {\n\t\t\ta = append(a, ToString(u))\n\t\t}\n\t\treturn a, nil\n\tcase []int32:\n\t\tfor _, u := range v {\n\t\t\ta = append(a, ToString(u))\n\t\t}\n\t\treturn a, nil\n\tcase []int64:\n\t\tfor _, u := range v {\n\t\t\ta = append(a, ToString(u))\n\t\t}\n\t\treturn a, nil\n\tcase []float32:\n\t\tfor _, u := range v {\n\t\t\ta = append(a, ToString(u))\n\t\t}\n\t\treturn a, nil\n\tcase []float64:\n\t\tfor _, u := range v {\n\t\t\ta = append(a, ToString(u))\n\t\t}\n\t\treturn a, nil\n\tcase string:\n\t\treturn strings.Fields(v), nil\n\tcase []error:\n\t\tfor _, err := range i.([]error) {\n\t\t\ta = append(a, err.Error())\n\t\t}\n\t\treturn a, nil\n\tcase interface{}:\n\t\tstr, err := ToStringE(v)\n\t\tif err != nil {\n\t\t\treturn a, fmt.Errorf(\"unable to cast %#v of type %T to []string\", i, i)\n\t\t}\n\t\treturn []string{str}, nil\n\tdefault:\n\t\treturn a, fmt.Errorf(\"unable to cast %#v of type %T to []string\", i, i)\n\t}\n}\n\n// ToIntSliceE casts an interface to a []int type.\nfunc ToIntSliceE(i interface{}) ([]int, error) {\n\tif i == nil {\n\t\treturn []int{}, fmt.Errorf(\"unable to cast %#v of type %T to []int\", i, i)\n\t}\n\n\tswitch v := i.(type) {\n\tcase []int:\n\t\treturn v, nil\n\t}\n\n\tkind := reflect.TypeOf(i).Kind()\n\tswitch kind {\n\tcase reflect.Slice, reflect.Array:\n\t\ts := reflect.ValueOf(i)\n\t\ta := make([]int, s.Len())\n\t\tfor j := 0; j < s.Len(); j++ {\n\t\t\tval, err := ToIntE(s.Index(j).Interface())\n\t\t\tif err != nil {\n\t\t\t\treturn []int{}, fmt.Errorf(\"unable to cast %#v of type %T to []int\", i, i)\n\t\t\t}\n\t\t\ta[j] = val\n\t\t}\n\t\treturn a, nil\n\tdefault:\n\t\treturn []int{}, fmt.Errorf(\"unable to cast %#v of type %T to []int\", i, i)\n\t}\n}\n\n// ToDurationSliceE casts an interface to a []time.Duration type.\nfunc ToDurationSliceE(i interface{}) ([]time.Duration, error) {\n\tif i == nil {\n\t\treturn []time.Duration{}, fmt.Errorf(\"unable to cast %#v of type %T to []time.Duration\", i, i)\n\t}\n\n\tswitch v := i.(type) {\n\tcase []time.Duration:\n\t\treturn v, nil\n\t}\n\n\tkind := reflect.TypeOf(i).Kind()\n\tswitch kind {\n\tcase reflect.Slice, reflect.Array:\n\t\ts := reflect.ValueOf(i)\n\t\ta := make([]time.Duration, s.Len())\n\t\tfor j := 0; j < s.Len(); j++ {\n\t\t\tval, err := ToDurationE(s.Index(j).Interface())\n\t\t\tif err != nil {\n\t\t\t\treturn []time.Duration{}, fmt.Errorf(\"unable to cast %#v of type %T to []time.Duration\", i, i)\n\t\t\t}\n\t\t\ta[j] = val\n\t\t}\n\t\treturn a, nil\n\tdefault:\n\t\treturn []time.Duration{}, fmt.Errorf(\"unable to cast %#v of type %T to []time.Duration\", i, i)\n\t}\n}\n\n// StringToDate attempts to parse a string into a time.Time type using a\n// predefined list of formats.  If no suitable format is found, an error is\n// returned.\nfunc StringToDate(s string) (time.Time, error) {\n\treturn parseDateWith(s, time.UTC, timeFormats)\n}\n\n// StringToDateInDefaultLocation casts an empty interface to a time.Time,\n// interpreting inputs without a timezone to be in the given location,\n// or the local timezone if nil.\nfunc StringToDateInDefaultLocation(s string, location *time.Location) (time.Time, error) {\n\treturn parseDateWith(s, location, timeFormats)\n}\n\ntype timeFormatType int\n\nconst (\n\ttimeFormatNoTimezone timeFormatType = iota\n\ttimeFormatNamedTimezone\n\ttimeFormatNumericTimezone\n\ttimeFormatNumericAndNamedTimezone\n\ttimeFormatTimeOnly\n)\n\ntype timeFormat struct {\n\tformat string\n\ttyp    timeFormatType\n}\n\nfunc (f timeFormat) hasTimezone() bool {\n\t// We don't include the formats with only named timezones, see\n\t// https://github.com/golang/go/issues/19694#issuecomment-289103522\n\treturn f.typ >= timeFormatNumericTimezone && f.typ <= timeFormatNumericAndNamedTimezone\n}\n\nvar timeFormats = []timeFormat{\n\t// Keep common formats at the top.\n\t{\"2006-01-02\", timeFormatNoTimezone},\n\t{time.RFC3339, timeFormatNumericTimezone},\n\t{\"2006-01-02T15:04:05\", timeFormatNoTimezone}, // iso8601 without timezone\n\t{time.RFC1123Z, timeFormatNumericTimezone},\n\t{time.RFC1123, timeFormatNamedTimezone},\n\t{time.RFC822Z, timeFormatNumericTimezone},\n\t{time.RFC822, timeFormatNamedTimezone},\n\t{time.RFC850, timeFormatNamedTimezone},\n\t{\"2006-01-02 15:04:05.999999999 -0700 MST\", timeFormatNumericAndNamedTimezone}, // Time.String()\n\t{\"2006-01-02T15:04:05-0700\", timeFormatNumericTimezone},                        // RFC3339 without timezone hh:mm colon\n\t{\"2006-01-02 15:04:05Z0700\", timeFormatNumericTimezone},                        // RFC3339 without T or timezone hh:mm colon\n\t{\"2006-01-02 15:04:05\", timeFormatNoTimezone},\n\t{time.ANSIC, timeFormatNoTimezone},\n\t{time.UnixDate, timeFormatNamedTimezone},\n\t{time.RubyDate, timeFormatNumericTimezone},\n\t{\"2006-01-02 15:04:05Z07:00\", timeFormatNumericTimezone},\n\t{\"02 Jan 2006\", timeFormatNoTimezone},\n\t{\"2006-01-02 15:04:05 -07:00\", timeFormatNumericTimezone},\n\t{\"2006-01-02 15:04:05 -0700\", timeFormatNumericTimezone},\n\t{time.Kitchen, timeFormatTimeOnly},\n\t{time.Stamp, timeFormatTimeOnly},\n\t{time.StampMilli, timeFormatTimeOnly},\n\t{time.StampMicro, timeFormatTimeOnly},\n\t{time.StampNano, timeFormatTimeOnly},\n}\n\nfunc parseDateWith(s string, location *time.Location, formats []timeFormat) (d time.Time, e error) {\n\tfor _, format := range formats {\n\t\tif d, e = time.Parse(format.format, s); e == nil {\n\n\t\t\t// Some time formats have a zone name, but no offset, so it gets\n\t\t\t// put in that zone name (not the default one passed in to us), but\n\t\t\t// without that zone's offset. So set the location manually.\n\t\t\tif format.typ <= timeFormatNamedTimezone {\n\t\t\t\tif location == nil {\n\t\t\t\t\tlocation = time.Local\n\t\t\t\t}\n\t\t\t\tyear, month, day := d.Date()\n\t\t\t\thour, min, sec := d.Clock()\n\t\t\t\td = time.Date(year, month, day, hour, min, sec, d.Nanosecond(), location)\n\t\t\t}\n\n\t\t\treturn\n\t\t}\n\t}\n\treturn d, fmt.Errorf(\"unable to parse date: %s\", s)\n}\n\n// jsonStringToObject attempts to unmarshall a string as JSON into\n// the object passed as pointer.\nfunc jsonStringToObject(s string, v interface{}) error {\n\tdata := []byte(s)\n\treturn json.Unmarshal(data, v)\n}\n\n// toInt returns the int value of v if v or v's underlying type\n// is an int.\n// Note that this will return false for int64 etc. types.\nfunc toInt(v interface{}) (int, bool) {\n\tswitch v := v.(type) {\n\tcase int:\n\t\treturn v, true\n\tcase time.Weekday:\n\t\treturn int(v), true\n\tcase time.Month:\n\t\treturn int(v), true\n\tdefault:\n\t\treturn 0, false\n\t}\n}\n\nfunc trimZeroDecimal(s string) string {\n\tvar foundZero bool\n\tfor i := len(s); i > 0; i-- {\n\t\tswitch s[i-1] {\n\t\tcase '.':\n\t\t\tif foundZero {\n\t\t\t\treturn s[:i-1]\n\t\t\t}\n\t\tcase '0':\n\t\t\tfoundZero = true\n\t\tdefault:\n\t\t\treturn s\n\t\t}\n\t}\n\treturn s\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cast/timeformattype_string.go",
    "content": "// Code generated by \"stringer -type timeFormatType\"; DO NOT EDIT.\n\npackage cast\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[timeFormatNoTimezone-0]\n\t_ = x[timeFormatNamedTimezone-1]\n\t_ = x[timeFormatNumericTimezone-2]\n\t_ = x[timeFormatNumericAndNamedTimezone-3]\n\t_ = x[timeFormatTimeOnly-4]\n}\n\nconst _timeFormatType_name = \"timeFormatNoTimezonetimeFormatNamedTimezonetimeFormatNumericTimezonetimeFormatNumericAndNamedTimezonetimeFormatTimeOnly\"\n\nvar _timeFormatType_index = [...]uint8{0, 20, 43, 68, 101, 119}\n\nfunc (i timeFormatType) String() string {\n\tif i < 0 || i >= timeFormatType(len(_timeFormatType_index)-1) {\n\t\treturn \"timeFormatType(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _timeFormatType_name[_timeFormatType_index[i]:_timeFormatType_index[i+1]]\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"
  },
  {
    "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/LICENSE.txt",
    "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"
  },
  {
    "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\nvar 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\nvar 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\nvar 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\nvar 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\nvar 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\nvar 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/yosida95/uritemplate/v3/LICENSE",
    "content": "Copyright (C) 2016, Kohei YOSHIDA <https://yosida95.com/>. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright\n      notice, this list of conditions and the following disclaimer in the\n      documentation and/or other materials provided with the distribution.\n    * Neither the name of the copyright holder nor the names of its\n      contributors may be used to endorse or promote products derived from\n      this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\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\nHOLDER 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/yosida95/uritemplate/v3/README.rst",
    "content": "uritemplate\n===========\n\n`uritemplate`_ is a Go implementation of `URI Template`_ [RFC6570] with\nfull functionality of URI Template Level 4.\n\nuritemplate can also generate a regexp that matches expansion of the\nURI Template from a URI Template.\n\nGetting Started\n---------------\n\nInstallation\n~~~~~~~~~~~~\n\n.. code-block:: sh\n\n   $ go get -u github.com/yosida95/uritemplate/v3\n\nDocumentation\n~~~~~~~~~~~~~\n\nThe documentation is available on GoDoc_.\n\nExamples\n--------\n\nSee `examples on GoDoc`_.\n\nLicense\n-------\n\n`uritemplate`_ is distributed under the BSD 3-Clause license.\nPLEASE READ ./LICENSE carefully and follow its clauses to use this software.\n\nAuthor\n------\n\nyosida95_\n\n\n.. _`URI Template`: https://tools.ietf.org/html/rfc6570\n.. _Godoc: https://godoc.org/github.com/yosida95/uritemplate\n.. _`examples on GoDoc`: https://godoc.org/github.com/yosida95/uritemplate#pkg-examples\n.. _yosida95: https://yosida95.com/\n.. _uritemplate: https://github.com/yosida95/uritemplate\n"
  },
  {
    "path": "vendor/github.com/yosida95/uritemplate/v3/compile.go",
    "content": "// Copyright (C) 2016 Kohei YOSHIDA. All rights reserved.\n//\n// This program is free software; you can redistribute it and/or\n// modify it under the terms of The BSD 3-Clause License\n// that can be found in the LICENSE file.\n\npackage uritemplate\n\nimport (\n\t\"fmt\"\n\t\"unicode/utf8\"\n)\n\ntype compiler struct {\n\tprog *prog\n}\n\nfunc (c *compiler) init() {\n\tc.prog = &prog{}\n}\n\nfunc (c *compiler) op(opcode progOpcode) uint32 {\n\ti := len(c.prog.op)\n\tc.prog.op = append(c.prog.op, progOp{code: opcode})\n\treturn uint32(i)\n}\n\nfunc (c *compiler) opWithRune(opcode progOpcode, r rune) uint32 {\n\taddr := c.op(opcode)\n\t(&c.prog.op[addr]).r = r\n\treturn addr\n}\n\nfunc (c *compiler) opWithRuneClass(opcode progOpcode, rc runeClass) uint32 {\n\taddr := c.op(opcode)\n\t(&c.prog.op[addr]).rc = rc\n\treturn addr\n}\n\nfunc (c *compiler) opWithAddr(opcode progOpcode, absaddr uint32) uint32 {\n\taddr := c.op(opcode)\n\t(&c.prog.op[addr]).i = absaddr\n\treturn addr\n}\n\nfunc (c *compiler) opWithAddrDelta(opcode progOpcode, delta uint32) uint32 {\n\treturn c.opWithAddr(opcode, uint32(len(c.prog.op))+delta)\n}\n\nfunc (c *compiler) opWithName(opcode progOpcode, name string) uint32 {\n\taddr := c.op(opcode)\n\t(&c.prog.op[addr]).name = name\n\treturn addr\n}\n\nfunc (c *compiler) compileString(str string) {\n\tfor i := 0; i < len(str); {\n\t\t// NOTE(yosida95): It is confirmed at parse time that literals\n\t\t// consist of only valid-UTF8 runes.\n\t\tr, size := utf8.DecodeRuneInString(str[i:])\n\t\tc.opWithRune(opRune, r)\n\t\ti += size\n\t}\n}\n\nfunc (c *compiler) compileRuneClass(rc runeClass, maxlen int) {\n\tfor i := 0; i < maxlen; i++ {\n\t\tif i > 0 {\n\t\t\tc.opWithAddrDelta(opSplit, 7)\n\t\t}\n\t\tc.opWithAddrDelta(opSplit, 3)                 // raw rune or pct-encoded\n\t\tc.opWithRuneClass(opRuneClass, rc)            // raw rune\n\t\tc.opWithAddrDelta(opJmp, 4)                   //\n\t\tc.opWithRune(opRune, '%')                     // pct-encoded\n\t\tc.opWithRuneClass(opRuneClass, runeClassPctE) //\n\t\tc.opWithRuneClass(opRuneClass, runeClassPctE) //\n\t}\n}\n\nfunc (c *compiler) compileRuneClassInfinite(rc runeClass) {\n\tstart := c.opWithAddrDelta(opSplit, 3)        // raw rune or pct-encoded\n\tc.opWithRuneClass(opRuneClass, rc)            // raw rune\n\tc.opWithAddrDelta(opJmp, 4)                   //\n\tc.opWithRune(opRune, '%')                     // pct-encoded\n\tc.opWithRuneClass(opRuneClass, runeClassPctE) //\n\tc.opWithRuneClass(opRuneClass, runeClassPctE) //\n\tc.opWithAddrDelta(opSplit, 2)                 // loop\n\tc.opWithAddr(opJmp, start)                    //\n}\n\nfunc (c *compiler) compileVarspecValue(spec varspec, expr *expression) {\n\tvar specname string\n\tif spec.maxlen > 0 {\n\t\tspecname = fmt.Sprintf(\"%s:%d\", spec.name, spec.maxlen)\n\t} else {\n\t\tspecname = spec.name\n\t}\n\n\tc.prog.numCap++\n\n\tc.opWithName(opCapStart, specname)\n\n\tsplit := c.op(opSplit)\n\tif spec.maxlen > 0 {\n\t\tc.compileRuneClass(expr.allow, spec.maxlen)\n\t} else {\n\t\tc.compileRuneClassInfinite(expr.allow)\n\t}\n\n\tcapEnd := c.opWithName(opCapEnd, specname)\n\tc.prog.op[split].i = capEnd\n}\n\nfunc (c *compiler) compileVarspec(spec varspec, expr *expression) {\n\tswitch {\n\tcase expr.named && spec.explode:\n\t\tsplit1 := c.op(opSplit)\n\t\tnoop := c.op(opNoop)\n\t\tc.compileString(spec.name)\n\n\t\tsplit2 := c.op(opSplit)\n\t\tc.opWithRune(opRune, '=')\n\t\tc.compileVarspecValue(spec, expr)\n\n\t\tsplit3 := c.op(opSplit)\n\t\tc.compileString(expr.sep)\n\t\tc.opWithAddr(opJmp, noop)\n\n\t\tc.prog.op[split2].i = uint32(len(c.prog.op))\n\t\tc.compileString(expr.ifemp)\n\t\tc.opWithAddr(opJmp, split3)\n\n\t\tc.prog.op[split1].i = uint32(len(c.prog.op))\n\t\tc.prog.op[split3].i = uint32(len(c.prog.op))\n\n\tcase expr.named && !spec.explode:\n\t\tc.compileString(spec.name)\n\n\t\tsplit2 := c.op(opSplit)\n\t\tc.opWithRune(opRune, '=')\n\n\t\tsplit3 := c.op(opSplit)\n\n\t\tsplit4 := c.op(opSplit)\n\t\tc.compileVarspecValue(spec, expr)\n\n\t\tsplit5 := c.op(opSplit)\n\t\tc.prog.op[split4].i = split5\n\t\tc.compileString(\",\")\n\t\tc.opWithAddr(opJmp, split4)\n\n\t\tc.prog.op[split3].i = uint32(len(c.prog.op))\n\t\tc.compileString(\",\")\n\t\tjmp1 := c.op(opJmp)\n\n\t\tc.prog.op[split2].i = uint32(len(c.prog.op))\n\t\tc.compileString(expr.ifemp)\n\n\t\tc.prog.op[split5].i = uint32(len(c.prog.op))\n\t\tc.prog.op[jmp1].i = uint32(len(c.prog.op))\n\n\tcase !expr.named:\n\t\tstart := uint32(len(c.prog.op))\n\t\tc.compileVarspecValue(spec, expr)\n\n\t\tsplit1 := c.op(opSplit)\n\t\tjmp := c.op(opJmp)\n\n\t\tc.prog.op[split1].i = uint32(len(c.prog.op))\n\t\tif spec.explode {\n\t\t\tc.compileString(expr.sep)\n\t\t} else {\n\t\t\tc.opWithRune(opRune, ',')\n\t\t}\n\t\tc.opWithAddr(opJmp, start)\n\n\t\tc.prog.op[jmp].i = uint32(len(c.prog.op))\n\t}\n}\n\nfunc (c *compiler) compileExpression(expr *expression) {\n\tif len(expr.vars) < 1 {\n\t\treturn\n\t}\n\n\tsplit1 := c.op(opSplit)\n\tc.compileString(expr.first)\n\n\tfor i, size := 0, len(expr.vars); i < size; i++ {\n\t\tspec := expr.vars[i]\n\n\t\tsplit2 := c.op(opSplit)\n\t\tif i > 0 {\n\t\t\tsplit3 := c.op(opSplit)\n\t\t\tc.compileString(expr.sep)\n\t\t\tc.prog.op[split3].i = uint32(len(c.prog.op))\n\t\t}\n\t\tc.compileVarspec(spec, expr)\n\t\tc.prog.op[split2].i = uint32(len(c.prog.op))\n\t}\n\n\tc.prog.op[split1].i = uint32(len(c.prog.op))\n}\n\nfunc (c *compiler) compileLiterals(lt literals) {\n\tc.compileString(string(lt))\n}\n\nfunc (c *compiler) compile(tmpl *Template) {\n\tc.op(opLineBegin)\n\tfor i := range tmpl.exprs {\n\t\texpr := tmpl.exprs[i]\n\t\tswitch expr := expr.(type) {\n\t\tdefault:\n\t\t\tpanic(\"unhandled expression\")\n\t\tcase *expression:\n\t\t\tc.compileExpression(expr)\n\t\tcase literals:\n\t\t\tc.compileLiterals(expr)\n\t\t}\n\t}\n\tc.op(opLineEnd)\n\tc.op(opEnd)\n}\n"
  },
  {
    "path": "vendor/github.com/yosida95/uritemplate/v3/equals.go",
    "content": "// Copyright (C) 2016 Kohei YOSHIDA. All rights reserved.\n//\n// This program is free software; you can redistribute it and/or\n// modify it under the terms of The BSD 3-Clause License\n// that can be found in the LICENSE file.\n\npackage uritemplate\n\ntype CompareFlags uint8\n\nconst (\n\tCompareVarname CompareFlags = 1 << iota\n)\n\n// Equals reports whether or not two URI Templates t1 and t2 are equivalent.\nfunc Equals(t1 *Template, t2 *Template, flags CompareFlags) bool {\n\tif len(t1.exprs) != len(t2.exprs) {\n\t\treturn false\n\t}\n\tfor i := 0; i < len(t1.exprs); i++ {\n\t\tswitch t1 := t1.exprs[i].(type) {\n\t\tcase literals:\n\t\t\tt2, ok := t2.exprs[i].(literals)\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif t1 != t2 {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase *expression:\n\t\t\tt2, ok := t2.exprs[i].(*expression)\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif t1.op != t2.op || len(t1.vars) != len(t2.vars) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tfor n := 0; n < len(t1.vars); n++ {\n\t\t\t\tv1 := t1.vars[n]\n\t\t\t\tv2 := t2.vars[n]\n\t\t\t\tif flags&CompareVarname == CompareVarname && v1.name != v2.name {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif v1.maxlen != v2.maxlen || v1.explode != v2.explode {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unhandled case\")\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/yosida95/uritemplate/v3/error.go",
    "content": "// Copyright (C) 2016 Kohei YOSHIDA. All rights reserved.\n//\n// This program is free software; you can redistribute it and/or\n// modify it under the terms of The BSD 3-Clause License\n// that can be found in the LICENSE file.\n\npackage uritemplate\n\nimport (\n\t\"fmt\"\n)\n\nfunc errorf(pos int, format string, a ...interface{}) error {\n\tmsg := fmt.Sprintf(format, a...)\n\treturn fmt.Errorf(\"uritemplate:%d:%s\", pos, msg)\n}\n"
  },
  {
    "path": "vendor/github.com/yosida95/uritemplate/v3/escape.go",
    "content": "// Copyright (C) 2016 Kohei YOSHIDA. All rights reserved.\n//\n// This program is free software; you can redistribute it and/or\n// modify it under the terms of The BSD 3-Clause License\n// that can be found in the LICENSE file.\n\npackage uritemplate\n\nimport (\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\nvar (\n\thex = []byte(\"0123456789ABCDEF\")\n\t// reserved   = gen-delims / sub-delims\n\t// gen-delims =  \":\" / \"/\" / \"?\" / \"#\" / \"[\" / \"]\" / \"@\"\n\t// sub-delims =  \"!\" / \"$\" / \"&\" / \"’\" / \"(\" / \")\"\n\t//            /  \"*\" / \"+\" / \",\" / \";\" / \"=\"\n\trangeReserved = &unicode.RangeTable{\n\t\tR16: []unicode.Range16{\n\t\t\t{Lo: 0x21, Hi: 0x21, Stride: 1}, // '!'\n\t\t\t{Lo: 0x23, Hi: 0x24, Stride: 1}, // '#' - '$'\n\t\t\t{Lo: 0x26, Hi: 0x2C, Stride: 1}, // '&' - ','\n\t\t\t{Lo: 0x2F, Hi: 0x2F, Stride: 1}, // '/'\n\t\t\t{Lo: 0x3A, Hi: 0x3B, Stride: 1}, // ':' - ';'\n\t\t\t{Lo: 0x3D, Hi: 0x3D, Stride: 1}, // '='\n\t\t\t{Lo: 0x3F, Hi: 0x40, Stride: 1}, // '?' - '@'\n\t\t\t{Lo: 0x5B, Hi: 0x5B, Stride: 1}, // '['\n\t\t\t{Lo: 0x5D, Hi: 0x5D, Stride: 1}, // ']'\n\t\t},\n\t\tLatinOffset: 9,\n\t}\n\treReserved = `\\x21\\x23\\x24\\x26-\\x2c\\x2f\\x3a\\x3b\\x3d\\x3f\\x40\\x5b\\x5d`\n\t// ALPHA      = %x41-5A / %x61-7A\n\t// DIGIT      = %x30-39\n\t// unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n\trangeUnreserved = &unicode.RangeTable{\n\t\tR16: []unicode.Range16{\n\t\t\t{Lo: 0x2D, Hi: 0x2E, Stride: 1}, // '-' - '.'\n\t\t\t{Lo: 0x30, Hi: 0x39, Stride: 1}, // '0' - '9'\n\t\t\t{Lo: 0x41, Hi: 0x5A, Stride: 1}, // 'A' - 'Z'\n\t\t\t{Lo: 0x5F, Hi: 0x5F, Stride: 1}, // '_'\n\t\t\t{Lo: 0x61, Hi: 0x7A, Stride: 1}, // 'a' - 'z'\n\t\t\t{Lo: 0x7E, Hi: 0x7E, Stride: 1}, // '~'\n\t\t},\n\t}\n\treUnreserved = `\\x2d\\x2e\\x30-\\x39\\x41-\\x5a\\x5f\\x61-\\x7a\\x7e`\n)\n\ntype runeClass uint8\n\nconst (\n\truneClassU runeClass = 1 << iota\n\truneClassR\n\truneClassPctE\n\truneClassLast\n\n\truneClassUR = runeClassU | runeClassR\n)\n\nvar runeClassNames = []string{\n\t\"U\",\n\t\"R\",\n\t\"pct-encoded\",\n}\n\nfunc (rc runeClass) String() string {\n\tret := make([]string, 0, len(runeClassNames))\n\tfor i, j := 0, runeClass(1); j < runeClassLast; j <<= 1 {\n\t\tif rc&j == j {\n\t\t\tret = append(ret, runeClassNames[i])\n\t\t}\n\t\ti++\n\t}\n\treturn strings.Join(ret, \"+\")\n}\n\nfunc pctEncode(w *strings.Builder, r rune) {\n\tif s := r >> 24 & 0xff; s > 0 {\n\t\tw.Write([]byte{'%', hex[s/16], hex[s%16]})\n\t}\n\tif s := r >> 16 & 0xff; s > 0 {\n\t\tw.Write([]byte{'%', hex[s/16], hex[s%16]})\n\t}\n\tif s := r >> 8 & 0xff; s > 0 {\n\t\tw.Write([]byte{'%', hex[s/16], hex[s%16]})\n\t}\n\tif s := r & 0xff; s > 0 {\n\t\tw.Write([]byte{'%', hex[s/16], hex[s%16]})\n\t}\n}\n\nfunc unhex(c byte) byte {\n\tswitch {\n\tcase '0' <= c && c <= '9':\n\t\treturn c - '0'\n\tcase 'a' <= c && c <= 'f':\n\t\treturn c - 'a' + 10\n\tcase 'A' <= c && c <= 'F':\n\t\treturn c - 'A' + 10\n\t}\n\treturn 0\n}\n\nfunc ishex(c byte) bool {\n\tswitch {\n\tcase '0' <= c && c <= '9':\n\t\treturn true\n\tcase 'a' <= c && c <= 'f':\n\t\treturn true\n\tcase 'A' <= c && c <= 'F':\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc pctDecode(s string) string {\n\tsize := len(s)\n\tfor i := 0; i < len(s); {\n\t\tswitch s[i] {\n\t\tcase '%':\n\t\t\tsize -= 2\n\t\t\ti += 3\n\t\tdefault:\n\t\t\ti++\n\t\t}\n\t}\n\tif size == len(s) {\n\t\treturn s\n\t}\n\n\tbuf := make([]byte, size)\n\tj := 0\n\tfor i := 0; i < len(s); {\n\t\tswitch c := s[i]; c {\n\t\tcase '%':\n\t\t\tbuf[j] = unhex(s[i+1])<<4 | unhex(s[i+2])\n\t\t\ti += 3\n\t\t\tj++\n\t\tdefault:\n\t\t\tbuf[j] = c\n\t\t\ti++\n\t\t\tj++\n\t\t}\n\t}\n\treturn string(buf)\n}\n\ntype escapeFunc func(*strings.Builder, string) error\n\nfunc escapeLiteral(w *strings.Builder, v string) error {\n\tw.WriteString(v)\n\treturn nil\n}\n\nfunc escapeExceptU(w *strings.Builder, v string) error {\n\tfor i := 0; i < len(v); {\n\t\tr, size := utf8.DecodeRuneInString(v[i:])\n\t\tif r == utf8.RuneError {\n\t\t\treturn errorf(i, \"invalid encoding\")\n\t\t}\n\t\tif unicode.Is(rangeUnreserved, r) {\n\t\t\tw.WriteRune(r)\n\t\t} else {\n\t\t\tpctEncode(w, r)\n\t\t}\n\t\ti += size\n\t}\n\treturn nil\n}\n\nfunc escapeExceptUR(w *strings.Builder, v string) error {\n\tfor i := 0; i < len(v); {\n\t\tr, size := utf8.DecodeRuneInString(v[i:])\n\t\tif r == utf8.RuneError {\n\t\t\treturn errorf(i, \"invalid encoding\")\n\t\t}\n\t\t// TODO(yosida95): is pct-encoded triplets allowed here?\n\t\tif unicode.In(r, rangeUnreserved, rangeReserved) {\n\t\t\tw.WriteRune(r)\n\t\t} else {\n\t\t\tpctEncode(w, r)\n\t\t}\n\t\ti += size\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/yosida95/uritemplate/v3/expression.go",
    "content": "// Copyright (C) 2016 Kohei YOSHIDA. All rights reserved.\n//\n// This program is free software; you can redistribute it and/or\n// modify it under the terms of The BSD 3-Clause License\n// that can be found in the LICENSE file.\n\npackage uritemplate\n\nimport (\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype template interface {\n\texpand(*strings.Builder, Values) error\n\tregexp(*strings.Builder)\n}\n\ntype literals string\n\nfunc (l literals) expand(b *strings.Builder, _ Values) error {\n\tb.WriteString(string(l))\n\treturn nil\n}\n\nfunc (l literals) regexp(b *strings.Builder) {\n\tb.WriteString(\"(?:\")\n\tb.WriteString(regexp.QuoteMeta(string(l)))\n\tb.WriteByte(')')\n}\n\ntype varspec struct {\n\tname    string\n\tmaxlen  int\n\texplode bool\n}\n\ntype expression struct {\n\tvars   []varspec\n\top     parseOp\n\tfirst  string\n\tsep    string\n\tnamed  bool\n\tifemp  string\n\tescape escapeFunc\n\tallow  runeClass\n}\n\nfunc (e *expression) init() {\n\tswitch e.op {\n\tcase parseOpSimple:\n\t\te.sep = \",\"\n\t\te.escape = escapeExceptU\n\t\te.allow = runeClassU\n\tcase parseOpPlus:\n\t\te.sep = \",\"\n\t\te.escape = escapeExceptUR\n\t\te.allow = runeClassUR\n\tcase parseOpCrosshatch:\n\t\te.first = \"#\"\n\t\te.sep = \",\"\n\t\te.escape = escapeExceptUR\n\t\te.allow = runeClassUR\n\tcase parseOpDot:\n\t\te.first = \".\"\n\t\te.sep = \".\"\n\t\te.escape = escapeExceptU\n\t\te.allow = runeClassU\n\tcase parseOpSlash:\n\t\te.first = \"/\"\n\t\te.sep = \"/\"\n\t\te.escape = escapeExceptU\n\t\te.allow = runeClassU\n\tcase parseOpSemicolon:\n\t\te.first = \";\"\n\t\te.sep = \";\"\n\t\te.named = true\n\t\te.escape = escapeExceptU\n\t\te.allow = runeClassU\n\tcase parseOpQuestion:\n\t\te.first = \"?\"\n\t\te.sep = \"&\"\n\t\te.named = true\n\t\te.ifemp = \"=\"\n\t\te.escape = escapeExceptU\n\t\te.allow = runeClassU\n\tcase parseOpAmpersand:\n\t\te.first = \"&\"\n\t\te.sep = \"&\"\n\t\te.named = true\n\t\te.ifemp = \"=\"\n\t\te.escape = escapeExceptU\n\t\te.allow = runeClassU\n\t}\n}\n\nfunc (e *expression) expand(w *strings.Builder, values Values) error {\n\tfirst := true\n\tfor _, varspec := range e.vars {\n\t\tvalue := values.Get(varspec.name)\n\t\tif !value.Valid() {\n\t\t\tcontinue\n\t\t}\n\n\t\tif first {\n\t\t\tw.WriteString(e.first)\n\t\t\tfirst = false\n\t\t} else {\n\t\t\tw.WriteString(e.sep)\n\t\t}\n\n\t\tif err := value.expand(w, varspec, e); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t}\n\treturn nil\n}\n\nfunc (e *expression) regexp(b *strings.Builder) {\n\tif e.first != \"\" {\n\t\tb.WriteString(\"(?:\") // $1\n\t\tb.WriteString(regexp.QuoteMeta(e.first))\n\t}\n\tb.WriteByte('(') // $2\n\truneClassToRegexp(b, e.allow, e.named || e.vars[0].explode)\n\tif len(e.vars) > 1 || e.vars[0].explode {\n\t\tmax := len(e.vars) - 1\n\t\tfor i := 0; i < len(e.vars); i++ {\n\t\t\tif e.vars[i].explode {\n\t\t\t\tmax = -1\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tb.WriteString(\"(?:\") // $3\n\t\tb.WriteString(regexp.QuoteMeta(e.sep))\n\t\truneClassToRegexp(b, e.allow, e.named || max < 0)\n\t\tb.WriteByte(')') // $3\n\t\tif max > 0 {\n\t\t\tb.WriteString(\"{0,\")\n\t\t\tb.WriteString(strconv.Itoa(max))\n\t\t\tb.WriteByte('}')\n\t\t} else {\n\t\t\tb.WriteByte('*')\n\t\t}\n\t}\n\tb.WriteByte(')') // $2\n\tif e.first != \"\" {\n\t\tb.WriteByte(')') // $1\n\t}\n\tb.WriteByte('?')\n}\n\nfunc runeClassToRegexp(b *strings.Builder, class runeClass, named bool) {\n\tb.WriteString(\"(?:(?:[\")\n\tif class&runeClassR == 0 {\n\t\tb.WriteString(`\\x2c`)\n\t\tif named {\n\t\t\tb.WriteString(`\\x3d`)\n\t\t}\n\t}\n\tif class&runeClassU == runeClassU {\n\t\tb.WriteString(reUnreserved)\n\t}\n\tif class&runeClassR == runeClassR {\n\t\tb.WriteString(reReserved)\n\t}\n\tb.WriteString(\"]\")\n\tb.WriteString(\"|%[[:xdigit:]][[:xdigit:]]\")\n\tb.WriteString(\")*)\")\n}\n"
  },
  {
    "path": "vendor/github.com/yosida95/uritemplate/v3/machine.go",
    "content": "// Copyright (C) 2016 Kohei YOSHIDA. All rights reserved.\n//\n// This program is free software; you can redistribute it and/or\n// modify it under the terms of The BSD 3-Clause License\n// that can be found in the LICENSE file.\n\npackage uritemplate\n\n// threadList implements https://research.swtch.com/sparse.\ntype threadList struct {\n\tdense  []threadEntry\n\tsparse []uint32\n}\n\ntype threadEntry struct {\n\tpc uint32\n\tt  *thread\n}\n\ntype thread struct {\n\top  *progOp\n\tcap map[string][]int\n}\n"
  },
  {
    "path": "vendor/github.com/yosida95/uritemplate/v3/match.go",
    "content": "// Copyright (C) 2016 Kohei YOSHIDA. All rights reserved.\n//\n// This program is free software; you can redistribute it and/or\n// modify it under the terms of The BSD 3-Clause License\n// that can be found in the LICENSE file.\n\npackage uritemplate\n\nimport (\n\t\"bytes\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\ntype matcher struct {\n\tprog *prog\n\n\tlist1   threadList\n\tlist2   threadList\n\tmatched bool\n\tcap     map[string][]int\n\n\tinput string\n}\n\nfunc (m *matcher) at(pos int) (rune, int, bool) {\n\tif l := len(m.input); pos < l {\n\t\tc := m.input[pos]\n\t\tif c < utf8.RuneSelf {\n\t\t\treturn rune(c), 1, pos+1 < l\n\t\t}\n\t\tr, size := utf8.DecodeRuneInString(m.input[pos:])\n\t\treturn r, size, pos+size < l\n\t}\n\treturn -1, 0, false\n}\n\nfunc (m *matcher) add(list *threadList, pc uint32, pos int, next bool, cap map[string][]int) {\n\tif i := list.sparse[pc]; i < uint32(len(list.dense)) && list.dense[i].pc == pc {\n\t\treturn\n\t}\n\n\tn := len(list.dense)\n\tlist.dense = list.dense[:n+1]\n\tlist.sparse[pc] = uint32(n)\n\n\te := &list.dense[n]\n\te.pc = pc\n\te.t = nil\n\n\top := &m.prog.op[pc]\n\tswitch op.code {\n\tdefault:\n\t\tpanic(\"unhandled opcode\")\n\tcase opRune, opRuneClass, opEnd:\n\t\te.t = &thread{\n\t\t\top:  &m.prog.op[pc],\n\t\t\tcap: make(map[string][]int, len(m.cap)),\n\t\t}\n\t\tfor k, v := range cap {\n\t\t\te.t.cap[k] = make([]int, len(v))\n\t\t\tcopy(e.t.cap[k], v)\n\t\t}\n\tcase opLineBegin:\n\t\tif pos == 0 {\n\t\t\tm.add(list, pc+1, pos, next, cap)\n\t\t}\n\tcase opLineEnd:\n\t\tif !next {\n\t\t\tm.add(list, pc+1, pos, next, cap)\n\t\t}\n\tcase opCapStart, opCapEnd:\n\t\tocap := make(map[string][]int, len(m.cap))\n\t\tfor k, v := range cap {\n\t\t\tocap[k] = make([]int, len(v))\n\t\t\tcopy(ocap[k], v)\n\t\t}\n\t\tocap[op.name] = append(ocap[op.name], pos)\n\t\tm.add(list, pc+1, pos, next, ocap)\n\tcase opSplit:\n\t\tm.add(list, pc+1, pos, next, cap)\n\t\tm.add(list, op.i, pos, next, cap)\n\tcase opJmp:\n\t\tm.add(list, op.i, pos, next, cap)\n\tcase opJmpIfNotDefined:\n\t\tm.add(list, pc+1, pos, next, cap)\n\t\tm.add(list, op.i, pos, next, cap)\n\tcase opJmpIfNotFirst:\n\t\tm.add(list, pc+1, pos, next, cap)\n\t\tm.add(list, op.i, pos, next, cap)\n\tcase opJmpIfNotEmpty:\n\t\tm.add(list, op.i, pos, next, cap)\n\t\tm.add(list, pc+1, pos, next, cap)\n\tcase opNoop:\n\t\tm.add(list, pc+1, pos, next, cap)\n\t}\n}\n\nfunc (m *matcher) step(clist *threadList, nlist *threadList, r rune, pos int, nextPos int, next bool) {\n\tdebug.Printf(\"===== %q =====\", string(r))\n\tfor i := 0; i < len(clist.dense); i++ {\n\t\te := clist.dense[i]\n\t\tif debug {\n\t\t\tvar buf bytes.Buffer\n\t\t\tdumpProg(&buf, m.prog, e.pc)\n\t\t\tdebug.Printf(\"\\n%s\", buf.String())\n\t\t}\n\t\tif e.t == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tt := e.t\n\t\top := t.op\n\t\tswitch op.code {\n\t\tdefault:\n\t\t\tpanic(\"unhandled opcode\")\n\t\tcase opRune:\n\t\t\tif op.r == r {\n\t\t\t\tm.add(nlist, e.pc+1, nextPos, next, t.cap)\n\t\t\t}\n\t\tcase opRuneClass:\n\t\t\tret := false\n\t\t\tif !ret && op.rc&runeClassU == runeClassU {\n\t\t\t\tret = ret || unicode.Is(rangeUnreserved, r)\n\t\t\t}\n\t\t\tif !ret && op.rc&runeClassR == runeClassR {\n\t\t\t\tret = ret || unicode.Is(rangeReserved, r)\n\t\t\t}\n\t\t\tif !ret && op.rc&runeClassPctE == runeClassPctE {\n\t\t\t\tret = ret || unicode.Is(unicode.ASCII_Hex_Digit, r)\n\t\t\t}\n\t\t\tif ret {\n\t\t\t\tm.add(nlist, e.pc+1, nextPos, next, t.cap)\n\t\t\t}\n\t\tcase opEnd:\n\t\t\tm.matched = true\n\t\t\tfor k, v := range t.cap {\n\t\t\t\tm.cap[k] = make([]int, len(v))\n\t\t\t\tcopy(m.cap[k], v)\n\t\t\t}\n\t\t\tclist.dense = clist.dense[:0]\n\t\t}\n\t}\n\tclist.dense = clist.dense[:0]\n}\n\nfunc (m *matcher) match() bool {\n\tpos := 0\n\tclist, nlist := &m.list1, &m.list2\n\tfor {\n\t\tif len(clist.dense) == 0 && m.matched {\n\t\t\tbreak\n\t\t}\n\t\tr, width, next := m.at(pos)\n\t\tif !m.matched {\n\t\t\tm.add(clist, 0, pos, next, m.cap)\n\t\t}\n\t\tm.step(clist, nlist, r, pos, pos+width, next)\n\n\t\tif width < 1 {\n\t\t\tbreak\n\t\t}\n\t\tpos += width\n\n\t\tclist, nlist = nlist, clist\n\t}\n\treturn m.matched\n}\n\nfunc (tmpl *Template) Match(expansion string) Values {\n\ttmpl.mu.Lock()\n\tif tmpl.prog == nil {\n\t\tc := compiler{}\n\t\tc.init()\n\t\tc.compile(tmpl)\n\t\ttmpl.prog = c.prog\n\t}\n\tprog := tmpl.prog\n\ttmpl.mu.Unlock()\n\n\tn := len(prog.op)\n\tm := matcher{\n\t\tprog: prog,\n\t\tlist1: threadList{\n\t\t\tdense:  make([]threadEntry, 0, n),\n\t\t\tsparse: make([]uint32, n),\n\t\t},\n\t\tlist2: threadList{\n\t\t\tdense:  make([]threadEntry, 0, n),\n\t\t\tsparse: make([]uint32, n),\n\t\t},\n\t\tcap:   make(map[string][]int, prog.numCap),\n\t\tinput: expansion,\n\t}\n\tif !m.match() {\n\t\treturn nil\n\t}\n\n\tmatch := make(Values, len(m.cap))\n\tfor name, indices := range m.cap {\n\t\tv := Value{V: make([]string, len(indices)/2)}\n\t\tfor i := range v.V {\n\t\t\tv.V[i] = pctDecode(expansion[indices[2*i]:indices[2*i+1]])\n\t\t}\n\t\tif len(v.V) == 1 {\n\t\t\tv.T = ValueTypeString\n\t\t} else {\n\t\t\tv.T = ValueTypeList\n\t\t}\n\t\tmatch[name] = v\n\t}\n\treturn match\n}\n"
  },
  {
    "path": "vendor/github.com/yosida95/uritemplate/v3/parse.go",
    "content": "// Copyright (C) 2016 Kohei YOSHIDA. All rights reserved.\n//\n// This program is free software; you can redistribute it and/or\n// modify it under the terms of The BSD 3-Clause License\n// that can be found in the LICENSE file.\n\npackage uritemplate\n\nimport (\n\t\"fmt\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\ntype parseOp int\n\nconst (\n\tparseOpSimple parseOp = iota\n\tparseOpPlus\n\tparseOpCrosshatch\n\tparseOpDot\n\tparseOpSlash\n\tparseOpSemicolon\n\tparseOpQuestion\n\tparseOpAmpersand\n)\n\nvar (\n\trangeVarchar = &unicode.RangeTable{\n\t\tR16: []unicode.Range16{\n\t\t\t{Lo: 0x0030, Hi: 0x0039, Stride: 1}, // '0' - '9'\n\t\t\t{Lo: 0x0041, Hi: 0x005A, Stride: 1}, // 'A' - 'Z'\n\t\t\t{Lo: 0x005F, Hi: 0x005F, Stride: 1}, // '_'\n\t\t\t{Lo: 0x0061, Hi: 0x007A, Stride: 1}, // 'a' - 'z'\n\t\t},\n\t\tLatinOffset: 4,\n\t}\n\trangeLiterals = &unicode.RangeTable{\n\t\tR16: []unicode.Range16{\n\t\t\t{Lo: 0x0021, Hi: 0x0021, Stride: 1}, // '!'\n\t\t\t{Lo: 0x0023, Hi: 0x0024, Stride: 1}, // '#' - '$'\n\t\t\t{Lo: 0x0026, Hi: 0x003B, Stride: 1}, // '&' ''' '(' - ';'. '''/27 used to be excluded but an errata is in the review process https://www.rfc-editor.org/errata/eid6937\n\t\t\t{Lo: 0x003D, Hi: 0x003D, Stride: 1}, // '='\n\t\t\t{Lo: 0x003F, Hi: 0x005B, Stride: 1}, // '?' - '['\n\t\t\t{Lo: 0x005D, Hi: 0x005D, Stride: 1}, // ']'\n\t\t\t{Lo: 0x005F, Hi: 0x005F, Stride: 1}, // '_'\n\t\t\t{Lo: 0x0061, Hi: 0x007A, Stride: 1}, // 'a' - 'z'\n\t\t\t{Lo: 0x007E, Hi: 0x007E, Stride: 1}, // '~'\n\t\t\t{Lo: 0x00A0, Hi: 0xD7FF, Stride: 1}, // ucschar\n\t\t\t{Lo: 0xE000, Hi: 0xF8FF, Stride: 1}, // iprivate\n\t\t\t{Lo: 0xF900, Hi: 0xFDCF, Stride: 1}, // ucschar\n\t\t\t{Lo: 0xFDF0, Hi: 0xFFEF, Stride: 1}, // ucschar\n\t\t},\n\t\tR32: []unicode.Range32{\n\t\t\t{Lo: 0x00010000, Hi: 0x0001FFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x00020000, Hi: 0x0002FFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x00030000, Hi: 0x0003FFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x00040000, Hi: 0x0004FFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x00050000, Hi: 0x0005FFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x00060000, Hi: 0x0006FFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x00070000, Hi: 0x0007FFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x00080000, Hi: 0x0008FFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x00090000, Hi: 0x0009FFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x000A0000, Hi: 0x000AFFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x000B0000, Hi: 0x000BFFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x000C0000, Hi: 0x000CFFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x000D0000, Hi: 0x000DFFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x000E1000, Hi: 0x000EFFFD, Stride: 1}, // ucschar\n\t\t\t{Lo: 0x000F0000, Hi: 0x000FFFFD, Stride: 1}, // iprivate\n\t\t\t{Lo: 0x00100000, Hi: 0x0010FFFD, Stride: 1}, // iprivate\n\t\t},\n\t\tLatinOffset: 10,\n\t}\n)\n\ntype parser struct {\n\tr     string\n\tstart int\n\tstop  int\n\tstate parseState\n}\n\nfunc (p *parser) errorf(i rune, format string, a ...interface{}) error {\n\treturn fmt.Errorf(\"%s: %s%s\", fmt.Sprintf(format, a...), p.r[0:p.stop], string(i))\n}\n\nfunc (p *parser) rune() (rune, int) {\n\tr, size := utf8.DecodeRuneInString(p.r[p.stop:])\n\tif r != utf8.RuneError {\n\t\tp.stop += size\n\t}\n\treturn r, size\n}\n\nfunc (p *parser) unread(r rune) {\n\tp.stop -= utf8.RuneLen(r)\n}\n\ntype parseState int\n\nconst (\n\tparseStateDefault = parseState(iota)\n\tparseStateOperator\n\tparseStateVarList\n\tparseStateVarName\n\tparseStatePrefix\n)\n\nfunc (p *parser) setState(state parseState) {\n\tp.state = state\n\tp.start = p.stop\n}\n\nfunc (p *parser) parseURITemplate() (*Template, error) {\n\ttmpl := Template{\n\t\traw:   p.r,\n\t\texprs: []template{},\n\t}\n\n\tvar exp *expression\n\tfor {\n\t\tr, size := p.rune()\n\t\tif r == utf8.RuneError {\n\t\t\tif size == 0 {\n\t\t\t\tif p.state != parseStateDefault {\n\t\t\t\t\treturn nil, p.errorf('_', \"incomplete expression\")\n\t\t\t\t}\n\t\t\t\tif p.start < p.stop {\n\t\t\t\t\ttmpl.exprs = append(tmpl.exprs, literals(p.r[p.start:p.stop]))\n\t\t\t\t}\n\t\t\t\treturn &tmpl, nil\n\t\t\t}\n\t\t\treturn nil, p.errorf('_', \"invalid UTF-8 sequence\")\n\t\t}\n\n\t\tswitch p.state {\n\t\tcase parseStateDefault:\n\t\t\tswitch r {\n\t\t\tcase '{':\n\t\t\t\tif stop := p.stop - size; stop > p.start {\n\t\t\t\t\ttmpl.exprs = append(tmpl.exprs, literals(p.r[p.start:stop]))\n\t\t\t\t}\n\t\t\t\texp = &expression{}\n\t\t\t\ttmpl.exprs = append(tmpl.exprs, exp)\n\t\t\t\tp.setState(parseStateOperator)\n\t\t\tcase '%':\n\t\t\t\tp.unread(r)\n\t\t\t\tif err := p.consumeTriplet(); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tif !unicode.Is(rangeLiterals, r) {\n\t\t\t\t\tp.unread(r)\n\t\t\t\t\treturn nil, p.errorf('_', \"unacceptable character (hint: use %%XX encoding)\")\n\t\t\t\t}\n\t\t\t}\n\t\tcase parseStateOperator:\n\t\t\tswitch r {\n\t\t\tdefault:\n\t\t\t\tp.unread(r)\n\t\t\t\texp.op = parseOpSimple\n\t\t\tcase '+':\n\t\t\t\texp.op = parseOpPlus\n\t\t\tcase '#':\n\t\t\t\texp.op = parseOpCrosshatch\n\t\t\tcase '.':\n\t\t\t\texp.op = parseOpDot\n\t\t\tcase '/':\n\t\t\t\texp.op = parseOpSlash\n\t\t\tcase ';':\n\t\t\t\texp.op = parseOpSemicolon\n\t\t\tcase '?':\n\t\t\t\texp.op = parseOpQuestion\n\t\t\tcase '&':\n\t\t\t\texp.op = parseOpAmpersand\n\t\t\tcase '=', ',', '!', '@', '|': // op-reserved\n\t\t\t\treturn nil, p.errorf('|', \"unimplemented operator (op-reserved)\")\n\t\t\t}\n\t\t\tp.setState(parseStateVarName)\n\t\tcase parseStateVarList:\n\t\t\tswitch r {\n\t\t\tcase ',':\n\t\t\t\tp.setState(parseStateVarName)\n\t\t\tcase '}':\n\t\t\t\texp.init()\n\t\t\t\tp.setState(parseStateDefault)\n\t\t\tdefault:\n\t\t\t\tp.unread(r)\n\t\t\t\treturn nil, p.errorf('_', \"unrecognized value modifier\")\n\t\t\t}\n\t\tcase parseStateVarName:\n\t\t\tswitch r {\n\t\t\tcase ':', '*':\n\t\t\t\tname := p.r[p.start : p.stop-size]\n\t\t\t\tif !isValidVarname(name) {\n\t\t\t\t\treturn nil, p.errorf('|', \"unacceptable variable name\")\n\t\t\t\t}\n\t\t\t\texplode := r == '*'\n\t\t\t\texp.vars = append(exp.vars, varspec{\n\t\t\t\t\tname:    name,\n\t\t\t\t\texplode: explode,\n\t\t\t\t})\n\t\t\t\tif explode {\n\t\t\t\t\tp.setState(parseStateVarList)\n\t\t\t\t} else {\n\t\t\t\t\tp.setState(parseStatePrefix)\n\t\t\t\t}\n\t\t\tcase ',', '}':\n\t\t\t\tp.unread(r)\n\t\t\t\tname := p.r[p.start:p.stop]\n\t\t\t\tif !isValidVarname(name) {\n\t\t\t\t\treturn nil, p.errorf('|', \"unacceptable variable name\")\n\t\t\t\t}\n\t\t\t\texp.vars = append(exp.vars, varspec{\n\t\t\t\t\tname: name,\n\t\t\t\t})\n\t\t\t\tp.setState(parseStateVarList)\n\t\t\tcase '%':\n\t\t\t\tp.unread(r)\n\t\t\t\tif err := p.consumeTriplet(); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\tcase '.':\n\t\t\t\tif dot := p.stop - size; dot == p.start || p.r[dot-1] == '.' {\n\t\t\t\t\treturn nil, p.errorf('|', \"unacceptable variable name\")\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tif !unicode.Is(rangeVarchar, r) {\n\t\t\t\t\tp.unread(r)\n\t\t\t\t\treturn nil, p.errorf('_', \"unacceptable variable name\")\n\t\t\t\t}\n\t\t\t}\n\t\tcase parseStatePrefix:\n\t\t\tspec := &(exp.vars[len(exp.vars)-1])\n\t\t\tswitch {\n\t\t\tcase '0' <= r && r <= '9':\n\t\t\t\tspec.maxlen *= 10\n\t\t\t\tspec.maxlen += int(r - '0')\n\t\t\t\tif spec.maxlen == 0 || spec.maxlen > 9999 {\n\t\t\t\t\treturn nil, p.errorf('|', \"max-length must be (0, 9999]\")\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tp.unread(r)\n\t\t\t\tif spec.maxlen == 0 {\n\t\t\t\t\treturn nil, p.errorf('_', \"max-length must be (0, 9999]\")\n\t\t\t\t}\n\t\t\t\tp.setState(parseStateVarList)\n\t\t\t}\n\t\tdefault:\n\t\t\tp.unread(r)\n\t\t\tpanic(p.errorf('_', \"unhandled parseState(%d)\", p.state))\n\t\t}\n\t}\n}\n\nfunc isValidVarname(name string) bool {\n\tif l := len(name); l == 0 || name[0] == '.' || name[l-1] == '.' {\n\t\treturn false\n\t}\n\tfor i := 1; i < len(name)-1; i++ {\n\t\tswitch c := name[i]; c {\n\t\tcase '.':\n\t\t\tif name[i-1] == '.' {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (p *parser) consumeTriplet() error {\n\tif len(p.r)-p.stop < 3 || p.r[p.stop] != '%' || !ishex(p.r[p.stop+1]) || !ishex(p.r[p.stop+2]) {\n\t\treturn p.errorf('_', \"incomplete pct-encodeed\")\n\t}\n\tp.stop += 3\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/yosida95/uritemplate/v3/prog.go",
    "content": "// Copyright (C) 2016 Kohei YOSHIDA. All rights reserved.\n//\n// This program is free software; you can redistribute it and/or\n// modify it under the terms of The BSD 3-Clause License\n// that can be found in the LICENSE file.\n\npackage uritemplate\n\nimport (\n\t\"bytes\"\n\t\"strconv\"\n)\n\ntype progOpcode uint16\n\nconst (\n\t// match\n\topRune progOpcode = iota\n\topRuneClass\n\topLineBegin\n\topLineEnd\n\t// capture\n\topCapStart\n\topCapEnd\n\t// stack\n\topSplit\n\topJmp\n\topJmpIfNotDefined\n\topJmpIfNotEmpty\n\topJmpIfNotFirst\n\t// result\n\topEnd\n\t// fake\n\topNoop\n\topcodeMax\n)\n\nvar opcodeNames = []string{\n\t// match\n\t\"opRune\",\n\t\"opRuneClass\",\n\t\"opLineBegin\",\n\t\"opLineEnd\",\n\t// capture\n\t\"opCapStart\",\n\t\"opCapEnd\",\n\t// stack\n\t\"opSplit\",\n\t\"opJmp\",\n\t\"opJmpIfNotDefined\",\n\t\"opJmpIfNotEmpty\",\n\t\"opJmpIfNotFirst\",\n\t// result\n\t\"opEnd\",\n}\n\nfunc (code progOpcode) String() string {\n\tif code >= opcodeMax {\n\t\treturn \"\"\n\t}\n\treturn opcodeNames[code]\n}\n\ntype progOp struct {\n\tcode progOpcode\n\tr    rune\n\trc   runeClass\n\ti    uint32\n\n\tname string\n}\n\nfunc dumpProgOp(b *bytes.Buffer, op *progOp) {\n\tb.WriteString(op.code.String())\n\tswitch op.code {\n\tcase opRune:\n\t\tb.WriteString(\"(\")\n\t\tb.WriteString(strconv.QuoteToASCII(string(op.r)))\n\t\tb.WriteString(\")\")\n\tcase opRuneClass:\n\t\tb.WriteString(\"(\")\n\t\tb.WriteString(op.rc.String())\n\t\tb.WriteString(\")\")\n\tcase opCapStart, opCapEnd:\n\t\tb.WriteString(\"(\")\n\t\tb.WriteString(strconv.QuoteToASCII(op.name))\n\t\tb.WriteString(\")\")\n\tcase opSplit:\n\t\tb.WriteString(\" -> \")\n\t\tb.WriteString(strconv.FormatInt(int64(op.i), 10))\n\tcase opJmp, opJmpIfNotFirst:\n\t\tb.WriteString(\" -> \")\n\t\tb.WriteString(strconv.FormatInt(int64(op.i), 10))\n\tcase opJmpIfNotDefined, opJmpIfNotEmpty:\n\t\tb.WriteString(\"(\")\n\t\tb.WriteString(strconv.QuoteToASCII(op.name))\n\t\tb.WriteString(\")\")\n\t\tb.WriteString(\" -> \")\n\t\tb.WriteString(strconv.FormatInt(int64(op.i), 10))\n\t}\n}\n\ntype prog struct {\n\top     []progOp\n\tnumCap int\n}\n\nfunc dumpProg(b *bytes.Buffer, prog *prog, pc uint32) {\n\tfor i := range prog.op {\n\t\top := prog.op[i]\n\n\t\tpos := strconv.Itoa(i)\n\t\tif uint32(i) == pc {\n\t\t\tpos = \"*\" + pos\n\t\t}\n\t\tb.WriteString(\"    \"[len(pos):])\n\t\tb.WriteString(pos)\n\n\t\tb.WriteByte('\\t')\n\t\tdumpProgOp(b, &op)\n\n\t\tb.WriteByte('\\n')\n\t}\n}\n\nfunc (p *prog) String() string {\n\tb := bytes.Buffer{}\n\tdumpProg(&b, p, 0)\n\treturn b.String()\n}\n"
  },
  {
    "path": "vendor/github.com/yosida95/uritemplate/v3/uritemplate.go",
    "content": "// Copyright (C) 2016 Kohei YOSHIDA. All rights reserved.\n//\n// This program is free software; you can redistribute it and/or\n// modify it under the terms of The BSD 3-Clause License\n// that can be found in the LICENSE file.\n\npackage uritemplate\n\nimport (\n\t\"log\"\n\t\"regexp\"\n\t\"strings\"\n\t\"sync\"\n)\n\nvar (\n\tdebug = debugT(false)\n)\n\ntype debugT bool\n\nfunc (t debugT) Printf(format string, v ...interface{}) {\n\tif t {\n\t\tlog.Printf(format, v...)\n\t}\n}\n\n// Template represents a URI Template.\ntype Template struct {\n\traw   string\n\texprs []template\n\n\t// protects the rest of fields\n\tmu       sync.Mutex\n\tvarnames []string\n\tre       *regexp.Regexp\n\tprog     *prog\n}\n\n// New parses and constructs a new Template instance based on the template.\n// New returns an error if the template cannot be recognized.\nfunc New(template string) (*Template, error) {\n\treturn (&parser{r: template}).parseURITemplate()\n}\n\n// MustNew panics if the template cannot be recognized.\nfunc MustNew(template string) *Template {\n\tret, err := New(template)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn ret\n}\n\n// Raw returns a raw URI template passed to New in string.\nfunc (t *Template) Raw() string {\n\treturn t.raw\n}\n\n// Varnames returns variable names used in the template.\nfunc (t *Template) Varnames() []string {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\tif t.varnames != nil {\n\t\treturn t.varnames\n\t}\n\n\treg := map[string]struct{}{}\n\tt.varnames = []string{}\n\tfor i := range t.exprs {\n\t\texpr, ok := t.exprs[i].(*expression)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, spec := range expr.vars {\n\t\t\tif _, ok := reg[spec.name]; ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treg[spec.name] = struct{}{}\n\t\t\tt.varnames = append(t.varnames, spec.name)\n\t\t}\n\t}\n\n\treturn t.varnames\n}\n\n// Expand returns a URI reference corresponding to the template expanded using the passed variables.\nfunc (t *Template) Expand(vars Values) (string, error) {\n\tvar w strings.Builder\n\tfor i := range t.exprs {\n\t\texpr := t.exprs[i]\n\t\tif err := expr.expand(&w, vars); err != nil {\n\t\t\treturn w.String(), err\n\t\t}\n\t}\n\treturn w.String(), nil\n}\n\n// Regexp converts the template to regexp and returns compiled *regexp.Regexp.\nfunc (t *Template) Regexp() *regexp.Regexp {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\tif t.re != nil {\n\t\treturn t.re\n\t}\n\n\tvar b strings.Builder\n\tb.WriteByte('^')\n\tfor _, expr := range t.exprs {\n\t\texpr.regexp(&b)\n\t}\n\tb.WriteByte('$')\n\tt.re = regexp.MustCompile(b.String())\n\n\treturn t.re\n}\n"
  },
  {
    "path": "vendor/github.com/yosida95/uritemplate/v3/value.go",
    "content": "// Copyright (C) 2016 Kohei YOSHIDA. All rights reserved.\n//\n// This program is free software; you can redistribute it and/or\n// modify it under the terms of The BSD 3-Clause License\n// that can be found in the LICENSE file.\n\npackage uritemplate\n\nimport \"strings\"\n\n// A varname containing pct-encoded characters is not the same variable as\n// a varname with those same characters decoded.\n//\n// -- https://tools.ietf.org/html/rfc6570#section-2.3\ntype Values map[string]Value\n\nfunc (v Values) Set(name string, value Value) {\n\tv[name] = value\n}\n\nfunc (v Values) Get(name string) Value {\n\tif v == nil {\n\t\treturn Value{}\n\t}\n\treturn v[name]\n}\n\ntype ValueType uint8\n\nconst (\n\tValueTypeString = iota\n\tValueTypeList\n\tValueTypeKV\n\tvalueTypeLast\n)\n\nvar valueTypeNames = []string{\n\t\"String\",\n\t\"List\",\n\t\"KV\",\n}\n\nfunc (vt ValueType) String() string {\n\tif vt < valueTypeLast {\n\t\treturn valueTypeNames[vt]\n\t}\n\treturn \"\"\n}\n\ntype Value struct {\n\tT ValueType\n\tV []string\n}\n\nfunc (v Value) String() string {\n\tif v.Valid() && v.T == ValueTypeString {\n\t\treturn v.V[0]\n\t}\n\treturn \"\"\n}\n\nfunc (v Value) List() []string {\n\tif v.Valid() && v.T == ValueTypeList {\n\t\treturn v.V\n\t}\n\treturn nil\n}\n\nfunc (v Value) KV() []string {\n\tif v.Valid() && v.T == ValueTypeKV {\n\t\treturn v.V\n\t}\n\treturn nil\n}\n\nfunc (v Value) Valid() bool {\n\tswitch v.T {\n\tdefault:\n\t\treturn false\n\tcase ValueTypeString:\n\t\treturn len(v.V) > 0\n\tcase ValueTypeList:\n\t\treturn len(v.V) > 0\n\tcase ValueTypeKV:\n\t\treturn len(v.V) > 0 && len(v.V)%2 == 0\n\t}\n}\n\nfunc (v Value) expand(w *strings.Builder, spec varspec, exp *expression) error {\n\tswitch v.T {\n\tcase ValueTypeString:\n\t\tval := v.V[0]\n\t\tvar maxlen int\n\t\tif max := len(val); spec.maxlen < 1 || spec.maxlen > max {\n\t\t\tmaxlen = max\n\t\t} else {\n\t\t\tmaxlen = spec.maxlen\n\t\t}\n\n\t\tif exp.named {\n\t\t\tw.WriteString(spec.name)\n\t\t\tif val == \"\" {\n\t\t\t\tw.WriteString(exp.ifemp)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tw.WriteByte('=')\n\t\t}\n\t\treturn exp.escape(w, val[:maxlen])\n\tcase ValueTypeList:\n\t\tvar sep string\n\t\tif spec.explode {\n\t\t\tsep = exp.sep\n\t\t} else {\n\t\t\tsep = \",\"\n\t\t}\n\n\t\tvar pre string\n\t\tvar preifemp string\n\t\tif spec.explode && exp.named {\n\t\t\tpre = spec.name + \"=\"\n\t\t\tpreifemp = spec.name + exp.ifemp\n\t\t}\n\n\t\tif !spec.explode && exp.named {\n\t\t\tw.WriteString(spec.name)\n\t\t\tw.WriteByte('=')\n\t\t}\n\t\tfor i := range v.V {\n\t\t\tval := v.V[i]\n\t\t\tif i > 0 {\n\t\t\t\tw.WriteString(sep)\n\t\t\t}\n\t\t\tif val == \"\" {\n\t\t\t\tw.WriteString(preifemp)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tw.WriteString(pre)\n\n\t\t\tif err := exp.escape(w, val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\tcase ValueTypeKV:\n\t\tvar sep string\n\t\tvar kvsep string\n\t\tif spec.explode {\n\t\t\tsep = exp.sep\n\t\t\tkvsep = \"=\"\n\t\t} else {\n\t\t\tsep = \",\"\n\t\t\tkvsep = \",\"\n\t\t}\n\n\t\tvar ifemp string\n\t\tvar kescape escapeFunc\n\t\tif spec.explode && exp.named {\n\t\t\tifemp = exp.ifemp\n\t\t\tkescape = escapeLiteral\n\t\t} else {\n\t\t\tifemp = \",\"\n\t\t\tkescape = exp.escape\n\t\t}\n\n\t\tif !spec.explode && exp.named {\n\t\t\tw.WriteString(spec.name)\n\t\t\tw.WriteByte('=')\n\t\t}\n\n\t\tfor i := 0; i < len(v.V); i += 2 {\n\t\t\tif i > 0 {\n\t\t\t\tw.WriteString(sep)\n\t\t\t}\n\t\t\tif err := kescape(w, v.V[i]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif v.V[i+1] == \"\" {\n\t\t\t\tw.WriteString(ifemp)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tw.WriteString(kvsep)\n\n\t\t\tif err := exp.escape(w, v.V[i+1]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// String returns Value that represents string.\nfunc String(v string) Value {\n\treturn Value{\n\t\tT: ValueTypeString,\n\t\tV: []string{v},\n\t}\n}\n\n// List returns Value that represents list.\nfunc List(v ...string) Value {\n\treturn Value{\n\t\tT: ValueTypeList,\n\t\tV: v,\n\t}\n}\n\n// KV returns Value that represents associative list.\n// KV panics if len(kv) is not even.\nfunc KV(kv ...string) Value {\n\tif len(kv)%2 != 0 {\n\t\tpanic(\"uritemplate.go: count of the kv must be even number\")\n\t}\n\treturn Value{\n\t\tT: ValueTypeKV,\n\t\tV: kv,\n\t}\n}\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/.travis.yml",
    "content": "language: go\n\ngo:\n    - \"1.4.x\"\n    - \"1.5.x\"\n    - \"1.6.x\"\n    - \"1.7.x\"\n    - \"1.8.x\"\n    - \"1.9.x\"\n    - \"1.10.x\"\n    - \"1.11.x\"\n    - \"1.12.x\"\n    - \"1.13.x\"\n    - \"1.14.x\"\n    - \"tip\"\n\ngo_import_path: gopkg.in/yaml.v2\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/LICENSE.libyaml",
    "content": "The following files were ported to Go from C files of libyaml, and thus\nare still covered by their original copyright and license:\n\n    apic.go\n    emitterc.go\n    parserc.go\n    readerc.go\n    scannerc.go\n    writerc.go\n    yamlh.go\n    yamlprivateh.go\n\nCopyright (c) 2006 Kirill Simonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/NOTICE",
    "content": "Copyright 2011-2016 Canonical Ltd.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/README.md",
    "content": "# YAML support for the Go language\n\nIntroduction\n------------\n\nThe yaml package enables Go programs to comfortably encode and decode YAML\nvalues. It was developed within [Canonical](https://www.canonical.com) as\npart of the [juju](https://juju.ubuntu.com) project, and is based on a\npure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML)\nC library to parse and generate YAML data quickly and reliably.\n\nCompatibility\n-------------\n\nThe yaml package supports most of YAML 1.1 and 1.2, including support for\nanchors, tags, map merging, etc. Multi-document unmarshalling is not yet\nimplemented, and base-60 floats from YAML 1.1 are purposefully not\nsupported since they're a poor design and are gone in YAML 1.2.\n\nInstallation and usage\n----------------------\n\nThe import path for the package is *go.yaml.in/yaml/v2*.\n\nTo install it, run:\n\n    go get go.yaml.in/yaml/v2\n\nAPI documentation\n-----------------\n\nSee: <https://pkg.go.dev/go.yaml.in/yaml/v2>\n\nAPI stability\n-------------\n\nThe package API for yaml v2 will remain stable as described in [gopkg.in](https://gopkg.in).\n\n\nLicense\n-------\n\nThe yaml package is licensed under the Apache License 2.0. Please see the LICENSE file for details.\n\n\nExample\n-------\n\n```Go\npackage main\n\nimport (\n        \"fmt\"\n        \"log\"\n\n        \"go.yaml.in/yaml/v2\"\n)\n\nvar data = `\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n`\n\n// Note: struct fields must be public in order for unmarshal to\n// correctly populate the data.\ntype T struct {\n        A string\n        B struct {\n                RenamedC int   `yaml:\"c\"`\n                D        []int `yaml:\",flow\"`\n        }\n}\n\nfunc main() {\n        t := T{}\n    \n        err := yaml.Unmarshal([]byte(data), &t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t:\\n%v\\n\\n\", t)\n    \n        d, err := yaml.Marshal(&t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t dump:\\n%s\\n\\n\", string(d))\n    \n        m := make(map[interface{}]interface{})\n    \n        err = yaml.Unmarshal([]byte(data), &m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m:\\n%v\\n\\n\", m)\n    \n        d, err = yaml.Marshal(&m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m dump:\\n%s\\n\\n\", string(d))\n}\n```\n\nThis example will generate the following output:\n\n```\n--- t:\n{Easy! {2 [3 4]}}\n\n--- t dump:\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n\n\n--- m:\nmap[a:Easy! b:map[c:2 d:[3 4]]]\n\n--- m dump:\na: Easy!\nb:\n  c: 2\n  d:\n  - 3\n  - 4\n```\n\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/apic.go",
    "content": "package yaml\n\nimport (\n\t\"io\"\n)\n\nfunc yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) {\n\t//fmt.Println(\"yaml_insert_token\", \"pos:\", pos, \"typ:\", token.typ, \"head:\", parser.tokens_head, \"len:\", len(parser.tokens))\n\n\t// Check if we can move the queue at the beginning of the buffer.\n\tif parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) {\n\t\tif parser.tokens_head != len(parser.tokens) {\n\t\t\tcopy(parser.tokens, parser.tokens[parser.tokens_head:])\n\t\t}\n\t\tparser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head]\n\t\tparser.tokens_head = 0\n\t}\n\tparser.tokens = append(parser.tokens, *token)\n\tif pos < 0 {\n\t\treturn\n\t}\n\tcopy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:])\n\tparser.tokens[parser.tokens_head+pos] = *token\n}\n\n// Create a new parser object.\nfunc yaml_parser_initialize(parser *yaml_parser_t) bool {\n\t*parser = yaml_parser_t{\n\t\traw_buffer: make([]byte, 0, input_raw_buffer_size),\n\t\tbuffer:     make([]byte, 0, input_buffer_size),\n\t}\n\treturn true\n}\n\n// Destroy a parser object.\nfunc yaml_parser_delete(parser *yaml_parser_t) {\n\t*parser = yaml_parser_t{}\n}\n\n// String read handler.\nfunc yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\tif parser.input_pos == len(parser.input) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(buffer, parser.input[parser.input_pos:])\n\tparser.input_pos += n\n\treturn n, nil\n}\n\n// Reader read handler.\nfunc yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\treturn parser.input_reader.Read(buffer)\n}\n\n// Set a string input.\nfunc yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_string_read_handler\n\tparser.input = input\n\tparser.input_pos = 0\n}\n\n// Set a file input.\nfunc yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_reader_read_handler\n\tparser.input_reader = r\n}\n\n// Set the source encoding.\nfunc yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) {\n\tif parser.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the encoding only once\")\n\t}\n\tparser.encoding = encoding\n}\n\nvar disableLineWrapping = false\n\n// Create a new emitter object.\nfunc yaml_emitter_initialize(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{\n\t\tbuffer:     make([]byte, output_buffer_size),\n\t\traw_buffer: make([]byte, 0, output_raw_buffer_size),\n\t\tstates:     make([]yaml_emitter_state_t, 0, initial_stack_size),\n\t\tevents:     make([]yaml_event_t, 0, initial_queue_size),\n\t}\n\tif disableLineWrapping {\n\t\temitter.best_width = -1\n\t}\n}\n\n// Destroy an emitter object.\nfunc yaml_emitter_delete(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{}\n}\n\n// String write handler.\nfunc yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t*emitter.output_buffer = append(*emitter.output_buffer, buffer...)\n\treturn nil\n}\n\n// yaml_writer_write_handler uses emitter.output_writer to write the\n// emitted text.\nfunc yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t_, err := emitter.output_writer.Write(buffer)\n\treturn err\n}\n\n// Set a string output.\nfunc yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_string_write_handler\n\temitter.output_buffer = output_buffer\n}\n\n// Set a file output.\nfunc yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_writer_write_handler\n\temitter.output_writer = w\n}\n\n// Set the output encoding.\nfunc yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) {\n\tif emitter.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the output encoding only once\")\n\t}\n\temitter.encoding = encoding\n}\n\n// Set the canonical output style.\nfunc yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) {\n\temitter.canonical = canonical\n}\n\n//// Set the indentation increment.\nfunc yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) {\n\tif indent < 2 || indent > 9 {\n\t\tindent = 2\n\t}\n\temitter.best_indent = indent\n}\n\n// Set the preferred line width.\nfunc yaml_emitter_set_width(emitter *yaml_emitter_t, width int) {\n\tif width < 0 {\n\t\twidth = -1\n\t}\n\temitter.best_width = width\n}\n\n// Set if unescaped non-ASCII characters are allowed.\nfunc yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) {\n\temitter.unicode = unicode\n}\n\n// Set the preferred line break character.\nfunc yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) {\n\temitter.line_break = line_break\n}\n\n///*\n// * Destroy a token object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_token_delete(yaml_token_t *token)\n//{\n//    assert(token);  // Non-NULL token object expected.\n//\n//    switch (token.type)\n//    {\n//        case YAML_TAG_DIRECTIVE_TOKEN:\n//            yaml_free(token.data.tag_directive.handle);\n//            yaml_free(token.data.tag_directive.prefix);\n//            break;\n//\n//        case YAML_ALIAS_TOKEN:\n//            yaml_free(token.data.alias.value);\n//            break;\n//\n//        case YAML_ANCHOR_TOKEN:\n//            yaml_free(token.data.anchor.value);\n//            break;\n//\n//        case YAML_TAG_TOKEN:\n//            yaml_free(token.data.tag.handle);\n//            yaml_free(token.data.tag.suffix);\n//            break;\n//\n//        case YAML_SCALAR_TOKEN:\n//            yaml_free(token.data.scalar.value);\n//            break;\n//\n//        default:\n//            break;\n//    }\n//\n//    memset(token, 0, sizeof(yaml_token_t));\n//}\n//\n///*\n// * Check if a string is a valid UTF-8 sequence.\n// *\n// * Check 'reader.c' for more details on UTF-8 encoding.\n// */\n//\n//static int\n//yaml_check_utf8(yaml_char_t *start, size_t length)\n//{\n//    yaml_char_t *end = start+length;\n//    yaml_char_t *pointer = start;\n//\n//    while (pointer < end) {\n//        unsigned char octet;\n//        unsigned int width;\n//        unsigned int value;\n//        size_t k;\n//\n//        octet = pointer[0];\n//        width = (octet & 0x80) == 0x00 ? 1 :\n//                (octet & 0xE0) == 0xC0 ? 2 :\n//                (octet & 0xF0) == 0xE0 ? 3 :\n//                (octet & 0xF8) == 0xF0 ? 4 : 0;\n//        value = (octet & 0x80) == 0x00 ? octet & 0x7F :\n//                (octet & 0xE0) == 0xC0 ? octet & 0x1F :\n//                (octet & 0xF0) == 0xE0 ? octet & 0x0F :\n//                (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0;\n//        if (!width) return 0;\n//        if (pointer+width > end) return 0;\n//        for (k = 1; k < width; k ++) {\n//            octet = pointer[k];\n//            if ((octet & 0xC0) != 0x80) return 0;\n//            value = (value << 6) + (octet & 0x3F);\n//        }\n//        if (!((width == 1) ||\n//            (width == 2 && value >= 0x80) ||\n//            (width == 3 && value >= 0x800) ||\n//            (width == 4 && value >= 0x10000))) return 0;\n//\n//        pointer += width;\n//    }\n//\n//    return 1;\n//}\n//\n\n// Create STREAM-START.\nfunc yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_STREAM_START_EVENT,\n\t\tencoding: encoding,\n\t}\n}\n\n// Create STREAM-END.\nfunc yaml_stream_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_STREAM_END_EVENT,\n\t}\n}\n\n// Create DOCUMENT-START.\nfunc yaml_document_start_event_initialize(\n\tevent *yaml_event_t,\n\tversion_directive *yaml_version_directive_t,\n\ttag_directives []yaml_tag_directive_t,\n\timplicit bool,\n) {\n\t*event = yaml_event_t{\n\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\tversion_directive: version_directive,\n\t\ttag_directives:    tag_directives,\n\t\timplicit:          implicit,\n\t}\n}\n\n// Create DOCUMENT-END.\nfunc yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_DOCUMENT_END_EVENT,\n\t\timplicit: implicit,\n\t}\n}\n\n///*\n// * Create ALIAS.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_alias_event_initialize(event *yaml_event_t, anchor *yaml_char_t)\n//{\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    anchor_copy *yaml_char_t = NULL\n//\n//    assert(event) // Non-NULL event object is expected.\n//    assert(anchor) // Non-NULL anchor is expected.\n//\n//    if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0\n//\n//    anchor_copy = yaml_strdup(anchor)\n//    if (!anchor_copy)\n//        return 0\n//\n//    ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark)\n//\n//    return 1\n//}\n\n// Create SCALAR.\nfunc yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:             yaml_SCALAR_EVENT,\n\t\tanchor:          anchor,\n\t\ttag:             tag,\n\t\tvalue:           value,\n\t\timplicit:        plain_implicit,\n\t\tquoted_implicit: quoted_implicit,\n\t\tstyle:           yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-START.\nfunc yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_SEQUENCE_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-END.\nfunc yaml_sequence_end_event_initialize(event *yaml_event_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_SEQUENCE_END_EVENT,\n\t}\n\treturn true\n}\n\n// Create MAPPING-START.\nfunc yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_MAPPING_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n}\n\n// Create MAPPING-END.\nfunc yaml_mapping_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_MAPPING_END_EVENT,\n\t}\n}\n\n// Destroy an event object.\nfunc yaml_event_delete(event *yaml_event_t) {\n\t*event = yaml_event_t{}\n}\n\n///*\n// * Create a document object.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_initialize(document *yaml_document_t,\n//        version_directive *yaml_version_directive_t,\n//        tag_directives_start *yaml_tag_directive_t,\n//        tag_directives_end *yaml_tag_directive_t,\n//        start_implicit int, end_implicit int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    struct {\n//        start *yaml_node_t\n//        end *yaml_node_t\n//        top *yaml_node_t\n//    } nodes = { NULL, NULL, NULL }\n//    version_directive_copy *yaml_version_directive_t = NULL\n//    struct {\n//        start *yaml_tag_directive_t\n//        end *yaml_tag_directive_t\n//        top *yaml_tag_directive_t\n//    } tag_directives_copy = { NULL, NULL, NULL }\n//    value yaml_tag_directive_t = { NULL, NULL }\n//    mark yaml_mark_t = { 0, 0, 0 }\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert((tag_directives_start && tag_directives_end) ||\n//            (tag_directives_start == tag_directives_end))\n//                            // Valid tag directives are expected.\n//\n//    if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error\n//\n//    if (version_directive) {\n//        version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t))\n//        if (!version_directive_copy) goto error\n//        version_directive_copy.major = version_directive.major\n//        version_directive_copy.minor = version_directive.minor\n//    }\n//\n//    if (tag_directives_start != tag_directives_end) {\n//        tag_directive *yaml_tag_directive_t\n//        if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE))\n//            goto error\n//        for (tag_directive = tag_directives_start\n//                tag_directive != tag_directives_end; tag_directive ++) {\n//            assert(tag_directive.handle)\n//            assert(tag_directive.prefix)\n//            if (!yaml_check_utf8(tag_directive.handle,\n//                        strlen((char *)tag_directive.handle)))\n//                goto error\n//            if (!yaml_check_utf8(tag_directive.prefix,\n//                        strlen((char *)tag_directive.prefix)))\n//                goto error\n//            value.handle = yaml_strdup(tag_directive.handle)\n//            value.prefix = yaml_strdup(tag_directive.prefix)\n//            if (!value.handle || !value.prefix) goto error\n//            if (!PUSH(&context, tag_directives_copy, value))\n//                goto error\n//            value.handle = NULL\n//            value.prefix = NULL\n//        }\n//    }\n//\n//    DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy,\n//            tag_directives_copy.start, tag_directives_copy.top,\n//            start_implicit, end_implicit, mark, mark)\n//\n//    return 1\n//\n//error:\n//    STACK_DEL(&context, nodes)\n//    yaml_free(version_directive_copy)\n//    while (!STACK_EMPTY(&context, tag_directives_copy)) {\n//        value yaml_tag_directive_t = POP(&context, tag_directives_copy)\n//        yaml_free(value.handle)\n//        yaml_free(value.prefix)\n//    }\n//    STACK_DEL(&context, tag_directives_copy)\n//    yaml_free(value.handle)\n//    yaml_free(value.prefix)\n//\n//    return 0\n//}\n//\n///*\n// * Destroy a document object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_document_delete(document *yaml_document_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    tag_directive *yaml_tag_directive_t\n//\n//    context.error = YAML_NO_ERROR // Eliminate a compiler warning.\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    while (!STACK_EMPTY(&context, document.nodes)) {\n//        node yaml_node_t = POP(&context, document.nodes)\n//        yaml_free(node.tag)\n//        switch (node.type) {\n//            case YAML_SCALAR_NODE:\n//                yaml_free(node.data.scalar.value)\n//                break\n//            case YAML_SEQUENCE_NODE:\n//                STACK_DEL(&context, node.data.sequence.items)\n//                break\n//            case YAML_MAPPING_NODE:\n//                STACK_DEL(&context, node.data.mapping.pairs)\n//                break\n//            default:\n//                assert(0) // Should not happen.\n//        }\n//    }\n//    STACK_DEL(&context, document.nodes)\n//\n//    yaml_free(document.version_directive)\n//    for (tag_directive = document.tag_directives.start\n//            tag_directive != document.tag_directives.end\n//            tag_directive++) {\n//        yaml_free(tag_directive.handle)\n//        yaml_free(tag_directive.prefix)\n//    }\n//    yaml_free(document.tag_directives.start)\n//\n//    memset(document, 0, sizeof(yaml_document_t))\n//}\n//\n///**\n// * Get a document node.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_node(document *yaml_document_t, index int)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (index > 0 && document.nodes.start + index <= document.nodes.top) {\n//        return document.nodes.start + index - 1\n//    }\n//    return NULL\n//}\n//\n///**\n// * Get the root object.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_root_node(document *yaml_document_t)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (document.nodes.top != document.nodes.start) {\n//        return document.nodes.start\n//    }\n//    return NULL\n//}\n//\n///*\n// * Add a scalar node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_scalar(document *yaml_document_t,\n//        tag *yaml_char_t, value *yaml_char_t, length int,\n//        style yaml_scalar_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    value_copy *yaml_char_t = NULL\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert(value) // Non-NULL value is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (length < 0) {\n//        length = strlen((char *)value)\n//    }\n//\n//    if (!yaml_check_utf8(value, length)) goto error\n//    value_copy = yaml_malloc(length+1)\n//    if (!value_copy) goto error\n//    memcpy(value_copy, value, length)\n//    value_copy[length] = '\\0'\n//\n//    SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    yaml_free(tag_copy)\n//    yaml_free(value_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a sequence node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_sequence(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_sequence_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_item_t\n//        end *yaml_node_item_t\n//        top *yaml_node_item_t\n//    } items = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error\n//\n//    SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, items)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a mapping node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_mapping(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_mapping_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_pair_t\n//        end *yaml_node_pair_t\n//        top *yaml_node_pair_t\n//    } pairs = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error\n//\n//    MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, pairs)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Append an item to a sequence node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_sequence_item(document *yaml_document_t,\n//        sequence int, item int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(sequence > 0\n//            && document.nodes.start + sequence <= document.nodes.top)\n//                            // Valid sequence id is required.\n//    assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE)\n//                            // A sequence node is required.\n//    assert(item > 0 && document.nodes.start + item <= document.nodes.top)\n//                            // Valid item id is required.\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[sequence-1].data.sequence.items, item))\n//        return 0\n//\n//    return 1\n//}\n//\n///*\n// * Append a pair of a key and a value to a mapping node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_mapping_pair(document *yaml_document_t,\n//        mapping int, key int, value int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    pair yaml_node_pair_t\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(mapping > 0\n//            && document.nodes.start + mapping <= document.nodes.top)\n//                            // Valid mapping id is required.\n//    assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE)\n//                            // A mapping node is required.\n//    assert(key > 0 && document.nodes.start + key <= document.nodes.top)\n//                            // Valid key id is required.\n//    assert(value > 0 && document.nodes.start + value <= document.nodes.top)\n//                            // Valid value id is required.\n//\n//    pair.key = key\n//    pair.value = value\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[mapping-1].data.mapping.pairs, pair))\n//        return 0\n//\n//    return 1\n//}\n//\n//\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/decode.go",
    "content": "package yaml\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"time\"\n)\n\nconst (\n\tdocumentNode = 1 << iota\n\tmappingNode\n\tsequenceNode\n\tscalarNode\n\taliasNode\n)\n\ntype node struct {\n\tkind         int\n\tline, column int\n\ttag          string\n\t// For an alias node, alias holds the resolved alias.\n\talias    *node\n\tvalue    string\n\timplicit bool\n\tchildren []*node\n\tanchors  map[string]*node\n}\n\n// ----------------------------------------------------------------------------\n// Parser, produces a node tree out of a libyaml event stream.\n\ntype parser struct {\n\tparser   yaml_parser_t\n\tevent    yaml_event_t\n\tdoc      *node\n\tdoneInit bool\n}\n\nfunc newParser(b []byte) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tif len(b) == 0 {\n\t\tb = []byte{'\\n'}\n\t}\n\tyaml_parser_set_input_string(&p.parser, b)\n\treturn &p\n}\n\nfunc newParserFromReader(r io.Reader) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tyaml_parser_set_input_reader(&p.parser, r)\n\treturn &p\n}\n\nfunc (p *parser) init() {\n\tif p.doneInit {\n\t\treturn\n\t}\n\tp.expect(yaml_STREAM_START_EVENT)\n\tp.doneInit = true\n}\n\nfunc (p *parser) destroy() {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\tyaml_event_delete(&p.event)\n\t}\n\tyaml_parser_delete(&p.parser)\n}\n\n// expect consumes an event from the event stream and\n// checks that it's of the expected type.\nfunc (p *parser) expect(e yaml_event_type_t) {\n\tif p.event.typ == yaml_NO_EVENT {\n\t\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\t\tp.fail()\n\t\t}\n\t}\n\tif p.event.typ == yaml_STREAM_END_EVENT {\n\t\tfailf(\"attempted to go past the end of stream; corrupted value?\")\n\t}\n\tif p.event.typ != e {\n\t\tp.parser.problem = fmt.Sprintf(\"expected %s event but got %s\", e, p.event.typ)\n\t\tp.fail()\n\t}\n\tyaml_event_delete(&p.event)\n\tp.event.typ = yaml_NO_EVENT\n}\n\n// peek peeks at the next event in the event stream,\n// puts the results into p.event and returns the event type.\nfunc (p *parser) peek() yaml_event_type_t {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\treturn p.event.typ\n\t}\n\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\tp.fail()\n\t}\n\treturn p.event.typ\n}\n\nfunc (p *parser) fail() {\n\tvar where string\n\tvar line int\n\tif p.parser.problem_mark.line != 0 {\n\t\tline = p.parser.problem_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t} else if p.parser.context_mark.line != 0 {\n\t\tline = p.parser.context_mark.line\n\t}\n\tif line != 0 {\n\t\twhere = \"line \" + strconv.Itoa(line) + \": \"\n\t}\n\tvar msg string\n\tif len(p.parser.problem) > 0 {\n\t\tmsg = p.parser.problem\n\t} else {\n\t\tmsg = \"unknown problem parsing YAML content\"\n\t}\n\tfailf(\"%s%s\", where, msg)\n}\n\nfunc (p *parser) anchor(n *node, anchor []byte) {\n\tif anchor != nil {\n\t\tp.doc.anchors[string(anchor)] = n\n\t}\n}\n\nfunc (p *parser) parse() *node {\n\tp.init()\n\tswitch p.peek() {\n\tcase yaml_SCALAR_EVENT:\n\t\treturn p.scalar()\n\tcase yaml_ALIAS_EVENT:\n\t\treturn p.alias()\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn p.mapping()\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn p.sequence()\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\treturn p.document()\n\tcase yaml_STREAM_END_EVENT:\n\t\t// Happens when attempting to decode an empty buffer.\n\t\treturn nil\n\tdefault:\n\t\tpanic(\"attempted to parse unknown event: \" + p.event.typ.String())\n\t}\n}\n\nfunc (p *parser) node(kind int) *node {\n\treturn &node{\n\t\tkind:   kind,\n\t\tline:   p.event.start_mark.line,\n\t\tcolumn: p.event.start_mark.column,\n\t}\n}\n\nfunc (p *parser) document() *node {\n\tn := p.node(documentNode)\n\tn.anchors = make(map[string]*node)\n\tp.doc = n\n\tp.expect(yaml_DOCUMENT_START_EVENT)\n\tn.children = append(n.children, p.parse())\n\tp.expect(yaml_DOCUMENT_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) alias() *node {\n\tn := p.node(aliasNode)\n\tn.value = string(p.event.anchor)\n\tn.alias = p.doc.anchors[n.value]\n\tif n.alias == nil {\n\t\tfailf(\"unknown anchor '%s' referenced\", n.value)\n\t}\n\tp.expect(yaml_ALIAS_EVENT)\n\treturn n\n}\n\nfunc (p *parser) scalar() *node {\n\tn := p.node(scalarNode)\n\tn.value = string(p.event.value)\n\tn.tag = string(p.event.tag)\n\tn.implicit = p.event.implicit\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SCALAR_EVENT)\n\treturn n\n}\n\nfunc (p *parser) sequence() *node {\n\tn := p.node(sequenceNode)\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SEQUENCE_START_EVENT)\n\tfor p.peek() != yaml_SEQUENCE_END_EVENT {\n\t\tn.children = append(n.children, p.parse())\n\t}\n\tp.expect(yaml_SEQUENCE_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) mapping() *node {\n\tn := p.node(mappingNode)\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_MAPPING_START_EVENT)\n\tfor p.peek() != yaml_MAPPING_END_EVENT {\n\t\tn.children = append(n.children, p.parse(), p.parse())\n\t}\n\tp.expect(yaml_MAPPING_END_EVENT)\n\treturn n\n}\n\n// ----------------------------------------------------------------------------\n// Decoder, unmarshals a node into a provided value.\n\ntype decoder struct {\n\tdoc     *node\n\taliases map[*node]bool\n\tmapType reflect.Type\n\tterrors []string\n\tstrict  bool\n\n\tdecodeCount int\n\taliasCount  int\n\taliasDepth  int\n}\n\nvar (\n\tmapItemType    = reflect.TypeOf(MapItem{})\n\tdurationType   = reflect.TypeOf(time.Duration(0))\n\tdefaultMapType = reflect.TypeOf(map[interface{}]interface{}{})\n\tifaceType      = defaultMapType.Elem()\n\ttimeType       = reflect.TypeOf(time.Time{})\n\tptrTimeType    = reflect.TypeOf(&time.Time{})\n)\n\nfunc newDecoder(strict bool) *decoder {\n\td := &decoder{mapType: defaultMapType, strict: strict}\n\td.aliases = make(map[*node]bool)\n\treturn d\n}\n\nfunc (d *decoder) terror(n *node, tag string, out reflect.Value) {\n\tif n.tag != \"\" {\n\t\ttag = n.tag\n\t}\n\tvalue := n.value\n\tif tag != yaml_SEQ_TAG && tag != yaml_MAP_TAG {\n\t\tif len(value) > 10 {\n\t\t\tvalue = \" `\" + value[:7] + \"...`\"\n\t\t} else {\n\t\t\tvalue = \" `\" + value + \"`\"\n\t\t}\n\t}\n\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: cannot unmarshal %s%s into %s\", n.line+1, shortTag(tag), value, out.Type()))\n}\n\nfunc (d *decoder) callUnmarshaler(n *node, u Unmarshaler) (good bool) {\n\tterrlen := len(d.terrors)\n\terr := u.UnmarshalYAML(func(v interface{}) (err error) {\n\t\tdefer handleErr(&err)\n\t\td.unmarshal(n, reflect.ValueOf(v))\n\t\tif len(d.terrors) > terrlen {\n\t\t\tissues := d.terrors[terrlen:]\n\t\t\td.terrors = d.terrors[:terrlen]\n\t\t\treturn &TypeError{issues}\n\t\t}\n\t\treturn nil\n\t})\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\n// d.prepare initializes and dereferences pointers and calls UnmarshalYAML\n// if a value is found to implement it.\n// It returns the initialized and dereferenced out value, whether\n// unmarshalling was already done by UnmarshalYAML, and if so whether\n// its types unmarshalled appropriately.\n//\n// If n holds a null value, prepare returns before doing anything.\nfunc (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) {\n\tif n.tag == yaml_NULL_TAG || n.kind == scalarNode && n.tag == \"\" && (n.value == \"null\" || n.value == \"~\" || n.value == \"\" && n.implicit) {\n\t\treturn out, false, false\n\t}\n\tagain := true\n\tfor again {\n\t\tagain = false\n\t\tif out.Kind() == reflect.Ptr {\n\t\t\tif out.IsNil() {\n\t\t\t\tout.Set(reflect.New(out.Type().Elem()))\n\t\t\t}\n\t\t\tout = out.Elem()\n\t\t\tagain = true\n\t\t}\n\t\tif out.CanAddr() {\n\t\t\tif u, ok := out.Addr().Interface().(Unmarshaler); ok {\n\t\t\t\tgood = d.callUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t}\n\t}\n\treturn out, false, false\n}\n\nconst (\n\t// 400,000 decode operations is ~500kb of dense object declarations, or\n\t// ~5kb of dense object declarations with 10000% alias expansion\n\talias_ratio_range_low = 400000\n\n\t// 4,000,000 decode operations is ~5MB of dense object declarations, or\n\t// ~4.5MB of dense object declarations with 10% alias expansion\n\talias_ratio_range_high = 4000000\n\n\t// alias_ratio_range is the range over which we scale allowed alias ratios\n\talias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low)\n)\n\nfunc allowedAliasRatio(decodeCount int) float64 {\n\tswitch {\n\tcase decodeCount <= alias_ratio_range_low:\n\t\t// allow 99% to come from alias expansion for small-to-medium documents\n\t\treturn 0.99\n\tcase decodeCount >= alias_ratio_range_high:\n\t\t// allow 10% to come from alias expansion for very large documents\n\t\treturn 0.10\n\tdefault:\n\t\t// scale smoothly from 99% down to 10% over the range.\n\t\t// this maps to 396,000 - 400,000 allowed alias-driven decodes over the range.\n\t\t// 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps).\n\t\treturn 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range)\n\t}\n}\n\nfunc (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) {\n\td.decodeCount++\n\tif d.aliasDepth > 0 {\n\t\td.aliasCount++\n\t}\n\tif d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) {\n\t\tfailf(\"document contains excessive aliasing\")\n\t}\n\tswitch n.kind {\n\tcase documentNode:\n\t\treturn d.document(n, out)\n\tcase aliasNode:\n\t\treturn d.alias(n, out)\n\t}\n\tout, unmarshaled, good := d.prepare(n, out)\n\tif unmarshaled {\n\t\treturn good\n\t}\n\tswitch n.kind {\n\tcase scalarNode:\n\t\tgood = d.scalar(n, out)\n\tcase mappingNode:\n\t\tgood = d.mapping(n, out)\n\tcase sequenceNode:\n\t\tgood = d.sequence(n, out)\n\tdefault:\n\t\tpanic(\"internal error: unknown node kind: \" + strconv.Itoa(n.kind))\n\t}\n\treturn good\n}\n\nfunc (d *decoder) document(n *node, out reflect.Value) (good bool) {\n\tif len(n.children) == 1 {\n\t\td.doc = n\n\t\td.unmarshal(n.children[0], out)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *decoder) alias(n *node, out reflect.Value) (good bool) {\n\tif d.aliases[n] {\n\t\t// TODO this could actually be allowed in some circumstances.\n\t\tfailf(\"anchor '%s' value contains itself\", n.value)\n\t}\n\td.aliases[n] = true\n\td.aliasDepth++\n\tgood = d.unmarshal(n.alias, out)\n\td.aliasDepth--\n\tdelete(d.aliases, n)\n\treturn good\n}\n\nvar zeroValue reflect.Value\n\nfunc resetMap(out reflect.Value) {\n\tfor _, k := range out.MapKeys() {\n\t\tout.SetMapIndex(k, zeroValue)\n\t}\n}\n\nfunc (d *decoder) scalar(n *node, out reflect.Value) bool {\n\tvar tag string\n\tvar resolved interface{}\n\tif n.tag == \"\" && !n.implicit {\n\t\ttag = yaml_STR_TAG\n\t\tresolved = n.value\n\t} else {\n\t\ttag, resolved = resolve(n.tag, n.value)\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tdata, err := base64.StdEncoding.DecodeString(resolved.(string))\n\t\t\tif err != nil {\n\t\t\t\tfailf(\"!!binary value contains invalid base64 data\")\n\t\t\t}\n\t\t\tresolved = string(data)\n\t\t}\n\t}\n\tif resolved == nil {\n\t\tif out.Kind() == reflect.Map && !out.CanAddr() {\n\t\t\tresetMap(out)\n\t\t} else {\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t}\n\t\treturn true\n\t}\n\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t// We've resolved to exactly the type we want, so use that.\n\t\tout.Set(resolvedv)\n\t\treturn true\n\t}\n\t// Perhaps we can use the value as a TextUnmarshaler to\n\t// set its value.\n\tif out.CanAddr() {\n\t\tu, ok := out.Addr().Interface().(encoding.TextUnmarshaler)\n\t\tif ok {\n\t\t\tvar text []byte\n\t\t\tif tag == yaml_BINARY_TAG {\n\t\t\t\ttext = []byte(resolved.(string))\n\t\t\t} else {\n\t\t\t\t// We let any value be unmarshaled into TextUnmarshaler.\n\t\t\t\t// That might be more lax than we'd like, but the\n\t\t\t\t// TextUnmarshaler itself should bowl out any dubious values.\n\t\t\t\ttext = []byte(n.value)\n\t\t\t}\n\t\t\terr := u.UnmarshalText(text)\n\t\t\tif err != nil {\n\t\t\t\tfail(err)\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.String:\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tout.SetString(resolved.(string))\n\t\t\treturn true\n\t\t}\n\t\tif resolved != nil {\n\t\t\tout.SetString(n.value)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Interface:\n\t\tif resolved == nil {\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t} else if tag == yaml_TIMESTAMP_TAG {\n\t\t\t// It looks like a timestamp but for backward compatibility\n\t\t\t// reasons we set it as a string, so that code that unmarshals\n\t\t\t// timestamp-like values into interface{} will continue to\n\t\t\t// see a string and not a time.Time.\n\t\t\t// TODO(v3) Drop this.\n\t\t\tout.Set(reflect.ValueOf(n.value))\n\t\t} else {\n\t\t\tout.Set(reflect.ValueOf(resolved))\n\t\t}\n\t\treturn true\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif !out.OverflowInt(resolved) {\n\t\t\t\tout.SetInt(resolved)\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase string:\n\t\t\tif out.Type() == durationType {\n\t\t\t\td, err := time.ParseDuration(resolved)\n\t\t\t\tif err == nil {\n\t\t\t\t\tout.SetInt(int64(d))\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Bool:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase bool:\n\t\t\tout.SetBool(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase int64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase uint64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase float64:\n\t\t\tout.SetFloat(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Struct:\n\t\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t\tout.Set(resolvedv)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Ptr:\n\t\tif out.Type().Elem() == reflect.TypeOf(resolved) {\n\t\t\t// TODO DOes this make sense? When is out a Ptr except when decoding a nil value?\n\t\t\telem := reflect.New(out.Type().Elem())\n\t\t\telem.Elem().Set(reflect.ValueOf(resolved))\n\t\t\tout.Set(elem)\n\t\t\treturn true\n\t\t}\n\t}\n\td.terror(n, tag, out)\n\treturn false\n}\n\nfunc settableValueOf(i interface{}) reflect.Value {\n\tv := reflect.ValueOf(i)\n\tsv := reflect.New(v.Type()).Elem()\n\tsv.Set(v)\n\treturn sv\n}\n\nfunc (d *decoder) sequence(n *node, out reflect.Value) (good bool) {\n\tl := len(n.children)\n\n\tvar iface reflect.Value\n\tswitch out.Kind() {\n\tcase reflect.Slice:\n\t\tout.Set(reflect.MakeSlice(out.Type(), l, l))\n\tcase reflect.Array:\n\t\tif l != out.Len() {\n\t\t\tfailf(\"invalid array: want %d elements but got %d\", out.Len(), l)\n\t\t}\n\tcase reflect.Interface:\n\t\t// No type hints. Will have to use a generic sequence.\n\t\tiface = out\n\t\tout = settableValueOf(make([]interface{}, l))\n\tdefault:\n\t\td.terror(n, yaml_SEQ_TAG, out)\n\t\treturn false\n\t}\n\tet := out.Type().Elem()\n\n\tj := 0\n\tfor i := 0; i < l; i++ {\n\t\te := reflect.New(et).Elem()\n\t\tif ok := d.unmarshal(n.children[i], e); ok {\n\t\t\tout.Index(j).Set(e)\n\t\t\tj++\n\t\t}\n\t}\n\tif out.Kind() != reflect.Array {\n\t\tout.Set(out.Slice(0, j))\n\t}\n\tif iface.IsValid() {\n\t\tiface.Set(out)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mapping(n *node, out reflect.Value) (good bool) {\n\tswitch out.Kind() {\n\tcase reflect.Struct:\n\t\treturn d.mappingStruct(n, out)\n\tcase reflect.Slice:\n\t\treturn d.mappingSlice(n, out)\n\tcase reflect.Map:\n\t\t// okay\n\tcase reflect.Interface:\n\t\tif d.mapType.Kind() == reflect.Map {\n\t\t\tiface := out\n\t\t\tout = reflect.MakeMap(d.mapType)\n\t\t\tiface.Set(out)\n\t\t} else {\n\t\t\tslicev := reflect.New(d.mapType).Elem()\n\t\t\tif !d.mappingSlice(n, slicev) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tout.Set(slicev)\n\t\t\treturn true\n\t\t}\n\tdefault:\n\t\td.terror(n, yaml_MAP_TAG, out)\n\t\treturn false\n\t}\n\toutt := out.Type()\n\tkt := outt.Key()\n\tet := outt.Elem()\n\n\tmapType := d.mapType\n\tif outt.Key() == ifaceType && outt.Elem() == ifaceType {\n\t\td.mapType = outt\n\t}\n\n\tif out.IsNil() {\n\t\tout.Set(reflect.MakeMap(outt))\n\t}\n\tl := len(n.children)\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.children[i]) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\tk := reflect.New(kt).Elem()\n\t\tif d.unmarshal(n.children[i], k) {\n\t\t\tkkind := k.Kind()\n\t\t\tif kkind == reflect.Interface {\n\t\t\t\tkkind = k.Elem().Kind()\n\t\t\t}\n\t\t\tif kkind == reflect.Map || kkind == reflect.Slice {\n\t\t\t\tfailf(\"invalid map key: %#v\", k.Interface())\n\t\t\t}\n\t\t\te := reflect.New(et).Elem()\n\t\t\tif d.unmarshal(n.children[i+1], e) {\n\t\t\t\td.setMapIndex(n.children[i+1], out, k, e)\n\t\t\t}\n\t\t}\n\t}\n\td.mapType = mapType\n\treturn true\n}\n\nfunc (d *decoder) setMapIndex(n *node, out, k, v reflect.Value) {\n\tif d.strict && out.MapIndex(k) != zeroValue {\n\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: key %#v already set in map\", n.line+1, k.Interface()))\n\t\treturn\n\t}\n\tout.SetMapIndex(k, v)\n}\n\nfunc (d *decoder) mappingSlice(n *node, out reflect.Value) (good bool) {\n\toutt := out.Type()\n\tif outt.Elem() != mapItemType {\n\t\td.terror(n, yaml_MAP_TAG, out)\n\t\treturn false\n\t}\n\n\tmapType := d.mapType\n\td.mapType = outt\n\n\tvar slice []MapItem\n\tvar l = len(n.children)\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.children[i]) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\titem := MapItem{}\n\t\tk := reflect.ValueOf(&item.Key).Elem()\n\t\tif d.unmarshal(n.children[i], k) {\n\t\t\tv := reflect.ValueOf(&item.Value).Elem()\n\t\t\tif d.unmarshal(n.children[i+1], v) {\n\t\t\t\tslice = append(slice, item)\n\t\t\t}\n\t\t}\n\t}\n\tout.Set(reflect.ValueOf(slice))\n\td.mapType = mapType\n\treturn true\n}\n\nfunc (d *decoder) mappingStruct(n *node, out reflect.Value) (good bool) {\n\tsinfo, err := getStructInfo(out.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tname := settableValueOf(\"\")\n\tl := len(n.children)\n\n\tvar inlineMap reflect.Value\n\tvar elemType reflect.Type\n\tif sinfo.InlineMap != -1 {\n\t\tinlineMap = out.Field(sinfo.InlineMap)\n\t\tinlineMap.Set(reflect.New(inlineMap.Type()).Elem())\n\t\telemType = inlineMap.Type().Elem()\n\t}\n\n\tvar doneFields []bool\n\tif d.strict {\n\t\tdoneFields = make([]bool, len(sinfo.FieldsList))\n\t}\n\tfor i := 0; i < l; i += 2 {\n\t\tni := n.children[i]\n\t\tif isMerge(ni) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\tif !d.unmarshal(ni, name) {\n\t\t\tcontinue\n\t\t}\n\t\tif info, ok := sinfo.FieldsMap[name.String()]; ok {\n\t\t\tif d.strict {\n\t\t\t\tif doneFields[info.Id] {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s already set in type %s\", ni.line+1, name.String(), out.Type()))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tdoneFields[info.Id] = true\n\t\t\t}\n\t\t\tvar field reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tfield = out.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tfield = out.FieldByIndex(info.Inline)\n\t\t\t}\n\t\t\td.unmarshal(n.children[i+1], field)\n\t\t} else if sinfo.InlineMap != -1 {\n\t\t\tif inlineMap.IsNil() {\n\t\t\t\tinlineMap.Set(reflect.MakeMap(inlineMap.Type()))\n\t\t\t}\n\t\t\tvalue := reflect.New(elemType).Elem()\n\t\t\td.unmarshal(n.children[i+1], value)\n\t\t\td.setMapIndex(n.children[i+1], inlineMap, name, value)\n\t\t} else if d.strict {\n\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s not found in type %s\", ni.line+1, name.String(), out.Type()))\n\t\t}\n\t}\n\treturn true\n}\n\nfunc failWantMap() {\n\tfailf(\"map merge requires map or sequence of maps as the value\")\n}\n\nfunc (d *decoder) merge(n *node, out reflect.Value) {\n\tswitch n.kind {\n\tcase mappingNode:\n\t\td.unmarshal(n, out)\n\tcase aliasNode:\n\t\tif n.alias != nil && n.alias.kind != mappingNode {\n\t\t\tfailWantMap()\n\t\t}\n\t\td.unmarshal(n, out)\n\tcase sequenceNode:\n\t\t// Step backwards as earlier nodes take precedence.\n\t\tfor i := len(n.children) - 1; i >= 0; i-- {\n\t\t\tni := n.children[i]\n\t\t\tif ni.kind == aliasNode {\n\t\t\t\tif ni.alias != nil && ni.alias.kind != mappingNode {\n\t\t\t\t\tfailWantMap()\n\t\t\t\t}\n\t\t\t} else if ni.kind != mappingNode {\n\t\t\t\tfailWantMap()\n\t\t\t}\n\t\t\td.unmarshal(ni, out)\n\t\t}\n\tdefault:\n\t\tfailWantMap()\n\t}\n}\n\nfunc isMerge(n *node) bool {\n\treturn n.kind == scalarNode && n.value == \"<<\" && (n.implicit == true || n.tag == yaml_MERGE_TAG)\n}\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/emitterc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Flush the buffer if needed.\nfunc flush(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) {\n\t\treturn yaml_emitter_flush(emitter)\n\t}\n\treturn true\n}\n\n// Put a character to the output buffer.\nfunc put(emitter *yaml_emitter_t, value byte) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.buffer[emitter.buffer_pos] = value\n\temitter.buffer_pos++\n\temitter.column++\n\treturn true\n}\n\n// Put a line break to the output buffer.\nfunc put_break(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tswitch emitter.line_break {\n\tcase yaml_CR_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\r'\n\t\temitter.buffer_pos += 1\n\tcase yaml_LN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\n'\n\t\temitter.buffer_pos += 1\n\tcase yaml_CRLN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos+0] = '\\r'\n\t\temitter.buffer[emitter.buffer_pos+1] = '\\n'\n\t\temitter.buffer_pos += 2\n\tdefault:\n\t\tpanic(\"unknown line break setting\")\n\t}\n\temitter.column = 0\n\temitter.line++\n\treturn true\n}\n\n// Copy a character from a string into buffer.\nfunc write(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tp := emitter.buffer_pos\n\tw := width(s[*i])\n\tswitch w {\n\tcase 4:\n\t\temitter.buffer[p+3] = s[*i+3]\n\t\tfallthrough\n\tcase 3:\n\t\temitter.buffer[p+2] = s[*i+2]\n\t\tfallthrough\n\tcase 2:\n\t\temitter.buffer[p+1] = s[*i+1]\n\t\tfallthrough\n\tcase 1:\n\t\temitter.buffer[p+0] = s[*i+0]\n\tdefault:\n\t\tpanic(\"unknown character width\")\n\t}\n\temitter.column++\n\temitter.buffer_pos += w\n\t*i += w\n\treturn true\n}\n\n// Write a whole string into buffer.\nfunc write_all(emitter *yaml_emitter_t, s []byte) bool {\n\tfor i := 0; i < len(s); {\n\t\tif !write(emitter, s, &i) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Copy a line break character from a string into buffer.\nfunc write_break(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif s[*i] == '\\n' {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t\t*i++\n\t} else {\n\t\tif !write(emitter, s, i) {\n\t\t\treturn false\n\t\t}\n\t\temitter.column = 0\n\t\temitter.line++\n\t}\n\treturn true\n}\n\n// Set an emitter error and return false.\nfunc yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_EMITTER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Emit an event.\nfunc yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.events = append(emitter.events, *event)\n\tfor !yaml_emitter_need_more_events(emitter) {\n\t\tevent := &emitter.events[emitter.events_head]\n\t\tif !yaml_emitter_analyze_event(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_state_machine(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tyaml_event_delete(event)\n\t\temitter.events_head++\n\t}\n\treturn true\n}\n\n// Check if we need to accumulate more events before emitting.\n//\n// We accumulate extra\n//  - 1 event for DOCUMENT-START\n//  - 2 events for SEQUENCE-START\n//  - 3 events for MAPPING-START\n//\nfunc yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool {\n\tif emitter.events_head == len(emitter.events) {\n\t\treturn true\n\t}\n\tvar accumulate int\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\taccumulate = 1\n\t\tbreak\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\taccumulate = 2\n\t\tbreak\n\tcase yaml_MAPPING_START_EVENT:\n\t\taccumulate = 3\n\t\tbreak\n\tdefault:\n\t\treturn false\n\t}\n\tif len(emitter.events)-emitter.events_head > accumulate {\n\t\treturn false\n\t}\n\tvar level int\n\tfor i := emitter.events_head; i < len(emitter.events); i++ {\n\t\tswitch emitter.events[i].typ {\n\t\tcase yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT:\n\t\t\tlevel++\n\t\tcase yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT:\n\t\t\tlevel--\n\t\t}\n\t\tif level == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Append a directive to the directives stack.\nfunc yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool {\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\tif bytes.Equal(value.handle, emitter.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"duplicate %TAG directive\")\n\t\t}\n\t}\n\n\t// [Go] Do we actually need to copy this given garbage collection\n\t// and the lack of deallocating destructors?\n\ttag_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(tag_copy.handle, value.handle)\n\tcopy(tag_copy.prefix, value.prefix)\n\temitter.tag_directives = append(emitter.tag_directives, tag_copy)\n\treturn true\n}\n\n// Increase the indentation level.\nfunc yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool {\n\temitter.indents = append(emitter.indents, emitter.indent)\n\tif emitter.indent < 0 {\n\t\tif flow {\n\t\t\temitter.indent = emitter.best_indent\n\t\t} else {\n\t\t\temitter.indent = 0\n\t\t}\n\t} else if !indentless {\n\t\temitter.indent += emitter.best_indent\n\t}\n\treturn true\n}\n\n// State dispatcher.\nfunc yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tswitch emitter.state {\n\tdefault:\n\tcase yaml_EMIT_STREAM_START_STATE:\n\t\treturn yaml_emitter_emit_stream_start(emitter, event)\n\n\tcase yaml_EMIT_FIRST_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, true)\n\n\tcase yaml_EMIT_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, false)\n\n\tcase yaml_EMIT_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_emitter_emit_document_content(emitter, event)\n\n\tcase yaml_EMIT_DOCUMENT_END_STATE:\n\t\treturn yaml_emitter_emit_document_end(emitter, event)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_END_STATE:\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected nothing after STREAM-END\")\n\t}\n\tpanic(\"invalid emitter state\")\n}\n\n// Expect STREAM-START.\nfunc yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_STREAM_START_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected STREAM-START\")\n\t}\n\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\temitter.encoding = event.encoding\n\t\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\t\temitter.encoding = yaml_UTF8_ENCODING\n\t\t}\n\t}\n\tif emitter.best_indent < 2 || emitter.best_indent > 9 {\n\t\temitter.best_indent = 2\n\t}\n\tif emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 {\n\t\temitter.best_width = 80\n\t}\n\tif emitter.best_width < 0 {\n\t\temitter.best_width = 1<<31 - 1\n\t}\n\tif emitter.line_break == yaml_ANY_BREAK {\n\t\temitter.line_break = yaml_LN_BREAK\n\t}\n\n\temitter.indent = -1\n\temitter.line = 0\n\temitter.column = 0\n\temitter.whitespace = true\n\temitter.indention = true\n\n\tif emitter.encoding != yaml_UTF8_ENCODING {\n\t\tif !yaml_emitter_write_bom(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE\n\treturn true\n}\n\n// Expect DOCUMENT-START or STREAM-END.\nfunc yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\n\tif event.typ == yaml_DOCUMENT_START_EVENT {\n\n\t\tif event.version_directive != nil {\n\t\t\tif !yaml_emitter_analyze_version_directive(emitter, event.version_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\tif !yaml_emitter_analyze_tag_directive(emitter, tag_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(default_tag_directives); i++ {\n\t\t\ttag_directive := &default_tag_directives[i]\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, true) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\timplicit := event.implicit\n\t\tif !first || emitter.canonical {\n\t\t\timplicit = false\n\t\t}\n\n\t\tif emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif event.version_directive != nil {\n\t\t\timplicit = false\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%YAML\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"1.1\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif len(event.tag_directives) > 0 {\n\t\t\timplicit = false\n\t\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%TAG\"), true, false, false) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif yaml_emitter_check_empty_document(emitter) {\n\t\t\timplicit = false\n\t\t}\n\t\tif !implicit {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"---\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif emitter.canonical {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\temitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE\n\t\treturn true\n\t}\n\n\tif event.typ == yaml_STREAM_END_EVENT {\n\t\tif emitter.open_ended {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_flush(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = yaml_EMIT_END_STATE\n\t\treturn true\n\t}\n\n\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-START or STREAM-END\")\n}\n\n// Expect the root node.\nfunc yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, true, false, false, false)\n}\n\n// Expect DOCUMENT-END.\nfunc yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_DOCUMENT_END_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-END\")\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !event.implicit {\n\t\t// [Go] Allocate the slice elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.state = yaml_EMIT_DOCUMENT_START_STATE\n\temitter.tag_directives = emitter.tag_directives[:0]\n\treturn true\n}\n\n// Expect a flow item node.\nfunc yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\n\t\treturn true\n\t}\n\n\tif !first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, true, false, false)\n}\n\n// Expect a flow key node.\nfunc yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\n\tif !first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !emitter.canonical && yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a flow value node.\nfunc yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block item node.\nfunc yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, emitter.mapping_context && !emitter.indention) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, true, false, false)\n}\n\n// Expect a block key node.\nfunc yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block value node.\nfunc yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a node.\nfunc yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t,\n\troot bool, sequence bool, mapping bool, simple_key bool) bool {\n\n\temitter.root_context = root\n\temitter.sequence_context = sequence\n\temitter.mapping_context = mapping\n\temitter.simple_key_context = simple_key\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\treturn yaml_emitter_emit_alias(emitter, event)\n\tcase yaml_SCALAR_EVENT:\n\t\treturn yaml_emitter_emit_scalar(emitter, event)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn yaml_emitter_emit_sequence_start(emitter, event)\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn yaml_emitter_emit_mapping_start(emitter, event)\n\tdefault:\n\t\treturn yaml_emitter_set_emitter_error(emitter,\n\t\t\tfmt.Sprintf(\"expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v\", event.typ))\n\t}\n}\n\n// Expect ALIAS.\nfunc yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SCALAR.\nfunc yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_select_scalar_style(emitter, event) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_scalar(emitter) {\n\t\treturn false\n\t}\n\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SEQUENCE-START.\nfunc yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE ||\n\t\tyaml_emitter_check_empty_sequence(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE\n\t}\n\treturn true\n}\n\n// Expect MAPPING-START.\nfunc yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE ||\n\t\tyaml_emitter_check_empty_mapping(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE\n\t}\n\treturn true\n}\n\n// Check if the document content is an empty scalar.\nfunc yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool {\n\treturn false // [Go] Huh?\n}\n\n// Check if the next events represent an empty sequence.\nfunc yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT\n}\n\n// Check if the next events represent an empty mapping.\nfunc yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT\n}\n\n// Check if the next node can be expressed as a simple key.\nfunc yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool {\n\tlength := 0\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tlength += len(emitter.anchor_data.anchor)\n\tcase yaml_SCALAR_EVENT:\n\t\tif emitter.scalar_data.multiline {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix) +\n\t\t\tlen(emitter.scalar_data.value)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif !yaml_emitter_check_empty_sequence(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif !yaml_emitter_check_empty_mapping(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tdefault:\n\t\treturn false\n\t}\n\treturn length <= 128\n}\n\n// Determine an acceptable scalar style.\nfunc yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\tno_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0\n\tif no_tag && !event.implicit && !event.quoted_implicit {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"neither tag nor implicit flags are specified\")\n\t}\n\n\tstyle := event.scalar_style()\n\tif style == yaml_ANY_SCALAR_STYLE {\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\t}\n\tif emitter.canonical {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\tif emitter.simple_key_context && emitter.scalar_data.multiline {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\n\tif style == yaml_PLAIN_SCALAR_STYLE {\n\t\tif emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed ||\n\t\t\temitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif no_tag && !event.implicit {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_SINGLE_QUOTED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.single_quoted_allowed {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\n\tif no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE {\n\t\temitter.tag_data.handle = []byte{'!'}\n\t}\n\temitter.scalar_data.style = style\n\treturn true\n}\n\n// Write an anchor.\nfunc yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool {\n\tif emitter.anchor_data.anchor == nil {\n\t\treturn true\n\t}\n\tc := []byte{'&'}\n\tif emitter.anchor_data.alias {\n\t\tc[0] = '*'\n\t}\n\tif !yaml_emitter_write_indicator(emitter, c, true, false, false) {\n\t\treturn false\n\t}\n\treturn yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor)\n}\n\n// Write a tag.\nfunc yaml_emitter_process_tag(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 {\n\t\treturn true\n\t}\n\tif len(emitter.tag_data.handle) > 0 {\n\t\tif !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) {\n\t\t\treturn false\n\t\t}\n\t\tif len(emitter.tag_data.suffix) > 0 {\n\t\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// [Go] Allocate these slices elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"!<\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Write a scalar.\nfunc yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool {\n\tswitch emitter.scalar_data.style {\n\tcase yaml_PLAIN_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_SINGLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_DOUBLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_LITERAL_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value)\n\n\tcase yaml_FOLDED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value)\n\t}\n\tpanic(\"unknown scalar style\")\n}\n\n// Check if a %YAML directive is valid.\nfunc yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool {\n\tif version_directive.major != 1 || version_directive.minor != 1 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"incompatible %YAML directive\")\n\t}\n\treturn true\n}\n\n// Check if a %TAG directive is valid.\nfunc yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool {\n\thandle := tag_directive.handle\n\tprefix := tag_directive.prefix\n\tif len(handle) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must not be empty\")\n\t}\n\tif handle[0] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must start with '!'\")\n\t}\n\tif handle[len(handle)-1] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must end with '!'\")\n\t}\n\tfor i := 1; i < len(handle)-1; i += width(handle[i]) {\n\t\tif !is_alpha(handle, i) {\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must contain alphanumerical characters only\")\n\t\t}\n\t}\n\tif len(prefix) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag prefix must not be empty\")\n\t}\n\treturn true\n}\n\n// Check if an anchor is valid.\nfunc yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool {\n\tif len(anchor) == 0 {\n\t\tproblem := \"anchor value must not be empty\"\n\t\tif alias {\n\t\t\tproblem = \"alias value must not be empty\"\n\t\t}\n\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t}\n\tfor i := 0; i < len(anchor); i += width(anchor[i]) {\n\t\tif !is_alpha(anchor, i) {\n\t\t\tproblem := \"anchor value must contain alphanumerical characters only\"\n\t\t\tif alias {\n\t\t\t\tproblem = \"alias value must contain alphanumerical characters only\"\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t\t}\n\t}\n\temitter.anchor_data.anchor = anchor\n\temitter.anchor_data.alias = alias\n\treturn true\n}\n\n// Check if a tag is valid.\nfunc yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool {\n\tif len(tag) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag value must not be empty\")\n\t}\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\ttag_directive := &emitter.tag_directives[i]\n\t\tif bytes.HasPrefix(tag, tag_directive.prefix) {\n\t\t\temitter.tag_data.handle = tag_directive.handle\n\t\t\temitter.tag_data.suffix = tag[len(tag_directive.prefix):]\n\t\t\treturn true\n\t\t}\n\t}\n\temitter.tag_data.suffix = tag\n\treturn true\n}\n\n// Check if a scalar is valid.\nfunc yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tvar (\n\t\tblock_indicators   = false\n\t\tflow_indicators    = false\n\t\tline_breaks        = false\n\t\tspecial_characters = false\n\n\t\tleading_space  = false\n\t\tleading_break  = false\n\t\ttrailing_space = false\n\t\ttrailing_break = false\n\t\tbreak_space    = false\n\t\tspace_break    = false\n\n\t\tpreceded_by_whitespace = false\n\t\tfollowed_by_whitespace = false\n\t\tprevious_space         = false\n\t\tprevious_break         = false\n\t)\n\n\temitter.scalar_data.value = value\n\n\tif len(value) == 0 {\n\t\temitter.scalar_data.multiline = false\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = true\n\t\temitter.scalar_data.single_quoted_allowed = true\n\t\temitter.scalar_data.block_allowed = false\n\t\treturn true\n\t}\n\n\tif len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) {\n\t\tblock_indicators = true\n\t\tflow_indicators = true\n\t}\n\n\tpreceded_by_whitespace = true\n\tfor i, w := 0, 0; i < len(value); i += w {\n\t\tw = width(value[i])\n\t\tfollowed_by_whitespace = i+w >= len(value) || is_blank(value, i+w)\n\n\t\tif i == 0 {\n\t\t\tswitch value[i] {\n\t\t\tcase '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\\'', '\"', '%', '@', '`':\n\t\t\t\tflow_indicators = true\n\t\t\t\tblock_indicators = true\n\t\t\tcase '?', ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '-':\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tswitch value[i] {\n\t\t\tcase ',', '?', '[', ']', '{', '}':\n\t\t\t\tflow_indicators = true\n\t\t\tcase ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '#':\n\t\t\t\tif preceded_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode {\n\t\t\tspecial_characters = true\n\t\t}\n\t\tif is_space(value, i) {\n\t\t\tif i == 0 {\n\t\t\t\tleading_space = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_space = true\n\t\t\t}\n\t\t\tif previous_break {\n\t\t\t\tbreak_space = true\n\t\t\t}\n\t\t\tprevious_space = true\n\t\t\tprevious_break = false\n\t\t} else if is_break(value, i) {\n\t\t\tline_breaks = true\n\t\t\tif i == 0 {\n\t\t\t\tleading_break = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_break = true\n\t\t\t}\n\t\t\tif previous_space {\n\t\t\t\tspace_break = true\n\t\t\t}\n\t\t\tprevious_space = false\n\t\t\tprevious_break = true\n\t\t} else {\n\t\t\tprevious_space = false\n\t\t\tprevious_break = false\n\t\t}\n\n\t\t// [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition.\n\t\tpreceded_by_whitespace = is_blankz(value, i)\n\t}\n\n\temitter.scalar_data.multiline = line_breaks\n\temitter.scalar_data.flow_plain_allowed = true\n\temitter.scalar_data.block_plain_allowed = true\n\temitter.scalar_data.single_quoted_allowed = true\n\temitter.scalar_data.block_allowed = true\n\n\tif leading_space || leading_break || trailing_space || trailing_break {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif trailing_space {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif break_space {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || special_characters {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif line_breaks {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif flow_indicators {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t}\n\tif block_indicators {\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\treturn true\n}\n\n// Check if the event data is valid.\nfunc yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\temitter.anchor_data.anchor = nil\n\temitter.tag_data.handle = nil\n\temitter.tag_data.suffix = nil\n\temitter.scalar_data.value = nil\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, true) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SCALAR_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_analyze_scalar(emitter, event.value) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\n// Write the BOM character.\nfunc yaml_emitter_write_bom(emitter *yaml_emitter_t) bool {\n\tif !flush(emitter) {\n\t\treturn false\n\t}\n\tpos := emitter.buffer_pos\n\temitter.buffer[pos+0] = '\\xEF'\n\temitter.buffer[pos+1] = '\\xBB'\n\temitter.buffer[pos+2] = '\\xBF'\n\temitter.buffer_pos += 3\n\treturn true\n}\n\nfunc yaml_emitter_write_indent(emitter *yaml_emitter_t) bool {\n\tindent := emitter.indent\n\tif indent < 0 {\n\t\tindent = 0\n\t}\n\tif !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor emitter.column < indent {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.whitespace = true\n\temitter.indention = true\n\treturn true\n}\n\nfunc yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, indicator) {\n\t\treturn false\n\t}\n\temitter.whitespace = is_whitespace\n\temitter.indention = (emitter.indention && is_indention)\n\temitter.open_ended = false\n\treturn true\n}\n\nfunc yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool {\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor i := 0; i < len(value); {\n\t\tvar must_write bool\n\t\tswitch value[i] {\n\t\tcase ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\\'', '(', ')', '[', ']':\n\t\t\tmust_write = true\n\t\tdefault:\n\t\t\tmust_write = is_alpha(value, i)\n\t\t}\n\t\tif must_write {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\tw := width(value[i])\n\t\t\tfor k := 0; k < w; k++ {\n\t\t\t\toctet := value[i]\n\t\t\t\ti++\n\t\t\t\tif !put(emitter, '%') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc := octet >> 4\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc = octet & 0x0f\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\temitter.whitespace = false\n\temitter.indention = false\n\tif emitter.root_context {\n\t\temitter.open_ended = true\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, true, false, false) {\n\t\treturn false\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif value[i] == '\\'' {\n\t\t\t\tif !put(emitter, '\\'') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tspaces := false\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, true, false, false) {\n\t\treturn false\n\t}\n\n\tfor i := 0; i < len(value); {\n\t\tif !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) ||\n\t\t\tis_bom(value, i) || is_break(value, i) ||\n\t\t\tvalue[i] == '\"' || value[i] == '\\\\' {\n\n\t\t\toctet := value[i]\n\n\t\t\tvar w int\n\t\t\tvar v rune\n\t\t\tswitch {\n\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\tw, v = 1, rune(octet&0x7F)\n\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\tw, v = 2, rune(octet&0x1F)\n\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\tw, v = 3, rune(octet&0x0F)\n\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\tw, v = 4, rune(octet&0x07)\n\t\t\t}\n\t\t\tfor k := 1; k < w; k++ {\n\t\t\t\toctet = value[i+k]\n\t\t\t\tv = (v << 6) + (rune(octet) & 0x3F)\n\t\t\t}\n\t\t\ti += w\n\n\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tvar ok bool\n\t\t\tswitch v {\n\t\t\tcase 0x00:\n\t\t\t\tok = put(emitter, '0')\n\t\t\tcase 0x07:\n\t\t\t\tok = put(emitter, 'a')\n\t\t\tcase 0x08:\n\t\t\t\tok = put(emitter, 'b')\n\t\t\tcase 0x09:\n\t\t\t\tok = put(emitter, 't')\n\t\t\tcase 0x0A:\n\t\t\t\tok = put(emitter, 'n')\n\t\t\tcase 0x0b:\n\t\t\t\tok = put(emitter, 'v')\n\t\t\tcase 0x0c:\n\t\t\t\tok = put(emitter, 'f')\n\t\t\tcase 0x0d:\n\t\t\t\tok = put(emitter, 'r')\n\t\t\tcase 0x1b:\n\t\t\t\tok = put(emitter, 'e')\n\t\t\tcase 0x22:\n\t\t\t\tok = put(emitter, '\"')\n\t\t\tcase 0x5c:\n\t\t\t\tok = put(emitter, '\\\\')\n\t\t\tcase 0x85:\n\t\t\t\tok = put(emitter, 'N')\n\t\t\tcase 0xA0:\n\t\t\t\tok = put(emitter, '_')\n\t\t\tcase 0x2028:\n\t\t\t\tok = put(emitter, 'L')\n\t\t\tcase 0x2029:\n\t\t\t\tok = put(emitter, 'P')\n\t\t\tdefault:\n\t\t\t\tif v <= 0xFF {\n\t\t\t\t\tok = put(emitter, 'x')\n\t\t\t\t\tw = 2\n\t\t\t\t} else if v <= 0xFFFF {\n\t\t\t\t\tok = put(emitter, 'u')\n\t\t\t\t\tw = 4\n\t\t\t\t} else {\n\t\t\t\t\tok = put(emitter, 'U')\n\t\t\t\t\tw = 8\n\t\t\t\t}\n\t\t\t\tfor k := (w - 1) * 4; ok && k >= 0; k -= 4 {\n\t\t\t\t\tdigit := byte((v >> uint(k)) & 0x0F)\n\t\t\t\t\tif digit < 10 {\n\t\t\t\t\t\tok = put(emitter, digit+'0')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tok = put(emitter, digit+'A'-10)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t} else if is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_space(value, i+1) {\n\t\t\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else if !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool {\n\tif is_space(value, 0) || is_break(value, 0) {\n\t\tindent_hint := []byte{'0' + byte(emitter.best_indent)}\n\t\tif !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\temitter.open_ended = false\n\n\tvar chomp_hint [1]byte\n\tif len(value) == 0 {\n\t\tchomp_hint[0] = '-'\n\t} else {\n\t\ti := len(value) - 1\n\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\ti--\n\t\t}\n\t\tif !is_break(value, i) {\n\t\t\tchomp_hint[0] = '-'\n\t\t} else if i == 0 {\n\t\t\tchomp_hint[0] = '+'\n\t\t\temitter.open_ended = true\n\t\t} else {\n\t\t\ti--\n\t\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\t\ti--\n\t\t\t}\n\t\t\tif is_break(value, i) {\n\t\t\t\tchomp_hint[0] = '+'\n\t\t\t\temitter.open_ended = true\n\t\t\t}\n\t\t}\n\t}\n\tif chomp_hint[0] != 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !put_break(emitter) {\n\t\treturn false\n\t}\n\temitter.indention = true\n\temitter.whitespace = true\n\tbreaks := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\n\tif !put_break(emitter) {\n\t\treturn false\n\t}\n\temitter.indention = true\n\temitter.whitespace = true\n\n\tbreaks := true\n\tleading_spaces := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !breaks && !leading_spaces && value[i] == '\\n' {\n\t\t\t\tk := 0\n\t\t\t\tfor is_break(value, k) {\n\t\t\t\t\tk += width(value[k])\n\t\t\t\t}\n\t\t\t\tif !is_blankz(value, k) {\n\t\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tleading_spaces = is_blank(value, i)\n\t\t\t}\n\t\t\tif !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/encode.go",
    "content": "package yaml\n\nimport (\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\n// jsonNumber is the interface of the encoding/json.Number datatype.\n// Repeating the interface here avoids a dependency on encoding/json, and also\n// supports other libraries like jsoniter, which use a similar datatype with\n// the same interface. Detecting this interface is useful when dealing with\n// structures containing json.Number, which is a string under the hood. The\n// encoder should prefer the use of Int64(), Float64() and string(), in that\n// order, when encoding this type.\ntype jsonNumber interface {\n\tFloat64() (float64, error)\n\tInt64() (int64, error)\n\tString() string\n}\n\ntype encoder struct {\n\temitter yaml_emitter_t\n\tevent   yaml_event_t\n\tout     []byte\n\tflow    bool\n\t// doneInit holds whether the initial stream_start_event has been\n\t// emitted.\n\tdoneInit bool\n}\n\nfunc newEncoder() *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_string(&e.emitter, &e.out)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc newEncoderWithWriter(w io.Writer) *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_writer(&e.emitter, w)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc (e *encoder) init() {\n\tif e.doneInit {\n\t\treturn\n\t}\n\tyaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)\n\te.emit()\n\te.doneInit = true\n}\n\nfunc (e *encoder) finish() {\n\te.emitter.open_ended = false\n\tyaml_stream_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) destroy() {\n\tyaml_emitter_delete(&e.emitter)\n}\n\nfunc (e *encoder) emit() {\n\t// This will internally delete the e.event value.\n\te.must(yaml_emitter_emit(&e.emitter, &e.event))\n}\n\nfunc (e *encoder) must(ok bool) {\n\tif !ok {\n\t\tmsg := e.emitter.problem\n\t\tif msg == \"\" {\n\t\t\tmsg = \"unknown problem generating YAML content\"\n\t\t}\n\t\tfailf(\"%s\", msg)\n\t}\n}\n\nfunc (e *encoder) marshalDoc(tag string, in reflect.Value) {\n\te.init()\n\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\te.emit()\n\te.marshal(tag, in)\n\tyaml_document_end_event_initialize(&e.event, true)\n\te.emit()\n}\n\nfunc (e *encoder) marshal(tag string, in reflect.Value) {\n\tif !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() {\n\t\te.nilv()\n\t\treturn\n\t}\n\tiface := in.Interface()\n\tswitch m := iface.(type) {\n\tcase jsonNumber:\n\t\tinteger, err := m.Int64()\n\t\tif err == nil {\n\t\t\t// In this case the json.Number is a valid int64\n\t\t\tin = reflect.ValueOf(integer)\n\t\t\tbreak\n\t\t}\n\t\tfloat, err := m.Float64()\n\t\tif err == nil {\n\t\t\t// In this case the json.Number is a valid float64\n\t\t\tin = reflect.ValueOf(float)\n\t\t\tbreak\n\t\t}\n\t\t// fallback case - no number could be obtained\n\t\tin = reflect.ValueOf(m.String())\n\tcase time.Time, *time.Time:\n\t\t// Although time.Time implements TextMarshaler,\n\t\t// we don't want to treat it as a string for YAML\n\t\t// purposes because YAML has special support for\n\t\t// timestamps.\n\tcase Marshaler:\n\t\tv, err := m.MarshalYAML()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tif v == nil {\n\t\t\te.nilv()\n\t\t\treturn\n\t\t}\n\t\tin = reflect.ValueOf(v)\n\tcase encoding.TextMarshaler:\n\t\ttext, err := m.MarshalText()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tin = reflect.ValueOf(string(text))\n\tcase nil:\n\t\te.nilv()\n\t\treturn\n\t}\n\tswitch in.Kind() {\n\tcase reflect.Interface:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Map:\n\t\te.mapv(tag, in)\n\tcase reflect.Ptr:\n\t\tif in.Type() == ptrTimeType {\n\t\t\te.timev(tag, in.Elem())\n\t\t} else {\n\t\t\te.marshal(tag, in.Elem())\n\t\t}\n\tcase reflect.Struct:\n\t\tif in.Type() == timeType {\n\t\t\te.timev(tag, in)\n\t\t} else {\n\t\t\te.structv(tag, in)\n\t\t}\n\tcase reflect.Slice, reflect.Array:\n\t\tif in.Type().Elem() == mapItemType {\n\t\t\te.itemsv(tag, in)\n\t\t} else {\n\t\t\te.slicev(tag, in)\n\t\t}\n\tcase reflect.String:\n\t\te.stringv(tag, in)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tif in.Type() == durationType {\n\t\t\te.stringv(tag, reflect.ValueOf(iface.(time.Duration).String()))\n\t\t} else {\n\t\t\te.intv(tag, in)\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\te.uintv(tag, in)\n\tcase reflect.Float32, reflect.Float64:\n\t\te.floatv(tag, in)\n\tcase reflect.Bool:\n\t\te.boolv(tag, in)\n\tdefault:\n\t\tpanic(\"cannot marshal type: \" + in.Type().String())\n\t}\n}\n\nfunc (e *encoder) mapv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tkeys := keyList(in.MapKeys())\n\t\tsort.Sort(keys)\n\t\tfor _, k := range keys {\n\t\t\te.marshal(\"\", k)\n\t\t\te.marshal(\"\", in.MapIndex(k))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) itemsv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tslice := in.Convert(reflect.TypeOf([]MapItem{})).Interface().([]MapItem)\n\t\tfor _, item := range slice {\n\t\t\te.marshal(\"\", reflect.ValueOf(item.Key))\n\t\t\te.marshal(\"\", reflect.ValueOf(item.Value))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) structv(tag string, in reflect.Value) {\n\tsinfo, err := getStructInfo(in.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\te.mappingv(tag, func() {\n\t\tfor _, info := range sinfo.FieldsList {\n\t\t\tvar value reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tvalue = in.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tvalue = in.FieldByIndex(info.Inline)\n\t\t\t}\n\t\t\tif info.OmitEmpty && isZero(value) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\te.marshal(\"\", reflect.ValueOf(info.Key))\n\t\t\te.flow = info.Flow\n\t\t\te.marshal(\"\", value)\n\t\t}\n\t\tif sinfo.InlineMap >= 0 {\n\t\t\tm := in.Field(sinfo.InlineMap)\n\t\t\tif m.Len() > 0 {\n\t\t\t\te.flow = false\n\t\t\t\tkeys := keyList(m.MapKeys())\n\t\t\t\tsort.Sort(keys)\n\t\t\t\tfor _, k := range keys {\n\t\t\t\t\tif _, found := sinfo.FieldsMap[k.String()]; found {\n\t\t\t\t\t\tpanic(fmt.Sprintf(\"Can't have key %q in inlined map; conflicts with struct field\", k.String()))\n\t\t\t\t\t}\n\t\t\t\t\te.marshal(\"\", k)\n\t\t\t\t\te.flow = false\n\t\t\t\t\te.marshal(\"\", m.MapIndex(k))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc (e *encoder) mappingv(tag string, f func()) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_MAPPING_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t}\n\tyaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)\n\te.emit()\n\tf()\n\tyaml_mapping_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) slicev(tag string, in reflect.Value) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t}\n\te.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style))\n\te.emit()\n\tn := in.Len()\n\tfor i := 0; i < n; i++ {\n\t\te.marshal(\"\", in.Index(i))\n\t}\n\te.must(yaml_sequence_end_event_initialize(&e.event))\n\te.emit()\n}\n\n// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1.\n//\n// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported\n// in YAML 1.2 and by this package, but these should be marshalled quoted for\n// the time being for compatibility with other parsers.\nfunc isBase60Float(s string) (result bool) {\n\t// Fast path.\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tc := s[0]\n\tif !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 {\n\t\treturn false\n\t}\n\t// Do the full match.\n\treturn base60float.MatchString(s)\n}\n\n// From http://yaml.org/type/float.html, except the regular expression there\n// is bogus. In practice parsers do not enforce the \"\\.[0-9_]*\" suffix.\nvar base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\\.[0-9_]*)?$`)\n\nfunc (e *encoder) stringv(tag string, in reflect.Value) {\n\tvar style yaml_scalar_style_t\n\ts := in.String()\n\tcanUsePlain := true\n\tswitch {\n\tcase !utf8.ValidString(s):\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t}\n\t\tif tag != \"\" {\n\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", shortTag(tag))\n\t\t}\n\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t// and encode it as base64.\n\t\ttag = yaml_BINARY_TAG\n\t\ts = encodeBase64(s)\n\tcase tag == \"\":\n\t\t// Check to see if it would resolve to a specific\n\t\t// tag when encoded unquoted. If it doesn't,\n\t\t// there's no need to quote it.\n\t\trtag, _ := resolve(\"\", s)\n\t\tcanUsePlain = rtag == yaml_STR_TAG && !isBase60Float(s)\n\t}\n\t// Note: it's possible for user code to emit invalid YAML\n\t// if they explicitly specify a tag and a string containing\n\t// text that's incompatible with that tag.\n\tswitch {\n\tcase strings.Contains(s, \"\\n\"):\n\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\tcase canUsePlain:\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\tdefault:\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\te.emitScalar(s, \"\", tag, style)\n}\n\nfunc (e *encoder) boolv(tag string, in reflect.Value) {\n\tvar s string\n\tif in.Bool() {\n\t\ts = \"true\"\n\t} else {\n\t\ts = \"false\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) intv(tag string, in reflect.Value) {\n\ts := strconv.FormatInt(in.Int(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) uintv(tag string, in reflect.Value) {\n\ts := strconv.FormatUint(in.Uint(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) timev(tag string, in reflect.Value) {\n\tt := in.Interface().(time.Time)\n\ts := t.Format(time.RFC3339Nano)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) floatv(tag string, in reflect.Value) {\n\t// Issue #352: When formatting, use the precision of the underlying value\n\tprecision := 64\n\tif in.Kind() == reflect.Float32 {\n\t\tprecision = 32\n\t}\n\n\ts := strconv.FormatFloat(in.Float(), 'g', -1, precision)\n\tswitch s {\n\tcase \"+Inf\":\n\t\ts = \".inf\"\n\tcase \"-Inf\":\n\t\ts = \"-.inf\"\n\tcase \"NaN\":\n\t\ts = \".nan\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) nilv() {\n\te.emitScalar(\"null\", \"\", \"\", yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t) {\n\timplicit := tag == \"\"\n\te.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style))\n\te.emit()\n}\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/parserc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n)\n\n// The parser implements the following grammar:\n//\n// stream               ::= STREAM-START implicit_document? explicit_document* STREAM-END\n// implicit_document    ::= block_node DOCUMENT-END*\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          | properties (block_content | indentless_block_sequence)?\n//                          | block_content\n//                          | indentless_block_sequence\n// block_node           ::= ALIAS\n//                          | properties block_content?\n//                          | block_content\n// flow_node            ::= ALIAS\n//                          | properties flow_content?\n//                          | flow_content\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n// block_content        ::= block_collection | flow_collection | SCALAR\n// flow_content         ::= flow_collection | SCALAR\n// block_collection     ::= block_sequence | block_mapping\n// flow_collection      ::= flow_sequence | flow_mapping\n// block_sequence       ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                          BLOCK-END\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                          flow_sequence_entry?\n//                          FLOW-SEQUENCE-END\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                          flow_mapping_entry?\n//                          FLOW-MAPPING-END\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n\n// Peek the next token in the token queue.\nfunc peek_token(parser *yaml_parser_t) *yaml_token_t {\n\tif parser.token_available || yaml_parser_fetch_more_tokens(parser) {\n\t\treturn &parser.tokens[parser.tokens_head]\n\t}\n\treturn nil\n}\n\n// Remove the next token from the queue (must be called after peek_token).\nfunc skip_token(parser *yaml_parser_t) {\n\tparser.token_available = false\n\tparser.tokens_parsed++\n\tparser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN\n\tparser.tokens_head++\n}\n\n// Get the next event.\nfunc yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t// Erase the event object.\n\t*event = yaml_event_t{}\n\n\t// No events after the end of the stream or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE {\n\t\treturn true\n\t}\n\n\t// Generate the next event.\n\treturn yaml_parser_state_machine(parser, event)\n}\n\n// Set parser error.\nfunc yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\nfunc yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\n// State dispatcher.\nfunc yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t//trace(\"yaml_parser_state_machine\", \"state:\", parser.state.String())\n\n\tswitch parser.state {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn yaml_parser_parse_stream_start(parser, event)\n\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, true)\n\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, false)\n\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_parser_parse_document_content(parser, event)\n\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn yaml_parser_parse_document_end(parser, event)\n\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_indentless_sequence_entry(parser, event)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_block_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event)\n\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, true)\n\n\tdefault:\n\t\tpanic(\"invalid parser state\")\n\t}\n}\n\n// Parse the production:\n// stream   ::= STREAM-START implicit_document? explicit_document* STREAM-END\n//              ************\nfunc yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_STREAM_START_TOKEN {\n\t\treturn yaml_parser_set_parser_error(parser, \"did not find expected <stream-start>\", token.start_mark)\n\t}\n\tparser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_STREAM_START_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t\tencoding:   token.encoding,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                          *\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                          *************************\nfunc yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool {\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// Parse extra document end indicators.\n\tif !implicit {\n\t\tfor token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tif implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_TAG_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_DOCUMENT_START_TOKEN &&\n\t\ttoken.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an implicit document.\n\t\tif !yaml_parser_process_directives(parser, nil, nil) {\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_BLOCK_NODE_STATE\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t} else if token.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an explicit document.\n\t\tvar version_directive *yaml_version_directive_t\n\t\tvar tag_directives []yaml_tag_directive_t\n\t\tstart_mark := token.start_mark\n\t\tif !yaml_parser_process_directives(parser, &version_directive, &tag_directives) {\n\t\t\treturn false\n\t\t}\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_DOCUMENT_START_TOKEN {\n\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\"did not find expected <document start>\", token.start_mark)\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE\n\t\tend_mark := token.end_mark\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark:        start_mark,\n\t\t\tend_mark:          end_mark,\n\t\t\tversion_directive: version_directive,\n\t\t\ttag_directives:    tag_directives,\n\t\t\timplicit:          false,\n\t\t}\n\t\tskip_token(parser)\n\n\t} else {\n\t\t// Parse the stream end.\n\t\tparser.state = yaml_PARSE_END_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_STREAM_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t}\n\n\treturn true\n}\n\n// Parse the productions:\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                                                    ***********\n//\nfunc yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_TAG_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_START_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_END_TOKEN ||\n\t\ttoken.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\treturn yaml_parser_process_empty_scalar(parser, event,\n\t\t\ttoken.start_mark)\n\t}\n\treturn yaml_parser_parse_node(parser, event, true, false)\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                                     *************\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//\nfunc yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\timplicit := true\n\tif token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\timplicit = false\n\t}\n\n\tparser.tag_directives = parser.tag_directives[:0]\n\n\tparser.state = yaml_PARSE_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_DOCUMENT_END_EVENT,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\timplicit:   implicit,\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          *****\n//                          | properties (block_content | indentless_block_sequence)?\n//                            **********  *\n//                          | block_content | indentless_block_sequence\n//                            *\n// block_node           ::= ALIAS\n//                          *****\n//                          | properties block_content?\n//                            ********** *\n//                          | block_content\n//                            *\n// flow_node            ::= ALIAS\n//                          *****\n//                          | properties flow_content?\n//                            ********** *\n//                          | flow_content\n//                            *\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n//                          *************************\n// block_content        ::= block_collection | flow_collection | SCALAR\n//                                                               ******\n// flow_content         ::= flow_collection | SCALAR\n//                                            ******\nfunc yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool {\n\t//defer trace(\"yaml_parser_parse_node\", \"block:\", block, \"indentless_sequence:\", indentless_sequence)()\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_ALIAS_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_ALIAS_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t\tanchor:     token.value,\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\tvar tag_token bool\n\tvar tag_handle, tag_suffix, anchor []byte\n\tvar tag_mark yaml_mark_t\n\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\tanchor = token.value\n\t\tstart_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_TAG_TOKEN {\n\t\t\ttag_token = true\n\t\t\ttag_handle = token.value\n\t\t\ttag_suffix = token.suffix\n\t\t\ttag_mark = token.start_mark\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else if token.typ == yaml_TAG_TOKEN {\n\t\ttag_token = true\n\t\ttag_handle = token.value\n\t\ttag_suffix = token.suffix\n\t\tstart_mark = token.start_mark\n\t\ttag_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\t\tanchor = token.value\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tvar tag []byte\n\tif tag_token {\n\t\tif len(tag_handle) == 0 {\n\t\t\ttag = tag_suffix\n\t\t\ttag_suffix = nil\n\t\t} else {\n\t\t\tfor i := range parser.tag_directives {\n\t\t\t\tif bytes.Equal(parser.tag_directives[i].handle, tag_handle) {\n\t\t\t\t\ttag = append([]byte(nil), parser.tag_directives[i].prefix...)\n\t\t\t\t\ttag = append(tag, tag_suffix...)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(tag) == 0 {\n\t\t\t\tyaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a node\", start_mark,\n\t\t\t\t\t\"found undefined tag handle\", tag_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\timplicit := len(tag) == 0\n\tif indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_SCALAR_TOKEN {\n\t\tvar plain_implicit, quoted_implicit bool\n\t\tend_mark = token.end_mark\n\t\tif (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') {\n\t\t\tplain_implicit = true\n\t\t} else if len(tag) == 0 {\n\t\t\tquoted_implicit = true\n\t\t}\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\tvalue:           token.value,\n\t\t\timplicit:        plain_implicit,\n\t\t\tquoted_implicit: quoted_implicit,\n\t\t\tstyle:           yaml_style_t(token.style),\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_SEQUENCE_START_TOKEN {\n\t\t// [Go] Some of the events below can be merged as they differ only on style.\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_MAPPING_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif len(anchor) > 0 || len(tag) > 0 {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\timplicit:        implicit,\n\t\t\tquoted_implicit: false,\n\t\t\tstyle:           yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\n\tcontext := \"while parsing a flow node\"\n\tif block {\n\t\tcontext = \"while parsing a block node\"\n\t}\n\tyaml_parser_set_parser_error_context(parser, context, start_mark,\n\t\t\"did not find expected node content\", token.start_mark)\n\treturn false\n}\n\n// Parse the productions:\n// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n//                    ********************  *********** *             *********\n//\nfunc yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t}\n\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block collection\", context_mark,\n\t\t\"did not find expected '-' indicator\", token.start_mark)\n}\n\n// Parse the productions:\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n//                           *********** *\nfunc yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN &&\n\t\t\ttoken.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t}\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be token.end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          *******************\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                            *** *\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//\n//                          BLOCK-END\n//                          *********\n//\nfunc yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_KEY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t} else if token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block mapping\", context_mark,\n\t\t\"did not find expected key\", token.start_mark)\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//\n//                          ((KEY block_node_or_indentless_sequence?)?\n//\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                           ***** *\n//                          BLOCK-END\n//\n//\nfunc yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t}\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          *******************\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                           *                   **********\n//                          flow_sequence_entry?\n//                          *\n//                          FLOW-SEQUENCE-END\n//                          *****************\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *\n//\nfunc yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow sequence\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or ']'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\n\t\t\t*event = yaml_event_t{\n\t\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\t\tstart_mark: token.start_mark,\n\t\t\t\tend_mark:   token.end_mark,\n\t\t\t\timplicit:   true,\n\t\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t\t}\n\t\t\tskip_token(parser)\n\t\t\treturn true\n\t\t} else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\n\tskip_token(parser)\n\treturn true\n}\n\n//\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                      *** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_VALUE_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE)\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t}\n\tmark := token.end_mark\n\tskip_token(parser)\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                      ***** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                                      *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          ******************\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                           *                  **********\n//                          flow_mapping_entry?\n//                          ******************\n//                          FLOW-MAPPING-END\n//                          ****************\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *           *** *\n//\nfunc yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow mapping\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or '}'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.typ != yaml_VALUE_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE)\n\t\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t\t} else {\n\t\t\t\tparser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE\n\t\t\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t\t\t}\n\t\t} else if token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                   *                  ***** *\n//\nfunc yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif empty {\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Generate an empty scalar event.\nfunc yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SCALAR_EVENT,\n\t\tstart_mark: mark,\n\t\tend_mark:   mark,\n\t\tvalue:      nil, // Empty\n\t\timplicit:   true,\n\t\tstyle:      yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t}\n\treturn true\n}\n\nvar default_tag_directives = []yaml_tag_directive_t{\n\t{[]byte(\"!\"), []byte(\"!\")},\n\t{[]byte(\"!!\"), []byte(\"tag:yaml.org,2002:\")},\n}\n\n// Parse directives.\nfunc yaml_parser_process_directives(parser *yaml_parser_t,\n\tversion_directive_ref **yaml_version_directive_t,\n\ttag_directives_ref *[]yaml_tag_directive_t) bool {\n\n\tvar version_directive *yaml_version_directive_t\n\tvar tag_directives []yaml_tag_directive_t\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tfor token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN {\n\t\t\tif version_directive != nil {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found duplicate %YAML directive\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.major != 1 || token.minor != 1 {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found incompatible YAML document\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tversion_directive = &yaml_version_directive_t{\n\t\t\t\tmajor: token.major,\n\t\t\t\tminor: token.minor,\n\t\t\t}\n\t\t} else if token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\t\tvalue := yaml_tag_directive_t{\n\t\t\t\thandle: token.value,\n\t\t\t\tprefix: token.prefix,\n\t\t\t}\n\t\t\tif !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\ttag_directives = append(tag_directives, value)\n\t\t}\n\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tfor i := range default_tag_directives {\n\t\tif !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif version_directive_ref != nil {\n\t\t*version_directive_ref = version_directive\n\t}\n\tif tag_directives_ref != nil {\n\t\t*tag_directives_ref = tag_directives\n\t}\n\treturn true\n}\n\n// Append a tag directive to the directives stack.\nfunc yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool {\n\tfor i := range parser.tag_directives {\n\t\tif bytes.Equal(value.handle, parser.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_parser_set_parser_error(parser, \"found duplicate %TAG directive\", mark)\n\t\t}\n\t}\n\n\t// [Go] I suspect the copy is unnecessary. This was likely done\n\t// because there was no way to track ownership of the data.\n\tvalue_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(value_copy.handle, value.handle)\n\tcopy(value_copy.prefix, value.prefix)\n\tparser.tag_directives = append(parser.tag_directives, value_copy)\n\treturn true\n}\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/readerc.go",
    "content": "package yaml\n\nimport (\n\t\"io\"\n)\n\n// Set the reader error and return 0.\nfunc yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool {\n\tparser.error = yaml_READER_ERROR\n\tparser.problem = problem\n\tparser.problem_offset = offset\n\tparser.problem_value = value\n\treturn false\n}\n\n// Byte order marks.\nconst (\n\tbom_UTF8    = \"\\xef\\xbb\\xbf\"\n\tbom_UTF16LE = \"\\xff\\xfe\"\n\tbom_UTF16BE = \"\\xfe\\xff\"\n)\n\n// Determine the input stream encoding by checking the BOM symbol. If no BOM is\n// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure.\nfunc yaml_parser_determine_encoding(parser *yaml_parser_t) bool {\n\t// Ensure that we had enough bytes in the raw buffer.\n\tfor !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 {\n\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Determine the encoding.\n\tbuf := parser.raw_buffer\n\tpos := parser.raw_buffer_pos\n\tavail := len(buf) - pos\n\tif avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] {\n\t\tparser.encoding = yaml_UTF16LE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] {\n\t\tparser.encoding = yaml_UTF16BE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t\tparser.raw_buffer_pos += 3\n\t\tparser.offset += 3\n\t} else {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t}\n\treturn true\n}\n\n// Update the raw buffer.\nfunc yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool {\n\tsize_read := 0\n\n\t// Return if the raw buffer is full.\n\tif parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) {\n\t\treturn true\n\t}\n\n\t// Return on EOF.\n\tif parser.eof {\n\t\treturn true\n\t}\n\n\t// Move the remaining bytes in the raw buffer to the beginning.\n\tif parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) {\n\t\tcopy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:])\n\t}\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos]\n\tparser.raw_buffer_pos = 0\n\n\t// Call the read handler to fill the buffer.\n\tsize_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)])\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read]\n\tif err == io.EOF {\n\t\tparser.eof = true\n\t} else if err != nil {\n\t\treturn yaml_parser_set_reader_error(parser, \"input error: \"+err.Error(), parser.offset, -1)\n\t}\n\treturn true\n}\n\n// Ensure that the buffer contains at least `length` characters.\n// Return true on success, false on failure.\n//\n// The length is supposed to be significantly less that the buffer size.\nfunc yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {\n\tif parser.read_handler == nil {\n\t\tpanic(\"read handler must be set\")\n\t}\n\n\t// [Go] This function was changed to guarantee the requested length size at EOF.\n\t// The fact we need to do this is pretty awful, but the description above implies\n\t// for that to be the case, and there are tests \n\n\t// If the EOF flag is set and the raw buffer is empty, do nothing.\n\tif parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t// [Go] ACTUALLY! Read the documentation of this function above.\n\t\t// This is just broken. To return true, we need to have the\n\t\t// given length in the buffer. Not doing that means every single\n\t\t// check that calls this function to make sure the buffer has a\n\t\t// given length is Go) panicking; or C) accessing invalid memory.\n\t\t//return true\n\t}\n\n\t// Return if the buffer contains enough characters.\n\tif parser.unread >= length {\n\t\treturn true\n\t}\n\n\t// Determine the input encoding if it is not known yet.\n\tif parser.encoding == yaml_ANY_ENCODING {\n\t\tif !yaml_parser_determine_encoding(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Move the unread characters to the beginning of the buffer.\n\tbuffer_len := len(parser.buffer)\n\tif parser.buffer_pos > 0 && parser.buffer_pos < buffer_len {\n\t\tcopy(parser.buffer, parser.buffer[parser.buffer_pos:])\n\t\tbuffer_len -= parser.buffer_pos\n\t\tparser.buffer_pos = 0\n\t} else if parser.buffer_pos == buffer_len {\n\t\tbuffer_len = 0\n\t\tparser.buffer_pos = 0\n\t}\n\n\t// Open the whole buffer for writing, and cut it before returning.\n\tparser.buffer = parser.buffer[:cap(parser.buffer)]\n\n\t// Fill the buffer until it has enough characters.\n\tfirst := true\n\tfor parser.unread < length {\n\n\t\t// Fill the raw buffer if necessary.\n\t\tif !first || parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\t\tparser.buffer = parser.buffer[:buffer_len]\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tfirst = false\n\n\t\t// Decode the raw buffer.\n\tinner:\n\t\tfor parser.raw_buffer_pos != len(parser.raw_buffer) {\n\t\t\tvar value rune\n\t\t\tvar width int\n\n\t\t\traw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos\n\n\t\t\t// Decode the next character.\n\t\t\tswitch parser.encoding {\n\t\t\tcase yaml_UTF8_ENCODING:\n\t\t\t\t// Decode a UTF-8 character.  Check RFC 3629\n\t\t\t\t// (http://www.ietf.org/rfc/rfc3629.txt) for more details.\n\t\t\t\t//\n\t\t\t\t// The following table (taken from the RFC) is used for\n\t\t\t\t// decoding.\n\t\t\t\t//\n\t\t\t\t//    Char. number range |        UTF-8 octet sequence\n\t\t\t\t//      (hexadecimal)    |              (binary)\n\t\t\t\t//   --------------------+------------------------------------\n\t\t\t\t//   0000 0000-0000 007F | 0xxxxxxx\n\t\t\t\t//   0000 0080-0000 07FF | 110xxxxx 10xxxxxx\n\t\t\t\t//   0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//   0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//\n\t\t\t\t// Additionally, the characters in the range 0xD800-0xDFFF\n\t\t\t\t// are prohibited as they are reserved for use with UTF-16\n\t\t\t\t// surrogate pairs.\n\n\t\t\t\t// Determine the length of the UTF-8 sequence.\n\t\t\t\toctet := parser.raw_buffer[parser.raw_buffer_pos]\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\twidth = 1\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\twidth = 2\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\twidth = 3\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\twidth = 4\n\t\t\t\tdefault:\n\t\t\t\t\t// The leading octet is invalid.\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid leading UTF-8 octet\",\n\t\t\t\t\t\tparser.offset, int(octet))\n\t\t\t\t}\n\n\t\t\t\t// Check if the raw buffer contains an incomplete character.\n\t\t\t\tif width > raw_unread {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-8 octet sequence\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Decode the leading octet.\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\tvalue = rune(octet & 0x7F)\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\tvalue = rune(octet & 0x1F)\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\tvalue = rune(octet & 0x0F)\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\tvalue = rune(octet & 0x07)\n\t\t\t\tdefault:\n\t\t\t\t\tvalue = 0\n\t\t\t\t}\n\n\t\t\t\t// Check and decode the trailing octets.\n\t\t\t\tfor k := 1; k < width; k++ {\n\t\t\t\t\toctet = parser.raw_buffer[parser.raw_buffer_pos+k]\n\n\t\t\t\t\t// Check if the octet is valid.\n\t\t\t\t\tif (octet & 0xC0) != 0x80 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"invalid trailing UTF-8 octet\",\n\t\t\t\t\t\t\tparser.offset+k, int(octet))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Decode the octet.\n\t\t\t\t\tvalue = (value << 6) + rune(octet&0x3F)\n\t\t\t\t}\n\n\t\t\t\t// Check the length of the sequence against the value.\n\t\t\t\tswitch {\n\t\t\t\tcase width == 1:\n\t\t\t\tcase width == 2 && value >= 0x80:\n\t\t\t\tcase width == 3 && value >= 0x800:\n\t\t\t\tcase width == 4 && value >= 0x10000:\n\t\t\t\tdefault:\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid length of a UTF-8 sequence\",\n\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t}\n\n\t\t\t\t// Check the range of the value.\n\t\t\t\tif value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid Unicode character\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\tcase yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING:\n\t\t\t\tvar low, high int\n\t\t\t\tif parser.encoding == yaml_UTF16LE_ENCODING {\n\t\t\t\t\tlow, high = 0, 1\n\t\t\t\t} else {\n\t\t\t\t\tlow, high = 1, 0\n\t\t\t\t}\n\n\t\t\t\t// The UTF-16 encoding is not as simple as one might\n\t\t\t\t// naively think.  Check RFC 2781\n\t\t\t\t// (http://www.ietf.org/rfc/rfc2781.txt).\n\t\t\t\t//\n\t\t\t\t// Normally, two subsequent bytes describe a Unicode\n\t\t\t\t// character.  However a special technique (called a\n\t\t\t\t// surrogate pair) is used for specifying character\n\t\t\t\t// values larger than 0xFFFF.\n\t\t\t\t//\n\t\t\t\t// A surrogate pair consists of two pseudo-characters:\n\t\t\t\t//      high surrogate area (0xD800-0xDBFF)\n\t\t\t\t//      low surrogate area (0xDC00-0xDFFF)\n\t\t\t\t//\n\t\t\t\t// The following formulas are used for decoding\n\t\t\t\t// and encoding characters using surrogate pairs:\n\t\t\t\t//\n\t\t\t\t//  U  = U' + 0x10000   (0x01 00 00 <= U <= 0x10 FF FF)\n\t\t\t\t//  U' = yyyyyyyyyyxxxxxxxxxx   (0 <= U' <= 0x0F FF FF)\n\t\t\t\t//  W1 = 110110yyyyyyyyyy\n\t\t\t\t//  W2 = 110111xxxxxxxxxx\n\t\t\t\t//\n\t\t\t\t// where U is the character value, W1 is the high surrogate\n\t\t\t\t// area, W2 is the low surrogate area.\n\n\t\t\t\t// Check for incomplete UTF-16 character.\n\t\t\t\tif raw_unread < 2 {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-16 character\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Get the character.\n\t\t\t\tvalue = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) +\n\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8)\n\n\t\t\t\t// Check for unexpected low surrogate area.\n\t\t\t\tif value&0xFC00 == 0xDC00 {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"unexpected low surrogate area\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\t\t// Check for a high surrogate area.\n\t\t\t\tif value&0xFC00 == 0xD800 {\n\t\t\t\t\twidth = 4\n\n\t\t\t\t\t// Check for incomplete surrogate pair.\n\t\t\t\t\tif raw_unread < 4 {\n\t\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\t\"incomplete UTF-16 surrogate pair\",\n\t\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak inner\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get the next character.\n\t\t\t\t\tvalue2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) +\n\t\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8)\n\n\t\t\t\t\t// Check for a low surrogate area.\n\t\t\t\t\tif value2&0xFC00 != 0xDC00 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"expected low surrogate area\",\n\t\t\t\t\t\t\tparser.offset+2, int(value2))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Generate the value of the surrogate pair.\n\t\t\t\t\tvalue = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF)\n\t\t\t\t} else {\n\t\t\t\t\twidth = 2\n\t\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tpanic(\"impossible\")\n\t\t\t}\n\n\t\t\t// Check if the character is in the allowed range:\n\t\t\t//      #x9 | #xA | #xD | [#x20-#x7E]               (8 bit)\n\t\t\t//      | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD]    (16 bit)\n\t\t\t//      | [#x10000-#x10FFFF]                        (32 bit)\n\t\t\tswitch {\n\t\t\tcase value == 0x09:\n\t\t\tcase value == 0x0A:\n\t\t\tcase value == 0x0D:\n\t\t\tcase value >= 0x20 && value <= 0x7E:\n\t\t\tcase value == 0x85:\n\t\t\tcase value >= 0xA0 && value <= 0xD7FF:\n\t\t\tcase value >= 0xE000 && value <= 0xFFFD:\n\t\t\tcase value >= 0x10000 && value <= 0x10FFFF:\n\t\t\tdefault:\n\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\"control characters are not allowed\",\n\t\t\t\t\tparser.offset, int(value))\n\t\t\t}\n\n\t\t\t// Move the raw pointers.\n\t\t\tparser.raw_buffer_pos += width\n\t\t\tparser.offset += width\n\n\t\t\t// Finally put the character into the buffer.\n\t\t\tif value <= 0x7F {\n\t\t\t\t// 0000 0000-0000 007F . 0xxxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(value)\n\t\t\t\tbuffer_len += 1\n\t\t\t} else if value <= 0x7FF {\n\t\t\t\t// 0000 0080-0000 07FF . 110xxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 2\n\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t// 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 3\n\t\t\t} else {\n\t\t\t\t// 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 4\n\t\t\t}\n\n\t\t\tparser.unread++\n\t\t}\n\n\t\t// On EOF, put NUL into the buffer and return.\n\t\tif parser.eof {\n\t\t\tparser.buffer[buffer_len] = 0\n\t\t\tbuffer_len++\n\t\t\tparser.unread++\n\t\t\tbreak\n\t\t}\n\t}\n\t// [Go] Read the documentation of this function above. To return true,\n\t// we need to have the given length in the buffer. Not doing that means\n\t// every single check that calls this function to make sure the buffer\n\t// has a given length is Go) panicking; or C) accessing invalid memory.\n\t// This happens here due to the EOF above breaking early.\n\tfor buffer_len < length {\n\t\tparser.buffer[buffer_len] = 0\n\t\tbuffer_len++\n\t}\n\tparser.buffer = parser.buffer[:buffer_len]\n\treturn true\n}\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/resolve.go",
    "content": "package yaml\n\nimport (\n\t\"encoding/base64\"\n\t\"math\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype resolveMapItem struct {\n\tvalue interface{}\n\ttag   string\n}\n\nvar resolveTable = make([]byte, 256)\nvar resolveMap = make(map[string]resolveMapItem)\n\nfunc init() {\n\tt := resolveTable\n\tt[int('+')] = 'S' // Sign\n\tt[int('-')] = 'S'\n\tfor _, c := range \"0123456789\" {\n\t\tt[int(c)] = 'D' // Digit\n\t}\n\tfor _, c := range \"yYnNtTfFoO~\" {\n\t\tt[int(c)] = 'M' // In map\n\t}\n\tt[int('.')] = '.' // Float (potentially in map)\n\n\tvar resolveMapList = []struct {\n\t\tv   interface{}\n\t\ttag string\n\t\tl   []string\n\t}{\n\t\t{true, yaml_BOOL_TAG, []string{\"y\", \"Y\", \"yes\", \"Yes\", \"YES\"}},\n\t\t{true, yaml_BOOL_TAG, []string{\"true\", \"True\", \"TRUE\"}},\n\t\t{true, yaml_BOOL_TAG, []string{\"on\", \"On\", \"ON\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"n\", \"N\", \"no\", \"No\", \"NO\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"false\", \"False\", \"FALSE\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"off\", \"Off\", \"OFF\"}},\n\t\t{nil, yaml_NULL_TAG, []string{\"\", \"~\", \"null\", \"Null\", \"NULL\"}},\n\t\t{math.NaN(), yaml_FLOAT_TAG, []string{\".nan\", \".NaN\", \".NAN\"}},\n\t\t{math.Inf(+1), yaml_FLOAT_TAG, []string{\".inf\", \".Inf\", \".INF\"}},\n\t\t{math.Inf(+1), yaml_FLOAT_TAG, []string{\"+.inf\", \"+.Inf\", \"+.INF\"}},\n\t\t{math.Inf(-1), yaml_FLOAT_TAG, []string{\"-.inf\", \"-.Inf\", \"-.INF\"}},\n\t\t{\"<<\", yaml_MERGE_TAG, []string{\"<<\"}},\n\t}\n\n\tm := resolveMap\n\tfor _, item := range resolveMapList {\n\t\tfor _, s := range item.l {\n\t\t\tm[s] = resolveMapItem{item.v, item.tag}\n\t\t}\n\t}\n}\n\nconst longTagPrefix = \"tag:yaml.org,2002:\"\n\nfunc shortTag(tag string) string {\n\t// TODO This can easily be made faster and produce less garbage.\n\tif strings.HasPrefix(tag, longTagPrefix) {\n\t\treturn \"!!\" + tag[len(longTagPrefix):]\n\t}\n\treturn tag\n}\n\nfunc longTag(tag string) string {\n\tif strings.HasPrefix(tag, \"!!\") {\n\t\treturn longTagPrefix + tag[2:]\n\t}\n\treturn tag\n}\n\nfunc resolvableTag(tag string) bool {\n\tswitch tag {\n\tcase \"\", yaml_STR_TAG, yaml_BOOL_TAG, yaml_INT_TAG, yaml_FLOAT_TAG, yaml_NULL_TAG, yaml_TIMESTAMP_TAG:\n\t\treturn true\n\t}\n\treturn false\n}\n\nvar yamlStyleFloat = regexp.MustCompile(`^[-+]?(\\.[0-9]+|[0-9]+(\\.[0-9]*)?)([eE][-+]?[0-9]+)?$`)\n\nfunc resolve(tag string, in string) (rtag string, out interface{}) {\n\tif !resolvableTag(tag) {\n\t\treturn tag, in\n\t}\n\n\tdefer func() {\n\t\tswitch tag {\n\t\tcase \"\", rtag, yaml_STR_TAG, yaml_BINARY_TAG:\n\t\t\treturn\n\t\tcase yaml_FLOAT_TAG:\n\t\t\tif rtag == yaml_INT_TAG {\n\t\t\t\tswitch v := out.(type) {\n\t\t\t\tcase int64:\n\t\t\t\t\trtag = yaml_FLOAT_TAG\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\tcase int:\n\t\t\t\t\trtag = yaml_FLOAT_TAG\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfailf(\"cannot decode %s `%s` as a %s\", shortTag(rtag), in, shortTag(tag))\n\t}()\n\n\t// Any data is accepted as a !!str or !!binary.\n\t// Otherwise, the prefix is enough of a hint about what it might be.\n\thint := byte('N')\n\tif in != \"\" {\n\t\thint = resolveTable[in[0]]\n\t}\n\tif hint != 0 && tag != yaml_STR_TAG && tag != yaml_BINARY_TAG {\n\t\t// Handle things we can lookup in a map.\n\t\tif item, ok := resolveMap[in]; ok {\n\t\t\treturn item.tag, item.value\n\t\t}\n\n\t\t// Base 60 floats are a bad idea, were dropped in YAML 1.2, and\n\t\t// are purposefully unsupported here. They're still quoted on\n\t\t// the way out for compatibility with other parser, though.\n\n\t\tswitch hint {\n\t\tcase 'M':\n\t\t\t// We've already checked the map above.\n\n\t\tcase '.':\n\t\t\t// Not in the map, so maybe a normal float.\n\t\t\tfloatv, err := strconv.ParseFloat(in, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn yaml_FLOAT_TAG, floatv\n\t\t\t}\n\n\t\tcase 'D', 'S':\n\t\t\t// Int, float, or timestamp.\n\t\t\t// Only try values as a timestamp if the value is unquoted or there's an explicit\n\t\t\t// !!timestamp tag.\n\t\t\tif tag == \"\" || tag == yaml_TIMESTAMP_TAG {\n\t\t\t\tt, ok := parseTimestamp(in)\n\t\t\t\tif ok {\n\t\t\t\t\treturn yaml_TIMESTAMP_TAG, t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tplain := strings.Replace(in, \"_\", \"\", -1)\n\t\t\tintv, err := strconv.ParseInt(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t} else {\n\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t}\n\t\t\t}\n\t\t\tuintv, err := strconv.ParseUint(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn yaml_INT_TAG, uintv\n\t\t\t}\n\t\t\tif yamlStyleFloat.MatchString(plain) {\n\t\t\t\tfloatv, err := strconv.ParseFloat(plain, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn yaml_FLOAT_TAG, floatv\n\t\t\t\t}\n\t\t\t}\n\t\t\tif strings.HasPrefix(plain, \"0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn yaml_INT_TAG, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\" + plain[3:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"resolveTable item not yet handled: \" + string(rune(hint)) + \" (with \" + in + \")\")\n\t\t}\n\t}\n\treturn yaml_STR_TAG, in\n}\n\n// encodeBase64 encodes s as base64 that is broken up into multiple lines\n// as appropriate for the resulting length.\nfunc encodeBase64(s string) string {\n\tconst lineLen = 70\n\tencLen := base64.StdEncoding.EncodedLen(len(s))\n\tlines := encLen/lineLen + 1\n\tbuf := make([]byte, encLen*2+lines)\n\tin := buf[0:encLen]\n\tout := buf[encLen:]\n\tbase64.StdEncoding.Encode(in, []byte(s))\n\tk := 0\n\tfor i := 0; i < len(in); i += lineLen {\n\t\tj := i + lineLen\n\t\tif j > len(in) {\n\t\t\tj = len(in)\n\t\t}\n\t\tk += copy(out[k:], in[i:j])\n\t\tif lines > 1 {\n\t\t\tout[k] = '\\n'\n\t\t\tk++\n\t\t}\n\t}\n\treturn string(out[:k])\n}\n\n// This is a subset of the formats allowed by the regular expression\n// defined at http://yaml.org/type/timestamp.html.\nvar allowedTimestampFormats = []string{\n\t\"2006-1-2T15:4:5.999999999Z07:00\", // RCF3339Nano with short date fields.\n\t\"2006-1-2t15:4:5.999999999Z07:00\", // RFC3339Nano with short date fields and lower-case \"t\".\n\t\"2006-1-2 15:4:5.999999999\",       // space separated with no time zone\n\t\"2006-1-2\",                        // date only\n\t// Notable exception: time.Parse cannot handle: \"2001-12-14 21:59:43.10 -5\"\n\t// from the set of examples.\n}\n\n// parseTimestamp parses s as a timestamp string and\n// returns the timestamp and reports whether it succeeded.\n// Timestamp formats are defined at http://yaml.org/type/timestamp.html\nfunc parseTimestamp(s string) (time.Time, bool) {\n\t// TODO write code to check all the formats supported by\n\t// http://yaml.org/type/timestamp.html instead of using time.Parse.\n\n\t// Quick check: all date formats start with YYYY-.\n\ti := 0\n\tfor ; i < len(s); i++ {\n\t\tif c := s[i]; c < '0' || c > '9' {\n\t\t\tbreak\n\t\t}\n\t}\n\tif i != 4 || i == len(s) || s[i] != '-' {\n\t\treturn time.Time{}, false\n\t}\n\tfor _, format := range allowedTimestampFormats {\n\t\tif t, err := time.Parse(format, s); err == nil {\n\t\t\treturn t, true\n\t\t}\n\t}\n\treturn time.Time{}, false\n}\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/scannerc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Introduction\n// ************\n//\n// The following notes assume that you are familiar with the YAML specification\n// (http://yaml.org/spec/1.2/spec.html).  We mostly follow it, although in\n// some cases we are less restrictive that it requires.\n//\n// The process of transforming a YAML stream into a sequence of events is\n// divided on two steps: Scanning and Parsing.\n//\n// The Scanner transforms the input stream into a sequence of tokens, while the\n// parser transform the sequence of tokens produced by the Scanner into a\n// sequence of parsing events.\n//\n// The Scanner is rather clever and complicated. The Parser, on the contrary,\n// is a straightforward implementation of a recursive-descendant parser (or,\n// LL(1) parser, as it is usually called).\n//\n// Actually there are two issues of Scanning that might be called \"clever\", the\n// rest is quite straightforward.  The issues are \"block collection start\" and\n// \"simple keys\".  Both issues are explained below in details.\n//\n// Here the Scanning step is explained and implemented.  We start with the list\n// of all the tokens produced by the Scanner together with short descriptions.\n//\n// Now, tokens:\n//\n//      STREAM-START(encoding)          # The stream start.\n//      STREAM-END                      # The stream end.\n//      VERSION-DIRECTIVE(major,minor)  # The '%YAML' directive.\n//      TAG-DIRECTIVE(handle,prefix)    # The '%TAG' directive.\n//      DOCUMENT-START                  # '---'\n//      DOCUMENT-END                    # '...'\n//      BLOCK-SEQUENCE-START            # Indentation increase denoting a block\n//      BLOCK-MAPPING-START             # sequence or a block mapping.\n//      BLOCK-END                       # Indentation decrease.\n//      FLOW-SEQUENCE-START             # '['\n//      FLOW-SEQUENCE-END               # ']'\n//      BLOCK-SEQUENCE-START            # '{'\n//      BLOCK-SEQUENCE-END              # '}'\n//      BLOCK-ENTRY                     # '-'\n//      FLOW-ENTRY                      # ','\n//      KEY                             # '?' or nothing (simple keys).\n//      VALUE                           # ':'\n//      ALIAS(anchor)                   # '*anchor'\n//      ANCHOR(anchor)                  # '&anchor'\n//      TAG(handle,suffix)              # '!handle!suffix'\n//      SCALAR(value,style)             # A scalar.\n//\n// The following two tokens are \"virtual\" tokens denoting the beginning and the\n// end of the stream:\n//\n//      STREAM-START(encoding)\n//      STREAM-END\n//\n// We pass the information about the input stream encoding with the\n// STREAM-START token.\n//\n// The next two tokens are responsible for tags:\n//\n//      VERSION-DIRECTIVE(major,minor)\n//      TAG-DIRECTIVE(handle,prefix)\n//\n// Example:\n//\n//      %YAML   1.1\n//      %TAG    !   !foo\n//      %TAG    !yaml!  tag:yaml.org,2002:\n//      ---\n//\n// The correspoding sequence of tokens:\n//\n//      STREAM-START(utf-8)\n//      VERSION-DIRECTIVE(1,1)\n//      TAG-DIRECTIVE(\"!\",\"!foo\")\n//      TAG-DIRECTIVE(\"!yaml\",\"tag:yaml.org,2002:\")\n//      DOCUMENT-START\n//      STREAM-END\n//\n// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole\n// line.\n//\n// The document start and end indicators are represented by:\n//\n//      DOCUMENT-START\n//      DOCUMENT-END\n//\n// Note that if a YAML stream contains an implicit document (without '---'\n// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be\n// produced.\n//\n// In the following examples, we present whole documents together with the\n// produced tokens.\n//\n//      1. An implicit document:\n//\n//          'a scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          STREAM-END\n//\n//      2. An explicit document:\n//\n//          ---\n//          'a scalar'\n//          ...\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-END\n//          STREAM-END\n//\n//      3. Several documents in a stream:\n//\n//          'a scalar'\n//          ---\n//          'another scalar'\n//          ---\n//          'yet another scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"another scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"yet another scalar\",single-quoted)\n//          STREAM-END\n//\n// We have already introduced the SCALAR token above.  The following tokens are\n// used to describe aliases, anchors, tag, and scalars:\n//\n//      ALIAS(anchor)\n//      ANCHOR(anchor)\n//      TAG(handle,suffix)\n//      SCALAR(value,style)\n//\n// The following series of examples illustrate the usage of these tokens:\n//\n//      1. A recursive sequence:\n//\n//          &A [ *A ]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          ANCHOR(\"A\")\n//          FLOW-SEQUENCE-START\n//          ALIAS(\"A\")\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A tagged scalar:\n//\n//          !!float \"3.14\"  # A good approximation.\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          TAG(\"!!\",\"float\")\n//          SCALAR(\"3.14\",double-quoted)\n//          STREAM-END\n//\n//      3. Various scalar styles:\n//\n//          --- # Implicit empty plain scalars do not produce tokens.\n//          --- a plain scalar\n//          --- 'a single-quoted scalar'\n//          --- \"a double-quoted scalar\"\n//          --- |-\n//            a literal scalar\n//          --- >-\n//            a folded\n//            scalar\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          DOCUMENT-START\n//          SCALAR(\"a plain scalar\",plain)\n//          DOCUMENT-START\n//          SCALAR(\"a single-quoted scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a double-quoted scalar\",double-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a literal scalar\",literal)\n//          DOCUMENT-START\n//          SCALAR(\"a folded scalar\",folded)\n//          STREAM-END\n//\n// Now it's time to review collection-related tokens. We will start with\n// flow collections:\n//\n//      FLOW-SEQUENCE-START\n//      FLOW-SEQUENCE-END\n//      FLOW-MAPPING-START\n//      FLOW-MAPPING-END\n//      FLOW-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and\n// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}'\n// correspondingly.  FLOW-ENTRY represent the ',' indicator.  Finally the\n// indicators '?' and ':', which are used for denoting mapping keys and values,\n// are represented by the KEY and VALUE tokens.\n//\n// The following examples show flow collections:\n//\n//      1. A flow sequence:\n//\n//          [item 1, item 2, item 3]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-SEQUENCE-START\n//          SCALAR(\"item 1\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 3\",plain)\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A flow mapping:\n//\n//          {\n//              a simple key: a value,  # Note that the KEY token is produced.\n//              ? a complex key: another value,\n//          }\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          FLOW-ENTRY\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          FLOW-ENTRY\n//          FLOW-MAPPING-END\n//          STREAM-END\n//\n// A simple key is a key which is not denoted by the '?' indicator.  Note that\n// the Scanner still produce the KEY token whenever it encounters a simple key.\n//\n// For scanning block collections, the following tokens are used (note that we\n// repeat KEY and VALUE here):\n//\n//      BLOCK-SEQUENCE-START\n//      BLOCK-MAPPING-START\n//      BLOCK-END\n//      BLOCK-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation\n// increase that precedes a block collection (cf. the INDENT token in Python).\n// The token BLOCK-END denote indentation decrease that ends a block collection\n// (cf. the DEDENT token in Python).  However YAML has some syntax pecularities\n// that makes detections of these tokens more complex.\n//\n// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators\n// '-', '?', and ':' correspondingly.\n//\n// The following examples show how the tokens BLOCK-SEQUENCE-START,\n// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner:\n//\n//      1. Block sequences:\n//\n//          - item 1\n//          - item 2\n//          -\n//            - item 3.1\n//            - item 3.2\n//          -\n//            key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Block mappings:\n//\n//          a simple key: a value   # The KEY token is produced here.\n//          ? a complex key\n//          : another value\n//          a mapping:\n//            key 1: value 1\n//            key 2: value 2\n//          a sequence:\n//            - item 1\n//            - item 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML does not always require to start a new block collection from a new\n// line.  If the current line contains only '-', '?', and ':' indicators, a new\n// block collection may start at the current line.  The following examples\n// illustrate this case:\n//\n//      1. Collections in a sequence:\n//\n//          - - item 1\n//            - item 2\n//          - key 1: value 1\n//            key 2: value 2\n//          - ? complex key\n//            : complex value\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"complex key\")\n//          VALUE\n//          SCALAR(\"complex value\")\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Collections in a mapping:\n//\n//          ? a sequence\n//          : - item 1\n//            - item 2\n//          ? a mapping\n//          : key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          VALUE\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML also permits non-indented sequences if they are included into a block\n// mapping.  In this case, the token BLOCK-SEQUENCE-START is not produced:\n//\n//      key:\n//      - item 1    # BLOCK-SEQUENCE-START is NOT produced here.\n//      - item 2\n//\n// Tokens:\n//\n//      STREAM-START(utf-8)\n//      BLOCK-MAPPING-START\n//      KEY\n//      SCALAR(\"key\",plain)\n//      VALUE\n//      BLOCK-ENTRY\n//      SCALAR(\"item 1\",plain)\n//      BLOCK-ENTRY\n//      SCALAR(\"item 2\",plain)\n//      BLOCK-END\n//\n\n// Ensure that the buffer contains the required number of characters.\n// Return true on success, false on failure (reader error or memory error).\nfunc cache(parser *yaml_parser_t, length int) bool {\n\t// [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B)\n\treturn parser.unread >= length || yaml_parser_update_buffer(parser, length)\n}\n\n// Advance the buffer pointer.\nfunc skip(parser *yaml_parser_t) {\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n}\n\nfunc skip_line(parser *yaml_parser_t) {\n\tif is_crlf(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index += 2\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread -= 2\n\t\tparser.buffer_pos += 2\n\t} else if is_break(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index++\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread--\n\t\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n\t}\n}\n\n// Copy a character to a string buffer and advance pointers.\nfunc read(parser *yaml_parser_t, s []byte) []byte {\n\tw := width(parser.buffer[parser.buffer_pos])\n\tif w == 0 {\n\t\tpanic(\"invalid character sequence\")\n\t}\n\tif len(s) == 0 {\n\t\ts = make([]byte, 0, 32)\n\t}\n\tif w == 1 && len(s)+w <= cap(s) {\n\t\ts = s[:len(s)+1]\n\t\ts[len(s)-1] = parser.buffer[parser.buffer_pos]\n\t\tparser.buffer_pos++\n\t} else {\n\t\ts = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...)\n\t\tparser.buffer_pos += w\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\treturn s\n}\n\n// Copy a line break character to a string buffer and advance pointers.\nfunc read_line(parser *yaml_parser_t, s []byte) []byte {\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\tswitch {\n\tcase buf[pos] == '\\r' && buf[pos+1] == '\\n':\n\t\t// CR LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\t\tparser.mark.index++\n\t\tparser.unread--\n\tcase buf[pos] == '\\r' || buf[pos] == '\\n':\n\t\t// CR|LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 1\n\tcase buf[pos] == '\\xC2' && buf[pos+1] == '\\x85':\n\t\t// NEL . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\tcase buf[pos] == '\\xE2' && buf[pos+1] == '\\x80' && (buf[pos+2] == '\\xA8' || buf[pos+2] == '\\xA9'):\n\t\t// LS|PS . LS|PS\n\t\ts = append(s, buf[parser.buffer_pos:pos+3]...)\n\t\tparser.buffer_pos += 3\n\tdefault:\n\t\treturn s\n\t}\n\tparser.mark.index++\n\tparser.mark.column = 0\n\tparser.mark.line++\n\tparser.unread--\n\treturn s\n}\n\n// Get the next token.\nfunc yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Erase the token object.\n\t*token = yaml_token_t{} // [Go] Is this necessary?\n\n\t// No tokens after STREAM-END or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR {\n\t\treturn true\n\t}\n\n\t// Ensure that the tokens queue contains enough tokens.\n\tif !parser.token_available {\n\t\tif !yaml_parser_fetch_more_tokens(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Fetch the next token from the queue.\n\t*token = parser.tokens[parser.tokens_head]\n\tparser.tokens_head++\n\tparser.tokens_parsed++\n\tparser.token_available = false\n\n\tif token.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.stream_end_produced = true\n\t}\n\treturn true\n}\n\n// Set the scanner error and return false.\nfunc yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool {\n\tparser.error = yaml_SCANNER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = parser.mark\n\treturn false\n}\n\nfunc yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool {\n\tcontext := \"while parsing a tag\"\n\tif directive {\n\t\tcontext = \"while parsing a %TAG directive\"\n\t}\n\treturn yaml_parser_set_scanner_error(parser, context, context_mark, problem)\n}\n\nfunc trace(args ...interface{}) func() {\n\tpargs := append([]interface{}{\"+++\"}, args...)\n\tfmt.Println(pargs...)\n\tpargs = append([]interface{}{\"---\"}, args...)\n\treturn func() { fmt.Println(pargs...) }\n}\n\n// Ensure that the tokens queue contains at least one token which can be\n// returned to the Parser.\nfunc yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {\n\t// While we need more tokens to fetch, do it.\n\tfor {\n\t\tif parser.tokens_head != len(parser.tokens) {\n\t\t\t// If queue is non-empty, check if any potential simple key may\n\t\t\t// occupy the head position.\n\t\t\thead_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed]\n\t\t\tif !ok {\n\t\t\t\tbreak\n\t\t\t} else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok {\n\t\t\t\treturn false\n\t\t\t} else if !valid {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Fetch the next token.\n\t\tif !yaml_parser_fetch_next_token(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tparser.token_available = true\n\treturn true\n}\n\n// The dispatcher for token fetchers.\nfunc yaml_parser_fetch_next_token(parser *yaml_parser_t) bool {\n\t// Ensure that the buffer is initialized.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check if we just started scanning.  Fetch STREAM-START then.\n\tif !parser.stream_start_produced {\n\t\treturn yaml_parser_fetch_stream_start(parser)\n\t}\n\n\t// Eat whitespaces and comments until we reach the next token.\n\tif !yaml_parser_scan_to_next_token(parser) {\n\t\treturn false\n\t}\n\n\t// Check the indentation level against the current column.\n\tif !yaml_parser_unroll_indent(parser, parser.mark.column) {\n\t\treturn false\n\t}\n\n\t// Ensure that the buffer contains at least 4 characters.  4 is the length\n\t// of the longest indicators ('--- ' and '... ').\n\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\treturn false\n\t}\n\n\t// Is it the end of the stream?\n\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\treturn yaml_parser_fetch_stream_end(parser)\n\t}\n\n\t// Is it a directive?\n\tif parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' {\n\t\treturn yaml_parser_fetch_directive(parser)\n\t}\n\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\n\t// Is it the document start indicator?\n\tif parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN)\n\t}\n\n\t// Is it the document end indicator?\n\tif parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN)\n\t}\n\n\t// Is it the flow sequence start indicator?\n\tif buf[pos] == '[' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN)\n\t}\n\n\t// Is it the flow mapping start indicator?\n\tif parser.buffer[parser.buffer_pos] == '{' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN)\n\t}\n\n\t// Is it the flow sequence end indicator?\n\tif parser.buffer[parser.buffer_pos] == ']' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_SEQUENCE_END_TOKEN)\n\t}\n\n\t// Is it the flow mapping end indicator?\n\tif parser.buffer[parser.buffer_pos] == '}' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_MAPPING_END_TOKEN)\n\t}\n\n\t// Is it the flow entry indicator?\n\tif parser.buffer[parser.buffer_pos] == ',' {\n\t\treturn yaml_parser_fetch_flow_entry(parser)\n\t}\n\n\t// Is it the block entry indicator?\n\tif parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) {\n\t\treturn yaml_parser_fetch_block_entry(parser)\n\t}\n\n\t// Is it the key indicator?\n\tif parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_key(parser)\n\t}\n\n\t// Is it the value indicator?\n\tif parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_value(parser)\n\t}\n\n\t// Is it an alias?\n\tif parser.buffer[parser.buffer_pos] == '*' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN)\n\t}\n\n\t// Is it an anchor?\n\tif parser.buffer[parser.buffer_pos] == '&' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN)\n\t}\n\n\t// Is it a tag?\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\treturn yaml_parser_fetch_tag(parser)\n\t}\n\n\t// Is it a literal scalar?\n\tif parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, true)\n\t}\n\n\t// Is it a folded scalar?\n\tif parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, false)\n\t}\n\n\t// Is it a single-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, true)\n\t}\n\n\t// Is it a double-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, false)\n\t}\n\n\t// Is it a plain scalar?\n\t//\n\t// A plain scalar may start with any non-blank characters except\n\t//\n\t//      '-', '?', ':', ',', '[', ']', '{', '}',\n\t//      '#', '&', '*', '!', '|', '>', '\\'', '\\\"',\n\t//      '%', '@', '`'.\n\t//\n\t// In the block context (and, for the '-' indicator, in the flow context\n\t// too), it may also start with the characters\n\t//\n\t//      '-', '?', ':'\n\t//\n\t// if it is followed by a non-space character.\n\t//\n\t// The last rule is more restrictive than the specification requires.\n\t// [Go] Make this logic more reasonable.\n\t//switch parser.buffer[parser.buffer_pos] {\n\t//case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '\"', '\\'', '@', '%', '-', '`':\n\t//}\n\tif !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' ||\n\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\tparser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' ||\n\t\tparser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '\"' || parser.buffer[parser.buffer_pos] == '%' ||\n\t\tparser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') ||\n\t\t(parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) ||\n\t\t(parser.flow_level == 0 &&\n\t\t\t(parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') &&\n\t\t\t!is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_plain_scalar(parser)\n\t}\n\n\t// If we don't determine the token type so far, it is an error.\n\treturn yaml_parser_set_scanner_error(parser,\n\t\t\"while scanning for the next token\", parser.mark,\n\t\t\"found character that cannot start any token\")\n}\n\nfunc yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) {\n\tif !simple_key.possible {\n\t\treturn false, true\n\t}\n\n\t// The 1.2 specification says:\n\t//\n\t//     \"If the ? indicator is omitted, parsing needs to see past the\n\t//     implicit key to recognize it as such. To limit the amount of\n\t//     lookahead required, the “:” indicator must appear at most 1024\n\t//     Unicode characters beyond the start of the key. In addition, the key\n\t//     is restricted to a single line.\"\n\t//\n\tif simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index {\n\t\t// Check if the potential simple key to be removed is required.\n\t\tif simple_key.required {\n\t\t\treturn false, yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", simple_key.mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\tsimple_key.possible = false\n\t\treturn false, true\n\t}\n\treturn true, true\n}\n\n// Check if a simple key may start at the current position and add it if\n// needed.\nfunc yaml_parser_save_simple_key(parser *yaml_parser_t) bool {\n\t// A simple key is required at the current position if the scanner is in\n\t// the block context and the current column coincides with the indentation\n\t// level.\n\n\trequired := parser.flow_level == 0 && parser.indent == parser.mark.column\n\n\t//\n\t// If the current position may start a simple key, save it.\n\t//\n\tif parser.simple_key_allowed {\n\t\tsimple_key := yaml_simple_key_t{\n\t\t\tpossible:     true,\n\t\t\trequired:     required,\n\t\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\t\tmark:         parser.mark,\n\t\t}\n\n\t\tif !yaml_parser_remove_simple_key(parser) {\n\t\t\treturn false\n\t\t}\n\t\tparser.simple_keys[len(parser.simple_keys)-1] = simple_key\n\t\tparser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1\n\t}\n\treturn true\n}\n\n// Remove a potential simple key at the current flow level.\nfunc yaml_parser_remove_simple_key(parser *yaml_parser_t) bool {\n\ti := len(parser.simple_keys) - 1\n\tif parser.simple_keys[i].possible {\n\t\t// If the key is required, it is an error.\n\t\tif parser.simple_keys[i].required {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", parser.simple_keys[i].mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\t// Remove the key from the stack.\n\t\tparser.simple_keys[i].possible = false\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number)\n\t}\n\treturn true\n}\n\n// max_flow_level limits the flow_level\nconst max_flow_level = 10000\n\n// Increase the flow level and resize the simple key list if needed.\nfunc yaml_parser_increase_flow_level(parser *yaml_parser_t) bool {\n\t// Reset the simple key on the next level.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{\n\t\tpossible:     false,\n\t\trequired:     false,\n\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\tmark:         parser.mark,\n\t})\n\n\t// Increase the flow level.\n\tparser.flow_level++\n\tif parser.flow_level > max_flow_level {\n\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\"while increasing flow level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_flow_level))\n\t}\n\treturn true\n}\n\n// Decrease the flow level.\nfunc yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool {\n\tif parser.flow_level > 0 {\n\t\tparser.flow_level--\n\t\tlast := len(parser.simple_keys) - 1\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number)\n\t\tparser.simple_keys = parser.simple_keys[:last]\n\t}\n\treturn true\n}\n\n// max_indents limits the indents stack size\nconst max_indents = 10000\n\n// Push the current indentation level to the stack and set the new level\n// the current column is greater than the indentation level.  In this case,\n// append or insert the specified token into the token queue.\nfunc yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tif parser.indent < column {\n\t\t// Push the current indentation level to the stack and set the new\n\t\t// indentation level.\n\t\tparser.indents = append(parser.indents, parser.indent)\n\t\tparser.indent = column\n\t\tif len(parser.indents) > max_indents {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while increasing indent level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_indents))\n\t\t}\n\n\t\t// Create a token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        typ,\n\t\t\tstart_mark: mark,\n\t\t\tend_mark:   mark,\n\t\t}\n\t\tif number > -1 {\n\t\t\tnumber -= parser.tokens_parsed\n\t\t}\n\t\tyaml_insert_token(parser, number, &token)\n\t}\n\treturn true\n}\n\n// Pop indentation levels from the indents stack until the current level\n// becomes less or equal to the column.  For each indentation level, append\n// the BLOCK-END token.\nfunc yaml_parser_unroll_indent(parser *yaml_parser_t, column int) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\t// Loop through the indentation levels in the stack.\n\tfor parser.indent > column {\n\t\t// Create a token and append it to the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_BLOCK_END_TOKEN,\n\t\t\tstart_mark: parser.mark,\n\t\t\tend_mark:   parser.mark,\n\t\t}\n\t\tyaml_insert_token(parser, -1, &token)\n\n\t\t// Pop the indentation level.\n\t\tparser.indent = parser.indents[len(parser.indents)-1]\n\t\tparser.indents = parser.indents[:len(parser.indents)-1]\n\t}\n\treturn true\n}\n\n// Initialize the scanner and produce the STREAM-START token.\nfunc yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool {\n\n\t// Set the initial indentation.\n\tparser.indent = -1\n\n\t// Initialize the simple key stack.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{})\n\n\tparser.simple_keys_by_tok = make(map[int]int)\n\n\t// A simple key is allowed at the beginning of the stream.\n\tparser.simple_key_allowed = true\n\n\t// We have started.\n\tparser.stream_start_produced = true\n\n\t// Create the STREAM-START token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_START_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t\tencoding:   parser.encoding,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the STREAM-END token and shut down the scanner.\nfunc yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool {\n\n\t// Force new line.\n\tif parser.mark.column != 0 {\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t}\n\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the STREAM-END token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_END_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token.\nfunc yaml_parser_fetch_directive(parser *yaml_parser_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the YAML-DIRECTIVE or TAG-DIRECTIVE token.\n\ttoken := yaml_token_t{}\n\tif !yaml_parser_scan_directive(parser, &token) {\n\t\treturn false\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the DOCUMENT-START or DOCUMENT-END token.\nfunc yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\n\tskip(parser)\n\tskip(parser)\n\tskip(parser)\n\n\tend_mark := parser.mark\n\n\t// Create the DOCUMENT-START or DOCUMENT-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token.\nfunc yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// The indicators '[' and '{' may start a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Increase the flow level.\n\tif !yaml_parser_increase_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow the indicators '[' and '{'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token.\nfunc yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset any potential simple key on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Decrease the flow level.\n\tif !yaml_parser_decrease_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// No simple keys after the indicators ']' and '}'.\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-ENTRY token.\nfunc yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool {\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after ','.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_FLOW_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the BLOCK-ENTRY token.\nfunc yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool {\n\t// Check if the scanner is in the block context.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new entry.\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"block sequence entries are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-SEQUENCE-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\t// It is an error for the '-' indicator to occur in the flow context,\n\t\t// but we let the Parser detect and report about it because the Parser\n\t\t// is able to point to the context.\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '-'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the BLOCK-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_BLOCK_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the KEY token.\nfunc yaml_parser_fetch_key(parser *yaml_parser_t) bool {\n\n\t// In the block context, additional checks are required.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new key (not nessesary simple).\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"mapping keys are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '?' in the block context.\n\tparser.simple_key_allowed = parser.flow_level == 0\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the KEY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_KEY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the VALUE token.\nfunc yaml_parser_fetch_value(parser *yaml_parser_t) bool {\n\n\tsimple_key := &parser.simple_keys[len(parser.simple_keys)-1]\n\n\t// Have we found a simple key?\n\tif valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok {\n\t\treturn false\n\n\t} else if valid {\n\n\t\t// Create the KEY token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_KEY_TOKEN,\n\t\t\tstart_mark: simple_key.mark,\n\t\t\tend_mark:   simple_key.mark,\n\t\t}\n\t\tyaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token)\n\n\t\t// In the block context, we may need to add the BLOCK-MAPPING-START token.\n\t\tif !yaml_parser_roll_indent(parser, simple_key.mark.column,\n\t\t\tsimple_key.token_number,\n\t\t\tyaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Remove the simple key.\n\t\tsimple_key.possible = false\n\t\tdelete(parser.simple_keys_by_tok, simple_key.token_number)\n\n\t\t// A simple key cannot follow another simple key.\n\t\tparser.simple_key_allowed = false\n\n\t} else {\n\t\t// The ':' indicator follows a complex key.\n\n\t\t// In the block context, extra checks are required.\n\t\tif parser.flow_level == 0 {\n\n\t\t\t// Check if we are allowed to start a complex value.\n\t\t\tif !parser.simple_key_allowed {\n\t\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\t\"mapping values are not allowed in this context\")\n\t\t\t}\n\n\t\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Simple keys after ':' are allowed in the block context.\n\t\tparser.simple_key_allowed = parser.flow_level == 0\n\t}\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the VALUE token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_VALUE_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the ALIAS or ANCHOR token.\nfunc yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// An anchor or an alias could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow an anchor or an alias.\n\tparser.simple_key_allowed = false\n\n\t// Create the ALIAS or ANCHOR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_anchor(parser, &token, typ) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the TAG token.\nfunc yaml_parser_fetch_tag(parser *yaml_parser_t) bool {\n\t// A tag could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a tag.\n\tparser.simple_key_allowed = false\n\n\t// Create the TAG token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_tag(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens.\nfunc yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool {\n\t// Remove any potential simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow a block scalar.\n\tparser.simple_key_allowed = true\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_block_scalar(parser, &token, literal) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens.\nfunc yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_flow_scalar(parser, &token, single) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,plain) token.\nfunc yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_plain_scalar(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Eat whitespaces and comments until the next token is found.\nfunc yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool {\n\n\t// Until the next token is not found.\n\tfor {\n\t\t// Allow the BOM mark to start a line.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t}\n\n\t\t// Eat whitespaces.\n\t\t// Tabs are allowed:\n\t\t//  - in the flow context\n\t\t//  - in the block context, but not at the beginning of the line or\n\t\t//  after '-', '?', or ':' (complex value).\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\\t') {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Eat a comment until a line break.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\tskip(parser)\n\t\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If it is a line break, eat it.\n\t\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tskip_line(parser)\n\n\t\t\t// In the block context, a new line may start a simple key.\n\t\t\tif parser.flow_level == 0 {\n\t\t\t\tparser.simple_key_allowed = true\n\t\t\t}\n\t\t} else {\n\t\t\tbreak // We have found a token.\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token.\n//\n// Scope:\n//      %YAML    1.1    # a comment \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Eat '%'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the directive name.\n\tvar name []byte\n\tif !yaml_parser_scan_directive_name(parser, start_mark, &name) {\n\t\treturn false\n\t}\n\n\t// Is it a YAML directive?\n\tif bytes.Equal(name, []byte(\"YAML\")) {\n\t\t// Scan the VERSION directive value.\n\t\tvar major, minor int8\n\t\tif !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a VERSION-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_VERSION_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tmajor:      major,\n\t\t\tminor:      minor,\n\t\t}\n\n\t\t// Is it a TAG directive?\n\t} else if bytes.Equal(name, []byte(\"TAG\")) {\n\t\t// Scan the TAG directive value.\n\t\tvar handle, prefix []byte\n\t\tif !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a TAG-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_TAG_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tvalue:      handle,\n\t\t\tprefix:     prefix,\n\t\t}\n\n\t\t// Unknown directive.\n\t} else {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unknown directive name\")\n\t\treturn false\n\t}\n\n\t// Eat the rest of the line including any comments.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\treturn true\n}\n\n// Scan the directive name.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//       ^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//       ^^^\n//\nfunc yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool {\n\t// Consume the directive name.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tvar s []byte\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the name is empty.\n\tif len(s) == 0 {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"could not find expected directive name\")\n\t\treturn false\n\t}\n\n\t// Check for an blank character after the name.\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unexpected non-alphabetical character\")\n\t\treturn false\n\t}\n\t*name = s\n\treturn true\n}\n\n// Scan the value of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//           ^^^^^^\nfunc yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool {\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Consume the major version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, major) {\n\t\treturn false\n\t}\n\n\t// Eat '.'.\n\tif parser.buffer[parser.buffer_pos] != '.' {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected digit or '.' character\")\n\t}\n\n\tskip(parser)\n\n\t// Consume the minor version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, minor) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nconst max_number_length = 2\n\n// Scan the version number of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//              ^\n//      %YAML   1.1     # a comment \\n\n//                ^\nfunc yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool {\n\n\t// Repeat while the next character is digit.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar value, length int8\n\tfor is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Check if the number is too long.\n\t\tlength++\n\t\tif length > max_number_length {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\t\tstart_mark, \"found extremely long version number\")\n\t\t}\n\t\tvalue = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos))\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the number was present.\n\tif length == 0 {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected version number\")\n\t}\n\t*number = value\n\treturn true\n}\n\n// Scan the value of a TAG-DIRECTIVE token.\n//\n// Scope:\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool {\n\tvar handle_value, prefix_value []byte\n\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a handle.\n\tif !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace\")\n\t\treturn false\n\t}\n\n\t// Eat whitespaces.\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a prefix.\n\tif !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace or line break.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\t*handle = handle_value\n\t*prefix = prefix_value\n\treturn true\n}\n\nfunc yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool {\n\tvar s []byte\n\n\t// Eat the indicator character.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the value.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tend_mark := parser.mark\n\n\t/*\n\t * Check if length of the anchor is greater than 0 and it is followed by\n\t * a whitespace character or one of the indicators:\n\t *\n\t *      '?', ':', ',', ']', '}', '%', '@', '`'.\n\t */\n\n\tif len(s) == 0 ||\n\t\t!(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '`') {\n\t\tcontext := \"while scanning an alias\"\n\t\tif typ == yaml_ANCHOR_TOKEN {\n\t\t\tcontext = \"while scanning an anchor\"\n\t\t}\n\t\tyaml_parser_set_scanner_error(parser, context, start_mark,\n\t\t\t\"did not find expected alphabetic or numeric character\")\n\t\treturn false\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t}\n\n\treturn true\n}\n\n/*\n * Scan a TAG token.\n */\n\nfunc yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool {\n\tvar handle, suffix []byte\n\n\tstart_mark := parser.mark\n\n\t// Check if the tag is in the canonical form.\n\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\treturn false\n\t}\n\n\tif parser.buffer[parser.buffer_pos+1] == '<' {\n\t\t// Keep the handle as ''\n\n\t\t// Eat '!<'\n\t\tskip(parser)\n\t\tskip(parser)\n\n\t\t// Consume the tag value.\n\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for '>' and eat it.\n\t\tif parser.buffer[parser.buffer_pos] != '>' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\t\tstart_mark, \"did not find the expected '>'\")\n\t\t\treturn false\n\t\t}\n\n\t\tskip(parser)\n\t} else {\n\t\t// The tag has either the '!suffix' or the '!handle!suffix' form.\n\n\t\t// First, try to scan a handle.\n\t\tif !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if it is, indeed, handle.\n\t\tif handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' {\n\t\t\t// Scan the suffix now.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\t// It wasn't a handle after all.  Scan the rest of the tag.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Set the handle to '!'.\n\t\t\thandle = []byte{'!'}\n\n\t\t\t// A special case: the '!' tag.  Set the handle to '' and the\n\t\t\t// suffix to '!'.\n\t\t\tif len(suffix) == 0 {\n\t\t\t\thandle, suffix = suffix, handle\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check the character which ends the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_TAG_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      handle,\n\t\tsuffix:     suffix,\n\t}\n\treturn true\n}\n\n// Scan a tag handle.\nfunc yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool {\n\t// Check the initial '!' character.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif parser.buffer[parser.buffer_pos] != '!' {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected '!'\")\n\t\treturn false\n\t}\n\n\tvar s []byte\n\n\t// Copy the '!' character.\n\ts = read(parser, s)\n\n\t// Copy all subsequent alphabetical and numerical characters.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the trailing character is '!' and copy it.\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\ts = read(parser, s)\n\t} else {\n\t\t// It's either the '!' tag or not really a tag handle.  If it's a %TAG\n\t\t// directive, it's an error.  If it's a tag token, it must be a part of URI.\n\t\tif directive && string(s) != \"!\" {\n\t\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find expected '!'\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\t*handle = s\n\treturn true\n}\n\n// Scan a tag.\nfunc yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool {\n\t//size_t length = head ? strlen((char *)head) : 0\n\tvar s []byte\n\thasTag := len(head) > 0\n\n\t// Copy the head if needed.\n\t//\n\t// Note that we don't copy the leading '!' character.\n\tif len(head) > 1 {\n\t\ts = append(s, head[1:]...)\n\t}\n\n\t// Scan the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// The set of characters that may appear in URI is as follows:\n\t//\n\t//      '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&',\n\t//      '=', '+', '$', ',', '.', '!', '~', '*', '\\'', '(', ')', '[', ']',\n\t//      '%'.\n\t// [Go] Convert this into more reasonable logic.\n\tfor is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' ||\n\t\tparser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' ||\n\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' ||\n\t\tparser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' ||\n\t\tparser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' ||\n\t\tparser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' ||\n\t\tparser.buffer[parser.buffer_pos] == '%' {\n\t\t// Check if it is a URI-escape sequence.\n\t\tif parser.buffer[parser.buffer_pos] == '%' {\n\t\t\tif !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\ts = read(parser, s)\n\t\t}\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\thasTag = true\n\t}\n\n\tif !hasTag {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected tag URI\")\n\t\treturn false\n\t}\n\t*uri = s\n\treturn true\n}\n\n// Decode an URI-escape sequence corresponding to a single UTF-8 character.\nfunc yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool {\n\n\t// Decode the required number of characters.\n\tw := 1024\n\tfor w > 0 {\n\t\t// Check for a URI-escaped octet.\n\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\treturn false\n\t\t}\n\n\t\tif !(parser.buffer[parser.buffer_pos] == '%' &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+1) &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+2)) {\n\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find URI escaped octet\")\n\t\t}\n\n\t\t// Get the octet.\n\t\toctet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2))\n\n\t\t// If it is the leading octet, determine the length of the UTF-8 sequence.\n\t\tif w == 1024 {\n\t\t\tw = width(octet)\n\t\t\tif w == 0 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect leading UTF-8 octet\")\n\t\t\t}\n\t\t} else {\n\t\t\t// Check if the trailing octet is correct.\n\t\t\tif octet&0xC0 != 0x80 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect trailing UTF-8 octet\")\n\t\t\t}\n\t\t}\n\n\t\t// Copy the octet and move the pointers.\n\t\t*s = append(*s, octet)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tw--\n\t}\n\treturn true\n}\n\n// Scan a block scalar.\nfunc yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool {\n\t// Eat the indicator '|' or '>'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the additional block scalar indicators.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check for a chomping indicator.\n\tvar chomping, increment int\n\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t// Set the chomping method and eat the indicator.\n\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\tchomping = +1\n\t\t} else {\n\t\t\tchomping = -1\n\t\t}\n\t\tskip(parser)\n\n\t\t// Check for an indentation indicator.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif is_digit(parser.buffer, parser.buffer_pos) {\n\t\t\t// Check that the indentation is greater than 0.\n\t\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Get the indentation level and eat the indicator.\n\t\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\t\tskip(parser)\n\t\t}\n\n\t} else if is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Do the same as above, but in the opposite order.\n\n\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\treturn false\n\t\t}\n\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\tskip(parser)\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\t\tchomping = +1\n\t\t\t} else {\n\t\t\t\tchomping = -1\n\t\t\t}\n\t\t\tskip(parser)\n\t\t}\n\t}\n\n\t// Eat whitespaces and comments to the end of the line.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\tend_mark := parser.mark\n\n\t// Set the indentation level if it was specified.\n\tvar indent int\n\tif increment > 0 {\n\t\tif parser.indent >= 0 {\n\t\t\tindent = parser.indent + increment\n\t\t} else {\n\t\t\tindent = increment\n\t\t}\n\t}\n\n\t// Scan the leading line breaks and determine the indentation level if needed.\n\tvar s, leading_break, trailing_breaks []byte\n\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\treturn false\n\t}\n\n\t// Scan the block scalar content.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar leading_blank, trailing_blank bool\n\tfor parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) {\n\t\t// We are at the beginning of a non-empty line.\n\n\t\t// Is it a trailing whitespace?\n\t\ttrailing_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Check if we need to fold the leading line break.\n\t\tif !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t// Do we need to join the lines by space?\n\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\ts = append(s, ' ')\n\t\t\t}\n\t\t} else {\n\t\t\ts = append(s, leading_break...)\n\t\t}\n\t\tleading_break = leading_break[:0]\n\n\t\t// Append the remaining line breaks.\n\t\ts = append(s, trailing_breaks...)\n\t\ttrailing_breaks = trailing_breaks[:0]\n\n\t\t// Is it a leading whitespace?\n\t\tleading_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Consume the current line.\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\ts = read(parser, s)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\n\t\tleading_break = read_line(parser, leading_break)\n\n\t\t// Eat the following indentation spaces and line breaks.\n\t\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Chomp the tail.\n\tif chomping != -1 {\n\t\ts = append(s, leading_break...)\n\t}\n\tif chomping == 1 {\n\t\ts = append(s, trailing_breaks...)\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_LITERAL_SCALAR_STYLE,\n\t}\n\tif !literal {\n\t\ttoken.style = yaml_FOLDED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan indentation spaces and line breaks for a block scalar.  Determine the\n// indentation level if needed.\nfunc yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool {\n\t*end_mark = parser.mark\n\n\t// Eat the indentation spaces and line breaks.\n\tmax_indent := 0\n\tfor {\n\t\t// Eat the indentation spaces.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tfor (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif parser.mark.column > max_indent {\n\t\t\tmax_indent = parser.mark.column\n\t\t}\n\n\t\t// Check for a tab character messing the indentation.\n\t\tif (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found a tab character where an indentation space is expected\")\n\t\t}\n\n\t\t// Have we found a non-empty line?\n\t\tif !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\t// [Go] Should really be returning breaks instead.\n\t\t*breaks = read_line(parser, *breaks)\n\t\t*end_mark = parser.mark\n\t}\n\n\t// Determine the indentation level if needed.\n\tif *indent == 0 {\n\t\t*indent = max_indent\n\t\tif *indent < parser.indent+1 {\n\t\t\t*indent = parser.indent + 1\n\t\t}\n\t\tif *indent < 1 {\n\t\t\t*indent = 1\n\t\t}\n\t}\n\treturn true\n}\n\n// Scan a quoted scalar.\nfunc yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool {\n\t// Eat the left quote.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the content of the quoted scalar.\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tfor {\n\t\t// Check that there are no document indicators at the beginning of the line.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected document indicator\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for EOF.\n\t\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected end of stream\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tleading_blanks := false\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\t\tif single && parser.buffer[parser.buffer_pos] == '\\'' && parser.buffer[parser.buffer_pos+1] == '\\'' {\n\t\t\t\t// Is is an escaped single quote.\n\t\t\t\ts = append(s, '\\'')\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t} else if single && parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\t// It is a right single quote.\n\t\t\t\tbreak\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\t// It is a right double quote.\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' && is_break(parser.buffer, parser.buffer_pos+1) {\n\t\t\t\t// It is an escaped line break.\n\t\t\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip(parser)\n\t\t\t\tskip_line(parser)\n\t\t\t\tleading_blanks = true\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' {\n\t\t\t\t// It is an escape sequence.\n\t\t\t\tcode_length := 0\n\n\t\t\t\t// Check the escape character.\n\t\t\t\tswitch parser.buffer[parser.buffer_pos+1] {\n\t\t\t\tcase '0':\n\t\t\t\t\ts = append(s, 0)\n\t\t\t\tcase 'a':\n\t\t\t\t\ts = append(s, '\\x07')\n\t\t\t\tcase 'b':\n\t\t\t\t\ts = append(s, '\\x08')\n\t\t\t\tcase 't', '\\t':\n\t\t\t\t\ts = append(s, '\\x09')\n\t\t\t\tcase 'n':\n\t\t\t\t\ts = append(s, '\\x0A')\n\t\t\t\tcase 'v':\n\t\t\t\t\ts = append(s, '\\x0B')\n\t\t\t\tcase 'f':\n\t\t\t\t\ts = append(s, '\\x0C')\n\t\t\t\tcase 'r':\n\t\t\t\t\ts = append(s, '\\x0D')\n\t\t\t\tcase 'e':\n\t\t\t\t\ts = append(s, '\\x1B')\n\t\t\t\tcase ' ':\n\t\t\t\t\ts = append(s, '\\x20')\n\t\t\t\tcase '\"':\n\t\t\t\t\ts = append(s, '\"')\n\t\t\t\tcase '\\'':\n\t\t\t\t\ts = append(s, '\\'')\n\t\t\t\tcase '\\\\':\n\t\t\t\t\ts = append(s, '\\\\')\n\t\t\t\tcase 'N': // NEL (#x85)\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\x85')\n\t\t\t\tcase '_': // #xA0\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\xA0')\n\t\t\t\tcase 'L': // LS (#x2028)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA8')\n\t\t\t\tcase 'P': // PS (#x2029)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA9')\n\t\t\t\tcase 'x':\n\t\t\t\t\tcode_length = 2\n\t\t\t\tcase 'u':\n\t\t\t\t\tcode_length = 4\n\t\t\t\tcase 'U':\n\t\t\t\t\tcode_length = 8\n\t\t\t\tdefault:\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\tstart_mark, \"found unknown escape character\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t\t// Consume an arbitrary escape code.\n\t\t\t\tif code_length > 0 {\n\t\t\t\t\tvar value int\n\n\t\t\t\t\t// Scan the character value.\n\t\t\t\t\tif parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tif !is_hex(parser.buffer, parser.buffer_pos+k) {\n\t\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\t\tstart_mark, \"did not find expected hexdecimal number\")\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check the value and write the character.\n\t\t\t\t\tif (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF {\n\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\tstart_mark, \"found invalid Unicode character escape code\")\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tif value <= 0x7F {\n\t\t\t\t\t\ts = append(s, byte(value))\n\t\t\t\t\t} else if value <= 0x7FF {\n\t\t\t\t\t\ts = append(s, byte(0xC0+(value>>6)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t\t\ts = append(s, byte(0xE0+(value>>12)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, byte(0xF0+(value>>18)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>12)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Advance the pointer.\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tskip(parser)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// It is a non-escaped non-blank character.\n\t\t\t\ts = read(parser, s)\n\t\t\t}\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if we are at the end of the scalar.\n\t\tif single {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Join the whitespaces or fold line breaks.\n\t\tif leading_blanks {\n\t\t\t// Do we need to fold line breaks?\n\t\t\tif len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts = append(s, leading_break...)\n\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t}\n\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\tleading_break = leading_break[:0]\n\t\t} else {\n\t\t\ts = append(s, whitespaces...)\n\t\t\twhitespaces = whitespaces[:0]\n\t\t}\n\t}\n\n\t// Eat the right quote.\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_SINGLE_QUOTED_SCALAR_STYLE,\n\t}\n\tif !single {\n\t\ttoken.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan a plain scalar.\nfunc yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool {\n\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tvar leading_blanks bool\n\tvar indent = parser.indent + 1\n\n\tstart_mark := parser.mark\n\tend_mark := parser.mark\n\n\t// Consume the content of the plain scalar.\n\tfor {\n\t\t// Check for a document indicator.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Check for a comment.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\n\t\t\t// Check for indicators that may end a plain scalar.\n\t\t\tif (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) ||\n\t\t\t\t(parser.flow_level > 0 &&\n\t\t\t\t\t(parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '}')) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we need to join whitespaces and breaks.\n\t\t\tif leading_blanks || len(whitespaces) > 0 {\n\t\t\t\tif leading_blanks {\n\t\t\t\t\t// Do we need to fold line breaks?\n\t\t\t\t\tif leading_break[0] == '\\n' {\n\t\t\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, leading_break...)\n\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t}\n\t\t\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\t\t\tleading_break = leading_break[:0]\n\t\t\t\t\tleading_blanks = false\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, whitespaces...)\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Copy the character.\n\t\t\ts = read(parser, s)\n\n\t\t\tend_mark = parser.mark\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Is it the end?\n\t\tif !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\n\t\t\t\t// Check for tab characters that abuse indentation.\n\t\t\t\tif leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a plain scalar\",\n\t\t\t\t\t\tstart_mark, \"found a tab character that violates indentation\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check indentation level.\n\t\tif parser.flow_level == 0 && parser.mark.column < indent {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_PLAIN_SCALAR_STYLE,\n\t}\n\n\t// Note that we change the 'simple_key_allowed' flag.\n\tif leading_blanks {\n\t\tparser.simple_key_allowed = true\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/sorter.go",
    "content": "package yaml\n\nimport (\n\t\"reflect\"\n\t\"unicode\"\n)\n\ntype keyList []reflect.Value\n\nfunc (l keyList) Len() int      { return len(l) }\nfunc (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] }\nfunc (l keyList) Less(i, j int) bool {\n\ta := l[i]\n\tb := l[j]\n\tak := a.Kind()\n\tbk := b.Kind()\n\tfor (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() {\n\t\ta = a.Elem()\n\t\tak = a.Kind()\n\t}\n\tfor (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() {\n\t\tb = b.Elem()\n\t\tbk = b.Kind()\n\t}\n\taf, aok := keyFloat(a)\n\tbf, bok := keyFloat(b)\n\tif aok && bok {\n\t\tif af != bf {\n\t\t\treturn af < bf\n\t\t}\n\t\tif ak != bk {\n\t\t\treturn ak < bk\n\t\t}\n\t\treturn numLess(a, b)\n\t}\n\tif ak != reflect.String || bk != reflect.String {\n\t\treturn ak < bk\n\t}\n\tar, br := []rune(a.String()), []rune(b.String())\n\tfor i := 0; i < len(ar) && i < len(br); i++ {\n\t\tif ar[i] == br[i] {\n\t\t\tcontinue\n\t\t}\n\t\tal := unicode.IsLetter(ar[i])\n\t\tbl := unicode.IsLetter(br[i])\n\t\tif al && bl {\n\t\t\treturn ar[i] < br[i]\n\t\t}\n\t\tif al || bl {\n\t\t\treturn bl\n\t\t}\n\t\tvar ai, bi int\n\t\tvar an, bn int64\n\t\tif ar[i] == '0' || br[i] == '0' {\n\t\t\tfor j := i-1; j >= 0 && unicode.IsDigit(ar[j]); j-- {\n\t\t\t\tif ar[j] != '0' {\n\t\t\t\t\tan = 1\n\t\t\t\t\tbn = 1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ {\n\t\t\tan = an*10 + int64(ar[ai]-'0')\n\t\t}\n\t\tfor bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ {\n\t\t\tbn = bn*10 + int64(br[bi]-'0')\n\t\t}\n\t\tif an != bn {\n\t\t\treturn an < bn\n\t\t}\n\t\tif ai != bi {\n\t\t\treturn ai < bi\n\t\t}\n\t\treturn ar[i] < br[i]\n\t}\n\treturn len(ar) < len(br)\n}\n\n// keyFloat returns a float value for v if it is a number/bool\n// and whether it is a number/bool or not.\nfunc keyFloat(v reflect.Value) (f float64, ok bool) {\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn float64(v.Int()), true\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float(), true\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn float64(v.Uint()), true\n\tcase reflect.Bool:\n\t\tif v.Bool() {\n\t\t\treturn 1, true\n\t\t}\n\t\treturn 0, true\n\t}\n\treturn 0, false\n}\n\n// numLess returns whether a < b.\n// a and b must necessarily have the same kind.\nfunc numLess(a, b reflect.Value) bool {\n\tswitch a.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn a.Int() < b.Int()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn a.Float() < b.Float()\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Bool:\n\t\treturn !a.Bool() && b.Bool()\n\t}\n\tpanic(\"not a number\")\n}\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/writerc.go",
    "content": "package yaml\n\n// Set the writer error and return false.\nfunc yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_WRITER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Flush the output buffer.\nfunc yaml_emitter_flush(emitter *yaml_emitter_t) bool {\n\tif emitter.write_handler == nil {\n\t\tpanic(\"write handler not set\")\n\t}\n\n\t// Check if the buffer is empty.\n\tif emitter.buffer_pos == 0 {\n\t\treturn true\n\t}\n\n\tif err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {\n\t\treturn yaml_emitter_set_writer_error(emitter, \"write error: \"+err.Error())\n\t}\n\temitter.buffer_pos = 0\n\treturn true\n}\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/yaml.go",
    "content": "// Package yaml implements YAML support for the Go language.\n//\n// Source code and other details for the project are available at GitHub:\n//\n//   https://github.com/yaml/go-yaml\n//\npackage yaml\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// MapSlice encodes and decodes as a YAML map.\n// The order of keys is preserved when encoding and decoding.\ntype MapSlice []MapItem\n\n// MapItem is an item in a MapSlice.\ntype MapItem struct {\n\tKey, Value interface{}\n}\n\n// The Unmarshaler interface may be implemented by types to customize their\n// behavior when being unmarshaled from a YAML document. The UnmarshalYAML\n// method receives a function that may be called to unmarshal the original\n// YAML value into a field or variable. It is safe to call the unmarshal\n// function parameter more than once if necessary.\ntype Unmarshaler interface {\n\tUnmarshalYAML(unmarshal func(interface{}) error) error\n}\n\n// The Marshaler interface may be implemented by types to customize their\n// behavior when being marshaled into a YAML document. The returned value\n// is marshaled in place of the original value implementing Marshaler.\n//\n// If an error is returned by MarshalYAML, the marshaling procedure stops\n// and returns with the provided error.\ntype Marshaler interface {\n\tMarshalYAML() (interface{}, error)\n}\n\n// Unmarshal decodes the first document found within the in byte slice\n// and assigns decoded values into the out value.\n//\n// Maps and pointers (to a struct, string, int, etc) are accepted as out\n// values. If an internal pointer within a struct is not initialized,\n// the yaml package will initialize it if necessary for unmarshalling\n// the provided data. The out parameter must not be nil.\n//\n// The type of the decoded values should be compatible with the respective\n// values in out. If one or more values cannot be decoded due to a type\n// mismatches, decoding continues partially until the end of the YAML\n// content, and a *yaml.TypeError is returned with details for all\n// missed values.\n//\n// Struct fields are only unmarshalled if they are exported (have an\n// upper case first letter), and are unmarshalled using the field name\n// lowercased as the default key. Custom keys may be defined via the\n// \"yaml\" name in the field tag: the content preceding the first comma\n// is used as the key, and the following comma-separated options are\n// used to tweak the marshalling process (see Marshal).\n// Conflicting names result in a runtime error.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     var t T\n//     yaml.Unmarshal([]byte(\"a: 1\\nb: 2\"), &t)\n//\n// See the documentation of Marshal for the format of tags and a list of\n// supported tag options.\n//\nfunc Unmarshal(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, false)\n}\n\n// UnmarshalStrict is like Unmarshal except that any fields that are found\n// in the data that do not have corresponding struct members, or mapping\n// keys that are duplicates, will result in\n// an error.\nfunc UnmarshalStrict(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, true)\n}\n\n// A Decoder reads and decodes YAML values from an input stream.\ntype Decoder struct {\n\tstrict bool\n\tparser *parser\n}\n\n// NewDecoder returns a new decoder that reads from r.\n//\n// The decoder introduces its own buffering and may read\n// data from r beyond the YAML values requested.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn &Decoder{\n\t\tparser: newParserFromReader(r),\n\t}\n}\n\n// SetStrict sets whether strict decoding behaviour is enabled when\n// decoding items in the data (see UnmarshalStrict). By default, decoding is not strict.\nfunc (dec *Decoder) SetStrict(strict bool) {\n\tdec.strict = strict\n}\n\n// Decode reads the next YAML-encoded value from its input\n// and stores it in the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (dec *Decoder) Decode(v interface{}) (err error) {\n\td := newDecoder(dec.strict)\n\tdefer handleErr(&err)\n\tnode := dec.parser.parse()\n\tif node == nil {\n\t\treturn io.EOF\n\t}\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(node, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\nfunc unmarshal(in []byte, out interface{}, strict bool) (err error) {\n\tdefer handleErr(&err)\n\td := newDecoder(strict)\n\tp := newParser(in)\n\tdefer p.destroy()\n\tnode := p.parse()\n\tif node != nil {\n\t\tv := reflect.ValueOf(out)\n\t\tif v.Kind() == reflect.Ptr && !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t\td.unmarshal(node, v)\n\t}\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Marshal serializes the value provided into a YAML document. The structure\n// of the generated document will reflect the structure of the value itself.\n// Maps and pointers (to struct, string, int, etc) are accepted as the in value.\n//\n// Struct fields are only marshalled if they are exported (have an upper case\n// first letter), and are marshalled using the field name lowercased as the\n// default key. Custom keys may be defined via the \"yaml\" name in the field\n// tag: the content preceding the first comma is used as the key, and the\n// following comma-separated options are used to tweak the marshalling process.\n// Conflicting names result in a runtime error.\n//\n// The field tag format accepted is:\n//\n//     `(...) yaml:\"[<key>][,<flag1>[,<flag2>]]\" (...)`\n//\n// The following flags are currently supported:\n//\n//     omitempty    Only include the field if it's not set to the zero\n//                  value for the type or to empty slices or maps.\n//                  Zero valued structs will be omitted if all their public\n//                  fields are zero, unless they implement an IsZero\n//                  method (see the IsZeroer interface type), in which\n//                  case the field will be excluded if IsZero returns true.\n//\n//     flow         Marshal using a flow style (useful for structs,\n//                  sequences and maps).\n//\n//     inline       Inline the field, which must be a struct or a map,\n//                  causing all of its fields or keys to be processed as if\n//                  they were part of the outer struct. For maps, keys must\n//                  not conflict with the yaml keys of other struct fields.\n//\n// In addition, if the key is \"-\", the field is ignored.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     yaml.Marshal(&T{B: 2}) // Returns \"b: 2\\n\"\n//     yaml.Marshal(&T{F: 1}} // Returns \"a: 1\\nb: 0\\n\"\n//\nfunc Marshal(in interface{}) (out []byte, err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(in))\n\te.finish()\n\tout = e.out\n\treturn\n}\n\n// An Encoder writes YAML values to an output stream.\ntype Encoder struct {\n\tencoder *encoder\n}\n\n// NewEncoder returns a new encoder that writes to w.\n// The Encoder should be closed after use to flush all data\n// to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn &Encoder{\n\t\tencoder: newEncoderWithWriter(w),\n\t}\n}\n\n// Encode writes the YAML encoding of v to the stream.\n// If multiple items are encoded to the stream, the\n// second and subsequent document will be preceded\n// with a \"---\" document separator, but the first will not.\n//\n// See the documentation for Marshal for details about the conversion of Go\n// values to YAML.\nfunc (e *Encoder) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te.encoder.marshalDoc(\"\", reflect.ValueOf(v))\n\treturn nil\n}\n\n// Close closes the encoder by writing any remaining data.\n// It does not write a stream terminating string \"...\".\nfunc (e *Encoder) Close() (err error) {\n\tdefer handleErr(&err)\n\te.encoder.finish()\n\treturn nil\n}\n\nfunc handleErr(err *error) {\n\tif v := recover(); v != nil {\n\t\tif e, ok := v.(yamlError); ok {\n\t\t\t*err = e.err\n\t\t} else {\n\t\t\tpanic(v)\n\t\t}\n\t}\n}\n\ntype yamlError struct {\n\terr error\n}\n\nfunc fail(err error) {\n\tpanic(yamlError{err})\n}\n\nfunc failf(format string, args ...interface{}) {\n\tpanic(yamlError{fmt.Errorf(\"yaml: \"+format, args...)})\n}\n\n// A TypeError is returned by Unmarshal when one or more fields in\n// the YAML document cannot be properly decoded into the requested\n// types. When this error is returned, the value is still\n// unmarshaled partially.\ntype TypeError struct {\n\tErrors []string\n}\n\nfunc (e *TypeError) Error() string {\n\treturn fmt.Sprintf(\"yaml: unmarshal errors:\\n  %s\", strings.Join(e.Errors, \"\\n  \"))\n}\n\n// --------------------------------------------------------------------------\n// Maintain a mapping of keys to structure field indexes\n\n// The code in this section was copied from mgo/bson.\n\n// structInfo holds details for the serialization of fields of\n// a given struct.\ntype structInfo struct {\n\tFieldsMap  map[string]fieldInfo\n\tFieldsList []fieldInfo\n\n\t// InlineMap is the number of the field in the struct that\n\t// contains an ,inline map, or -1 if there's none.\n\tInlineMap int\n}\n\ntype fieldInfo struct {\n\tKey       string\n\tNum       int\n\tOmitEmpty bool\n\tFlow      bool\n\t// Id holds the unique field identifier, so we can cheaply\n\t// check for field duplicates without maintaining an extra map.\n\tId int\n\n\t// Inline holds the field index if the field is part of an inlined struct.\n\tInline []int\n}\n\nvar structMap = make(map[reflect.Type]*structInfo)\nvar fieldMapMutex sync.RWMutex\n\nfunc getStructInfo(st reflect.Type) (*structInfo, error) {\n\tfieldMapMutex.RLock()\n\tsinfo, found := structMap[st]\n\tfieldMapMutex.RUnlock()\n\tif found {\n\t\treturn sinfo, nil\n\t}\n\n\tn := st.NumField()\n\tfieldsMap := make(map[string]fieldInfo)\n\tfieldsList := make([]fieldInfo, 0, n)\n\tinlineMap := -1\n\tfor i := 0; i != n; i++ {\n\t\tfield := st.Field(i)\n\t\tif field.PkgPath != \"\" && !field.Anonymous {\n\t\t\tcontinue // Private field\n\t\t}\n\n\t\tinfo := fieldInfo{Num: i}\n\n\t\ttag := field.Tag.Get(\"yaml\")\n\t\tif tag == \"\" && strings.Index(string(field.Tag), \":\") < 0 {\n\t\t\ttag = string(field.Tag)\n\t\t}\n\t\tif tag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tinline := false\n\t\tfields := strings.Split(tag, \",\")\n\t\tif len(fields) > 1 {\n\t\t\tfor _, flag := range fields[1:] {\n\t\t\t\tswitch flag {\n\t\t\t\tcase \"omitempty\":\n\t\t\t\t\tinfo.OmitEmpty = true\n\t\t\t\tcase \"flow\":\n\t\t\t\t\tinfo.Flow = true\n\t\t\t\tcase \"inline\":\n\t\t\t\t\tinline = true\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, errors.New(fmt.Sprintf(\"Unsupported flag %q in tag %q of type %s\", flag, tag, st))\n\t\t\t\t}\n\t\t\t}\n\t\t\ttag = fields[0]\n\t\t}\n\n\t\tif inline {\n\t\t\tswitch field.Type.Kind() {\n\t\t\tcase reflect.Map:\n\t\t\t\tif inlineMap >= 0 {\n\t\t\t\t\treturn nil, errors.New(\"Multiple ,inline maps in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tif field.Type.Key() != reflect.TypeOf(\"\") {\n\t\t\t\t\treturn nil, errors.New(\"Option ,inline needs a map with string keys in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tinlineMap = info.Num\n\t\t\tcase reflect.Struct:\n\t\t\t\tsinfo, err := getStructInfo(field.Type)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tfor _, finfo := range sinfo.FieldsList {\n\t\t\t\t\tif _, found := fieldsMap[finfo.Key]; found {\n\t\t\t\t\t\tmsg := \"Duplicated key '\" + finfo.Key + \"' in struct \" + st.String()\n\t\t\t\t\t\treturn nil, errors.New(msg)\n\t\t\t\t\t}\n\t\t\t\t\tif finfo.Inline == nil {\n\t\t\t\t\t\tfinfo.Inline = []int{i, finfo.Num}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfinfo.Inline = append([]int{i}, finfo.Inline...)\n\t\t\t\t\t}\n\t\t\t\t\tfinfo.Id = len(fieldsList)\n\t\t\t\t\tfieldsMap[finfo.Key] = finfo\n\t\t\t\t\tfieldsList = append(fieldsList, finfo)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\t//return nil, errors.New(\"Option ,inline needs a struct value or map field\")\n\t\t\t\treturn nil, errors.New(\"Option ,inline needs a struct value field\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif tag != \"\" {\n\t\t\tinfo.Key = tag\n\t\t} else {\n\t\t\tinfo.Key = strings.ToLower(field.Name)\n\t\t}\n\n\t\tif _, found = fieldsMap[info.Key]; found {\n\t\t\tmsg := \"Duplicated key '\" + info.Key + \"' in struct \" + st.String()\n\t\t\treturn nil, errors.New(msg)\n\t\t}\n\n\t\tinfo.Id = len(fieldsList)\n\t\tfieldsList = append(fieldsList, info)\n\t\tfieldsMap[info.Key] = info\n\t}\n\n\tsinfo = &structInfo{\n\t\tFieldsMap:  fieldsMap,\n\t\tFieldsList: fieldsList,\n\t\tInlineMap:  inlineMap,\n\t}\n\n\tfieldMapMutex.Lock()\n\tstructMap[st] = sinfo\n\tfieldMapMutex.Unlock()\n\treturn sinfo, nil\n}\n\n// IsZeroer is used to check whether an object is zero to\n// determine whether it should be omitted when marshaling\n// with the omitempty flag. One notable implementation\n// is time.Time.\ntype IsZeroer interface {\n\tIsZero() bool\n}\n\nfunc isZero(v reflect.Value) bool {\n\tkind := v.Kind()\n\tif z, ok := v.Interface().(IsZeroer); ok {\n\t\tif (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn z.IsZero()\n\t}\n\tswitch kind {\n\tcase reflect.String:\n\t\treturn len(v.String()) == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflect.Slice:\n\t\treturn v.Len() == 0\n\tcase reflect.Map:\n\t\treturn v.Len() == 0\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Struct:\n\t\tvt := v.Type()\n\t\tfor i := v.NumField() - 1; i >= 0; i-- {\n\t\t\tif vt.Field(i).PkgPath != \"\" {\n\t\t\t\tcontinue // Private field\n\t\t\t}\n\t\t\tif !isZero(v.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n\n// FutureLineWrap globally disables line wrapping when encoding long strings.\n// This is a temporary and thus deprecated method introduced to faciliate\n// migration towards v3, which offers more control of line lengths on\n// individual encodings, and has a default matching the behavior introduced\n// by this function.\n//\n// The default formatting of v2 was erroneously changed in v2.3.0 and reverted\n// in v2.4.0, at which point this function was introduced to help migration.\nfunc FutureLineWrap() {\n\tdisableLineWrapping = true\n}\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/yamlh.go",
    "content": "package yaml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// The version directive data.\ntype yaml_version_directive_t struct {\n\tmajor int8 // The major version number.\n\tminor int8 // The minor version number.\n}\n\n// The tag directive data.\ntype yaml_tag_directive_t struct {\n\thandle []byte // The tag handle.\n\tprefix []byte // The tag prefix.\n}\n\ntype yaml_encoding_t int\n\n// The stream encoding.\nconst (\n\t// Let the parser choose the encoding.\n\tyaml_ANY_ENCODING yaml_encoding_t = iota\n\n\tyaml_UTF8_ENCODING    // The default UTF-8 encoding.\n\tyaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM.\n\tyaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM.\n)\n\ntype yaml_break_t int\n\n// Line break types.\nconst (\n\t// Let the parser choose the break type.\n\tyaml_ANY_BREAK yaml_break_t = iota\n\n\tyaml_CR_BREAK   // Use CR for line breaks (Mac style).\n\tyaml_LN_BREAK   // Use LN for line breaks (Unix style).\n\tyaml_CRLN_BREAK // Use CR LN for line breaks (DOS style).\n)\n\ntype yaml_error_type_t int\n\n// Many bad things could happen with the parser and emitter.\nconst (\n\t// No error is produced.\n\tyaml_NO_ERROR yaml_error_type_t = iota\n\n\tyaml_MEMORY_ERROR   // Cannot allocate or reallocate a block of memory.\n\tyaml_READER_ERROR   // Cannot read or decode the input stream.\n\tyaml_SCANNER_ERROR  // Cannot scan the input stream.\n\tyaml_PARSER_ERROR   // Cannot parse the input stream.\n\tyaml_COMPOSER_ERROR // Cannot compose a YAML document.\n\tyaml_WRITER_ERROR   // Cannot write to the output stream.\n\tyaml_EMITTER_ERROR  // Cannot emit a YAML stream.\n)\n\n// The pointer position.\ntype yaml_mark_t struct {\n\tindex  int // The position index.\n\tline   int // The position line.\n\tcolumn int // The position column.\n}\n\n// Node Styles\n\ntype yaml_style_t int8\n\ntype yaml_scalar_style_t yaml_style_t\n\n// Scalar styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SCALAR_STYLE yaml_scalar_style_t = iota\n\n\tyaml_PLAIN_SCALAR_STYLE         // The plain scalar style.\n\tyaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style.\n\tyaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style.\n\tyaml_LITERAL_SCALAR_STYLE       // The literal scalar style.\n\tyaml_FOLDED_SCALAR_STYLE        // The folded scalar style.\n)\n\ntype yaml_sequence_style_t yaml_style_t\n\n// Sequence styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota\n\n\tyaml_BLOCK_SEQUENCE_STYLE // The block sequence style.\n\tyaml_FLOW_SEQUENCE_STYLE  // The flow sequence style.\n)\n\ntype yaml_mapping_style_t yaml_style_t\n\n// Mapping styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota\n\n\tyaml_BLOCK_MAPPING_STYLE // The block mapping style.\n\tyaml_FLOW_MAPPING_STYLE  // The flow mapping style.\n)\n\n// Tokens\n\ntype yaml_token_type_t int\n\n// Token types.\nconst (\n\t// An empty token.\n\tyaml_NO_TOKEN yaml_token_type_t = iota\n\n\tyaml_STREAM_START_TOKEN // A STREAM-START token.\n\tyaml_STREAM_END_TOKEN   // A STREAM-END token.\n\n\tyaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token.\n\tyaml_TAG_DIRECTIVE_TOKEN     // A TAG-DIRECTIVE token.\n\tyaml_DOCUMENT_START_TOKEN    // A DOCUMENT-START token.\n\tyaml_DOCUMENT_END_TOKEN      // A DOCUMENT-END token.\n\n\tyaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token.\n\tyaml_BLOCK_MAPPING_START_TOKEN  // A BLOCK-SEQUENCE-END token.\n\tyaml_BLOCK_END_TOKEN            // A BLOCK-END token.\n\n\tyaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token.\n\tyaml_FLOW_SEQUENCE_END_TOKEN   // A FLOW-SEQUENCE-END token.\n\tyaml_FLOW_MAPPING_START_TOKEN  // A FLOW-MAPPING-START token.\n\tyaml_FLOW_MAPPING_END_TOKEN    // A FLOW-MAPPING-END token.\n\n\tyaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token.\n\tyaml_FLOW_ENTRY_TOKEN  // A FLOW-ENTRY token.\n\tyaml_KEY_TOKEN         // A KEY token.\n\tyaml_VALUE_TOKEN       // A VALUE token.\n\n\tyaml_ALIAS_TOKEN  // An ALIAS token.\n\tyaml_ANCHOR_TOKEN // An ANCHOR token.\n\tyaml_TAG_TOKEN    // A TAG token.\n\tyaml_SCALAR_TOKEN // A SCALAR token.\n)\n\nfunc (tt yaml_token_type_t) String() string {\n\tswitch tt {\n\tcase yaml_NO_TOKEN:\n\t\treturn \"yaml_NO_TOKEN\"\n\tcase yaml_STREAM_START_TOKEN:\n\t\treturn \"yaml_STREAM_START_TOKEN\"\n\tcase yaml_STREAM_END_TOKEN:\n\t\treturn \"yaml_STREAM_END_TOKEN\"\n\tcase yaml_VERSION_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_VERSION_DIRECTIVE_TOKEN\"\n\tcase yaml_TAG_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_TAG_DIRECTIVE_TOKEN\"\n\tcase yaml_DOCUMENT_START_TOKEN:\n\t\treturn \"yaml_DOCUMENT_START_TOKEN\"\n\tcase yaml_DOCUMENT_END_TOKEN:\n\t\treturn \"yaml_DOCUMENT_END_TOKEN\"\n\tcase yaml_BLOCK_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_BLOCK_SEQUENCE_START_TOKEN\"\n\tcase yaml_BLOCK_MAPPING_START_TOKEN:\n\t\treturn \"yaml_BLOCK_MAPPING_START_TOKEN\"\n\tcase yaml_BLOCK_END_TOKEN:\n\t\treturn \"yaml_BLOCK_END_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_START_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_END_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_END_TOKEN\"\n\tcase yaml_FLOW_MAPPING_START_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_START_TOKEN\"\n\tcase yaml_FLOW_MAPPING_END_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_END_TOKEN\"\n\tcase yaml_BLOCK_ENTRY_TOKEN:\n\t\treturn \"yaml_BLOCK_ENTRY_TOKEN\"\n\tcase yaml_FLOW_ENTRY_TOKEN:\n\t\treturn \"yaml_FLOW_ENTRY_TOKEN\"\n\tcase yaml_KEY_TOKEN:\n\t\treturn \"yaml_KEY_TOKEN\"\n\tcase yaml_VALUE_TOKEN:\n\t\treturn \"yaml_VALUE_TOKEN\"\n\tcase yaml_ALIAS_TOKEN:\n\t\treturn \"yaml_ALIAS_TOKEN\"\n\tcase yaml_ANCHOR_TOKEN:\n\t\treturn \"yaml_ANCHOR_TOKEN\"\n\tcase yaml_TAG_TOKEN:\n\t\treturn \"yaml_TAG_TOKEN\"\n\tcase yaml_SCALAR_TOKEN:\n\t\treturn \"yaml_SCALAR_TOKEN\"\n\t}\n\treturn \"<unknown token>\"\n}\n\n// The token structure.\ntype yaml_token_t struct {\n\t// The token type.\n\ttyp yaml_token_type_t\n\n\t// The start/end of the token.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The stream encoding (for yaml_STREAM_START_TOKEN).\n\tencoding yaml_encoding_t\n\n\t// The alias/anchor/scalar value or tag/tag directive handle\n\t// (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN).\n\tvalue []byte\n\n\t// The tag suffix (for yaml_TAG_TOKEN).\n\tsuffix []byte\n\n\t// The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN).\n\tprefix []byte\n\n\t// The scalar style (for yaml_SCALAR_TOKEN).\n\tstyle yaml_scalar_style_t\n\n\t// The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN).\n\tmajor, minor int8\n}\n\n// Events\n\ntype yaml_event_type_t int8\n\n// Event types.\nconst (\n\t// An empty event.\n\tyaml_NO_EVENT yaml_event_type_t = iota\n\n\tyaml_STREAM_START_EVENT   // A STREAM-START event.\n\tyaml_STREAM_END_EVENT     // A STREAM-END event.\n\tyaml_DOCUMENT_START_EVENT // A DOCUMENT-START event.\n\tyaml_DOCUMENT_END_EVENT   // A DOCUMENT-END event.\n\tyaml_ALIAS_EVENT          // An ALIAS event.\n\tyaml_SCALAR_EVENT         // A SCALAR event.\n\tyaml_SEQUENCE_START_EVENT // A SEQUENCE-START event.\n\tyaml_SEQUENCE_END_EVENT   // A SEQUENCE-END event.\n\tyaml_MAPPING_START_EVENT  // A MAPPING-START event.\n\tyaml_MAPPING_END_EVENT    // A MAPPING-END event.\n)\n\nvar eventStrings = []string{\n\tyaml_NO_EVENT:             \"none\",\n\tyaml_STREAM_START_EVENT:   \"stream start\",\n\tyaml_STREAM_END_EVENT:     \"stream end\",\n\tyaml_DOCUMENT_START_EVENT: \"document start\",\n\tyaml_DOCUMENT_END_EVENT:   \"document end\",\n\tyaml_ALIAS_EVENT:          \"alias\",\n\tyaml_SCALAR_EVENT:         \"scalar\",\n\tyaml_SEQUENCE_START_EVENT: \"sequence start\",\n\tyaml_SEQUENCE_END_EVENT:   \"sequence end\",\n\tyaml_MAPPING_START_EVENT:  \"mapping start\",\n\tyaml_MAPPING_END_EVENT:    \"mapping end\",\n}\n\nfunc (e yaml_event_type_t) String() string {\n\tif e < 0 || int(e) >= len(eventStrings) {\n\t\treturn fmt.Sprintf(\"unknown event %d\", e)\n\t}\n\treturn eventStrings[e]\n}\n\n// The event structure.\ntype yaml_event_t struct {\n\n\t// The event type.\n\ttyp yaml_event_type_t\n\n\t// The start and end of the event.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The document encoding (for yaml_STREAM_START_EVENT).\n\tencoding yaml_encoding_t\n\n\t// The version directive (for yaml_DOCUMENT_START_EVENT).\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives (for yaml_DOCUMENT_START_EVENT).\n\ttag_directives []yaml_tag_directive_t\n\n\t// The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT).\n\tanchor []byte\n\n\t// The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\ttag []byte\n\n\t// The scalar value (for yaml_SCALAR_EVENT).\n\tvalue []byte\n\n\t// Is the document start/end indicator implicit, or the tag optional?\n\t// (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT).\n\timplicit bool\n\n\t// Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT).\n\tquoted_implicit bool\n\n\t// The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\tstyle yaml_style_t\n}\n\nfunc (e *yaml_event_t) scalar_style() yaml_scalar_style_t     { return yaml_scalar_style_t(e.style) }\nfunc (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) }\nfunc (e *yaml_event_t) mapping_style() yaml_mapping_style_t   { return yaml_mapping_style_t(e.style) }\n\n// Nodes\n\nconst (\n\tyaml_NULL_TAG      = \"tag:yaml.org,2002:null\"      // The tag !!null with the only possible value: null.\n\tyaml_BOOL_TAG      = \"tag:yaml.org,2002:bool\"      // The tag !!bool with the values: true and false.\n\tyaml_STR_TAG       = \"tag:yaml.org,2002:str\"       // The tag !!str for string values.\n\tyaml_INT_TAG       = \"tag:yaml.org,2002:int\"       // The tag !!int for integer values.\n\tyaml_FLOAT_TAG     = \"tag:yaml.org,2002:float\"     // The tag !!float for float values.\n\tyaml_TIMESTAMP_TAG = \"tag:yaml.org,2002:timestamp\" // The tag !!timestamp for date and time values.\n\n\tyaml_SEQ_TAG = \"tag:yaml.org,2002:seq\" // The tag !!seq is used to denote sequences.\n\tyaml_MAP_TAG = \"tag:yaml.org,2002:map\" // The tag !!map is used to denote mapping.\n\n\t// Not in original libyaml.\n\tyaml_BINARY_TAG = \"tag:yaml.org,2002:binary\"\n\tyaml_MERGE_TAG  = \"tag:yaml.org,2002:merge\"\n\n\tyaml_DEFAULT_SCALAR_TAG   = yaml_STR_TAG // The default scalar tag is !!str.\n\tyaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq.\n\tyaml_DEFAULT_MAPPING_TAG  = yaml_MAP_TAG // The default mapping tag is !!map.\n)\n\ntype yaml_node_type_t int\n\n// Node types.\nconst (\n\t// An empty node.\n\tyaml_NO_NODE yaml_node_type_t = iota\n\n\tyaml_SCALAR_NODE   // A scalar node.\n\tyaml_SEQUENCE_NODE // A sequence node.\n\tyaml_MAPPING_NODE  // A mapping node.\n)\n\n// An element of a sequence node.\ntype yaml_node_item_t int\n\n// An element of a mapping node.\ntype yaml_node_pair_t struct {\n\tkey   int // The key of the element.\n\tvalue int // The value of the element.\n}\n\n// The node structure.\ntype yaml_node_t struct {\n\ttyp yaml_node_type_t // The node type.\n\ttag []byte           // The node tag.\n\n\t// The node data.\n\n\t// The scalar parameters (for yaml_SCALAR_NODE).\n\tscalar struct {\n\t\tvalue  []byte              // The scalar value.\n\t\tlength int                 // The length of the scalar value.\n\t\tstyle  yaml_scalar_style_t // The scalar style.\n\t}\n\n\t// The sequence parameters (for YAML_SEQUENCE_NODE).\n\tsequence struct {\n\t\titems_data []yaml_node_item_t    // The stack of sequence items.\n\t\tstyle      yaml_sequence_style_t // The sequence style.\n\t}\n\n\t// The mapping parameters (for yaml_MAPPING_NODE).\n\tmapping struct {\n\t\tpairs_data  []yaml_node_pair_t   // The stack of mapping pairs (key, value).\n\t\tpairs_start *yaml_node_pair_t    // The beginning of the stack.\n\t\tpairs_end   *yaml_node_pair_t    // The end of the stack.\n\t\tpairs_top   *yaml_node_pair_t    // The top of the stack.\n\t\tstyle       yaml_mapping_style_t // The mapping style.\n\t}\n\n\tstart_mark yaml_mark_t // The beginning of the node.\n\tend_mark   yaml_mark_t // The end of the node.\n\n}\n\n// The document structure.\ntype yaml_document_t struct {\n\n\t// The document nodes.\n\tnodes []yaml_node_t\n\n\t// The version directive.\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives.\n\ttag_directives_data  []yaml_tag_directive_t\n\ttag_directives_start int // The beginning of the tag directives list.\n\ttag_directives_end   int // The end of the tag directives list.\n\n\tstart_implicit int // Is the document start indicator implicit?\n\tend_implicit   int // Is the document end indicator implicit?\n\n\t// The start/end of the document.\n\tstart_mark, end_mark yaml_mark_t\n}\n\n// The prototype of a read handler.\n//\n// The read handler is called when the parser needs to read more bytes from the\n// source. The handler should write not more than size bytes to the buffer.\n// The number of written bytes should be set to the size_read variable.\n//\n// [in,out]   data        A pointer to an application data specified by\n//                        yaml_parser_set_input().\n// [out]      buffer      The buffer to write the data from the source.\n// [in]       size        The size of the buffer.\n// [out]      size_read   The actual number of bytes read from the source.\n//\n// On success, the handler should return 1.  If the handler failed,\n// the returned value should be 0. On EOF, the handler should set the\n// size_read to 0 and return 1.\ntype yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error)\n\n// This structure holds information about a potential simple key.\ntype yaml_simple_key_t struct {\n\tpossible     bool        // Is a simple key possible?\n\trequired     bool        // Is a simple key required?\n\ttoken_number int         // The number of the token.\n\tmark         yaml_mark_t // The position mark.\n}\n\n// The states of the parser.\ntype yaml_parser_state_t int\n\nconst (\n\tyaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota\n\n\tyaml_PARSE_IMPLICIT_DOCUMENT_START_STATE           // Expect the beginning of an implicit document.\n\tyaml_PARSE_DOCUMENT_START_STATE                    // Expect DOCUMENT-START.\n\tyaml_PARSE_DOCUMENT_CONTENT_STATE                  // Expect the content of a document.\n\tyaml_PARSE_DOCUMENT_END_STATE                      // Expect DOCUMENT-END.\n\tyaml_PARSE_BLOCK_NODE_STATE                        // Expect a block node.\n\tyaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence.\n\tyaml_PARSE_FLOW_NODE_STATE                         // Expect a flow node.\n\tyaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE        // Expect the first entry of a block sequence.\n\tyaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE              // Expect an entry of a block sequence.\n\tyaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE         // Expect an entry of an indentless sequence.\n\tyaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE           // Expect the first key of a block mapping.\n\tyaml_PARSE_BLOCK_MAPPING_KEY_STATE                 // Expect a block mapping key.\n\tyaml_PARSE_BLOCK_MAPPING_VALUE_STATE               // Expect a block mapping value.\n\tyaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE         // Expect the first entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE               // Expect an entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE   // Expect a key of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE   // Expect the and of an ordered mapping entry.\n\tyaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE            // Expect the first key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_KEY_STATE                  // Expect a key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_VALUE_STATE                // Expect a value of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE          // Expect an empty value of a flow mapping.\n\tyaml_PARSE_END_STATE                               // Expect nothing.\n)\n\nfunc (ps yaml_parser_state_t) String() string {\n\tswitch ps {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn \"yaml_PARSE_STREAM_START_STATE\"\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_CONTENT_STATE\"\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_END_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE\"\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE\"\n\tcase yaml_PARSE_END_STATE:\n\t\treturn \"yaml_PARSE_END_STATE\"\n\t}\n\treturn \"<unknown parser state>\"\n}\n\n// This structure holds aliases data.\ntype yaml_alias_data_t struct {\n\tanchor []byte      // The anchor.\n\tindex  int         // The node id.\n\tmark   yaml_mark_t // The anchor mark.\n}\n\n// The parser structure.\n//\n// All members are internal. Manage the structure using the\n// yaml_parser_ family of functions.\ntype yaml_parser_t struct {\n\n\t// Error handling\n\n\terror yaml_error_type_t // Error type.\n\n\tproblem string // Error description.\n\n\t// The byte about which the problem occurred.\n\tproblem_offset int\n\tproblem_value  int\n\tproblem_mark   yaml_mark_t\n\n\t// The error context.\n\tcontext      string\n\tcontext_mark yaml_mark_t\n\n\t// Reader stuff\n\n\tread_handler yaml_read_handler_t // Read handler.\n\n\tinput_reader io.Reader // File input data.\n\tinput        []byte    // String input data.\n\tinput_pos    int\n\n\teof bool // EOF flag\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\tunread int // The number of unread characters in the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The input encoding.\n\n\toffset int         // The offset of the current position (in bytes).\n\tmark   yaml_mark_t // The mark of the current position.\n\n\t// Scanner stuff\n\n\tstream_start_produced bool // Have we started to scan the input stream?\n\tstream_end_produced   bool // Have we reached the end of the input stream?\n\n\tflow_level int // The number of unclosed '[' and '{' indicators.\n\n\ttokens          []yaml_token_t // The tokens queue.\n\ttokens_head     int            // The head of the tokens queue.\n\ttokens_parsed   int            // The number of tokens fetched from the queue.\n\ttoken_available bool           // Does the tokens queue contain a token ready for dequeueing.\n\n\tindent  int   // The current indentation level.\n\tindents []int // The indentation levels stack.\n\n\tsimple_key_allowed bool                // May a simple key occur at the current position?\n\tsimple_keys        []yaml_simple_key_t // The stack of simple keys.\n\tsimple_keys_by_tok map[int]int         // possible simple_key indexes indexed by token_number\n\n\t// Parser stuff\n\n\tstate          yaml_parser_state_t    // The current parser state.\n\tstates         []yaml_parser_state_t  // The parser states stack.\n\tmarks          []yaml_mark_t          // The stack of marks.\n\ttag_directives []yaml_tag_directive_t // The list of TAG directives.\n\n\t// Dumper stuff\n\n\taliases []yaml_alias_data_t // The alias data.\n\n\tdocument *yaml_document_t // The currently parsed document.\n}\n\n// Emitter Definitions\n\n// The prototype of a write handler.\n//\n// The write handler is called when the emitter needs to flush the accumulated\n// characters to the output.  The handler should write @a size bytes of the\n// @a buffer to the output.\n//\n// @param[in,out]   data        A pointer to an application data specified by\n//                              yaml_emitter_set_output().\n// @param[in]       buffer      The buffer with bytes to be written.\n// @param[in]       size        The size of the buffer.\n//\n// @returns On success, the handler should return @c 1.  If the handler failed,\n// the returned value should be @c 0.\n//\ntype yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error\n\ntype yaml_emitter_state_t int\n\n// The emitter states.\nconst (\n\t// Expect STREAM-START.\n\tyaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota\n\n\tyaml_EMIT_FIRST_DOCUMENT_START_STATE       // Expect the first DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_START_STATE             // Expect DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_CONTENT_STATE           // Expect the content of a document.\n\tyaml_EMIT_DOCUMENT_END_STATE               // Expect DOCUMENT-END.\n\tyaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE   // Expect the first item of a flow sequence.\n\tyaml_EMIT_FLOW_SEQUENCE_ITEM_STATE         // Expect an item of a flow sequence.\n\tyaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE     // Expect the first key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_KEY_STATE           // Expect a key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE  // Expect a value for a simple key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_VALUE_STATE         // Expect a value of a flow mapping.\n\tyaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE  // Expect the first item of a block sequence.\n\tyaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE        // Expect an item of a block sequence.\n\tyaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE    // Expect the first key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_KEY_STATE          // Expect the key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_VALUE_STATE        // Expect a value of a block mapping.\n\tyaml_EMIT_END_STATE                        // Expect nothing.\n)\n\n// The emitter structure.\n//\n// All members are internal.  Manage the structure using the @c yaml_emitter_\n// family of functions.\ntype yaml_emitter_t struct {\n\n\t// Error handling\n\n\terror   yaml_error_type_t // Error type.\n\tproblem string            // Error description.\n\n\t// Writer stuff\n\n\twrite_handler yaml_write_handler_t // Write handler.\n\n\toutput_buffer *[]byte   // String output data.\n\toutput_writer io.Writer // File output data.\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The stream encoding.\n\n\t// Emitter stuff\n\n\tcanonical   bool         // If the output is in the canonical style?\n\tbest_indent int          // The number of indentation spaces.\n\tbest_width  int          // The preferred width of the output lines.\n\tunicode     bool         // Allow unescaped non-ASCII characters?\n\tline_break  yaml_break_t // The preferred line break.\n\n\tstate  yaml_emitter_state_t   // The current emitter state.\n\tstates []yaml_emitter_state_t // The stack of states.\n\n\tevents      []yaml_event_t // The event queue.\n\tevents_head int            // The head of the event queue.\n\n\tindents []int // The stack of indentation levels.\n\n\ttag_directives []yaml_tag_directive_t // The list of tag directives.\n\n\tindent int // The current indentation level.\n\n\tflow_level int // The current flow level.\n\n\troot_context       bool // Is it the document root context?\n\tsequence_context   bool // Is it a sequence context?\n\tmapping_context    bool // Is it a mapping context?\n\tsimple_key_context bool // Is it a simple mapping key context?\n\n\tline       int  // The current line.\n\tcolumn     int  // The current column.\n\twhitespace bool // If the last character was a whitespace?\n\tindention  bool // If the last character was an indentation character (' ', '-', '?', ':')?\n\topen_ended bool // If an explicit document end is required?\n\n\t// Anchor analysis.\n\tanchor_data struct {\n\t\tanchor []byte // The anchor value.\n\t\talias  bool   // Is it an alias?\n\t}\n\n\t// Tag analysis.\n\ttag_data struct {\n\t\thandle []byte // The tag handle.\n\t\tsuffix []byte // The tag suffix.\n\t}\n\n\t// Scalar analysis.\n\tscalar_data struct {\n\t\tvalue                 []byte              // The scalar value.\n\t\tmultiline             bool                // Does the scalar contain line breaks?\n\t\tflow_plain_allowed    bool                // Can the scalar be expessed in the flow plain style?\n\t\tblock_plain_allowed   bool                // Can the scalar be expressed in the block plain style?\n\t\tsingle_quoted_allowed bool                // Can the scalar be expressed in the single quoted style?\n\t\tblock_allowed         bool                // Can the scalar be expressed in the literal or folded styles?\n\t\tstyle                 yaml_scalar_style_t // The output style.\n\t}\n\n\t// Dumper stuff\n\n\topened bool // If the stream was already opened?\n\tclosed bool // If the stream was already closed?\n\n\t// The information associated with the document nodes.\n\tanchors *struct {\n\t\treferences int  // The number of references.\n\t\tanchor     int  // The anchor id.\n\t\tserialized bool // If the node has been emitted?\n\t}\n\n\tlast_anchor_id int // The last assigned anchor id.\n\n\tdocument *yaml_document_t // The currently emitted document.\n}\n"
  },
  {
    "path": "vendor/go.yaml.in/yaml/v2/yamlprivateh.go",
    "content": "package yaml\n\nconst (\n\t// The size of the input raw buffer.\n\tinput_raw_buffer_size = 512\n\n\t// The size of the input buffer.\n\t// It should be possible to decode the whole raw buffer.\n\tinput_buffer_size = input_raw_buffer_size * 3\n\n\t// The size of the output buffer.\n\toutput_buffer_size = 128\n\n\t// The size of the output raw buffer.\n\t// It should be possible to encode the whole output buffer.\n\toutput_raw_buffer_size = (output_buffer_size*2 + 2)\n\n\t// The size of other stacks and queues.\n\tinitial_stack_size  = 16\n\tinitial_queue_size  = 16\n\tinitial_string_size = 16\n)\n\n// Check if the character at the specified position is an alphabetical\n// character, a digit, '_', or '-'.\nfunc is_alpha(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-'\n}\n\n// Check if the character at the specified position is a digit.\nfunc is_digit(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9'\n}\n\n// Get the value of a digit.\nfunc as_digit(b []byte, i int) int {\n\treturn int(b[i]) - '0'\n}\n\n// Check if the character at the specified position is a hex-digit.\nfunc is_hex(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f'\n}\n\n// Get the value of a hex-digit.\nfunc as_hex(b []byte, i int) int {\n\tbi := b[i]\n\tif bi >= 'A' && bi <= 'F' {\n\t\treturn int(bi) - 'A' + 10\n\t}\n\tif bi >= 'a' && bi <= 'f' {\n\t\treturn int(bi) - 'a' + 10\n\t}\n\treturn int(bi) - '0'\n}\n\n// Check if the character is ASCII.\nfunc is_ascii(b []byte, i int) bool {\n\treturn b[i] <= 0x7F\n}\n\n// Check if the character at the start of the buffer can be printed unescaped.\nfunc is_printable(b []byte, i int) bool {\n\treturn ((b[i] == 0x0A) || // . == #x0A\n\t\t(b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E\n\t\t(b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF\n\t\t(b[i] > 0xC2 && b[i] < 0xED) ||\n\t\t(b[i] == 0xED && b[i+1] < 0xA0) ||\n\t\t(b[i] == 0xEE) ||\n\t\t(b[i] == 0xEF && // #xE000 <= . <= #xFFFD\n\t\t\t!(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF\n\t\t\t!(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF))))\n}\n\n// Check if the character at the specified position is NUL.\nfunc is_z(b []byte, i int) bool {\n\treturn b[i] == 0x00\n}\n\n// Check if the beginning of the buffer is a BOM.\nfunc is_bom(b []byte, i int) bool {\n\treturn b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF\n}\n\n// Check if the character at the specified position is space.\nfunc is_space(b []byte, i int) bool {\n\treturn b[i] == ' '\n}\n\n// Check if the character at the specified position is tab.\nfunc is_tab(b []byte, i int) bool {\n\treturn b[i] == '\\t'\n}\n\n// Check if the character at the specified position is blank (space or tab).\nfunc is_blank(b []byte, i int) bool {\n\t//return is_space(b, i) || is_tab(b, i)\n\treturn b[i] == ' ' || b[i] == '\\t'\n}\n\n// Check if the character at the specified position is a line break.\nfunc is_break(b []byte, i int) bool {\n\treturn (b[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029)\n}\n\nfunc is_crlf(b []byte, i int) bool {\n\treturn b[i] == '\\r' && b[i+1] == '\\n'\n}\n\n// Check if the character is a line break or NUL.\nfunc is_breakz(b []byte, i int) bool {\n\t//return is_break(b, i) || is_z(b, i)\n\treturn (        // is_break:\n\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\t// is_z:\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, or NUL.\nfunc is_spacez(b []byte, i int) bool {\n\t//return is_space(b, i) || is_breakz(b, i)\n\treturn ( // is_space:\n\tb[i] == ' ' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, tab, or NUL.\nfunc is_blankz(b []byte, i int) bool {\n\t//return is_blank(b, i) || is_breakz(b, i)\n\treturn ( // is_blank:\n\tb[i] == ' ' || b[i] == '\\t' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Determine the width of the character.\nfunc width(b byte) int {\n\t// Don't replace these by a switch without first\n\t// confirming that it is being inlined.\n\tif b&0x80 == 0x00 {\n\t\treturn 1\n\t}\n\tif b&0xE0 == 0xC0 {\n\t\treturn 2\n\t}\n\tif b&0xF0 == 0xE0 {\n\t\treturn 3\n\t}\n\tif b&0xF8 == 0xF0 {\n\t\treturn 4\n\t}\n\treturn 0\n\n}\n"
  },
  {
    "path": "vendor/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/blake2b/blake2b.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 blake2b implements the BLAKE2b hash algorithm defined by RFC 7693\n// and the extendable output function (XOF) BLAKE2Xb.\n//\n// BLAKE2b is optimized for 64-bit platforms—including NEON-enabled ARMs—and\n// produces digests of any size between 1 and 64 bytes.\n// For a detailed specification of BLAKE2b see https://blake2.net/blake2.pdf\n// and for BLAKE2Xb see https://blake2.net/blake2x.pdf\n//\n// If you aren't sure which function you need, use BLAKE2b (Sum512 or New512).\n// If you need a secret-key MAC (message authentication code), use the New512\n// function with a non-nil key.\n//\n// BLAKE2X is a construction to compute hash values larger than 64 bytes. It\n// can produce hash values between 0 and 4 GiB.\npackage blake2b\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"hash\"\n)\n\nconst (\n\t// The blocksize of BLAKE2b in bytes.\n\tBlockSize = 128\n\t// The hash size of BLAKE2b-512 in bytes.\n\tSize = 64\n\t// The hash size of BLAKE2b-384 in bytes.\n\tSize384 = 48\n\t// The hash size of BLAKE2b-256 in bytes.\n\tSize256 = 32\n)\n\nvar (\n\tuseAVX2 bool\n\tuseAVX  bool\n\tuseSSE4 bool\n)\n\nvar (\n\terrKeySize  = errors.New(\"blake2b: invalid key size\")\n\terrHashSize = errors.New(\"blake2b: invalid hash size\")\n)\n\nvar iv = [8]uint64{\n\t0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1,\n\t0x510e527fade682d1, 0x9b05688c2b3e6c1f, 0x1f83d9abfb41bd6b, 0x5be0cd19137e2179,\n}\n\n// Sum512 returns the BLAKE2b-512 checksum of the data.\nfunc Sum512(data []byte) [Size]byte {\n\tvar sum [Size]byte\n\tcheckSum(&sum, Size, data)\n\treturn sum\n}\n\n// Sum384 returns the BLAKE2b-384 checksum of the data.\nfunc Sum384(data []byte) [Size384]byte {\n\tvar sum [Size]byte\n\tvar sum384 [Size384]byte\n\tcheckSum(&sum, Size384, data)\n\tcopy(sum384[:], sum[:Size384])\n\treturn sum384\n}\n\n// Sum256 returns the BLAKE2b-256 checksum of the data.\nfunc Sum256(data []byte) [Size256]byte {\n\tvar sum [Size]byte\n\tvar sum256 [Size256]byte\n\tcheckSum(&sum, Size256, data)\n\tcopy(sum256[:], sum[:Size256])\n\treturn sum256\n}\n\n// New512 returns a new hash.Hash computing the BLAKE2b-512 checksum. A non-nil\n// key turns the hash into a MAC. The key must be between zero and 64 bytes long.\nfunc New512(key []byte) (hash.Hash, error) { return newDigest(Size, key) }\n\n// New384 returns a new hash.Hash computing the BLAKE2b-384 checksum. A non-nil\n// key turns the hash into a MAC. The key must be between zero and 64 bytes long.\nfunc New384(key []byte) (hash.Hash, error) { return newDigest(Size384, key) }\n\n// New256 returns a new hash.Hash computing the BLAKE2b-256 checksum. A non-nil\n// key turns the hash into a MAC. The key must be between zero and 64 bytes long.\nfunc New256(key []byte) (hash.Hash, error) { return newDigest(Size256, key) }\n\n// New returns a new hash.Hash computing the BLAKE2b checksum with a custom length.\n// A non-nil key turns the hash into a MAC. The key must be between zero and 64 bytes long.\n// The hash size can be a value between 1 and 64 but it is highly recommended to use\n// values equal or greater than:\n// - 32 if BLAKE2b is used as a hash function (The key is zero bytes long).\n// - 16 if BLAKE2b is used as a MAC function (The key is at least 16 bytes long).\n// When the key is nil, the returned hash.Hash implements BinaryMarshaler\n// and BinaryUnmarshaler for state (de)serialization as documented by hash.Hash.\nfunc New(size int, key []byte) (hash.Hash, error) { return newDigest(size, key) }\n\nfunc newDigest(hashSize int, key []byte) (*digest, error) {\n\tif hashSize < 1 || hashSize > Size {\n\t\treturn nil, errHashSize\n\t}\n\tif len(key) > Size {\n\t\treturn nil, errKeySize\n\t}\n\td := &digest{\n\t\tsize:   hashSize,\n\t\tkeyLen: len(key),\n\t}\n\tcopy(d.key[:], key)\n\td.Reset()\n\treturn d, nil\n}\n\nfunc checkSum(sum *[Size]byte, hashSize int, data []byte) {\n\th := iv\n\th[0] ^= uint64(hashSize) | (1 << 16) | (1 << 24)\n\tvar c [2]uint64\n\n\tif length := len(data); length > BlockSize {\n\t\tn := length &^ (BlockSize - 1)\n\t\tif length == n {\n\t\t\tn -= BlockSize\n\t\t}\n\t\thashBlocks(&h, &c, 0, data[:n])\n\t\tdata = data[n:]\n\t}\n\n\tvar block [BlockSize]byte\n\toffset := copy(block[:], data)\n\tremaining := uint64(BlockSize - offset)\n\tif c[0] < remaining {\n\t\tc[1]--\n\t}\n\tc[0] -= remaining\n\n\thashBlocks(&h, &c, 0xFFFFFFFFFFFFFFFF, block[:])\n\n\tfor i, v := range h[:(hashSize+7)/8] {\n\t\tbinary.LittleEndian.PutUint64(sum[8*i:], v)\n\t}\n}\n\ntype digest struct {\n\th      [8]uint64\n\tc      [2]uint64\n\tsize   int\n\tblock  [BlockSize]byte\n\toffset int\n\n\tkey    [BlockSize]byte\n\tkeyLen int\n}\n\nconst (\n\tmagic         = \"b2b\"\n\tmarshaledSize = len(magic) + 8*8 + 2*8 + 1 + BlockSize + 1\n)\n\nfunc (d *digest) MarshalBinary() ([]byte, error) {\n\tif d.keyLen != 0 {\n\t\treturn nil, errors.New(\"crypto/blake2b: cannot marshal MACs\")\n\t}\n\tb := make([]byte, 0, marshaledSize)\n\tb = append(b, magic...)\n\tfor i := 0; i < 8; i++ {\n\t\tb = appendUint64(b, d.h[i])\n\t}\n\tb = appendUint64(b, d.c[0])\n\tb = appendUint64(b, d.c[1])\n\t// Maximum value for size is 64\n\tb = append(b, byte(d.size))\n\tb = append(b, d.block[:]...)\n\tb = append(b, byte(d.offset))\n\treturn b, nil\n}\n\nfunc (d *digest) UnmarshalBinary(b []byte) error {\n\tif len(b) < len(magic) || string(b[:len(magic)]) != magic {\n\t\treturn errors.New(\"crypto/blake2b: invalid hash state identifier\")\n\t}\n\tif len(b) != marshaledSize {\n\t\treturn errors.New(\"crypto/blake2b: invalid hash state size\")\n\t}\n\tb = b[len(magic):]\n\tfor i := 0; i < 8; i++ {\n\t\tb, d.h[i] = consumeUint64(b)\n\t}\n\tb, d.c[0] = consumeUint64(b)\n\tb, d.c[1] = consumeUint64(b)\n\td.size = int(b[0])\n\tb = b[1:]\n\tcopy(d.block[:], b[:BlockSize])\n\tb = b[BlockSize:]\n\td.offset = int(b[0])\n\treturn nil\n}\n\nfunc (d *digest) BlockSize() int { return BlockSize }\n\nfunc (d *digest) Size() int { return d.size }\n\nfunc (d *digest) Reset() {\n\td.h = iv\n\td.h[0] ^= uint64(d.size) | (uint64(d.keyLen) << 8) | (1 << 16) | (1 << 24)\n\td.offset, d.c[0], d.c[1] = 0, 0, 0\n\tif d.keyLen > 0 {\n\t\td.block = d.key\n\t\td.offset = BlockSize\n\t}\n}\n\nfunc (d *digest) Write(p []byte) (n int, err error) {\n\tn = len(p)\n\n\tif d.offset > 0 {\n\t\tremaining := BlockSize - d.offset\n\t\tif n <= remaining {\n\t\t\td.offset += copy(d.block[d.offset:], p)\n\t\t\treturn\n\t\t}\n\t\tcopy(d.block[d.offset:], p[:remaining])\n\t\thashBlocks(&d.h, &d.c, 0, d.block[:])\n\t\td.offset = 0\n\t\tp = p[remaining:]\n\t}\n\n\tif length := len(p); length > BlockSize {\n\t\tnn := length &^ (BlockSize - 1)\n\t\tif length == nn {\n\t\t\tnn -= BlockSize\n\t\t}\n\t\thashBlocks(&d.h, &d.c, 0, p[:nn])\n\t\tp = p[nn:]\n\t}\n\n\tif len(p) > 0 {\n\t\td.offset += copy(d.block[:], p)\n\t}\n\n\treturn\n}\n\nfunc (d *digest) Sum(sum []byte) []byte {\n\tvar hash [Size]byte\n\td.finalize(&hash)\n\treturn append(sum, hash[:d.size]...)\n}\n\nfunc (d *digest) finalize(hash *[Size]byte) {\n\tvar block [BlockSize]byte\n\tcopy(block[:], d.block[:d.offset])\n\tremaining := uint64(BlockSize - d.offset)\n\n\tc := d.c\n\tif c[0] < remaining {\n\t\tc[1]--\n\t}\n\tc[0] -= remaining\n\n\th := d.h\n\thashBlocks(&h, &c, 0xFFFFFFFFFFFFFFFF, block[:])\n\n\tfor i, v := range h {\n\t\tbinary.LittleEndian.PutUint64(hash[8*i:], v)\n\t}\n}\n\nfunc appendUint64(b []byte, x uint64) []byte {\n\tvar a [8]byte\n\tbinary.BigEndian.PutUint64(a[:], x)\n\treturn append(b, a[:]...)\n}\n\nfunc appendUint32(b []byte, x uint32) []byte {\n\tvar a [4]byte\n\tbinary.BigEndian.PutUint32(a[:], x)\n\treturn append(b, a[:]...)\n}\n\nfunc consumeUint64(b []byte) ([]byte, uint64) {\n\tx := binary.BigEndian.Uint64(b)\n\treturn b[8:], x\n}\n\nfunc consumeUint32(b []byte) ([]byte, uint32) {\n\tx := binary.BigEndian.Uint32(b)\n\treturn b[4:], x\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.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 && gc && !purego\n\npackage blake2b\n\nimport \"golang.org/x/sys/cpu\"\n\nfunc init() {\n\tuseAVX2 = cpu.X86.HasAVX2\n\tuseAVX = cpu.X86.HasAVX\n\tuseSSE4 = cpu.X86.HasSSE41\n}\n\n//go:noescape\nfunc hashBlocksAVX2(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)\n\n//go:noescape\nfunc hashBlocksAVX(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)\n\n//go:noescape\nfunc hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)\n\nfunc hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) {\n\tswitch {\n\tcase useAVX2:\n\t\thashBlocksAVX2(h, c, flag, blocks)\n\tcase useAVX:\n\t\thashBlocksAVX(h, c, flag, blocks)\n\tcase useSSE4:\n\t\thashBlocksSSE4(h, c, flag, blocks)\n\tdefault:\n\t\thashBlocksGeneric(h, c, flag, blocks)\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s",
    "content": "// Code generated by command: go run blake2bAVX2_amd64_asm.go -out ../../blake2bAVX2_amd64.s -pkg blake2b. DO NOT EDIT.\n\n//go:build amd64 && gc && !purego\n\n#include \"textflag.h\"\n\n// func hashBlocksAVX2(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)\n// Requires: AVX, AVX2\nTEXT ·hashBlocksAVX2(SB), NOSPLIT, $320-48\n\tMOVQ    h+0(FP), AX\n\tMOVQ    c+8(FP), BX\n\tMOVQ    flag+16(FP), CX\n\tMOVQ    blocks_base+24(FP), SI\n\tMOVQ    blocks_len+32(FP), DI\n\tMOVQ    SP, DX\n\tADDQ    $+31, DX\n\tANDQ    $-32, DX\n\tMOVQ    CX, 16(DX)\n\tXORQ    CX, CX\n\tMOVQ    CX, 24(DX)\n\tVMOVDQU ·AVX2_c40<>+0(SB), Y4\n\tVMOVDQU ·AVX2_c48<>+0(SB), Y5\n\tVMOVDQU (AX), Y8\n\tVMOVDQU 32(AX), Y9\n\tVMOVDQU ·AVX2_iv0<>+0(SB), Y6\n\tVMOVDQU ·AVX2_iv1<>+0(SB), Y7\n\tMOVQ    (BX), R8\n\tMOVQ    8(BX), R9\n\tMOVQ    R9, 8(DX)\n\nloop:\n\tADDQ $0x80, R8\n\tMOVQ R8, (DX)\n\tCMPQ R8, $0x80\n\tJGE  noinc\n\tINCQ R9\n\tMOVQ R9, 8(DX)\n\nnoinc:\n\tVMOVDQA     Y8, Y0\n\tVMOVDQA     Y9, Y1\n\tVMOVDQA     Y6, Y2\n\tVPXOR       (DX), Y7, Y3\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x26\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x20\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x99\n\tBYTE        $0x22\n\tBYTE        $0x66\n\tBYTE        $0x10\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x30\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y12, Y12\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x6e\n\tBYTE        $0x08\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x28\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x91\n\tBYTE        $0x22\n\tBYTE        $0x6e\n\tBYTE        $0x18\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x38\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y13, Y13\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x76\n\tBYTE        $0x40\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x60\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x89\n\tBYTE        $0x22\n\tBYTE        $0x76\n\tBYTE        $0x50\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x70\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y14, Y14\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x7e\n\tBYTE        $0x48\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x68\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x81\n\tBYTE        $0x22\n\tBYTE        $0x7e\n\tBYTE        $0x58\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x78\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y15, Y15\n\tVMOVDQA     Y12, 32(DX)\n\tVMOVDQA     Y13, 64(DX)\n\tVMOVDQA     Y14, 96(DX)\n\tVMOVDQA     Y15, 128(DX)\n\tVPADDQ      Y12, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y13, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x93\n\tVPADDQ      Y14, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y15, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x93\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x66\n\tBYTE        $0x70\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x48\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x99\n\tBYTE        $0x22\n\tBYTE        $0x66\n\tBYTE        $0x20\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x68\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y12, Y12\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x6e\n\tBYTE        $0x50\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x78\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x91\n\tBYTE        $0x22\n\tBYTE        $0x6e\n\tBYTE        $0x40\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x30\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y13, Y13\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x58\n\tVPSHUFD     $0x4e, (SI), X14\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x28\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y14, Y14\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x7e\n\tBYTE        $0x60\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x38\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x81\n\tBYTE        $0x22\n\tBYTE        $0x7e\n\tBYTE        $0x10\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x18\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y15, Y15\n\tVMOVDQA     Y12, 160(DX)\n\tVMOVDQA     Y13, 192(DX)\n\tVMOVDQA     Y14, 224(DX)\n\tVMOVDQA     Y15, 256(DX)\n\tVPADDQ      Y12, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y13, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x93\n\tVPADDQ      Y14, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y15, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x93\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x28\n\tVMOVDQU     88(SI), X12\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x78\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y12, Y12\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x6e\n\tBYTE        $0x40\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x10\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x91\n\tBYTE        $0x22\n\tBYTE        $0x2e\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x68\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y13, Y13\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x76\n\tBYTE        $0x50\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x38\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x89\n\tBYTE        $0x22\n\tBYTE        $0x76\n\tBYTE        $0x18\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x48\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y14, Y14\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x7e\n\tBYTE        $0x70\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x08\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x81\n\tBYTE        $0x22\n\tBYTE        $0x7e\n\tBYTE        $0x30\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x20\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y15, Y15\n\tVPADDQ      Y12, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y13, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x93\n\tVPADDQ      Y14, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y15, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x93\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x66\n\tBYTE        $0x38\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x68\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x99\n\tBYTE        $0x22\n\tBYTE        $0x66\n\tBYTE        $0x18\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x58\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y12, Y12\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x6e\n\tBYTE        $0x48\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x60\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x91\n\tBYTE        $0x22\n\tBYTE        $0x6e\n\tBYTE        $0x08\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x70\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y13, Y13\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x76\n\tBYTE        $0x10\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x20\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x89\n\tBYTE        $0x22\n\tBYTE        $0x76\n\tBYTE        $0x28\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x78\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y14, Y14\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x7e\n\tBYTE        $0x30\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x1e\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x81\n\tBYTE        $0x22\n\tBYTE        $0x7e\n\tBYTE        $0x50\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x40\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y15, Y15\n\tVPADDQ      Y12, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y13, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x93\n\tVPADDQ      Y14, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y15, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x93\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x66\n\tBYTE        $0x48\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x10\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x99\n\tBYTE        $0x22\n\tBYTE        $0x66\n\tBYTE        $0x28\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x50\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y12, Y12\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x2e\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x20\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x91\n\tBYTE        $0x22\n\tBYTE        $0x6e\n\tBYTE        $0x38\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x78\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y13, Y13\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x76\n\tBYTE        $0x70\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x30\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x89\n\tBYTE        $0x22\n\tBYTE        $0x76\n\tBYTE        $0x58\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x18\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y14, Y14\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x7e\n\tBYTE        $0x08\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x40\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x81\n\tBYTE        $0x22\n\tBYTE        $0x7e\n\tBYTE        $0x60\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x68\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y15, Y15\n\tVPADDQ      Y12, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y13, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x93\n\tVPADDQ      Y14, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y15, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x93\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x66\n\tBYTE        $0x10\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x1e\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x99\n\tBYTE        $0x22\n\tBYTE        $0x66\n\tBYTE        $0x30\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x40\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y12, Y12\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x6e\n\tBYTE        $0x60\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x58\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x91\n\tBYTE        $0x22\n\tBYTE        $0x6e\n\tBYTE        $0x50\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x18\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y13, Y13\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x76\n\tBYTE        $0x20\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x78\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x89\n\tBYTE        $0x22\n\tBYTE        $0x76\n\tBYTE        $0x38\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x08\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y14, Y14\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x7e\n\tBYTE        $0x68\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x70\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x81\n\tBYTE        $0x22\n\tBYTE        $0x7e\n\tBYTE        $0x28\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x48\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y15, Y15\n\tVPADDQ      Y12, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y13, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x93\n\tVPADDQ      Y14, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y15, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x93\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x66\n\tBYTE        $0x60\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x70\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x99\n\tBYTE        $0x22\n\tBYTE        $0x66\n\tBYTE        $0x08\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x20\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y12, Y12\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x6e\n\tBYTE        $0x28\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x68\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x91\n\tBYTE        $0x22\n\tBYTE        $0x6e\n\tBYTE        $0x78\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x50\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y13, Y13\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x36\n\tVPSHUFD     $0x4e, 64(SI), X11\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x89\n\tBYTE        $0x22\n\tBYTE        $0x76\n\tBYTE        $0x30\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y14, Y14\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x7e\n\tBYTE        $0x38\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x10\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x81\n\tBYTE        $0x22\n\tBYTE        $0x7e\n\tBYTE        $0x18\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x58\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y15, Y15\n\tVPADDQ      Y12, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y13, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x93\n\tVPADDQ      Y14, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y15, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x93\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x66\n\tBYTE        $0x68\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x60\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x99\n\tBYTE        $0x22\n\tBYTE        $0x66\n\tBYTE        $0x38\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x18\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y12, Y12\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x6e\n\tBYTE        $0x58\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x08\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x91\n\tBYTE        $0x22\n\tBYTE        $0x6e\n\tBYTE        $0x70\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x48\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y13, Y13\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x76\n\tBYTE        $0x28\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x40\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x89\n\tBYTE        $0x22\n\tBYTE        $0x76\n\tBYTE        $0x78\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x10\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y14, Y14\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x3e\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x30\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x81\n\tBYTE        $0x22\n\tBYTE        $0x7e\n\tBYTE        $0x20\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x50\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y15, Y15\n\tVPADDQ      Y12, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y13, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x93\n\tVPADDQ      Y14, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y15, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x93\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x66\n\tBYTE        $0x30\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x58\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x99\n\tBYTE        $0x22\n\tBYTE        $0x66\n\tBYTE        $0x70\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x1e\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y12, Y12\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x6e\n\tBYTE        $0x78\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x18\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x91\n\tBYTE        $0x22\n\tBYTE        $0x6e\n\tBYTE        $0x48\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x40\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y13, Y13\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x08\n\tVMOVDQU     96(SI), X14\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x50\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y14, Y14\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x7e\n\tBYTE        $0x10\n\tVMOVDQU     32(SI), X11\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x81\n\tBYTE        $0x22\n\tBYTE        $0x7e\n\tBYTE        $0x38\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y15, Y15\n\tVPADDQ      Y12, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y13, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x93\n\tVPADDQ      Y14, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y15, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x93\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x66\n\tBYTE        $0x50\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x38\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x99\n\tBYTE        $0x22\n\tBYTE        $0x66\n\tBYTE        $0x40\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x08\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y12, Y12\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x6e\n\tBYTE        $0x10\n\tVPSHUFD     $0x4e, 40(SI), X11\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x91\n\tBYTE        $0x22\n\tBYTE        $0x6e\n\tBYTE        $0x20\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y13, Y13\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x76\n\tBYTE        $0x78\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x18\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x89\n\tBYTE        $0x22\n\tBYTE        $0x76\n\tBYTE        $0x48\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x5e\n\tBYTE        $0x68\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y14, Y14\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x7e\n\tBYTE        $0x58\n\tBYTE        $0xc5\n\tBYTE        $0x7a\n\tBYTE        $0x7e\n\tBYTE        $0x5e\n\tBYTE        $0x60\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0x81\n\tBYTE        $0x22\n\tBYTE        $0x7e\n\tBYTE        $0x70\n\tBYTE        $0x01\n\tBYTE        $0xc4\n\tBYTE        $0x63\n\tBYTE        $0xa1\n\tBYTE        $0x22\n\tBYTE        $0x1e\n\tBYTE        $0x01\n\tVINSERTI128 $0x01, X11, Y15, Y15\n\tVPADDQ      Y12, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y13, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x93\n\tVPADDQ      Y14, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      Y15, Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x93\n\tVPADDQ      32(DX), Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      64(DX), Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x93\n\tVPADDQ      96(DX), Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      128(DX), Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x93\n\tVPADDQ      160(DX), Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      192(DX), Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x93\n\tVPADDQ      224(DX), Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFD     $-79, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPSHUFB     Y4, Y1, Y1\n\tVPADDQ      256(DX), Y0, Y0\n\tVPADDQ      Y1, Y0, Y0\n\tVPXOR       Y0, Y3, Y3\n\tVPSHUFB     Y5, Y3, Y3\n\tVPADDQ      Y3, Y2, Y2\n\tVPXOR       Y2, Y1, Y1\n\tVPADDQ      Y1, Y1, Y10\n\tVPSRLQ      $0x3f, Y1, Y1\n\tVPXOR       Y10, Y1, Y1\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xdb\n\tBYTE        $0x39\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xd2\n\tBYTE        $0x4e\n\tBYTE        $0xc4\n\tBYTE        $0xe3\n\tBYTE        $0xfd\n\tBYTE        $0x00\n\tBYTE        $0xc9\n\tBYTE        $0x93\n\tVPXOR       Y0, Y8, Y8\n\tVPXOR       Y1, Y9, Y9\n\tVPXOR       Y2, Y8, Y8\n\tVPXOR       Y3, Y9, Y9\n\tLEAQ        128(SI), SI\n\tSUBQ        $0x80, DI\n\tJNE         loop\n\tMOVQ        R8, (BX)\n\tMOVQ        R9, 8(BX)\n\tVMOVDQU     Y8, (AX)\n\tVMOVDQU     Y9, 32(AX)\n\tVZEROUPPER\n\tRET\n\nDATA ·AVX2_c40<>+0(SB)/8, $0x0201000706050403\nDATA ·AVX2_c40<>+8(SB)/8, $0x0a09080f0e0d0c0b\nDATA ·AVX2_c40<>+16(SB)/8, $0x0201000706050403\nDATA ·AVX2_c40<>+24(SB)/8, $0x0a09080f0e0d0c0b\nGLOBL ·AVX2_c40<>(SB), RODATA|NOPTR, $32\n\nDATA ·AVX2_c48<>+0(SB)/8, $0x0100070605040302\nDATA ·AVX2_c48<>+8(SB)/8, $0x09080f0e0d0c0b0a\nDATA ·AVX2_c48<>+16(SB)/8, $0x0100070605040302\nDATA ·AVX2_c48<>+24(SB)/8, $0x09080f0e0d0c0b0a\nGLOBL ·AVX2_c48<>(SB), RODATA|NOPTR, $32\n\nDATA ·AVX2_iv0<>+0(SB)/8, $0x6a09e667f3bcc908\nDATA ·AVX2_iv0<>+8(SB)/8, $0xbb67ae8584caa73b\nDATA ·AVX2_iv0<>+16(SB)/8, $0x3c6ef372fe94f82b\nDATA ·AVX2_iv0<>+24(SB)/8, $0xa54ff53a5f1d36f1\nGLOBL ·AVX2_iv0<>(SB), RODATA|NOPTR, $32\n\nDATA ·AVX2_iv1<>+0(SB)/8, $0x510e527fade682d1\nDATA ·AVX2_iv1<>+8(SB)/8, $0x9b05688c2b3e6c1f\nDATA ·AVX2_iv1<>+16(SB)/8, $0x1f83d9abfb41bd6b\nDATA ·AVX2_iv1<>+24(SB)/8, $0x5be0cd19137e2179\nGLOBL ·AVX2_iv1<>(SB), RODATA|NOPTR, $32\n\n// func hashBlocksAVX(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)\n// Requires: AVX, SSE2\nTEXT ·hashBlocksAVX(SB), NOSPLIT, $288-48\n\tMOVQ    h+0(FP), AX\n\tMOVQ    c+8(FP), BX\n\tMOVQ    flag+16(FP), CX\n\tMOVQ    blocks_base+24(FP), SI\n\tMOVQ    blocks_len+32(FP), DI\n\tMOVQ    SP, R10\n\tADDQ    $0x0f, R10\n\tANDQ    $-16, R10\n\tVMOVDQU ·AVX_c40<>+0(SB), X0\n\tVMOVDQU ·AVX_c48<>+0(SB), X1\n\tVMOVDQA X0, X8\n\tVMOVDQA X1, X9\n\tVMOVDQU ·AVX_iv3<>+0(SB), X0\n\tVMOVDQA X0, (R10)\n\tXORQ    CX, (R10)\n\tVMOVDQU (AX), X10\n\tVMOVDQU 16(AX), X11\n\tVMOVDQU 32(AX), X2\n\tVMOVDQU 48(AX), X3\n\tMOVQ    (BX), R8\n\tMOVQ    8(BX), R9\n\nloop:\n\tADDQ $0x80, R8\n\tCMPQ R8, $0x80\n\tJGE  noinc\n\tINCQ R9\n\nnoinc:\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0xf9\n\tBYTE    $0x6e\n\tBYTE    $0xf8\n\tBYTE    $0xc4\n\tBYTE    $0x43\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0xf9\n\tBYTE    $0x01\n\tVMOVDQA X10, X0\n\tVMOVDQA X11, X1\n\tVMOVDQU ·AVX_iv0<>+0(SB), X4\n\tVMOVDQU ·AVX_iv1<>+0(SB), X5\n\tVMOVDQU ·AVX_iv2<>+0(SB), X6\n\tVPXOR   X15, X6, X6\n\tVMOVDQA (R10), X7\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x26\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x20\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x08\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x28\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x10\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x30\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x18\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x38\n\tBYTE    $0x01\n\tVMOVDQA X12, 16(R10)\n\tVMOVDQA X13, 32(R10)\n\tVMOVDQA X14, 48(R10)\n\tVMOVDQA X15, 64(R10)\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X6, X13\n\tVMOVDQA X2, X14\n\tVMOVDQA X4, X6\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x11\n\tBYTE    $0x6c\n\tBYTE    $0xfd\n\tVMOVDQA X5, X4\n\tVMOVDQA X6, X5\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x69\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x66\n\tBYTE    $0x40\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x60\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x48\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x68\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x50\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x70\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x58\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x78\n\tBYTE    $0x01\n\tVMOVDQA X12, 80(R10)\n\tVMOVDQA X13, 96(R10)\n\tVMOVDQA X14, 112(R10)\n\tVMOVDQA X15, 128(R10)\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X2, X13\n\tVMOVDQA X4, X14\n\tBYTE    $0xc5\n\tBYTE    $0x69\n\tBYTE    $0x6c\n\tBYTE    $0xfa\n\tVMOVDQA X5, X4\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tVMOVDQA X14, X5\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tVMOVDQA X6, X14\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x49\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x66\n\tBYTE    $0x70\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x48\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x50\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x78\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x20\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x68\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x40\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x30\n\tBYTE    $0x01\n\tVMOVDQA X12, 144(R10)\n\tVMOVDQA X13, 160(R10)\n\tVMOVDQA X14, 176(R10)\n\tVMOVDQA X15, 192(R10)\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X6, X13\n\tVMOVDQA X2, X14\n\tVMOVDQA X4, X6\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x11\n\tBYTE    $0x6c\n\tBYTE    $0xfd\n\tVMOVDQA X5, X4\n\tVMOVDQA X6, X5\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x69\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tVPSHUFD $0x4e, (SI), X12\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x58\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x60\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x38\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x28\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x10\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x18\n\tBYTE    $0x01\n\tVMOVDQA X12, 208(R10)\n\tVMOVDQA X13, 224(R10)\n\tVMOVDQA X14, 240(R10)\n\tVMOVDQA X15, 256(R10)\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X2, X13\n\tVMOVDQA X4, X14\n\tBYTE    $0xc5\n\tBYTE    $0x69\n\tBYTE    $0x6c\n\tBYTE    $0xfa\n\tVMOVDQA X5, X4\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tVMOVDQA X14, X5\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tVMOVDQA X6, X14\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x49\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tVMOVDQU 88(SI), X12\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x28\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x40\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x10\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x78\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x36\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x68\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X6, X13\n\tVMOVDQA X2, X14\n\tVMOVDQA X4, X6\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x11\n\tBYTE    $0x6c\n\tBYTE    $0xfd\n\tVMOVDQA X5, X4\n\tVMOVDQA X6, X5\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x69\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x66\n\tBYTE    $0x50\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x38\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x70\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x08\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x18\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x48\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x30\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x20\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X2, X13\n\tVMOVDQA X4, X14\n\tBYTE    $0xc5\n\tBYTE    $0x69\n\tBYTE    $0x6c\n\tBYTE    $0xfa\n\tVMOVDQA X5, X4\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tVMOVDQA X14, X5\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tVMOVDQA X6, X14\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x49\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x66\n\tBYTE    $0x38\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x68\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x48\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x60\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x18\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x58\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x08\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x70\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X6, X13\n\tVMOVDQA X2, X14\n\tVMOVDQA X4, X6\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x11\n\tBYTE    $0x6c\n\tBYTE    $0xfd\n\tVMOVDQA X5, X4\n\tVMOVDQA X6, X5\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x69\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x66\n\tBYTE    $0x10\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x20\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x30\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x3e\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x28\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x78\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x50\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x40\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X2, X13\n\tVMOVDQA X4, X14\n\tBYTE    $0xc5\n\tBYTE    $0x69\n\tBYTE    $0x6c\n\tBYTE    $0xfa\n\tVMOVDQA X5, X4\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tVMOVDQA X14, X5\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tVMOVDQA X6, X14\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x49\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x66\n\tBYTE    $0x48\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x10\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x36\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x20\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x28\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x50\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x38\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x78\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X6, X13\n\tVMOVDQA X2, X14\n\tVMOVDQA X4, X6\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x11\n\tBYTE    $0x6c\n\tBYTE    $0xfd\n\tVMOVDQA X5, X4\n\tVMOVDQA X6, X5\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x69\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x66\n\tBYTE    $0x70\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x30\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x08\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x40\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x58\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x18\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x60\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x68\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X2, X13\n\tVMOVDQA X4, X14\n\tBYTE    $0xc5\n\tBYTE    $0x69\n\tBYTE    $0x6c\n\tBYTE    $0xfa\n\tVMOVDQA X5, X4\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tVMOVDQA X14, X5\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tVMOVDQA X6, X14\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x49\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x66\n\tBYTE    $0x10\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x2e\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x60\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x58\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x30\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x40\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x50\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x18\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X6, X13\n\tVMOVDQA X2, X14\n\tVMOVDQA X4, X6\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x11\n\tBYTE    $0x6c\n\tBYTE    $0xfd\n\tVMOVDQA X5, X4\n\tVMOVDQA X6, X5\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x69\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x66\n\tBYTE    $0x20\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x78\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x68\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x70\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x38\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x08\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x28\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x48\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X2, X13\n\tVMOVDQA X4, X14\n\tBYTE    $0xc5\n\tBYTE    $0x69\n\tBYTE    $0x6c\n\tBYTE    $0xfa\n\tVMOVDQA X5, X4\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tVMOVDQA X14, X5\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tVMOVDQA X6, X14\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x49\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x66\n\tBYTE    $0x60\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x70\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x28\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x68\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x08\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x20\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x78\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x50\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X6, X13\n\tVMOVDQA X2, X14\n\tVMOVDQA X4, X6\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x11\n\tBYTE    $0x6c\n\tBYTE    $0xfd\n\tVMOVDQA X5, X4\n\tVMOVDQA X6, X5\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x69\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tMOVQ    (SI), X12\n\tVPSHUFD $0x4e, 64(SI), X13\n\tMOVQ    56(SI), X14\n\tMOVQ    16(SI), X15\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x30\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x18\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x58\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X2, X13\n\tVMOVDQA X4, X14\n\tBYTE    $0xc5\n\tBYTE    $0x69\n\tBYTE    $0x6c\n\tBYTE    $0xfa\n\tVMOVDQA X5, X4\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tVMOVDQA X14, X5\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tVMOVDQA X6, X14\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x49\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x66\n\tBYTE    $0x68\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x60\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x58\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x08\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x38\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x18\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x70\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x48\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X6, X13\n\tVMOVDQA X2, X14\n\tVMOVDQA X4, X6\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x11\n\tBYTE    $0x6c\n\tBYTE    $0xfd\n\tVMOVDQA X5, X4\n\tVMOVDQA X6, X5\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x69\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tMOVQ    40(SI), X12\n\tMOVQ    64(SI), X13\n\tMOVQ    (SI), X14\n\tMOVQ    48(SI), X15\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x78\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x10\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x20\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x50\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X2, X13\n\tVMOVDQA X4, X14\n\tBYTE    $0xc5\n\tBYTE    $0x69\n\tBYTE    $0x6c\n\tBYTE    $0xfa\n\tVMOVDQA X5, X4\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tVMOVDQA X14, X5\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tVMOVDQA X6, X14\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x49\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tMOVQ    48(SI), X12\n\tMOVQ    88(SI), X13\n\tMOVQ    120(SI), X14\n\tMOVQ    24(SI), X15\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x70\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x2e\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x48\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x40\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X6, X13\n\tVMOVDQA X2, X14\n\tVMOVDQA X4, X6\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x11\n\tBYTE    $0x6c\n\tBYTE    $0xfd\n\tVMOVDQA X5, X4\n\tVMOVDQA X6, X5\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x69\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tVMOVDQU 96(SI), X12\n\tMOVQ    8(SI), X13\n\tMOVQ    16(SI), X14\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x50\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x38\n\tBYTE    $0x01\n\tVMOVDQU 32(SI), X15\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X2, X13\n\tVMOVDQA X4, X14\n\tBYTE    $0xc5\n\tBYTE    $0x69\n\tBYTE    $0x6c\n\tBYTE    $0xfa\n\tVMOVDQA X5, X4\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tVMOVDQA X14, X5\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tVMOVDQA X6, X14\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x49\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x66\n\tBYTE    $0x50\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x6e\n\tBYTE    $0x38\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x76\n\tBYTE    $0x10\n\tBYTE    $0xc5\n\tBYTE    $0x7a\n\tBYTE    $0x7e\n\tBYTE    $0x7e\n\tBYTE    $0x30\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x40\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x08\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x20\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x7e\n\tBYTE    $0x28\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X6, X13\n\tVMOVDQA X2, X14\n\tVMOVDQA X4, X6\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x11\n\tBYTE    $0x6c\n\tBYTE    $0xfd\n\tVMOVDQA X5, X4\n\tVMOVDQA X6, X5\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x69\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tMOVQ    120(SI), X12\n\tMOVQ    24(SI), X13\n\tMOVQ    88(SI), X14\n\tMOVQ    96(SI), X15\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x99\n\tBYTE    $0x22\n\tBYTE    $0x66\n\tBYTE    $0x48\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x91\n\tBYTE    $0x22\n\tBYTE    $0x6e\n\tBYTE    $0x68\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x89\n\tBYTE    $0x22\n\tBYTE    $0x76\n\tBYTE    $0x70\n\tBYTE    $0x01\n\tBYTE    $0xc4\n\tBYTE    $0x63\n\tBYTE    $0x81\n\tBYTE    $0x22\n\tBYTE    $0x3e\n\tBYTE    $0x01\n\tVPADDQ  X12, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X13, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  X14, X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  X15, X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X2, X13\n\tVMOVDQA X4, X14\n\tBYTE    $0xc5\n\tBYTE    $0x69\n\tBYTE    $0x6c\n\tBYTE    $0xfa\n\tVMOVDQA X5, X4\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tVMOVDQA X14, X5\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tVMOVDQA X6, X14\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x49\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tVPADDQ  16(R10), X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  32(R10), X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  48(R10), X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  64(R10), X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X6, X13\n\tVMOVDQA X2, X14\n\tVMOVDQA X4, X6\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x11\n\tBYTE    $0x6c\n\tBYTE    $0xfd\n\tVMOVDQA X5, X4\n\tVMOVDQA X6, X5\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x69\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tVPADDQ  80(R10), X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  96(R10), X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  112(R10), X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  128(R10), X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X2, X13\n\tVMOVDQA X4, X14\n\tBYTE    $0xc5\n\tBYTE    $0x69\n\tBYTE    $0x6c\n\tBYTE    $0xfa\n\tVMOVDQA X5, X4\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tVMOVDQA X14, X5\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tVMOVDQA X6, X14\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x49\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tVPADDQ  144(R10), X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  160(R10), X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  176(R10), X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  192(R10), X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X6, X13\n\tVMOVDQA X2, X14\n\tVMOVDQA X4, X6\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x11\n\tBYTE    $0x6c\n\tBYTE    $0xfd\n\tVMOVDQA X5, X4\n\tVMOVDQA X6, X5\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x69\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tVPADDQ  208(R10), X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  224(R10), X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFD $-79, X6, X6\n\tVPSHUFD $-79, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPSHUFB X8, X2, X2\n\tVPSHUFB X8, X3, X3\n\tVPADDQ  240(R10), X0, X0\n\tVPADDQ  X2, X0, X0\n\tVPADDQ  256(R10), X1, X1\n\tVPADDQ  X3, X1, X1\n\tVPXOR   X0, X6, X6\n\tVPXOR   X1, X7, X7\n\tVPSHUFB X9, X6, X6\n\tVPSHUFB X9, X7, X7\n\tVPADDQ  X6, X4, X4\n\tVPADDQ  X7, X5, X5\n\tVPXOR   X4, X2, X2\n\tVPXOR   X5, X3, X3\n\tVPADDQ  X2, X2, X15\n\tVPSRLQ  $0x3f, X2, X2\n\tVPXOR   X15, X2, X2\n\tVPADDQ  X3, X3, X15\n\tVPSRLQ  $0x3f, X3, X3\n\tVPXOR   X15, X3, X3\n\tVMOVDQA X2, X13\n\tVMOVDQA X4, X14\n\tBYTE    $0xc5\n\tBYTE    $0x69\n\tBYTE    $0x6c\n\tBYTE    $0xfa\n\tVMOVDQA X5, X4\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x61\n\tBYTE    $0x6d\n\tBYTE    $0xd7\n\tVMOVDQA X14, X5\n\tBYTE    $0xc5\n\tBYTE    $0x61\n\tBYTE    $0x6c\n\tBYTE    $0xfb\n\tVMOVDQA X6, X14\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x11\n\tBYTE    $0x6d\n\tBYTE    $0xdf\n\tBYTE    $0xc5\n\tBYTE    $0x41\n\tBYTE    $0x6c\n\tBYTE    $0xff\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x49\n\tBYTE    $0x6d\n\tBYTE    $0xf7\n\tBYTE    $0xc4\n\tBYTE    $0x41\n\tBYTE    $0x09\n\tBYTE    $0x6c\n\tBYTE    $0xfe\n\tBYTE    $0xc4\n\tBYTE    $0xc1\n\tBYTE    $0x41\n\tBYTE    $0x6d\n\tBYTE    $0xff\n\tVMOVDQU 32(AX), X14\n\tVMOVDQU 48(AX), X15\n\tVPXOR   X0, X10, X10\n\tVPXOR   X1, X11, X11\n\tVPXOR   X2, X14, X14\n\tVPXOR   X3, X15, X15\n\tVPXOR   X4, X10, X10\n\tVPXOR   X5, X11, X11\n\tVPXOR   X6, X14, X2\n\tVPXOR   X7, X15, X3\n\tVMOVDQU X2, 32(AX)\n\tVMOVDQU X3, 48(AX)\n\tLEAQ    128(SI), SI\n\tSUBQ    $0x80, DI\n\tJNE     loop\n\tVMOVDQU X10, (AX)\n\tVMOVDQU X11, 16(AX)\n\tMOVQ    R8, (BX)\n\tMOVQ    R9, 8(BX)\n\tVZEROUPPER\n\tRET\n\nDATA ·AVX_c40<>+0(SB)/8, $0x0201000706050403\nDATA ·AVX_c40<>+8(SB)/8, $0x0a09080f0e0d0c0b\nGLOBL ·AVX_c40<>(SB), RODATA|NOPTR, $16\n\nDATA ·AVX_c48<>+0(SB)/8, $0x0100070605040302\nDATA ·AVX_c48<>+8(SB)/8, $0x09080f0e0d0c0b0a\nGLOBL ·AVX_c48<>(SB), RODATA|NOPTR, $16\n\nDATA ·AVX_iv3<>+0(SB)/8, $0x1f83d9abfb41bd6b\nDATA ·AVX_iv3<>+8(SB)/8, $0x5be0cd19137e2179\nGLOBL ·AVX_iv3<>(SB), RODATA|NOPTR, $16\n\nDATA ·AVX_iv0<>+0(SB)/8, $0x6a09e667f3bcc908\nDATA ·AVX_iv0<>+8(SB)/8, $0xbb67ae8584caa73b\nGLOBL ·AVX_iv0<>(SB), RODATA|NOPTR, $16\n\nDATA ·AVX_iv1<>+0(SB)/8, $0x3c6ef372fe94f82b\nDATA ·AVX_iv1<>+8(SB)/8, $0xa54ff53a5f1d36f1\nGLOBL ·AVX_iv1<>(SB), RODATA|NOPTR, $16\n\nDATA ·AVX_iv2<>+0(SB)/8, $0x510e527fade682d1\nDATA ·AVX_iv2<>+8(SB)/8, $0x9b05688c2b3e6c1f\nGLOBL ·AVX_iv2<>(SB), RODATA|NOPTR, $16\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s",
    "content": "// Code generated by command: go run blake2b_amd64_asm.go -out ../../blake2b_amd64.s -pkg blake2b. DO NOT EDIT.\n\n//go:build amd64 && gc && !purego\n\n#include \"textflag.h\"\n\n// func hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)\n// Requires: SSE2, SSE4.1, SSSE3\nTEXT ·hashBlocksSSE4(SB), NOSPLIT, $288-48\n\tMOVQ  h+0(FP), AX\n\tMOVQ  c+8(FP), BX\n\tMOVQ  flag+16(FP), CX\n\tMOVQ  blocks_base+24(FP), SI\n\tMOVQ  blocks_len+32(FP), DI\n\tMOVQ  SP, R10\n\tADDQ  $0x0f, R10\n\tANDQ  $-16, R10\n\tMOVOU ·iv3<>+0(SB), X0\n\tMOVO  X0, (R10)\n\tXORQ  CX, (R10)\n\tMOVOU ·c40<>+0(SB), X13\n\tMOVOU ·c48<>+0(SB), X14\n\tMOVOU (AX), X12\n\tMOVOU 16(AX), X15\n\tMOVQ  (BX), R8\n\tMOVQ  8(BX), R9\n\nloop:\n\tADDQ $0x80, R8\n\tCMPQ R8, $0x80\n\tJGE  noinc\n\tINCQ R9\n\nnoinc:\n\tMOVQ       R8, X8\n\tPINSRQ     $0x01, R9, X8\n\tMOVO       X12, X0\n\tMOVO       X15, X1\n\tMOVOU      32(AX), X2\n\tMOVOU      48(AX), X3\n\tMOVOU      ·iv0<>+0(SB), X4\n\tMOVOU      ·iv1<>+0(SB), X5\n\tMOVOU      ·iv2<>+0(SB), X6\n\tPXOR       X8, X6\n\tMOVO       (R10), X7\n\tMOVQ       (SI), X8\n\tPINSRQ     $0x01, 16(SI), X8\n\tMOVQ       32(SI), X9\n\tPINSRQ     $0x01, 48(SI), X9\n\tMOVQ       8(SI), X10\n\tPINSRQ     $0x01, 24(SI), X10\n\tMOVQ       40(SI), X11\n\tPINSRQ     $0x01, 56(SI), X11\n\tMOVO       X8, 16(R10)\n\tMOVO       X9, 32(R10)\n\tMOVO       X10, 48(R10)\n\tMOVO       X11, 64(R10)\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X6, X8\n\tPUNPCKLQDQ X6, X9\n\tPUNPCKHQDQ X7, X6\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X7, X9\n\tMOVO       X8, X7\n\tMOVO       X2, X8\n\tPUNPCKHQDQ X9, X7\n\tPUNPCKLQDQ X3, X9\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X3\n\tMOVQ       64(SI), X8\n\tPINSRQ     $0x01, 80(SI), X8\n\tMOVQ       96(SI), X9\n\tPINSRQ     $0x01, 112(SI), X9\n\tMOVQ       72(SI), X10\n\tPINSRQ     $0x01, 88(SI), X10\n\tMOVQ       104(SI), X11\n\tPINSRQ     $0x01, 120(SI), X11\n\tMOVO       X8, 80(R10)\n\tMOVO       X9, 96(R10)\n\tMOVO       X10, 112(R10)\n\tMOVO       X11, 128(R10)\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X2, X8\n\tPUNPCKLQDQ X2, X9\n\tPUNPCKHQDQ X3, X2\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X3, X9\n\tMOVO       X8, X3\n\tMOVO       X6, X8\n\tPUNPCKHQDQ X9, X3\n\tPUNPCKLQDQ X7, X9\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X7\n\tMOVQ       112(SI), X8\n\tPINSRQ     $0x01, 32(SI), X8\n\tMOVQ       72(SI), X9\n\tPINSRQ     $0x01, 104(SI), X9\n\tMOVQ       80(SI), X10\n\tPINSRQ     $0x01, 64(SI), X10\n\tMOVQ       120(SI), X11\n\tPINSRQ     $0x01, 48(SI), X11\n\tMOVO       X8, 144(R10)\n\tMOVO       X9, 160(R10)\n\tMOVO       X10, 176(R10)\n\tMOVO       X11, 192(R10)\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X6, X8\n\tPUNPCKLQDQ X6, X9\n\tPUNPCKHQDQ X7, X6\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X7, X9\n\tMOVO       X8, X7\n\tMOVO       X2, X8\n\tPUNPCKHQDQ X9, X7\n\tPUNPCKLQDQ X3, X9\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X3\n\tMOVQ       8(SI), X8\n\tPINSRQ     $0x01, (SI), X8\n\tMOVQ       88(SI), X9\n\tPINSRQ     $0x01, 40(SI), X9\n\tMOVQ       96(SI), X10\n\tPINSRQ     $0x01, 16(SI), X10\n\tMOVQ       56(SI), X11\n\tPINSRQ     $0x01, 24(SI), X11\n\tMOVO       X8, 208(R10)\n\tMOVO       X9, 224(R10)\n\tMOVO       X10, 240(R10)\n\tMOVO       X11, 256(R10)\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X2, X8\n\tPUNPCKLQDQ X2, X9\n\tPUNPCKHQDQ X3, X2\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X3, X9\n\tMOVO       X8, X3\n\tMOVO       X6, X8\n\tPUNPCKHQDQ X9, X3\n\tPUNPCKLQDQ X7, X9\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X7\n\tMOVQ       88(SI), X8\n\tPINSRQ     $0x01, 96(SI), X8\n\tMOVQ       40(SI), X9\n\tPINSRQ     $0x01, 120(SI), X9\n\tMOVQ       64(SI), X10\n\tPINSRQ     $0x01, (SI), X10\n\tMOVQ       16(SI), X11\n\tPINSRQ     $0x01, 104(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X6, X8\n\tPUNPCKLQDQ X6, X9\n\tPUNPCKHQDQ X7, X6\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X7, X9\n\tMOVO       X8, X7\n\tMOVO       X2, X8\n\tPUNPCKHQDQ X9, X7\n\tPUNPCKLQDQ X3, X9\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X3\n\tMOVQ       80(SI), X8\n\tPINSRQ     $0x01, 24(SI), X8\n\tMOVQ       56(SI), X9\n\tPINSRQ     $0x01, 72(SI), X9\n\tMOVQ       112(SI), X10\n\tPINSRQ     $0x01, 48(SI), X10\n\tMOVQ       8(SI), X11\n\tPINSRQ     $0x01, 32(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X2, X8\n\tPUNPCKLQDQ X2, X9\n\tPUNPCKHQDQ X3, X2\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X3, X9\n\tMOVO       X8, X3\n\tMOVO       X6, X8\n\tPUNPCKHQDQ X9, X3\n\tPUNPCKLQDQ X7, X9\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X7\n\tMOVQ       56(SI), X8\n\tPINSRQ     $0x01, 24(SI), X8\n\tMOVQ       104(SI), X9\n\tPINSRQ     $0x01, 88(SI), X9\n\tMOVQ       72(SI), X10\n\tPINSRQ     $0x01, 8(SI), X10\n\tMOVQ       96(SI), X11\n\tPINSRQ     $0x01, 112(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X6, X8\n\tPUNPCKLQDQ X6, X9\n\tPUNPCKHQDQ X7, X6\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X7, X9\n\tMOVO       X8, X7\n\tMOVO       X2, X8\n\tPUNPCKHQDQ X9, X7\n\tPUNPCKLQDQ X3, X9\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X3\n\tMOVQ       16(SI), X8\n\tPINSRQ     $0x01, 40(SI), X8\n\tMOVQ       32(SI), X9\n\tPINSRQ     $0x01, 120(SI), X9\n\tMOVQ       48(SI), X10\n\tPINSRQ     $0x01, 80(SI), X10\n\tMOVQ       (SI), X11\n\tPINSRQ     $0x01, 64(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X2, X8\n\tPUNPCKLQDQ X2, X9\n\tPUNPCKHQDQ X3, X2\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X3, X9\n\tMOVO       X8, X3\n\tMOVO       X6, X8\n\tPUNPCKHQDQ X9, X3\n\tPUNPCKLQDQ X7, X9\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X7\n\tMOVQ       72(SI), X8\n\tPINSRQ     $0x01, 40(SI), X8\n\tMOVQ       16(SI), X9\n\tPINSRQ     $0x01, 80(SI), X9\n\tMOVQ       (SI), X10\n\tPINSRQ     $0x01, 56(SI), X10\n\tMOVQ       32(SI), X11\n\tPINSRQ     $0x01, 120(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X6, X8\n\tPUNPCKLQDQ X6, X9\n\tPUNPCKHQDQ X7, X6\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X7, X9\n\tMOVO       X8, X7\n\tMOVO       X2, X8\n\tPUNPCKHQDQ X9, X7\n\tPUNPCKLQDQ X3, X9\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X3\n\tMOVQ       112(SI), X8\n\tPINSRQ     $0x01, 88(SI), X8\n\tMOVQ       48(SI), X9\n\tPINSRQ     $0x01, 24(SI), X9\n\tMOVQ       8(SI), X10\n\tPINSRQ     $0x01, 96(SI), X10\n\tMOVQ       64(SI), X11\n\tPINSRQ     $0x01, 104(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X2, X8\n\tPUNPCKLQDQ X2, X9\n\tPUNPCKHQDQ X3, X2\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X3, X9\n\tMOVO       X8, X3\n\tMOVO       X6, X8\n\tPUNPCKHQDQ X9, X3\n\tPUNPCKLQDQ X7, X9\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X7\n\tMOVQ       16(SI), X8\n\tPINSRQ     $0x01, 48(SI), X8\n\tMOVQ       (SI), X9\n\tPINSRQ     $0x01, 64(SI), X9\n\tMOVQ       96(SI), X10\n\tPINSRQ     $0x01, 80(SI), X10\n\tMOVQ       88(SI), X11\n\tPINSRQ     $0x01, 24(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X6, X8\n\tPUNPCKLQDQ X6, X9\n\tPUNPCKHQDQ X7, X6\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X7, X9\n\tMOVO       X8, X7\n\tMOVO       X2, X8\n\tPUNPCKHQDQ X9, X7\n\tPUNPCKLQDQ X3, X9\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X3\n\tMOVQ       32(SI), X8\n\tPINSRQ     $0x01, 56(SI), X8\n\tMOVQ       120(SI), X9\n\tPINSRQ     $0x01, 8(SI), X9\n\tMOVQ       104(SI), X10\n\tPINSRQ     $0x01, 40(SI), X10\n\tMOVQ       112(SI), X11\n\tPINSRQ     $0x01, 72(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X2, X8\n\tPUNPCKLQDQ X2, X9\n\tPUNPCKHQDQ X3, X2\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X3, X9\n\tMOVO       X8, X3\n\tMOVO       X6, X8\n\tPUNPCKHQDQ X9, X3\n\tPUNPCKLQDQ X7, X9\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X7\n\tMOVQ       96(SI), X8\n\tPINSRQ     $0x01, 8(SI), X8\n\tMOVQ       112(SI), X9\n\tPINSRQ     $0x01, 32(SI), X9\n\tMOVQ       40(SI), X10\n\tPINSRQ     $0x01, 120(SI), X10\n\tMOVQ       104(SI), X11\n\tPINSRQ     $0x01, 80(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X6, X8\n\tPUNPCKLQDQ X6, X9\n\tPUNPCKHQDQ X7, X6\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X7, X9\n\tMOVO       X8, X7\n\tMOVO       X2, X8\n\tPUNPCKHQDQ X9, X7\n\tPUNPCKLQDQ X3, X9\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X3\n\tMOVQ       (SI), X8\n\tPINSRQ     $0x01, 48(SI), X8\n\tMOVQ       72(SI), X9\n\tPINSRQ     $0x01, 64(SI), X9\n\tMOVQ       56(SI), X10\n\tPINSRQ     $0x01, 24(SI), X10\n\tMOVQ       16(SI), X11\n\tPINSRQ     $0x01, 88(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X2, X8\n\tPUNPCKLQDQ X2, X9\n\tPUNPCKHQDQ X3, X2\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X3, X9\n\tMOVO       X8, X3\n\tMOVO       X6, X8\n\tPUNPCKHQDQ X9, X3\n\tPUNPCKLQDQ X7, X9\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X7\n\tMOVQ       104(SI), X8\n\tPINSRQ     $0x01, 56(SI), X8\n\tMOVQ       96(SI), X9\n\tPINSRQ     $0x01, 24(SI), X9\n\tMOVQ       88(SI), X10\n\tPINSRQ     $0x01, 112(SI), X10\n\tMOVQ       8(SI), X11\n\tPINSRQ     $0x01, 72(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X6, X8\n\tPUNPCKLQDQ X6, X9\n\tPUNPCKHQDQ X7, X6\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X7, X9\n\tMOVO       X8, X7\n\tMOVO       X2, X8\n\tPUNPCKHQDQ X9, X7\n\tPUNPCKLQDQ X3, X9\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X3\n\tMOVQ       40(SI), X8\n\tPINSRQ     $0x01, 120(SI), X8\n\tMOVQ       64(SI), X9\n\tPINSRQ     $0x01, 16(SI), X9\n\tMOVQ       (SI), X10\n\tPINSRQ     $0x01, 32(SI), X10\n\tMOVQ       48(SI), X11\n\tPINSRQ     $0x01, 80(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X2, X8\n\tPUNPCKLQDQ X2, X9\n\tPUNPCKHQDQ X3, X2\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X3, X9\n\tMOVO       X8, X3\n\tMOVO       X6, X8\n\tPUNPCKHQDQ X9, X3\n\tPUNPCKLQDQ X7, X9\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X7\n\tMOVQ       48(SI), X8\n\tPINSRQ     $0x01, 112(SI), X8\n\tMOVQ       88(SI), X9\n\tPINSRQ     $0x01, (SI), X9\n\tMOVQ       120(SI), X10\n\tPINSRQ     $0x01, 72(SI), X10\n\tMOVQ       24(SI), X11\n\tPINSRQ     $0x01, 64(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X6, X8\n\tPUNPCKLQDQ X6, X9\n\tPUNPCKHQDQ X7, X6\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X7, X9\n\tMOVO       X8, X7\n\tMOVO       X2, X8\n\tPUNPCKHQDQ X9, X7\n\tPUNPCKLQDQ X3, X9\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X3\n\tMOVQ       96(SI), X8\n\tPINSRQ     $0x01, 104(SI), X8\n\tMOVQ       8(SI), X9\n\tPINSRQ     $0x01, 80(SI), X9\n\tMOVQ       16(SI), X10\n\tPINSRQ     $0x01, 56(SI), X10\n\tMOVQ       32(SI), X11\n\tPINSRQ     $0x01, 40(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X2, X8\n\tPUNPCKLQDQ X2, X9\n\tPUNPCKHQDQ X3, X2\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X3, X9\n\tMOVO       X8, X3\n\tMOVO       X6, X8\n\tPUNPCKHQDQ X9, X3\n\tPUNPCKLQDQ X7, X9\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X7\n\tMOVQ       80(SI), X8\n\tPINSRQ     $0x01, 64(SI), X8\n\tMOVQ       56(SI), X9\n\tPINSRQ     $0x01, 8(SI), X9\n\tMOVQ       16(SI), X10\n\tPINSRQ     $0x01, 32(SI), X10\n\tMOVQ       48(SI), X11\n\tPINSRQ     $0x01, 40(SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X6, X8\n\tPUNPCKLQDQ X6, X9\n\tPUNPCKHQDQ X7, X6\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X7, X9\n\tMOVO       X8, X7\n\tMOVO       X2, X8\n\tPUNPCKHQDQ X9, X7\n\tPUNPCKLQDQ X3, X9\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X3\n\tMOVQ       120(SI), X8\n\tPINSRQ     $0x01, 72(SI), X8\n\tMOVQ       24(SI), X9\n\tPINSRQ     $0x01, 104(SI), X9\n\tMOVQ       88(SI), X10\n\tPINSRQ     $0x01, 112(SI), X10\n\tMOVQ       96(SI), X11\n\tPINSRQ     $0x01, (SI), X11\n\tPADDQ      X8, X0\n\tPADDQ      X9, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      X10, X0\n\tPADDQ      X11, X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X2, X8\n\tPUNPCKLQDQ X2, X9\n\tPUNPCKHQDQ X3, X2\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X3, X9\n\tMOVO       X8, X3\n\tMOVO       X6, X8\n\tPUNPCKHQDQ X9, X3\n\tPUNPCKLQDQ X7, X9\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X7\n\tPADDQ      16(R10), X0\n\tPADDQ      32(R10), X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      48(R10), X0\n\tPADDQ      64(R10), X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X6, X8\n\tPUNPCKLQDQ X6, X9\n\tPUNPCKHQDQ X7, X6\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X7, X9\n\tMOVO       X8, X7\n\tMOVO       X2, X8\n\tPUNPCKHQDQ X9, X7\n\tPUNPCKLQDQ X3, X9\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X3\n\tPADDQ      80(R10), X0\n\tPADDQ      96(R10), X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      112(R10), X0\n\tPADDQ      128(R10), X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X2, X8\n\tPUNPCKLQDQ X2, X9\n\tPUNPCKHQDQ X3, X2\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X3, X9\n\tMOVO       X8, X3\n\tMOVO       X6, X8\n\tPUNPCKHQDQ X9, X3\n\tPUNPCKLQDQ X7, X9\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X7\n\tPADDQ      144(R10), X0\n\tPADDQ      160(R10), X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      176(R10), X0\n\tPADDQ      192(R10), X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X6, X8\n\tPUNPCKLQDQ X6, X9\n\tPUNPCKHQDQ X7, X6\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X7, X9\n\tMOVO       X8, X7\n\tMOVO       X2, X8\n\tPUNPCKHQDQ X9, X7\n\tPUNPCKLQDQ X3, X9\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X3\n\tPADDQ      208(R10), X0\n\tPADDQ      224(R10), X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFD     $0xb1, X6, X6\n\tPSHUFD     $0xb1, X7, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tPSHUFB     X13, X2\n\tPSHUFB     X13, X3\n\tPADDQ      240(R10), X0\n\tPADDQ      256(R10), X1\n\tPADDQ      X2, X0\n\tPADDQ      X3, X1\n\tPXOR       X0, X6\n\tPXOR       X1, X7\n\tPSHUFB     X14, X6\n\tPSHUFB     X14, X7\n\tPADDQ      X6, X4\n\tPADDQ      X7, X5\n\tPXOR       X4, X2\n\tPXOR       X5, X3\n\tMOVOU      X2, X11\n\tPADDQ      X2, X11\n\tPSRLQ      $0x3f, X2\n\tPXOR       X11, X2\n\tMOVOU      X3, X11\n\tPADDQ      X3, X11\n\tPSRLQ      $0x3f, X3\n\tPXOR       X11, X3\n\tMOVO       X4, X8\n\tMOVO       X5, X4\n\tMOVO       X8, X5\n\tMOVO       X2, X8\n\tPUNPCKLQDQ X2, X9\n\tPUNPCKHQDQ X3, X2\n\tPUNPCKHQDQ X9, X2\n\tPUNPCKLQDQ X3, X9\n\tMOVO       X8, X3\n\tMOVO       X6, X8\n\tPUNPCKHQDQ X9, X3\n\tPUNPCKLQDQ X7, X9\n\tPUNPCKHQDQ X9, X6\n\tPUNPCKLQDQ X8, X9\n\tPUNPCKHQDQ X9, X7\n\tMOVOU      32(AX), X10\n\tMOVOU      48(AX), X11\n\tPXOR       X0, X12\n\tPXOR       X1, X15\n\tPXOR       X2, X10\n\tPXOR       X3, X11\n\tPXOR       X4, X12\n\tPXOR       X5, X15\n\tPXOR       X6, X10\n\tPXOR       X7, X11\n\tMOVOU      X10, 32(AX)\n\tMOVOU      X11, 48(AX)\n\tLEAQ       128(SI), SI\n\tSUBQ       $0x80, DI\n\tJNE        loop\n\tMOVOU      X12, (AX)\n\tMOVOU      X15, 16(AX)\n\tMOVQ       R8, (BX)\n\tMOVQ       R9, 8(BX)\n\tRET\n\nDATA ·iv3<>+0(SB)/8, $0x1f83d9abfb41bd6b\nDATA ·iv3<>+8(SB)/8, $0x5be0cd19137e2179\nGLOBL ·iv3<>(SB), RODATA|NOPTR, $16\n\nDATA ·c40<>+0(SB)/8, $0x0201000706050403\nDATA ·c40<>+8(SB)/8, $0x0a09080f0e0d0c0b\nGLOBL ·c40<>(SB), RODATA|NOPTR, $16\n\nDATA ·c48<>+0(SB)/8, $0x0100070605040302\nDATA ·c48<>+8(SB)/8, $0x09080f0e0d0c0b0a\nGLOBL ·c48<>(SB), RODATA|NOPTR, $16\n\nDATA ·iv0<>+0(SB)/8, $0x6a09e667f3bcc908\nDATA ·iv0<>+8(SB)/8, $0xbb67ae8584caa73b\nGLOBL ·iv0<>(SB), RODATA|NOPTR, $16\n\nDATA ·iv1<>+0(SB)/8, $0x3c6ef372fe94f82b\nDATA ·iv1<>+8(SB)/8, $0xa54ff53a5f1d36f1\nGLOBL ·iv1<>(SB), RODATA|NOPTR, $16\n\nDATA ·iv2<>+0(SB)/8, $0x510e527fade682d1\nDATA ·iv2<>+8(SB)/8, $0x9b05688c2b3e6c1f\nGLOBL ·iv2<>(SB), RODATA|NOPTR, $16\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/blake2b/blake2b_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\npackage blake2b\n\nimport (\n\t\"encoding/binary\"\n\t\"math/bits\"\n)\n\n// the precomputed values for BLAKE2b\n// there are 12 16-byte arrays - one for each round\n// the entries are calculated from the sigma constants.\nvar precomputed = [12][16]byte{\n\t{0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15},\n\t{14, 4, 9, 13, 10, 8, 15, 6, 1, 0, 11, 5, 12, 2, 7, 3},\n\t{11, 12, 5, 15, 8, 0, 2, 13, 10, 3, 7, 9, 14, 6, 1, 4},\n\t{7, 3, 13, 11, 9, 1, 12, 14, 2, 5, 4, 15, 6, 10, 0, 8},\n\t{9, 5, 2, 10, 0, 7, 4, 15, 14, 11, 6, 3, 1, 12, 8, 13},\n\t{2, 6, 0, 8, 12, 10, 11, 3, 4, 7, 15, 1, 13, 5, 14, 9},\n\t{12, 1, 14, 4, 5, 15, 13, 10, 0, 6, 9, 8, 7, 3, 2, 11},\n\t{13, 7, 12, 3, 11, 14, 1, 9, 5, 15, 8, 2, 0, 4, 6, 10},\n\t{6, 14, 11, 0, 15, 9, 3, 8, 12, 13, 1, 10, 2, 7, 4, 5},\n\t{10, 8, 7, 1, 2, 4, 6, 5, 15, 9, 3, 13, 11, 14, 12, 0},\n\t{0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15}, // equal to the first\n\t{14, 4, 9, 13, 10, 8, 15, 6, 1, 0, 11, 5, 12, 2, 7, 3}, // equal to the second\n}\n\nfunc hashBlocksGeneric(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) {\n\tvar m [16]uint64\n\tc0, c1 := c[0], c[1]\n\n\tfor i := 0; i < len(blocks); {\n\t\tc0 += BlockSize\n\t\tif c0 < BlockSize {\n\t\t\tc1++\n\t\t}\n\n\t\tv0, v1, v2, v3, v4, v5, v6, v7 := h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7]\n\t\tv8, v9, v10, v11, v12, v13, v14, v15 := iv[0], iv[1], iv[2], iv[3], iv[4], iv[5], iv[6], iv[7]\n\t\tv12 ^= c0\n\t\tv13 ^= c1\n\t\tv14 ^= flag\n\n\t\tfor j := range m {\n\t\t\tm[j] = binary.LittleEndian.Uint64(blocks[i:])\n\t\t\ti += 8\n\t\t}\n\n\t\tfor j := range precomputed {\n\t\t\ts := &(precomputed[j])\n\n\t\t\tv0 += m[s[0]]\n\t\t\tv0 += v4\n\t\t\tv12 ^= v0\n\t\t\tv12 = bits.RotateLeft64(v12, -32)\n\t\t\tv8 += v12\n\t\t\tv4 ^= v8\n\t\t\tv4 = bits.RotateLeft64(v4, -24)\n\t\t\tv1 += m[s[1]]\n\t\t\tv1 += v5\n\t\t\tv13 ^= v1\n\t\t\tv13 = bits.RotateLeft64(v13, -32)\n\t\t\tv9 += v13\n\t\t\tv5 ^= v9\n\t\t\tv5 = bits.RotateLeft64(v5, -24)\n\t\t\tv2 += m[s[2]]\n\t\t\tv2 += v6\n\t\t\tv14 ^= v2\n\t\t\tv14 = bits.RotateLeft64(v14, -32)\n\t\t\tv10 += v14\n\t\t\tv6 ^= v10\n\t\t\tv6 = bits.RotateLeft64(v6, -24)\n\t\t\tv3 += m[s[3]]\n\t\t\tv3 += v7\n\t\t\tv15 ^= v3\n\t\t\tv15 = bits.RotateLeft64(v15, -32)\n\t\t\tv11 += v15\n\t\t\tv7 ^= v11\n\t\t\tv7 = bits.RotateLeft64(v7, -24)\n\n\t\t\tv0 += m[s[4]]\n\t\t\tv0 += v4\n\t\t\tv12 ^= v0\n\t\t\tv12 = bits.RotateLeft64(v12, -16)\n\t\t\tv8 += v12\n\t\t\tv4 ^= v8\n\t\t\tv4 = bits.RotateLeft64(v4, -63)\n\t\t\tv1 += m[s[5]]\n\t\t\tv1 += v5\n\t\t\tv13 ^= v1\n\t\t\tv13 = bits.RotateLeft64(v13, -16)\n\t\t\tv9 += v13\n\t\t\tv5 ^= v9\n\t\t\tv5 = bits.RotateLeft64(v5, -63)\n\t\t\tv2 += m[s[6]]\n\t\t\tv2 += v6\n\t\t\tv14 ^= v2\n\t\t\tv14 = bits.RotateLeft64(v14, -16)\n\t\t\tv10 += v14\n\t\t\tv6 ^= v10\n\t\t\tv6 = bits.RotateLeft64(v6, -63)\n\t\t\tv3 += m[s[7]]\n\t\t\tv3 += v7\n\t\t\tv15 ^= v3\n\t\t\tv15 = bits.RotateLeft64(v15, -16)\n\t\t\tv11 += v15\n\t\t\tv7 ^= v11\n\t\t\tv7 = bits.RotateLeft64(v7, -63)\n\n\t\t\tv0 += m[s[8]]\n\t\t\tv0 += v5\n\t\t\tv15 ^= v0\n\t\t\tv15 = bits.RotateLeft64(v15, -32)\n\t\t\tv10 += v15\n\t\t\tv5 ^= v10\n\t\t\tv5 = bits.RotateLeft64(v5, -24)\n\t\t\tv1 += m[s[9]]\n\t\t\tv1 += v6\n\t\t\tv12 ^= v1\n\t\t\tv12 = bits.RotateLeft64(v12, -32)\n\t\t\tv11 += v12\n\t\t\tv6 ^= v11\n\t\t\tv6 = bits.RotateLeft64(v6, -24)\n\t\t\tv2 += m[s[10]]\n\t\t\tv2 += v7\n\t\t\tv13 ^= v2\n\t\t\tv13 = bits.RotateLeft64(v13, -32)\n\t\t\tv8 += v13\n\t\t\tv7 ^= v8\n\t\t\tv7 = bits.RotateLeft64(v7, -24)\n\t\t\tv3 += m[s[11]]\n\t\t\tv3 += v4\n\t\t\tv14 ^= v3\n\t\t\tv14 = bits.RotateLeft64(v14, -32)\n\t\t\tv9 += v14\n\t\t\tv4 ^= v9\n\t\t\tv4 = bits.RotateLeft64(v4, -24)\n\n\t\t\tv0 += m[s[12]]\n\t\t\tv0 += v5\n\t\t\tv15 ^= v0\n\t\t\tv15 = bits.RotateLeft64(v15, -16)\n\t\t\tv10 += v15\n\t\t\tv5 ^= v10\n\t\t\tv5 = bits.RotateLeft64(v5, -63)\n\t\t\tv1 += m[s[13]]\n\t\t\tv1 += v6\n\t\t\tv12 ^= v1\n\t\t\tv12 = bits.RotateLeft64(v12, -16)\n\t\t\tv11 += v12\n\t\t\tv6 ^= v11\n\t\t\tv6 = bits.RotateLeft64(v6, -63)\n\t\t\tv2 += m[s[14]]\n\t\t\tv2 += v7\n\t\t\tv13 ^= v2\n\t\t\tv13 = bits.RotateLeft64(v13, -16)\n\t\t\tv8 += v13\n\t\t\tv7 ^= v8\n\t\t\tv7 = bits.RotateLeft64(v7, -63)\n\t\t\tv3 += m[s[15]]\n\t\t\tv3 += v4\n\t\t\tv14 ^= v3\n\t\t\tv14 = bits.RotateLeft64(v14, -16)\n\t\t\tv9 += v14\n\t\t\tv4 ^= v9\n\t\t\tv4 = bits.RotateLeft64(v4, -63)\n\n\t\t}\n\n\t\th[0] ^= v0 ^ v8\n\t\th[1] ^= v1 ^ v9\n\t\th[2] ^= v2 ^ v10\n\t\th[3] ^= v3 ^ v11\n\t\th[4] ^= v4 ^ v12\n\t\th[5] ^= v5 ^ v13\n\t\th[6] ^= v6 ^ v14\n\t\th[7] ^= v7 ^ v15\n\t}\n\tc[0], c[1] = c0, c1\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/blake2b/blake2b_ref.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 || purego || !gc\n\npackage blake2b\n\nfunc hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) {\n\thashBlocksGeneric(h, c, flag, blocks)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/blake2b/blake2x.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 blake2b\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"io\"\n)\n\n// XOF defines the interface to hash functions that\n// support arbitrary-length output.\n//\n// New callers should prefer the standard library [hash.XOF].\ntype XOF interface {\n\t// Write absorbs more data into the hash's state. It panics if called\n\t// after Read.\n\tio.Writer\n\n\t// Read reads more output from the hash. It returns io.EOF if the limit\n\t// has been reached.\n\tio.Reader\n\n\t// Clone returns a copy of the XOF in its current state.\n\tClone() XOF\n\n\t// Reset resets the XOF to its initial state.\n\tReset()\n}\n\n// OutputLengthUnknown can be used as the size argument to NewXOF to indicate\n// the length of the output is not known in advance.\nconst OutputLengthUnknown = 0\n\n// magicUnknownOutputLength is a magic value for the output size that indicates\n// an unknown number of output bytes.\nconst magicUnknownOutputLength = (1 << 32) - 1\n\n// maxOutputLength is the absolute maximum number of bytes to produce when the\n// number of output bytes is unknown.\nconst maxOutputLength = (1 << 32) * 64\n\n// NewXOF creates a new variable-output-length hash. The hash either produce a\n// known number of bytes (1 <= size < 2**32-1), or an unknown number of bytes\n// (size == OutputLengthUnknown). In the latter case, an absolute limit of\n// 256GiB applies.\n//\n// A non-nil key turns the hash into a MAC. The key must between\n// zero and 32 bytes long.\n//\n// The result can be safely interface-upgraded to [hash.XOF].\nfunc NewXOF(size uint32, key []byte) (XOF, error) {\n\tif len(key) > Size {\n\t\treturn nil, errKeySize\n\t}\n\tif size == magicUnknownOutputLength {\n\t\t// 2^32-1 indicates an unknown number of bytes and thus isn't a\n\t\t// valid length.\n\t\treturn nil, errors.New(\"blake2b: XOF length too large\")\n\t}\n\tif size == OutputLengthUnknown {\n\t\tsize = magicUnknownOutputLength\n\t}\n\tx := &xof{\n\t\td: digest{\n\t\t\tsize:   Size,\n\t\t\tkeyLen: len(key),\n\t\t},\n\t\tlength: size,\n\t}\n\tcopy(x.d.key[:], key)\n\tx.Reset()\n\treturn x, nil\n}\n\ntype xof struct {\n\td                digest\n\tlength           uint32\n\tremaining        uint64\n\tcfg, root, block [Size]byte\n\toffset           int\n\tnodeOffset       uint32\n\treadMode         bool\n}\n\nfunc (x *xof) Write(p []byte) (n int, err error) {\n\tif x.readMode {\n\t\tpanic(\"blake2b: write to XOF after read\")\n\t}\n\treturn x.d.Write(p)\n}\n\nfunc (x *xof) Clone() XOF {\n\tclone := *x\n\treturn &clone\n}\n\nfunc (x *xof) BlockSize() int {\n\treturn x.d.BlockSize()\n}\n\nfunc (x *xof) Reset() {\n\tx.cfg[0] = byte(Size)\n\tbinary.LittleEndian.PutUint32(x.cfg[4:], uint32(Size)) // leaf length\n\tbinary.LittleEndian.PutUint32(x.cfg[12:], x.length)    // XOF length\n\tx.cfg[17] = byte(Size)                                 // inner hash size\n\n\tx.d.Reset()\n\tx.d.h[1] ^= uint64(x.length) << 32\n\n\tx.remaining = uint64(x.length)\n\tif x.remaining == magicUnknownOutputLength {\n\t\tx.remaining = maxOutputLength\n\t}\n\tx.offset, x.nodeOffset = 0, 0\n\tx.readMode = false\n}\n\nfunc (x *xof) Read(p []byte) (n int, err error) {\n\tif !x.readMode {\n\t\tx.d.finalize(&x.root)\n\t\tx.readMode = true\n\t}\n\n\tif x.remaining == 0 {\n\t\treturn 0, io.EOF\n\t}\n\n\tn = len(p)\n\tif uint64(n) > x.remaining {\n\t\tn = int(x.remaining)\n\t\tp = p[:n]\n\t}\n\n\tif x.offset > 0 {\n\t\tblockRemaining := Size - x.offset\n\t\tif n < blockRemaining {\n\t\t\tx.offset += copy(p, x.block[x.offset:])\n\t\t\tx.remaining -= uint64(n)\n\t\t\treturn\n\t\t}\n\t\tcopy(p, x.block[x.offset:])\n\t\tp = p[blockRemaining:]\n\t\tx.offset = 0\n\t\tx.remaining -= uint64(blockRemaining)\n\t}\n\n\tfor len(p) >= Size {\n\t\tbinary.LittleEndian.PutUint32(x.cfg[8:], x.nodeOffset)\n\t\tx.nodeOffset++\n\n\t\tx.d.initConfig(&x.cfg)\n\t\tx.d.Write(x.root[:])\n\t\tx.d.finalize(&x.block)\n\n\t\tcopy(p, x.block[:])\n\t\tp = p[Size:]\n\t\tx.remaining -= uint64(Size)\n\t}\n\n\tif todo := len(p); todo > 0 {\n\t\tif x.remaining < uint64(Size) {\n\t\t\tx.cfg[0] = byte(x.remaining)\n\t\t}\n\t\tbinary.LittleEndian.PutUint32(x.cfg[8:], x.nodeOffset)\n\t\tx.nodeOffset++\n\n\t\tx.d.initConfig(&x.cfg)\n\t\tx.d.Write(x.root[:])\n\t\tx.d.finalize(&x.block)\n\n\t\tx.offset = copy(p, x.block[:todo])\n\t\tx.remaining -= uint64(todo)\n\t}\n\treturn\n}\n\nfunc (d *digest) initConfig(cfg *[Size]byte) {\n\td.offset, d.c[0], d.c[1] = 0, 0, 0\n\tfor i := range d.h {\n\t\td.h[i] = iv[i] ^ binary.LittleEndian.Uint64(cfg[i*8:])\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/blake2b/go125.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.25\n\npackage blake2b\n\nimport \"hash\"\n\nvar _ hash.XOF = (*xof)(nil)\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/blake2b/register.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 blake2b\n\nimport (\n\t\"crypto\"\n\t\"hash\"\n)\n\nfunc init() {\n\tnewHash256 := func() hash.Hash {\n\t\th, _ := New256(nil)\n\t\treturn h\n\t}\n\tnewHash384 := func() hash.Hash {\n\t\th, _ := New384(nil)\n\t\treturn h\n\t}\n\n\tnewHash512 := func() hash.Hash {\n\t\th, _ := New512(nil)\n\t\treturn h\n\t}\n\n\tcrypto.RegisterHash(crypto.BLAKE2b_256, newHash256)\n\tcrypto.RegisterHash(crypto.BLAKE2b_384, newHash384)\n\tcrypto.RegisterHash(crypto.BLAKE2b_512, newHash512)\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 len(g.sem) != 0 {\n\t\tpanic(fmt.Errorf(\"errgroup: modify limit while %v goroutines in the group are still active\", len(g.sem)))\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\tHasHPDS     bool // Hierarchical permission disables in translations tables\n\tHasLOR      bool // Limited ordering regions\n\tHasPAN      bool // Privileged access never\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\":\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(), getmmfr1(), getpfr0())\n}\n\nfunc parseARM64SystemRegisters(isar0, isar1, mmfr1, 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_AA64MMFR1_EL1\n\tswitch extractBits(mmfr1, 12, 15) {\n\tcase 1, 2:\n\t\tARM64.HasHPDS = true\n\t}\n\n\tswitch extractBits(mmfr1, 16, 19) {\n\tcase 1:\n\t\tARM64.HasLOR = true\n\t}\n\n\tswitch extractBits(mmfr1, 20, 23) {\n\tcase 1, 2, 3:\n\t\tARM64.HasPAN = 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 getmmfr1() uint64\nTEXT ·getmmfr1(SB),NOSPLIT,$0-8\n\t// get Memory Model Feature Register 1 into x0\n\tMRS\tID_AA64MMFR1_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 getmmfr1() 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 getmmfr1() 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.aa64mmfr1, 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, 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 && 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_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\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(26, edx1)\n\n\tX86.HasSSE3 = isSet(0, ecx1)\n\tX86.HasPCLMULQDQ = isSet(1, ecx1)\n\tX86.HasSSSE3 = isSet(9, ecx1)\n\tX86.HasFMA = isSet(12, ecx1)\n\tX86.HasCX16 = isSet(13, ecx1)\n\tX86.HasSSE41 = isSet(19, ecx1)\n\tX86.HasSSE42 = isSet(20, ecx1)\n\tX86.HasPOPCNT = isSet(23, ecx1)\n\tX86.HasAES = isSet(25, ecx1)\n\tX86.HasOSXSAVE = isSet(27, ecx1)\n\tX86.HasRDRAND = isSet(30, ecx1)\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(1, eax) && isSet(2, eax)\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(5, eax) && isSet(6, eax) && isSet(7, eax)\n\t\t}\n\t}\n\n\tX86.HasAVX = isSet(28, ecx1) && osSupportsAVX\n\n\tif maxID < 7 {\n\t\treturn\n\t}\n\n\teax7, ebx7, ecx7, edx7 := cpuid(7, 0)\n\tX86.HasBMI1 = isSet(3, ebx7)\n\tX86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX\n\tX86.HasBMI2 = isSet(8, ebx7)\n\tX86.HasERMS = isSet(9, ebx7)\n\tX86.HasRDSEED = isSet(18, ebx7)\n\tX86.HasADX = isSet(19, ebx7)\n\n\tX86.HasAVX512 = isSet(16, ebx7) && osSupportsAVX512 // Because avx-512 foundation is the core required extension\n\tif X86.HasAVX512 {\n\t\tX86.HasAVX512F = true\n\t\tX86.HasAVX512CD = isSet(28, ebx7)\n\t\tX86.HasAVX512ER = isSet(27, ebx7)\n\t\tX86.HasAVX512PF = isSet(26, ebx7)\n\t\tX86.HasAVX512VL = isSet(31, ebx7)\n\t\tX86.HasAVX512BW = isSet(30, ebx7)\n\t\tX86.HasAVX512DQ = isSet(17, ebx7)\n\t\tX86.HasAVX512IFMA = isSet(21, ebx7)\n\t\tX86.HasAVX512VBMI = isSet(1, ecx7)\n\t\tX86.HasAVX5124VNNIW = isSet(2, edx7)\n\t\tX86.HasAVX5124FMAPS = isSet(3, edx7)\n\t\tX86.HasAVX512VPOPCNTDQ = isSet(14, ecx7)\n\t\tX86.HasAVX512VPCLMULQDQ = isSet(10, ecx7)\n\t\tX86.HasAVX512VNNI = isSet(11, ecx7)\n\t\tX86.HasAVX512GFNI = isSet(8, ecx7)\n\t\tX86.HasAVX512VAES = isSet(9, ecx7)\n\t\tX86.HasAVX512VBMI2 = isSet(6, ecx7)\n\t\tX86.HasAVX512BITALG = isSet(12, ecx7)\n\t}\n\n\tX86.HasAMXTile = isSet(24, edx7)\n\tX86.HasAMXInt8 = isSet(25, edx7)\n\tX86.HasAMXBF16 = isSet(22, edx7)\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(5, eax71)\n\t\t}\n\t\tif X86.HasAVX {\n\t\t\tX86.HasAVXIFMA = isSet(23, eax71)\n\t\t\tX86.HasAVXVNNI = isSet(4, eax71)\n\t\t\tX86.HasAVXVNNIInt8 = isSet(4, edx71)\n\t\t}\n\t}\n}\n\nfunc isSet(bitpos uint, value uint32) bool {\n\treturn value&(1<<bitpos) != 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/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 (\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req int, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetPointerInt performs an ioctl operation which sets an\n// integer value on fd, using the specified request number. The ioctl\n// argument is called with a pointer to the integer value, rather than\n// passing the integer value directly.\nfunc IoctlSetPointerInt(fd int, req int, value int) error {\n\tv := int32(value)\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&v))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req int, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value will usually be TCSETA or TIOCSETA.\nfunc IoctlSetTermios(fd int, req int, value *Termios) error {\n\t// TODO: if we get the chance, remove the req parameter.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req int) (int, error) {\n\tvar value int\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req int) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlGetTermios(fd int, req int) (*Termios, error) {\n\tvar value Termios\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_unsigned.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req uint, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetPointerInt performs an ioctl operation which sets an\n// integer value on fd, using the specified request number. The ioctl\n// argument is called with a pointer to the integer value, rather than\n// passing the integer value directly.\nfunc IoctlSetPointerInt(fd int, req uint, value int) error {\n\tv := int32(value)\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&v))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req uint, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value will usually be TCSETA or TIOCSETA.\nfunc IoctlSetTermios(fd int, req uint, value *Termios) error {\n\t// TODO: if we get the chance, remove the req parameter.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req uint) (int, error) {\n\tvar value int\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req uint) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlGetTermios(fd int, req uint) (*Termios, error) {\n\tvar value Termios\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_zos.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req int, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req int, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value is expected to be TCSETS, TCSETSW, or TCSETSF\nfunc IoctlSetTermios(fd int, req int, value *Termios) error {\n\tif (req != TCSETS) && (req != TCSETSW) && (req != TCSETSF) {\n\t\treturn ENOSYS\n\t}\n\terr := Tcsetattr(fd, int(req), value)\n\truntime.KeepAlive(value)\n\treturn err\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req int) (int, error) {\n\tvar value int\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req int) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlGetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value is expected to be TCGETS\nfunc IoctlGetTermios(fd int, req int) (*Termios, error) {\n\tvar value Termios\n\tif req != TCGETS {\n\t\treturn &value, ENOSYS\n\t}\n\terr := Tcgetattr(fd, &value)\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mkall.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# This script runs or (given -n) prints suggested commands to generate files for\n# the Architecture/OS specified by the GOARCH and GOOS environment variables.\n# See README.md for more information about how the build system works.\n\nGOOSARCH=\"${GOOS}_${GOARCH}\"\n\n# defaults\nmksyscall=\"go run mksyscall.go\"\nmkerrors=\"./mkerrors.sh\"\nzerrors=\"zerrors_$GOOSARCH.go\"\nmksysctl=\"\"\nzsysctl=\"zsysctl_$GOOSARCH.go\"\nmksysnum=\nmktypes=\nmkasm=\nrun=\"sh\"\ncmd=\"\"\n\ncase \"$1\" in\n-syscalls)\n\tfor i in zsyscall*go\n\tdo\n\t\t# Run the command line that appears in the first line\n\t\t# of the generated file to regenerate it.\n\t\tsed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i\n\t\trm _$i\n\tdone\n\texit 0\n\t;;\n-n)\n\trun=\"cat\"\n\tcmd=\"echo\"\n\tshift\nesac\n\ncase \"$#\" in\n0)\n\t;;\n*)\n\techo 'usage: mkall.sh [-n]' 1>&2\n\texit 2\nesac\n\nif [[ \"$GOOS\" = \"linux\" ]]; then\n\t# Use the Docker-based build system\n\t# Files generated through docker (use $cmd so you can Ctl-C the build or run)\n\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/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_/ ||\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\nfunc IoctlSetString(fd int, req int, val string) error {\n\tbs := make([]byte, len(val)+1)\n\tcopy(bs[:len(bs)-1], val)\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&bs[0]))\n\truntime.KeepAlive(&bs[0])\n\treturn err\n}\n\n// Lifreq Helpers\n\nfunc (l *Lifreq) SetName(name string) error {\n\tif len(name) >= len(l.Name) {\n\t\treturn fmt.Errorf(\"name cannot be more than %d characters\", len(l.Name)-1)\n\t}\n\tfor i := range name {\n\t\tl.Name[i] = int8(name[i])\n\t}\n\treturn nil\n}\n\nfunc (l *Lifreq) SetLifruInt(d int) {\n\t*(*int)(unsafe.Pointer(&l.Lifru[0])) = d\n}\n\nfunc (l *Lifreq) GetLifruInt() int {\n\treturn *(*int)(unsafe.Pointer(&l.Lifru[0]))\n}\n\nfunc (l *Lifreq) SetLifruUint(d uint) {\n\t*(*uint)(unsafe.Pointer(&l.Lifru[0])) = d\n}\n\nfunc (l *Lifreq) GetLifruUint() uint {\n\treturn *(*uint)(unsafe.Pointer(&l.Lifru[0]))\n}\n\nfunc IoctlLifreq(fd int, req int, l *Lifreq) error {\n\treturn ioctlPtr(fd, req, unsafe.Pointer(l))\n}\n\n// Strioctl Helpers\n\nfunc (s *Strioctl) SetInt(i int) {\n\ts.Len = int32(unsafe.Sizeof(i))\n\ts.Dp = (*int8)(unsafe.Pointer(&i))\n}\n\nfunc IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) {\n\treturn ioctlPtrRet(fd, req, unsafe.Pointer(s))\n}\n\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\tn, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa)\n\t// source address is only specified if the socket is unconnected\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\n// RecvmsgBuffers receives a message from a socket using the recvmsg system\n// call. This function is equivalent to Recvmsg, but non-control data read is\n// scattered into the buffers slices.\nfunc RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tiov := make([]Iovec, len(buffers))\n\tfor i := range buffers {\n\t\tif len(buffers[i]) > 0 {\n\t\t\tiov[i].Base = &buffers[i][0]\n\t\t\tiov[i].SetLen(len(buffers[i]))\n\t\t} else {\n\t\t\tiov[i].Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t}\n\tvar rsa RawSockaddrAny\n\tn, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa)\n\tif err == nil && rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\n// Sendmsg sends a message on a socket to an address using the sendmsg system\n// call. This function is equivalent to SendmsgN, but does not return the\n// number of bytes actually sent.\nfunc Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {\n\t_, err = SendmsgN(fd, p, oob, to, flags)\n\treturn\n}\n\n// SendmsgN sends a message on a socket to an address using the sendmsg system\n// call. p contains the non-control data to send, and oob contains the \"out of\n// band\" control data. The flags are passed to sendmsg. The number of\n// non-control bytes actually written to the socket is returned.\n//\n// Some socket types do not support sending control data without accompanying\n// non-control data. If p is empty, and oob contains control data, and the\n// underlying socket type is not SOCK_DGRAM, p will be treated as containing a\n// single '\\0' and the return value will indicate zero bytes sent.\n//\n// The Go function Recvmsg, if called with an empty p and a non-empty oob,\n// will read and ignore this additional '\\0'.  If the message is received by\n// code that does not use Recvmsg, or that does not use Go at all, that code\n// will need to be written to expect and ignore the additional '\\0'.\n//\n// If you need to send non-empty oob with p actually empty, and if the\n// underlying socket type supports it, you can do so via a raw system call as\n// follows:\n//\n//\tmsg := &unix.Msghdr{\n//\t    Control: &oob[0],\n//\t}\n//\tmsg.SetControllen(len(oob))\n//\tn, _, errno := unix.Syscall(unix.SYS_SENDMSG, uintptr(fd), uintptr(unsafe.Pointer(msg)), flags)\nfunc SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tvar iov [1]Iovec\n\tif len(p) > 0 {\n\t\tiov[0].Base = &p[0]\n\t\tiov[0].SetLen(len(p))\n\t}\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\treturn sendmsgN(fd, iov[:], oob, ptr, salen, flags)\n}\n\n// SendmsgBuffers sends a message on a socket to an address using the sendmsg\n// system call. This function is equivalent to SendmsgN, but the non-control\n// data is gathered from buffers.\nfunc SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tiov := make([]Iovec, len(buffers))\n\tfor i := range buffers {\n\t\tif len(buffers[i]) > 0 {\n\t\t\tiov[i].Base = &buffers[i][0]\n\t\t\tiov[i].SetLen(len(buffers[i]))\n\t\t} else {\n\t\t\tiov[i].Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t}\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\treturn sendmsgN(fd, iov, oob, ptr, salen, flags)\n}\n\nfunc Send(s int, buf []byte, flags int) (err error) {\n\treturn sendto(s, buf, flags, nil, 0)\n}\n\nfunc Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) {\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn sendto(fd, p, flags, ptr, salen)\n}\n\nfunc SetsockoptByte(fd, level, opt int, value byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 1)\n}\n\nfunc SetsockoptInt(fd, level, opt int, value int) (err error) {\n\tvar n = int32(value)\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&n), 4)\n}\n\nfunc SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4)\n}\n\nfunc SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq)\n}\n\nfunc SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq)\n}\n\nfunc SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter)\n}\n\nfunc SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger)\n}\n\nfunc SetsockoptString(fd, level, opt int, s string) (err error) {\n\tvar p unsafe.Pointer\n\tif len(s) > 0 {\n\t\tp = unsafe.Pointer(&[]byte(s)[0])\n\t}\n\treturn setsockopt(fd, level, opt, p, uintptr(len(s)))\n}\n\nfunc SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))\n}\n\nfunc SetsockoptUint64(fd, level, opt int, value uint64) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 8)\n}\n\nfunc Socket(domain, typ, proto int) (fd int, err error) {\n\tif domain == AF_INET6 && SocketDisableIPv6 {\n\t\treturn -1, EAFNOSUPPORT\n\t}\n\tfd, err = socket(domain, typ, proto)\n\treturn\n}\n\nfunc Socketpair(domain, typ, proto int) (fd [2]int, err error) {\n\tvar fdx [2]int32\n\terr = socketpair(domain, typ, proto, &fdx)\n\tif err == nil {\n\t\tfd[0] = int(fdx[0])\n\t\tfd[1] = int(fdx[1])\n\t}\n\treturn\n}\n\nvar ioSync int64\n\nfunc CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) }\n\nfunc SetNonblock(fd int, nonblocking bool) (err error) {\n\tflag, err := fcntl(fd, F_GETFL, 0)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif (flag&O_NONBLOCK != 0) == nonblocking {\n\t\treturn nil\n\t}\n\tif nonblocking {\n\t\tflag |= O_NONBLOCK\n\t} else {\n\t\tflag &= ^O_NONBLOCK\n\t}\n\t_, err = fcntl(fd, F_SETFL, flag)\n\treturn err\n}\n\n// Exec calls execve(2), which replaces the calling executable in the process\n// tree. argv0 should be the full path to an executable (\"/bin/ls\") and the\n// executable name should also be the first argument in argv ([\"ls\", \"-l\"]).\n// envv are the environment variables that should be passed to the new\n// process ([\"USER=go\", \"PWD=/tmp\"]).\nfunc Exec(argv0 string, argv []string, envv []string) error {\n\treturn syscall.Exec(argv0, argv, envv)\n}\n\n// Lutimes sets the access and modification times tv on path. If path refers to\n// a symlink, it is not dereferenced and the timestamps are set on the symlink.\n// If tv is nil, the access and modification times are set to the current time.\n// Otherwise tv must contain exactly 2 elements, with access time as the first\n// element and modification time as the second element.\nfunc Lutimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW)\n}\n\n// emptyIovecs reports whether there are no bytes in the slice of Iovec.\nfunc emptyIovecs(iov []Iovec) bool {\n\tfor i := range iov {\n\t\tif iov[i].Len > 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Setrlimit sets a resource limit.\nfunc Setrlimit(resource int, rlim *Rlimit) error {\n\t// Just call the syscall version, because as of Go 1.21\n\t// it will affect starting a new process.\n\treturn syscall.Setrlimit(resource, (*syscall.Rlimit)(rlim))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix_gc.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc\n\npackage unix\n\nimport \"syscall\"\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (ppc64le || ppc64) && gc\n\npackage unix\n\nimport \"syscall\"\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.Syscall(trap, a1, a2, a3)\n}\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6)\n}\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.RawSyscall(trap, a1, a2, a3)\n}\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_zos_s390x.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Many of the following syscalls are not available on all versions of z/OS.\n// Some missing calls have legacy implementations/simulations but others\n// will be missing completely. To achieve consistent failing behaviour on\n// legacy systems, we first test the function pointer via a safeloading\n// mechanism to see if the function exists on a given system. Then execution\n// is branched to either continue the function call, or return an error.\n\npackage unix\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"os\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:noescape\nfunc initZosLibVec()\n\n//go:noescape\nfunc GetZosLibVec() uintptr\n\nfunc init() {\n\tinitZosLibVec()\n\tr0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte(\"__ZOS_XSYSTRACE\\x00\"))[0])))\n\tif r0 != 0 {\n\t\tn, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0)\n\t\tZosTraceLevel = int(n)\n\t\tr0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte(\"__ZOS_XSYSTRACEFD\\x00\"))[0])))\n\t\tif r0 != 0 {\n\t\t\tfd, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0)\n\t\t\tf := os.NewFile(fd, \"zostracefile\")\n\t\t\tif f != nil {\n\t\t\t\tZosTracefile = f\n\t\t\t}\n\t\t}\n\n\t}\n}\n\n//go:noescape\nfunc CallLeFuncWithErr(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno)\n\n//go:noescape\nfunc CallLeFuncWithPtrReturn(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno)\n\n// -------------------------------\n// pointer validity test\n// good pointer returns 0\n// bad pointer returns 1\n//\n//go:nosplit\nfunc ptrtest(uintptr) uint64\n\n// Load memory at ptr location with error handling if the location is invalid\n//\n//go:noescape\nfunc safeload(ptr uintptr) (value uintptr, error uintptr)\n\nconst (\n\tentrypointLocationOffset = 8 // From function descriptor\n\n\txplinkEyecatcher   = 0x00c300c500c500f1 // \".C.E.E.1\"\n\teyecatcherOffset   = 16                 // From function entrypoint (negative)\n\tppa1LocationOffset = 8                  // From function entrypoint (negative)\n\n\tnameLenOffset = 0x14 // From PPA1 start\n\tnameOffset    = 0x16 // From PPA1 start\n)\n\nfunc getPpaOffset(funcptr uintptr) int64 {\n\tentrypoint, err := safeload(funcptr + entrypointLocationOffset)\n\tif err != 0 {\n\t\treturn -1\n\t}\n\n\t// XPLink functions have \".C.E.E.1\" as the first 8 bytes (EBCDIC)\n\tval, err := safeload(entrypoint - eyecatcherOffset)\n\tif err != 0 {\n\t\treturn -1\n\t}\n\tif val != xplinkEyecatcher {\n\t\treturn -1\n\t}\n\n\tppaoff, err := safeload(entrypoint - ppa1LocationOffset)\n\tif err != 0 {\n\t\treturn -1\n\t}\n\n\tppaoff >>= 32\n\treturn int64(ppaoff)\n}\n\n//-------------------------------\n// function descriptor pointer validity test\n// good pointer returns 0\n// bad pointer returns 1\n\n// TODO: currently mksyscall_zos_s390x.go generate empty string for funcName\n// have correct funcName pass to the funcptrtest function\nfunc funcptrtest(funcptr uintptr, funcName string) uint64 {\n\tentrypoint, err := safeload(funcptr + entrypointLocationOffset)\n\tif err != 0 {\n\t\treturn 1\n\t}\n\n\tppaoff := getPpaOffset(funcptr)\n\tif ppaoff == -1 {\n\t\treturn 1\n\t}\n\n\t// PPA1 offset value is from the start of the entire function block, not the entrypoint\n\tppa1 := (entrypoint - eyecatcherOffset) + uintptr(ppaoff)\n\n\tnameLen, err := safeload(ppa1 + nameLenOffset)\n\tif err != 0 {\n\t\treturn 1\n\t}\n\n\tnameLen >>= 48\n\tif nameLen > 128 {\n\t\treturn 1\n\t}\n\n\t// no function name input to argument end here\n\tif funcName == \"\" {\n\t\treturn 0\n\t}\n\n\tvar funcname [128]byte\n\tfor i := 0; i < int(nameLen); i += 8 {\n\t\tv, err := safeload(ppa1 + nameOffset + uintptr(i))\n\t\tif err != 0 {\n\t\t\treturn 1\n\t\t}\n\t\tfuncname[i] = byte(v >> 56)\n\t\tfuncname[i+1] = byte(v >> 48)\n\t\tfuncname[i+2] = byte(v >> 40)\n\t\tfuncname[i+3] = byte(v >> 32)\n\t\tfuncname[i+4] = byte(v >> 24)\n\t\tfuncname[i+5] = byte(v >> 16)\n\t\tfuncname[i+6] = byte(v >> 8)\n\t\tfuncname[i+7] = byte(v)\n\t}\n\n\truntime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l\n\t\t[]uintptr{uintptr(unsafe.Pointer(&funcname[0])), nameLen})\n\n\tname := string(funcname[:nameLen])\n\tif name != funcName {\n\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n// For detection of capabilities on a system.\n// Is function descriptor f a valid function?\nfunc isValidLeFunc(f uintptr) error {\n\tret := funcptrtest(f, \"\")\n\tif ret != 0 {\n\t\treturn fmt.Errorf(\"Bad pointer, not an LE function \")\n\t}\n\treturn nil\n}\n\n// Retrieve function name from descriptor\nfunc getLeFuncName(f uintptr) (string, error) {\n\t// assume it has been checked, only check ppa1 validity here\n\tentry := ((*[2]uintptr)(unsafe.Pointer(f)))[1]\n\tpreamp := ((*[4]uint32)(unsafe.Pointer(entry - eyecatcherOffset)))\n\n\toffsetPpa1 := preamp[2]\n\tif offsetPpa1 > 0x0ffff {\n\t\treturn \"\", fmt.Errorf(\"PPA1 offset seems too big 0x%x\\n\", offsetPpa1)\n\t}\n\n\tppa1 := uintptr(unsafe.Pointer(preamp)) + uintptr(offsetPpa1)\n\tres := ptrtest(ppa1)\n\tif res != 0 {\n\t\treturn \"\", fmt.Errorf(\"PPA1 address not valid\")\n\t}\n\n\tsize := *(*uint16)(unsafe.Pointer(ppa1 + nameLenOffset))\n\tif size > 128 {\n\t\treturn \"\", fmt.Errorf(\"Function name seems too long, length=%d\\n\", size)\n\t}\n\n\tvar name [128]byte\n\tfuncname := (*[128]byte)(unsafe.Pointer(ppa1 + nameOffset))\n\tcopy(name[0:size], funcname[0:size])\n\n\truntime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l\n\t\t[]uintptr{uintptr(unsafe.Pointer(&name[0])), uintptr(size)})\n\n\treturn string(name[:size]), nil\n}\n\n// Check z/OS version\nfunc zosLeVersion() (version, release uint32) {\n\tp1 := (*(*uintptr)(unsafe.Pointer(uintptr(1208)))) >> 32\n\tp1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 88)))\n\tp1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 8)))\n\tp1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 984)))\n\tvrm := *(*uint32)(unsafe.Pointer(p1 + 80))\n\tversion = (vrm & 0x00ff0000) >> 16\n\trelease = (vrm & 0x0000ff00) >> 8\n\treturn\n}\n\n// returns a zos C FILE * for stdio fd 0, 1, 2\nfunc ZosStdioFilep(fd int32) uintptr {\n\treturn uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(uint64(*(*uint32)(unsafe.Pointer(uintptr(1208)))) + 80))) + uint64((fd+2)<<3))))))))\n}\n\nfunc copyStat(stat *Stat_t, statLE *Stat_LE_t) {\n\tstat.Dev = uint64(statLE.Dev)\n\tstat.Ino = uint64(statLE.Ino)\n\tstat.Nlink = uint64(statLE.Nlink)\n\tstat.Mode = uint32(statLE.Mode)\n\tstat.Uid = uint32(statLE.Uid)\n\tstat.Gid = uint32(statLE.Gid)\n\tstat.Rdev = uint64(statLE.Rdev)\n\tstat.Size = statLE.Size\n\tstat.Atim.Sec = int64(statLE.Atim)\n\tstat.Atim.Nsec = 0 //zos doesn't return nanoseconds\n\tstat.Mtim.Sec = int64(statLE.Mtim)\n\tstat.Mtim.Nsec = 0 //zos doesn't return nanoseconds\n\tstat.Ctim.Sec = int64(statLE.Ctim)\n\tstat.Ctim.Nsec = 0 //zos doesn't return nanoseconds\n\tstat.Blksize = int64(statLE.Blksize)\n\tstat.Blocks = statLE.Blocks\n}\n\nfunc svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64)\nfunc svcLoad(name *byte) unsafe.Pointer\nfunc svcUnload(name *byte, fnptr unsafe.Pointer) int64\n\nfunc (d *Dirent) NameString() string {\n\tif d == nil {\n\t\treturn \"\"\n\t}\n\ts := string(d.Name[:])\n\tidx := strings.IndexByte(s, 0)\n\tif idx == -1 {\n\t\treturn s\n\t} else {\n\t\treturn s[:idx]\n\t}\n}\n\nfunc DecodeData(dest []byte, sz int, val uint64) {\n\tfor i := 0; i < sz; i++ {\n\t\tdest[sz-1-i] = byte((val >> (uint64(i * 8))) & 0xff)\n\t}\n}\n\nfunc EncodeData(data []byte) uint64 {\n\tvar value uint64\n\tsz := len(data)\n\tfor i := 0; i < sz; i++ {\n\t\tvalue |= uint64(data[i]) << uint64(((sz - i - 1) * 8))\n\t}\n\treturn value\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet4\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet6\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) || n == 0 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\t// TODO(neeilan): Implement use of first param (fd)\n\tswitch rsa.Addr.Family {\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\t// For z/OS, only replace NUL with @ when the\n\t\t// length is not zero.\n\t\tif pp.Len != 0 && pp.Path[0] == 0 {\n\t\t\t// \"Abstract\" Unix domain socket.\n\t\t\t// Rewrite leading NUL as @ for textual display.\n\t\t\t// (This is the standard convention.)\n\t\t\t// Not friendly to overwrite in place,\n\t\t\t// but the callers below don't care.\n\t\t\tpp.Path[0] = '@'\n\t\t}\n\n\t\t// Assume path ends at NUL.\n\t\t//\n\t\t// For z/OS, the length of the name is a field\n\t\t// in the structure. To be on the safe side, we\n\t\t// will still scan the name for a NUL but only\n\t\t// to the length provided in the structure.\n\t\t//\n\t\t// This is not technically the Linux semantics for\n\t\t// abstract Unix domain sockets--they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs--but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < int(pp.Len) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif err != nil {\n\t\treturn\n\t}\n\t// TODO(neeilan): Remove 0 in call\n\tsa, err = anyToSockaddr(0, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\t// TODO(neeilan): Remove 0 in call\n\tsa, err = anyToSockaddr(0, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Ctermid() (tty string, err error) {\n\tvar termdev [1025]byte\n\truntime.EnterSyscall()\n\tr0, err2, err1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___CTERMID_A<<4, uintptr(unsafe.Pointer(&termdev[0])))\n\truntime.ExitSyscall()\n\tif r0 == 0 {\n\t\treturn \"\", fmt.Errorf(\"%s (errno2=0x%x)\\n\", err1.Error(), err2)\n\t}\n\ts := string(termdev[:])\n\tidx := strings.Index(s, string(rune(0)))\n\tif idx == -1 {\n\t\ttty = s\n\t} else {\n\t\ttty = s[:idx]\n\t}\n\treturn\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = int32(length)\n}\n\n//sys   fcntl(fd int, cmd int, arg int) (val int, err error)\n//sys   Flistxattr(fd int, dest []byte) (sz int, err error) = SYS___FLISTXATTR_A\n//sys   Fremovexattr(fd int, attr string) (err error) = SYS___FREMOVEXATTR_A\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n\n//sys   Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) = SYS___FGETXATTR_A\n//sys   Fsetxattr(fd int, attr string, data []byte, flag int) (err error) = SYS___FSETXATTR_A\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = SYS___ACCEPT4_A\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___BIND_A\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___CONNECT_A\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETPEERNAME_A\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETSOCKNAME_A\n//sys   Removexattr(path string, attr string) (err error) = SYS___REMOVEXATTR_A\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = SYS___RECVFROM_A\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = SYS___SENDTO_A\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___RECVMSG_A\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___SENDMSG_A\n//sys   mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) = SYS_MMAP\n//sys   munmap(addr uintptr, length uintptr) (err error) = SYS_MUNMAP\n//sys   ioctl(fd int, req int, arg uintptr) (err error) = SYS_IOCTL\n//sys   ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = SYS_IOCTL\n//sys\tshmat(id int, addr uintptr, flag int) (ret uintptr, err error) = SYS_SHMAT\n//sys\tshmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) = SYS_SHMCTL64\n//sys\tshmdt(addr uintptr) (err error) = SYS_SHMDT\n//sys\tshmget(key int, size int, flag int) (id int, err error) = SYS_SHMGET\n\n//sys   Access(path string, mode uint32) (err error) = SYS___ACCESS_A\n//sys   Chdir(path string) (err error) = SYS___CHDIR_A\n//sys\tChown(path string, uid int, gid int) (err error) = SYS___CHOWN_A\n//sys\tChmod(path string, mode uint32) (err error) = SYS___CHMOD_A\n//sys   Creat(path string, mode uint32) (fd int, err error) = SYS___CREAT_A\n//sys\tDup(oldfd int) (fd int, err error)\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tDup3(oldfd int, newfd int, flags int) (err error) = SYS_DUP3\n//sys\tDirfd(dirp uintptr) (fd int, err error) = SYS_DIRFD\n//sys\tEpollCreate(size int) (fd int, err error) = SYS_EPOLL_CREATE\n//sys\tEpollCreate1(flags int) (fd int, err error) = SYS_EPOLL_CREATE1\n//sys\tEpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) = SYS_EPOLL_CTL\n//sys\tEpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_WAIT\n//sys\tErrno2() (er2 int) = SYS___ERRNO2\n//sys\tEventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FACCESSAT_A\n\nfunc Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) {\n\treturn Faccessat(dirfd, path, mode, flags)\n}\n\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FCHMODAT_A\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(fd int, path string, uid int, gid int, flags int) (err error) = SYS___FCHOWNAT_A\n//sys\tFcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL\n//sys\tFdatasync(fd int) (err error) = SYS_FDATASYNC\n//sys\tfstat(fd int, stat *Stat_LE_t) (err error)\n//sys\tfstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) = SYS___FSTATAT_A\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\tvar statLE Stat_LE_t\n\terr = fstat(fd, &statLE)\n\tcopyStat(stat, &statLE)\n\treturn\n}\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar statLE Stat_LE_t\n\terr = fstatat(dirfd, path, &statLE, flags)\n\tcopyStat(stat, &statLE)\n\treturn\n}\n\nfunc impl_Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)))\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_GetxattrAddr() *(func(path string, attr string, dest []byte) (sz int, err error))\n\nvar Getxattr = enter_Getxattr\n\nfunc enter_Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tfuncref := get_GetxattrAddr()\n\tif validGetxattr() {\n\t\t*funcref = impl_Getxattr\n\t} else {\n\t\t*funcref = error_Getxattr\n\t}\n\treturn (*funcref)(path, attr, dest)\n}\n\nfunc error_Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc validGetxattr() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___GETXATTR_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___GETXATTR_A<<4); err == nil {\n\t\t\treturn name == \"__getxattr_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n//sys   Lgetxattr(link string, attr string, dest []byte) (sz int, err error) = SYS___LGETXATTR_A\n//sys   Lsetxattr(path string, attr string, data []byte, flags int) (err error) = SYS___LSETXATTR_A\n\nfunc impl_Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error))\n\nvar Setxattr = enter_Setxattr\n\nfunc enter_Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tfuncref := get_SetxattrAddr()\n\tif validSetxattr() {\n\t\t*funcref = impl_Setxattr\n\t} else {\n\t\t*funcref = error_Setxattr\n\t}\n\treturn (*funcref)(path, attr, data, flags)\n}\n\nfunc error_Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\treturn ENOSYS\n}\n\nfunc validSetxattr() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___SETXATTR_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___SETXATTR_A<<4); err == nil {\n\t\t\treturn name == \"__setxattr_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error) = SYS_FSTATFS\n//sys\tFstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS\n//sys\tFsync(fd int) (err error)\n//sys\tFutimes(fd int, tv []Timeval) (err error) = SYS_FUTIMES\n//sys\tFutimesat(dirfd int, path string, tv []Timeval) (err error) = SYS___FUTIMESAT_A\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tGetrandom(buf []byte, flags int) (n int, err error) = SYS_GETRANDOM\n//sys\tInotifyInit() (fd int, err error) = SYS_INOTIFY_INIT\n//sys\tInotifyInit1(flags int) (fd int, err error) = SYS_INOTIFY_INIT1\n//sys\tInotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) = SYS___INOTIFY_ADD_WATCH_A\n//sys\tInotifyRmWatch(fd int, watchdesc uint32) (success int, err error) = SYS_INOTIFY_RM_WATCH\n//sys   Listxattr(path string, dest []byte) (sz int, err error) = SYS___LISTXATTR_A\n//sys   Llistxattr(path string, dest []byte) (sz int, err error) = SYS___LLISTXATTR_A\n//sys   Lremovexattr(path string, attr string) (err error) = SYS___LREMOVEXATTR_A\n//sys\tLutimes(path string, tv []Timeval) (err error) = SYS___LUTIMES_A\n//sys   Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT\n//sys   Msync(b []byte, flags int) (err error) = SYS_MSYNC\n//sys   Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) = SYS___CONSOLE2\n\n// Pipe2 begin\n\n//go:nosplit\nfunc getPipe2Addr() *(func([]int, int) error)\n\nvar Pipe2 = pipe2Enter\n\nfunc pipe2Enter(p []int, flags int) (err error) {\n\tif funcptrtest(GetZosLibVec()+SYS_PIPE2<<4, \"\") == 0 {\n\t\t*getPipe2Addr() = pipe2Impl\n\t} else {\n\t\t*getPipe2Addr() = pipe2Error\n\t}\n\treturn (*getPipe2Addr())(p, flags)\n}\n\nfunc pipe2Impl(p []int, flags int) (err error) {\n\tvar pp [2]_C_int\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE2<<4, uintptr(unsafe.Pointer(&pp[0])), uintptr(flags))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t} else {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn\n}\nfunc pipe2Error(p []int, flags int) (err error) {\n\treturn fmt.Errorf(\"Pipe2 is not available on this system\")\n}\n\n// Pipe2 end\n\n//sys   Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL\n\nfunc Readdir(dir uintptr) (dirent *Dirent, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_A<<4, uintptr(dir))\n\truntime.ExitSyscall()\n\tdirent = (*Dirent)(unsafe.Pointer(r0))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//sys\tReaddir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) = SYS___READDIR_R_A\n//sys\tStatfs(path string, buf *Statfs_t) (err error) = SYS___STATFS_A\n//sys\tSyncfs(fd int) (err error) = SYS_SYNCFS\n//sys   Times(tms *Tms) (ticks uintptr, err error) = SYS_TIMES\n//sys   W_Getmntent(buff *byte, size int) (lastsys int, err error) = SYS_W_GETMNTENT\n//sys   W_Getmntent_A(buff *byte, size int) (lastsys int, err error) = SYS___W_GETMNTENT_A\n\n//sys   mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A\n//sys   unmount_LE(filesystem string, mtm int) (err error) = SYS___UMOUNT_A\n//sys   Chroot(path string) (err error) = SYS___CHROOT_A\n//sys   Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) = SYS_SELECT\n//sysnb Uname(buf *Utsname) (err error) = SYS_____OSNAME_A\n//sys   Unshare(flags int) (err error) = SYS_UNSHARE\n\nfunc Ptsname(fd int) (name string, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___PTSNAME_A<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif r0 == 0 {\n\t\terr = errnoErr2(e1, e2)\n\t} else {\n\t\tname = u2s(unsafe.Pointer(r0))\n\t}\n\treturn\n}\n\nfunc u2s(cstr unsafe.Pointer) string {\n\tstr := (*[1024]uint8)(cstr)\n\ti := 0\n\tfor str[i] != 0 {\n\t\ti++\n\t}\n\treturn string(str[:i])\n}\n\nfunc Close(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tfor i := 0; e1 == EAGAIN && i < 10; i++ {\n\t\truntime.EnterSyscall()\n\t\tCallLeFuncWithErr(GetZosLibVec()+SYS_USLEEP<<4, uintptr(10))\n\t\truntime.ExitSyscall()\n\t\truntime.EnterSyscall()\n\t\tr0, e2, e1 = CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd))\n\t\truntime.ExitSyscall()\n\t}\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// Dummy function: there are no semantics for Madvise on z/OS\nfunc Madvise(b []byte, advice int) (err error) {\n\treturn\n}\n\nfunc Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\treturn mapper.Mmap(fd, offset, length, prot, flags)\n}\n\nfunc Munmap(b []byte) (err error) {\n\treturn mapper.Munmap(b)\n}\n\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\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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint32\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tData      int64\n\tUdata     int32\n\tPad_cgo_0 [4]byte\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint64\n\tBsize       uint64\n\tFrsize      uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint64\n\tNamemax     uint64\n\tOwner       uint32\n\tSpare       [4]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\t_           [4]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tPad_cgo_0  [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\tPad_cgo_1  [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint64\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tPad_cgo_0 [4]byte\n\tData      int64\n\tUdata     int64\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen       uint32\n\tPad_cgo_0 [4]byte\n\tInsns     *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go",
    "content": "// cgo -godefs types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa0\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go",
    "content": "// cgo -godefs types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n\t_    [4]byte\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       [4]byte\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\t_             [4]byte\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\t_      [4]byte\n\tData   int64\n\tUdata  *byte\n\t_      [4]byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\t_            [4]byte\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\ntype Mclpool struct{}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\ntype Mclpool struct{}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go",
    "content": "// cgo -godefs types_solaris.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && solaris\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x400\n\tMaxHostNameLen = 0x100\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\tBlocks  int64\n\tFstype  [16]int8\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tSysid  int32\n\tPid    int32\n\tPad    [4]int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tName   [1]int8\n\t_      [5]byte\n}\n\ntype _Fsblkcnt_t uint64\n\ntype Statvfs_t struct {\n\tBsize    uint64\n\tFrsize   uint64\n\tBlocks   uint64\n\tBfree    uint64\n\tBavail   uint64\n\tFiles    uint64\n\tFfree    uint64\n\tFavail   uint64\n\tFsid     uint64\n\tBasetype [16]int8\n\tFlag     uint64\n\tNamemax  uint64\n\tFstr     [32]int8\n}\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n\t_        uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tFamily uint16\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [244]int8\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [236]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName         *byte\n\tNamelen      uint32\n\tIov          *Iovec\n\tIovlen       int32\n\tAccrights    *int8\n\tAccrightslen int32\n\t_            [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x20\n\tSizeofSockaddrAny      = 0xfc\n\tSizeofSockaddrUnix     = 0x6e\n\tSizeofSockaddrDatalink = 0xfc\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet4Pktinfo     = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x24\n\tSizeofICMPv6Filter     = 0x20\n)\n\ntype FdSet struct {\n\tBits [1024]int64\n}\n\ntype Utsname struct {\n\tSysname  [257]byte\n\tNodename [257]byte\n\tRelease  [257]byte\n\tVersion  [257]byte\n\tMachine  [257]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int64\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\nconst (\n\tAT_FDCWD            = 0xffd19553\n\tAT_SYMLINK_NOFOLLOW = 0x1000\n\tAT_SYMLINK_FOLLOW   = 0x2000\n\tAT_REMOVEDIR        = 0x1\n\tAT_EACCESS          = 0x4\n)\n\nconst (\n\tSizeofIfMsghdr  = 0x54\n\tSizeofIfData    = 0x44\n\tSizeofIfaMsghdr = 0x14\n\tSizeofRtMsghdr  = 0x4c\n\tSizeofRtMetrics = 0x28\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tLastchange Timeval32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tMetric  int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint64\n\tDrop uint64\n\tCapt uint64\n\t_    [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [19]uint8\n\t_     [1]byte\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  int8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype fileObj struct {\n\tAtim Timespec\n\tMtim Timespec\n\tCtim Timespec\n\tPad  [3]uint64\n\tName *int8\n}\n\ntype portEvent struct {\n\tEvents int32\n\tSource uint16\n\tPad    uint16\n\tObject uint64\n\tUser   *byte\n}\n\nconst (\n\tPORT_SOURCE_AIO    = 0x1\n\tPORT_SOURCE_TIMER  = 0x2\n\tPORT_SOURCE_USER   = 0x3\n\tPORT_SOURCE_FD     = 0x4\n\tPORT_SOURCE_ALERT  = 0x5\n\tPORT_SOURCE_MQ     = 0x6\n\tPORT_SOURCE_FILE   = 0x7\n\tPORT_ALERT_SET     = 0x1\n\tPORT_ALERT_UPDATE  = 0x2\n\tPORT_ALERT_INVALID = 0x3\n\tFILE_ACCESS        = 0x1\n\tFILE_MODIFIED      = 0x2\n\tFILE_ATTRIB        = 0x4\n\tFILE_TRUNC         = 0x100000\n\tFILE_NOFOLLOW      = 0x10000000\n\tFILE_DELETE        = 0x10\n\tFILE_RENAME_TO     = 0x20\n\tFILE_RENAME_FROM   = 0x40\n\tUNMOUNTED          = 0x20000000\n\tMOUNTEDOVER        = 0x40000000\n\tFILE_EXCEPTION     = 0x60000070\n)\n\nconst (\n\tTUNNEWPPA = 0x540001\n\tTUNSETPPA = 0x540002\n\n\tI_STR     = 0x5308\n\tI_POP     = 0x5303\n\tI_PUSH    = 0x5302\n\tI_LINK    = 0x530c\n\tI_UNLINK  = 0x530d\n\tI_PLINK   = 0x5316\n\tI_PUNLINK = 0x5317\n\n\tIF_UNITSEL = -0x7ffb8cca\n)\n\ntype strbuf struct {\n\tMaxlen int32\n\tLen    int32\n\tBuf    *int8\n}\n\ntype Strioctl struct {\n\tCmd    int32\n\tTimout int32\n\tLen    int32\n\tDp     *int8\n}\n\ntype Lifreq struct {\n\tName   [32]int8\n\tLifru1 [4]byte\n\tType   uint32\n\tLifru  [336]byte\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Hand edited based on ztypes_linux_s390x.go\n// TODO: auto-generate.\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\nconst (\n\tSizeofSockaddrAny   = 128\n\tSizeofCmsghdr       = 12\n\tSizeofIPMreq        = 8\n\tSizeofIPv6Mreq      = 20\n\tSizeofICMPv6Filter  = 32\n\tSizeofIPv6MTUInfo   = 32\n\tSizeofInet4Pktinfo  = 8\n\tSizeofInet6Pktinfo  = 20\n\tSizeofLinger        = 8\n\tSizeofSockaddrInet4 = 16\n\tSizeofSockaddrInet6 = 28\n\tSizeofTCPInfo       = 0x68\n\tSizeofUcred         = 12\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype timeval_zos struct { //correct (with padding and all)\n\tSec  int64\n\t_    [4]byte // pad\n\tUsec int32\n}\n\ntype Tms struct { //clock_t is 4-byte unsigned int in zos\n\tUtime  uint32\n\tStime  uint32\n\tCutime uint32\n\tCstime uint32\n}\n\ntype Time_t int64\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Utsname struct {\n\tSysname  [16]byte\n\tNodename [32]byte\n\tRelease  [8]byte\n\tVersion  [8]byte\n\tMachine  [16]byte\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [108]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\t_    [112]uint8 // pad\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tIov        *Iovec\n\tControl    *byte\n\tFlags      int32\n\tNamelen    int32\n\tIovlen     int32\n\tControllen int32\n}\n\ntype Cmsghdr struct {\n\tLen   int32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tAddr    [4]byte /* in_addr */\n\tIfindex uint32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype _Gid_t uint32\n\ntype rusage_zos struct {\n\tUtime timeval_zos\n\tStime timeval_zos\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\n// { int, short, short } in poll.h\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\ntype Stat_t struct { //Linux Definition\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int64\n\tBlocks  int64\n\t_       [3]int64\n}\n\ntype Stat_LE_t struct {\n\t_            [4]byte // eye catcher\n\tLength       uint16\n\tVersion      uint16\n\tMode         int32\n\tIno          uint32\n\tDev          uint32\n\tNlink        int32\n\tUid          int32\n\tGid          int32\n\tSize         int64\n\tAtim31       [4]byte\n\tMtim31       [4]byte\n\tCtim31       [4]byte\n\tRdev         uint32\n\tAuditoraudit uint32\n\tUseraudit    uint32\n\tBlksize      int32\n\tCreatim31    [4]byte\n\tAuditID      [16]byte\n\t_            [4]byte // rsrvd1\n\tFile_tag     struct {\n\t\tCcsid   uint16\n\t\tTxtflag uint16 // aggregating Txflag:1 deferred:1 rsvflags:14\n\t}\n\tCharsetID [8]byte\n\tBlocks    int64\n\tGenvalue  uint32\n\tReftim31  [4]byte\n\tFid       [8]byte\n\tFilefmt   byte\n\tFspflag2  byte\n\t_         [2]byte // rsrvd2\n\tCtimemsec int32\n\tSeclabel  [8]byte\n\t_         [4]byte // rsrvd3\n\t_         [4]byte // rsrvd4\n\tAtim      Time_t\n\tMtim      Time_t\n\tCtim      Time_t\n\tCreatim   Time_t\n\tReftim    Time_t\n\t_         [24]byte // rsrvd5\n}\n\ntype Statvfs_t struct {\n\tID          [4]byte\n\tLen         int32\n\tBsize       uint64\n\tBlocks      uint64\n\tUsedspace   uint64\n\tBavail      uint64\n\tFlag        uint64\n\tMaxfilesize int64\n\t_           [16]byte\n\tFrsize      uint64\n\tBfree       uint64\n\tFiles       uint32\n\tFfree       uint32\n\tFavail      uint32\n\tNamemax31   uint32\n\tInvarsec    uint32\n\t_           [4]byte\n\tFsid        uint64\n\tNamemax     uint64\n}\n\ntype Statfs_t struct {\n\tType    uint64\n\tBsize   uint64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint32\n\tFfree   uint32\n\tFsid    uint64\n\tNamelen uint64\n\tFrsize  uint64\n\tFlags   uint64\n\t_       [4]uint64\n}\n\ntype direntLE struct {\n\tReclen uint16\n\tNamlen uint16\n\tIno    uint32\n\tExtra  uintptr\n\tName   [256]byte\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype FdSet struct {\n\tBits [64]int32\n}\n\n// This struct is packed on z/OS so it can't be used directly.\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n}\n\ntype 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/text/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/text/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/text/feature/plural/common.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage plural\n\n// Form defines a plural form.\n//\n// Not all languages support all forms. Also, the meaning of each form varies\n// per language. It is important to note that the name of a form does not\n// necessarily correspond one-to-one with the set of numbers. For instance,\n// for Croation, One matches not only 1, but also 11, 21, etc.\n//\n// Each language must at least support the form \"other\".\ntype Form byte\n\nconst (\n\tOther Form = iota\n\tZero\n\tOne\n\tTwo\n\tFew\n\tMany\n)\n\nvar countMap = map[string]Form{\n\t\"other\": Other,\n\t\"zero\":  Zero,\n\t\"one\":   One,\n\t\"two\":   Two,\n\t\"few\":   Few,\n\t\"many\":  Many,\n}\n\ntype pluralCheck struct {\n\t// category:\n\t// 3..7: opID\n\t// 0..2: category\n\tcat   byte\n\tsetID byte\n}\n\n// opID identifies the type of operand in the plural rule, being i, n or f.\n// (v, w, and t are treated as filters in our implementation.)\ntype opID byte\n\nconst (\n\topMod           opID = 0x1    // is '%' used?\n\topNotEqual      opID = 0x2    // using \"!=\" to compare\n\topI             opID = 0 << 2 // integers after taking the absolute value\n\topN             opID = 1 << 2 // full number (must be integer)\n\topF             opID = 2 << 2 // fraction\n\topV             opID = 3 << 2 // number of visible digits\n\topW             opID = 4 << 2 // number of visible digits without trailing zeros\n\topBretonM       opID = 5 << 2 // hard-wired rule for Breton\n\topItalian800    opID = 6 << 2 // hard-wired rule for Italian\n\topAzerbaijan00s opID = 7 << 2 // hard-wired rule for Azerbaijan\n)\nconst (\n\t// Use this plural form to indicate the next rule needs to match as well.\n\t// The last condition in the list will have the correct plural form.\n\tandNext  = 0x7\n\tformMask = 0x7\n\n\topShift = 3\n\n\t// numN indicates the maximum integer, or maximum mod value, for which we\n\t// have inclusion masks.\n\tnumN = 100\n\t// The common denominator of the modulo that is taken.\n\tmaxMod = 100\n)\n"
  },
  {
    "path": "vendor/golang.org/x/text/feature/plural/message.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 plural\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strconv\"\n\n\t\"golang.org/x/text/internal/catmsg\"\n\t\"golang.org/x/text/internal/number\"\n\t\"golang.org/x/text/language\"\n\t\"golang.org/x/text/message/catalog\"\n)\n\n// TODO: consider deleting this interface. Maybe VisibleDigits is always\n// sufficient and practical.\n\n// Interface is used for types that can determine their own plural form.\ntype Interface interface {\n\t// PluralForm reports the plural form for the given language of the\n\t// underlying value. It also returns the integer value. If the integer value\n\t// is larger than fits in n, PluralForm may return a value modulo\n\t// 10,000,000.\n\tPluralForm(t language.Tag, scale int) (f Form, n int)\n}\n\n// Selectf returns the first case for which its selector is a match for the\n// arg-th substitution argument to a formatting call, formatting it as indicated\n// by format.\n//\n// The cases argument are pairs of selectors and messages. Selectors are of type\n// string or Form. Messages are of type string or catalog.Message. A selector\n// matches an argument if:\n//   - it is \"other\" or Other\n//   - it matches the plural form of the argument: \"zero\", \"one\", \"two\", \"few\",\n//     or \"many\", or the equivalent Form\n//   - it is of the form \"=x\" where x is an integer that matches the value of\n//     the argument.\n//   - it is of the form \"<x\" where x is an integer that is larger than the\n//     argument.\n//\n// The format argument determines the formatting parameters for which to\n// determine the plural form. This is especially relevant for non-integer\n// values.\n//\n// The format string may be \"\", in which case a best-effort attempt is made to\n// find a reasonable representation on which to base the plural form. Examples\n// of format strings are:\n//   - %.2f   decimal with scale 2\n//   - %.2e   scientific notation with precision 3 (scale + 1)\n//   - %d     integer\nfunc Selectf(arg int, format string, cases ...interface{}) catalog.Message {\n\tvar p parser\n\t// Intercept the formatting parameters of format by doing a dummy print.\n\tfmt.Fprintf(io.Discard, format, &p)\n\tm := &message{arg, kindDefault, 0, cases}\n\tswitch p.verb {\n\tcase 'g':\n\t\tm.kind = kindPrecision\n\t\tm.scale = p.scale\n\tcase 'f':\n\t\tm.kind = kindScale\n\t\tm.scale = p.scale\n\tcase 'e':\n\t\tm.kind = kindScientific\n\t\tm.scale = p.scale\n\tcase 'd':\n\t\tm.kind = kindScale\n\t\tm.scale = 0\n\tdefault:\n\t\t// TODO: do we need to handle errors?\n\t}\n\treturn m\n}\n\ntype parser struct {\n\tverb  rune\n\tscale int\n}\n\nfunc (p *parser) Format(s fmt.State, verb rune) {\n\tp.verb = verb\n\tp.scale = -1\n\tif prec, ok := s.Precision(); ok {\n\t\tp.scale = prec\n\t}\n}\n\ntype message struct {\n\targ   int\n\tkind  int\n\tscale int\n\tcases []interface{}\n}\n\nconst (\n\t// Start with non-ASCII to allow skipping values.\n\tkindDefault    = 0x80 + iota\n\tkindScale      // verb f, number of fraction digits follows\n\tkindScientific // verb e, number of fraction digits follows\n\tkindPrecision  // verb g, number of significant digits follows\n)\n\nvar handle = catmsg.Register(\"golang.org/x/text/feature/plural:plural\", execute)\n\nfunc (m *message) Compile(e *catmsg.Encoder) error {\n\te.EncodeMessageType(handle)\n\n\te.EncodeUint(uint64(m.arg))\n\n\te.EncodeUint(uint64(m.kind))\n\tif m.kind > kindDefault {\n\t\te.EncodeUint(uint64(m.scale))\n\t}\n\n\tforms := validForms(cardinal, e.Language())\n\n\tfor i := 0; i < len(m.cases); {\n\t\tif err := compileSelector(e, forms, m.cases[i]); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif i++; i >= len(m.cases) {\n\t\t\treturn fmt.Errorf(\"plural: no message defined for selector %v\", m.cases[i-1])\n\t\t}\n\t\tvar msg catalog.Message\n\t\tswitch x := m.cases[i].(type) {\n\t\tcase string:\n\t\t\tmsg = catalog.String(x)\n\t\tcase catalog.Message:\n\t\t\tmsg = x\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"plural: message of type %T; must be string or catalog.Message\", x)\n\t\t}\n\t\tif err := e.EncodeMessage(msg); err != nil {\n\t\t\treturn err\n\t\t}\n\t\ti++\n\t}\n\treturn nil\n}\n\nfunc compileSelector(e *catmsg.Encoder, valid []Form, selector interface{}) error {\n\tform := Other\n\tswitch x := selector.(type) {\n\tcase string:\n\t\tif x == \"\" {\n\t\t\treturn fmt.Errorf(\"plural: empty selector\")\n\t\t}\n\t\tif c := x[0]; c == '=' || c == '<' {\n\t\t\tval, err := strconv.ParseUint(x[1:], 10, 16)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"plural: invalid number in selector %q: %v\", selector, err)\n\t\t\t}\n\t\t\te.EncodeUint(uint64(c))\n\t\t\te.EncodeUint(val)\n\t\t\treturn nil\n\t\t}\n\t\tvar ok bool\n\t\tform, ok = countMap[x]\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"plural: invalid plural form %q\", selector)\n\t\t}\n\tcase Form:\n\t\tform = x\n\tdefault:\n\t\treturn fmt.Errorf(\"plural: selector of type %T; want string or Form\", selector)\n\t}\n\n\tok := false\n\tfor _, f := range valid {\n\t\tif f == form {\n\t\t\tok = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !ok {\n\t\treturn fmt.Errorf(\"plural: form %q not supported for language %q\", selector, e.Language())\n\t}\n\te.EncodeUint(uint64(form))\n\treturn nil\n}\n\nfunc execute(d *catmsg.Decoder) bool {\n\tlang := d.Language()\n\targN := int(d.DecodeUint())\n\tkind := int(d.DecodeUint())\n\tscale := -1 // default\n\tif kind > kindDefault {\n\t\tscale = int(d.DecodeUint())\n\t}\n\tform := Other\n\tn := -1\n\tif arg := d.Arg(argN); arg == nil {\n\t\t// Default to Other.\n\t} else if x, ok := arg.(number.VisibleDigits); ok {\n\t\td := x.Digits(nil, lang, scale)\n\t\tform, n = cardinal.matchDisplayDigits(lang, &d)\n\t} else if x, ok := arg.(Interface); ok {\n\t\t// This covers lists and formatters from the number package.\n\t\tform, n = x.PluralForm(lang, scale)\n\t} else {\n\t\tvar f number.Formatter\n\t\tswitch kind {\n\t\tcase kindScale:\n\t\t\tf.InitDecimal(lang)\n\t\t\tf.SetScale(scale)\n\t\tcase kindScientific:\n\t\t\tf.InitScientific(lang)\n\t\t\tf.SetScale(scale)\n\t\tcase kindPrecision:\n\t\t\tf.InitDecimal(lang)\n\t\t\tf.SetPrecision(scale)\n\t\tcase kindDefault:\n\t\t\t// sensible default\n\t\t\tf.InitDecimal(lang)\n\t\t\tif k := reflect.TypeOf(arg).Kind(); reflect.Int <= k && k <= reflect.Uintptr {\n\t\t\t\tf.SetScale(0)\n\t\t\t} else {\n\t\t\t\tf.SetScale(2)\n\t\t\t}\n\t\t}\n\t\tvar dec number.Decimal // TODO: buffer in Printer\n\t\tdec.Convert(f.RoundingContext, arg)\n\t\tv := number.FormatDigits(&dec, f.RoundingContext)\n\t\tif !v.NaN && !v.Inf {\n\t\t\tform, n = cardinal.matchDisplayDigits(d.Language(), &v)\n\t\t}\n\t}\n\tfor !d.Done() {\n\t\tf := d.DecodeUint()\n\t\tif (f == '=' && n == int(d.DecodeUint())) ||\n\t\t\t(f == '<' && 0 <= n && n < int(d.DecodeUint())) ||\n\t\t\tform == Form(f) ||\n\t\t\tOther == Form(f) {\n\t\t\treturn d.ExecuteMessage()\n\t\t}\n\t\td.SkipMessage()\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/feature/plural/plural.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:generate go run gen.go gen_common.go\n\n// Package plural provides utilities for handling linguistic plurals in text.\n//\n// The definitions in this package are based on the plural rule handling defined\n// in CLDR. See\n// https://unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules for\n// details.\npackage plural\n\nimport (\n\t\"golang.org/x/text/internal/language/compact\"\n\t\"golang.org/x/text/internal/number\"\n\t\"golang.org/x/text/language\"\n)\n\n// Rules defines the plural rules for all languages for a certain plural type.\n//\n// This package is UNDER CONSTRUCTION and its API may change.\ntype Rules struct {\n\trules          []pluralCheck\n\tindex          []byte\n\tlangToIndex    []byte\n\tinclusionMasks []uint64\n}\n\nvar (\n\t// Cardinal defines the plural rules for numbers indicating quantities.\n\tCardinal *Rules = cardinal\n\n\t// Ordinal defines the plural rules for numbers indicating position\n\t// (first, second, etc.).\n\tOrdinal *Rules = ordinal\n\n\tordinal = &Rules{\n\t\tordinalRules,\n\t\tordinalIndex,\n\t\tordinalLangToIndex,\n\t\tordinalInclusionMasks[:],\n\t}\n\n\tcardinal = &Rules{\n\t\tcardinalRules,\n\t\tcardinalIndex,\n\t\tcardinalLangToIndex,\n\t\tcardinalInclusionMasks[:],\n\t}\n)\n\n// getIntApprox converts the digits in slice digits[start:end] to an integer\n// according to the following rules:\n//   - Let i be asInt(digits[start:end]), where out-of-range digits are assumed\n//     to be zero.\n//   - Result n is big if i / 10^nMod > 1.\n//   - Otherwise the result is i % 10^nMod.\n//\n// For example, if digits is {1, 2, 3} and start:end is 0:5, then the result\n// for various values of nMod is:\n//   - when nMod == 2, n == big\n//   - when nMod == 3, n == big\n//   - when nMod == 4, n == big\n//   - when nMod == 5, n == 12300\n//   - when nMod == 6, n == 12300\n//   - when nMod == 7, n == 12300\nfunc getIntApprox(digits []byte, start, end, nMod, big int) (n int) {\n\t// Leading 0 digits just result in 0.\n\tp := start\n\tif p < 0 {\n\t\tp = 0\n\t}\n\t// Range only over the part for which we have digits.\n\tmid := end\n\tif mid >= len(digits) {\n\t\tmid = len(digits)\n\t}\n\t// Check digits more significant that nMod.\n\tif q := end - nMod; q > 0 {\n\t\tif q > mid {\n\t\t\tq = mid\n\t\t}\n\t\tfor ; p < q; p++ {\n\t\t\tif digits[p] != 0 {\n\t\t\t\treturn big\n\t\t\t}\n\t\t}\n\t}\n\tfor ; p < mid; p++ {\n\t\tn = 10*n + int(digits[p])\n\t}\n\t// Multiply for trailing zeros.\n\tfor ; p < end; p++ {\n\t\tn *= 10\n\t}\n\treturn n\n}\n\n// MatchDigits computes the plural form for the given language and the given\n// decimal floating point digits. The digits are stored in big-endian order and\n// are of value byte(0) - byte(9). The floating point position is indicated by\n// exp and the number of visible decimals is scale. All leading and trailing\n// zeros may be omitted from digits.\n//\n// The following table contains examples of possible arguments to represent\n// the given numbers.\n//\n//\tdecimal    digits              exp    scale\n//\t123        []byte{1, 2, 3}     3      0\n//\t123.4      []byte{1, 2, 3, 4}  3      1\n//\t123.40     []byte{1, 2, 3, 4}  3      2\n//\t100000     []byte{1}           6      0\n//\t100000.00  []byte{1}           6      3\nfunc (p *Rules) MatchDigits(t language.Tag, digits []byte, exp, scale int) Form {\n\tindex := tagToID(t)\n\n\t// Differentiate up to including mod 1000000 for the integer part.\n\tn := getIntApprox(digits, 0, exp, 6, 1000000)\n\n\t// Differentiate up to including mod 100 for the fractional part.\n\tf := getIntApprox(digits, exp, exp+scale, 2, 100)\n\n\treturn matchPlural(p, index, n, f, scale)\n}\n\nfunc (p *Rules) matchDisplayDigits(t language.Tag, d *number.Digits) (Form, int) {\n\tn := getIntApprox(d.Digits, 0, int(d.Exp), 6, 1000000)\n\treturn p.MatchDigits(t, d.Digits, int(d.Exp), d.NumFracDigits()), n\n}\n\nfunc validForms(p *Rules, t language.Tag) (forms []Form) {\n\toffset := p.langToIndex[tagToID(t)]\n\trules := p.rules[p.index[offset]:p.index[offset+1]]\n\n\tforms = append(forms, Other)\n\tlast := Other\n\tfor _, r := range rules {\n\t\tif cat := Form(r.cat & formMask); cat != andNext && last != cat {\n\t\t\tforms = append(forms, cat)\n\t\t\tlast = cat\n\t\t}\n\t}\n\treturn forms\n}\n\nfunc (p *Rules) matchComponents(t language.Tag, n, f, scale int) Form {\n\treturn matchPlural(p, tagToID(t), n, f, scale)\n}\n\n// MatchPlural returns the plural form for the given language and plural\n// operands (as defined in\n// https://unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules):\n//\n//\twhere\n//\t\tn  absolute value of the source number (integer and decimals)\n//\tinput\n//\t\ti  integer digits of n.\n//\t\tv  number of visible fraction digits in n, with trailing zeros.\n//\t\tw  number of visible fraction digits in n, without trailing zeros.\n//\t\tf  visible fractional digits in n, with trailing zeros (f = t * 10^(v-w))\n//\t\tt  visible fractional digits in n, without trailing zeros.\n//\n// If any of the operand values is too large to fit in an int, it is okay to\n// pass the value modulo 10,000,000.\nfunc (p *Rules) MatchPlural(lang language.Tag, i, v, w, f, t int) Form {\n\treturn matchPlural(p, tagToID(lang), i, f, v)\n}\n\nfunc matchPlural(p *Rules, index compact.ID, n, f, v int) Form {\n\tnMask := p.inclusionMasks[n%maxMod]\n\t// Compute the fMask inline in the rules below, as it is relatively rare.\n\t// fMask := p.inclusionMasks[f%maxMod]\n\tvMask := p.inclusionMasks[v%maxMod]\n\n\t// Do the matching\n\toffset := p.langToIndex[index]\n\trules := p.rules[p.index[offset]:p.index[offset+1]]\n\tfor i := 0; i < len(rules); i++ {\n\t\trule := rules[i]\n\t\tsetBit := uint64(1 << rule.setID)\n\t\tvar skip bool\n\t\tswitch op := opID(rule.cat >> opShift); op {\n\t\tcase opI: // i = x\n\t\t\tskip = n >= numN || nMask&setBit == 0\n\n\t\tcase opI | opNotEqual: // i != x\n\t\t\tskip = n < numN && nMask&setBit != 0\n\n\t\tcase opI | opMod: // i % m = x\n\t\t\tskip = nMask&setBit == 0\n\n\t\tcase opI | opMod | opNotEqual: // i % m != x\n\t\t\tskip = nMask&setBit != 0\n\n\t\tcase opN: // n = x\n\t\t\tskip = f != 0 || n >= numN || nMask&setBit == 0\n\n\t\tcase opN | opNotEqual: // n != x\n\t\t\tskip = f == 0 && n < numN && nMask&setBit != 0\n\n\t\tcase opN | opMod: // n % m = x\n\t\t\tskip = f != 0 || nMask&setBit == 0\n\n\t\tcase opN | opMod | opNotEqual: // n % m != x\n\t\t\tskip = f == 0 && nMask&setBit != 0\n\n\t\tcase opF: // f = x\n\t\t\tskip = f >= numN || p.inclusionMasks[f%maxMod]&setBit == 0\n\n\t\tcase opF | opNotEqual: // f != x\n\t\t\tskip = f < numN && p.inclusionMasks[f%maxMod]&setBit != 0\n\n\t\tcase opF | opMod: // f % m = x\n\t\t\tskip = p.inclusionMasks[f%maxMod]&setBit == 0\n\n\t\tcase opF | opMod | opNotEqual: // f % m != x\n\t\t\tskip = p.inclusionMasks[f%maxMod]&setBit != 0\n\n\t\tcase opV: // v = x\n\t\t\tskip = v < numN && vMask&setBit == 0\n\n\t\tcase opV | opNotEqual: // v != x\n\t\t\tskip = v < numN && vMask&setBit != 0\n\n\t\tcase opW: // w == 0\n\t\t\tskip = f != 0\n\n\t\tcase opW | opNotEqual: // w != 0\n\t\t\tskip = f == 0\n\n\t\t// Hard-wired rules that cannot be handled by our algorithm.\n\n\t\tcase opBretonM:\n\t\t\tskip = f != 0 || n == 0 || n%1000000 != 0\n\n\t\tcase opAzerbaijan00s:\n\t\t\t// 100,200,300,400,500,600,700,800,900\n\t\t\tskip = n == 0 || n >= 1000 || n%100 != 0\n\n\t\tcase opItalian800:\n\t\t\tskip = (f != 0 || n >= numN || nMask&setBit == 0) && n != 800\n\t\t}\n\t\tif skip {\n\t\t\t// advance over AND entries.\n\t\t\tfor ; i < len(rules) && rules[i].cat&formMask == andNext; i++ {\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\t// return if we have a final entry.\n\t\tif cat := rule.cat & formMask; cat != andNext {\n\t\t\treturn Form(cat)\n\t\t}\n\t}\n\treturn Other\n}\n\nfunc tagToID(t language.Tag) compact.ID {\n\tid, _ := compact.RegionalID(compact.Tag(t))\n\treturn id\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/feature/plural/tables.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage plural\n\n// CLDRVersion is the CLDR version from which the tables in this package are derived.\nconst CLDRVersion = \"32\"\n\nvar ordinalRules = []pluralCheck{ // 64 elements\n\t0:  {cat: 0x2f, setID: 0x4},\n\t1:  {cat: 0x3a, setID: 0x5},\n\t2:  {cat: 0x22, setID: 0x1},\n\t3:  {cat: 0x22, setID: 0x6},\n\t4:  {cat: 0x22, setID: 0x7},\n\t5:  {cat: 0x2f, setID: 0x8},\n\t6:  {cat: 0x3c, setID: 0x9},\n\t7:  {cat: 0x2f, setID: 0xa},\n\t8:  {cat: 0x3c, setID: 0xb},\n\t9:  {cat: 0x2c, setID: 0xc},\n\t10: {cat: 0x24, setID: 0xd},\n\t11: {cat: 0x2d, setID: 0xe},\n\t12: {cat: 0x2d, setID: 0xf},\n\t13: {cat: 0x2f, setID: 0x10},\n\t14: {cat: 0x35, setID: 0x3},\n\t15: {cat: 0xc5, setID: 0x11},\n\t16: {cat: 0x2, setID: 0x1},\n\t17: {cat: 0x5, setID: 0x3},\n\t18: {cat: 0xd, setID: 0x12},\n\t19: {cat: 0x22, setID: 0x1},\n\t20: {cat: 0x2f, setID: 0x13},\n\t21: {cat: 0x3d, setID: 0x14},\n\t22: {cat: 0x2f, setID: 0x15},\n\t23: {cat: 0x3a, setID: 0x16},\n\t24: {cat: 0x2f, setID: 0x17},\n\t25: {cat: 0x3b, setID: 0x18},\n\t26: {cat: 0x2f, setID: 0xa},\n\t27: {cat: 0x3c, setID: 0xb},\n\t28: {cat: 0x22, setID: 0x1},\n\t29: {cat: 0x23, setID: 0x19},\n\t30: {cat: 0x24, setID: 0x1a},\n\t31: {cat: 0x22, setID: 0x1b},\n\t32: {cat: 0x23, setID: 0x2},\n\t33: {cat: 0x24, setID: 0x1a},\n\t34: {cat: 0xf, setID: 0x15},\n\t35: {cat: 0x1a, setID: 0x16},\n\t36: {cat: 0xf, setID: 0x17},\n\t37: {cat: 0x1b, setID: 0x18},\n\t38: {cat: 0xf, setID: 0x1c},\n\t39: {cat: 0x1d, setID: 0x1d},\n\t40: {cat: 0xa, setID: 0x1e},\n\t41: {cat: 0xa, setID: 0x1f},\n\t42: {cat: 0xc, setID: 0x20},\n\t43: {cat: 0xe4, setID: 0x0},\n\t44: {cat: 0x5, setID: 0x3},\n\t45: {cat: 0xd, setID: 0xe},\n\t46: {cat: 0xd, setID: 0x21},\n\t47: {cat: 0x22, setID: 0x1},\n\t48: {cat: 0x23, setID: 0x19},\n\t49: {cat: 0x24, setID: 0x1a},\n\t50: {cat: 0x25, setID: 0x22},\n\t51: {cat: 0x22, setID: 0x23},\n\t52: {cat: 0x23, setID: 0x19},\n\t53: {cat: 0x24, setID: 0x1a},\n\t54: {cat: 0x25, setID: 0x22},\n\t55: {cat: 0x22, setID: 0x24},\n\t56: {cat: 0x23, setID: 0x19},\n\t57: {cat: 0x24, setID: 0x1a},\n\t58: {cat: 0x25, setID: 0x22},\n\t59: {cat: 0x21, setID: 0x25},\n\t60: {cat: 0x22, setID: 0x1},\n\t61: {cat: 0x23, setID: 0x2},\n\t62: {cat: 0x24, setID: 0x26},\n\t63: {cat: 0x25, setID: 0x27},\n} // Size: 152 bytes\n\nvar ordinalIndex = []uint8{ // 22 elements\n\t0x00, 0x00, 0x02, 0x03, 0x04, 0x05, 0x07, 0x09,\n\t0x0b, 0x0f, 0x10, 0x13, 0x16, 0x1c, 0x1f, 0x22,\n\t0x28, 0x2f, 0x33, 0x37, 0x3b, 0x40,\n} // Size: 46 bytes\n\nvar ordinalLangToIndex = []uint8{ // 775 elements\n\t// Entry 0 - 3F\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x12, 0x12, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10,\n\t0x10, 0x10, 0x10, 0x00, 0x00, 0x05, 0x05, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 40 - 7F\n\t0x12, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e,\n\t0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x14, 0x14, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 80 - BF\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c,\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,\n\t// Entry C0 - FF\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,\n\t0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 100 - 13F\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,\n\t0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 140 - 17F\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11,\n\t0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03,\n\t0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 180 - 1BF\n\t0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09,\n\t0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x0a, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 1C0 - 1FF\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00,\n\t0x00, 0x00, 0x02, 0x0d, 0x0d, 0x02, 0x02, 0x02,\n\t0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 200 - 23F\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 240 - 27F\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,\n\t0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 280 - 2BF\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x0b, 0x0b, 0x0b, 0x0b, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,\n\t0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x07, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 2C0 - 2FF\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 300 - 33F\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0c,\n} // Size: 799 bytes\n\nvar ordinalInclusionMasks = []uint64{ // 100 elements\n\t// Entry 0 - 1F\n\t0x0000002000010009, 0x00000018482000d3, 0x0000000042840195, 0x000000410a040581,\n\t0x00000041040c0081, 0x0000009840040041, 0x0000008400045001, 0x0000003850040001,\n\t0x0000003850060001, 0x0000003800049001, 0x0000000800052001, 0x0000000040660031,\n\t0x0000000041840331, 0x0000000100040f01, 0x00000001001c0001, 0x0000000040040001,\n\t0x0000000000045001, 0x0000000070040001, 0x0000000070040001, 0x0000000000049001,\n\t0x0000000080050001, 0x0000000040200011, 0x0000000040800111, 0x0000000100000501,\n\t0x0000000100080001, 0x0000000040000001, 0x0000000000005001, 0x0000000050000001,\n\t0x0000000050000001, 0x0000000000009001, 0x0000000000010001, 0x0000000040200011,\n\t// Entry 20 - 3F\n\t0x0000000040800111, 0x0000000100000501, 0x0000000100080001, 0x0000000040000001,\n\t0x0000000000005001, 0x0000000050000001, 0x0000000050000001, 0x0000000000009001,\n\t0x0000000200050001, 0x0000000040200011, 0x0000000040800111, 0x0000000100000501,\n\t0x0000000100080001, 0x0000000040000001, 0x0000000000005001, 0x0000000050000001,\n\t0x0000000050000001, 0x0000000000009001, 0x0000000080010001, 0x0000000040200011,\n\t0x0000000040800111, 0x0000000100000501, 0x0000000100080001, 0x0000000040000001,\n\t0x0000000000005001, 0x0000000050000001, 0x0000000050000001, 0x0000000000009001,\n\t0x0000000200050001, 0x0000000040200011, 0x0000000040800111, 0x0000000100000501,\n\t// Entry 40 - 5F\n\t0x0000000100080001, 0x0000000040000001, 0x0000000000005001, 0x0000000050000001,\n\t0x0000000050000001, 0x0000000000009001, 0x0000000080010001, 0x0000000040200011,\n\t0x0000000040800111, 0x0000000100000501, 0x0000000100080001, 0x0000000040000001,\n\t0x0000000000005001, 0x0000000050000001, 0x0000000050000001, 0x0000000000009001,\n\t0x0000000080070001, 0x0000000040200011, 0x0000000040800111, 0x0000000100000501,\n\t0x0000000100080001, 0x0000000040000001, 0x0000000000005001, 0x0000000050000001,\n\t0x0000000050000001, 0x0000000000009001, 0x0000000200010001, 0x0000000040200011,\n\t0x0000000040800111, 0x0000000100000501, 0x0000000100080001, 0x0000000040000001,\n\t// Entry 60 - 7F\n\t0x0000000000005001, 0x0000000050000001, 0x0000000050000001, 0x0000000000009001,\n} // Size: 824 bytes\n\n// Slots used for ordinal: 40 of 0xFF rules; 16 of 0xFF indexes; 40 of 64 sets\n\nvar cardinalRules = []pluralCheck{ // 166 elements\n\t0:   {cat: 0x2, setID: 0x3},\n\t1:   {cat: 0x22, setID: 0x1},\n\t2:   {cat: 0x2, setID: 0x4},\n\t3:   {cat: 0x2, setID: 0x4},\n\t4:   {cat: 0x7, setID: 0x1},\n\t5:   {cat: 0x62, setID: 0x3},\n\t6:   {cat: 0x22, setID: 0x4},\n\t7:   {cat: 0x7, setID: 0x3},\n\t8:   {cat: 0x42, setID: 0x1},\n\t9:   {cat: 0x22, setID: 0x4},\n\t10:  {cat: 0x22, setID: 0x4},\n\t11:  {cat: 0x22, setID: 0x5},\n\t12:  {cat: 0x22, setID: 0x1},\n\t13:  {cat: 0x22, setID: 0x1},\n\t14:  {cat: 0x7, setID: 0x4},\n\t15:  {cat: 0x92, setID: 0x3},\n\t16:  {cat: 0xf, setID: 0x6},\n\t17:  {cat: 0x1f, setID: 0x7},\n\t18:  {cat: 0x82, setID: 0x3},\n\t19:  {cat: 0x92, setID: 0x3},\n\t20:  {cat: 0xf, setID: 0x6},\n\t21:  {cat: 0x62, setID: 0x3},\n\t22:  {cat: 0x4a, setID: 0x6},\n\t23:  {cat: 0x7, setID: 0x8},\n\t24:  {cat: 0x62, setID: 0x3},\n\t25:  {cat: 0x1f, setID: 0x9},\n\t26:  {cat: 0x62, setID: 0x3},\n\t27:  {cat: 0x5f, setID: 0x9},\n\t28:  {cat: 0x72, setID: 0x3},\n\t29:  {cat: 0x29, setID: 0xa},\n\t30:  {cat: 0x29, setID: 0xb},\n\t31:  {cat: 0x4f, setID: 0xb},\n\t32:  {cat: 0x61, setID: 0x2},\n\t33:  {cat: 0x2f, setID: 0x6},\n\t34:  {cat: 0x3a, setID: 0x7},\n\t35:  {cat: 0x4f, setID: 0x6},\n\t36:  {cat: 0x5f, setID: 0x7},\n\t37:  {cat: 0x62, setID: 0x2},\n\t38:  {cat: 0x4f, setID: 0x6},\n\t39:  {cat: 0x72, setID: 0x2},\n\t40:  {cat: 0x21, setID: 0x3},\n\t41:  {cat: 0x7, setID: 0x4},\n\t42:  {cat: 0x32, setID: 0x3},\n\t43:  {cat: 0x21, setID: 0x3},\n\t44:  {cat: 0x22, setID: 0x1},\n\t45:  {cat: 0x22, setID: 0x1},\n\t46:  {cat: 0x23, setID: 0x2},\n\t47:  {cat: 0x2, setID: 0x3},\n\t48:  {cat: 0x22, setID: 0x1},\n\t49:  {cat: 0x24, setID: 0xc},\n\t50:  {cat: 0x7, setID: 0x1},\n\t51:  {cat: 0x62, setID: 0x3},\n\t52:  {cat: 0x74, setID: 0x3},\n\t53:  {cat: 0x24, setID: 0x3},\n\t54:  {cat: 0x2f, setID: 0xd},\n\t55:  {cat: 0x34, setID: 0x1},\n\t56:  {cat: 0xf, setID: 0x6},\n\t57:  {cat: 0x1f, setID: 0x7},\n\t58:  {cat: 0x62, setID: 0x3},\n\t59:  {cat: 0x4f, setID: 0x6},\n\t60:  {cat: 0x5a, setID: 0x7},\n\t61:  {cat: 0xf, setID: 0xe},\n\t62:  {cat: 0x1f, setID: 0xf},\n\t63:  {cat: 0x64, setID: 0x3},\n\t64:  {cat: 0x4f, setID: 0xe},\n\t65:  {cat: 0x5c, setID: 0xf},\n\t66:  {cat: 0x22, setID: 0x10},\n\t67:  {cat: 0x23, setID: 0x11},\n\t68:  {cat: 0x24, setID: 0x12},\n\t69:  {cat: 0xf, setID: 0x1},\n\t70:  {cat: 0x62, setID: 0x3},\n\t71:  {cat: 0xf, setID: 0x2},\n\t72:  {cat: 0x63, setID: 0x3},\n\t73:  {cat: 0xf, setID: 0x13},\n\t74:  {cat: 0x64, setID: 0x3},\n\t75:  {cat: 0x74, setID: 0x3},\n\t76:  {cat: 0xf, setID: 0x1},\n\t77:  {cat: 0x62, setID: 0x3},\n\t78:  {cat: 0x4a, setID: 0x1},\n\t79:  {cat: 0xf, setID: 0x2},\n\t80:  {cat: 0x63, setID: 0x3},\n\t81:  {cat: 0x4b, setID: 0x2},\n\t82:  {cat: 0xf, setID: 0x13},\n\t83:  {cat: 0x64, setID: 0x3},\n\t84:  {cat: 0x4c, setID: 0x13},\n\t85:  {cat: 0x7, setID: 0x1},\n\t86:  {cat: 0x62, setID: 0x3},\n\t87:  {cat: 0x7, setID: 0x2},\n\t88:  {cat: 0x63, setID: 0x3},\n\t89:  {cat: 0x2f, setID: 0xa},\n\t90:  {cat: 0x37, setID: 0x14},\n\t91:  {cat: 0x65, setID: 0x3},\n\t92:  {cat: 0x7, setID: 0x1},\n\t93:  {cat: 0x62, setID: 0x3},\n\t94:  {cat: 0x7, setID: 0x15},\n\t95:  {cat: 0x64, setID: 0x3},\n\t96:  {cat: 0x75, setID: 0x3},\n\t97:  {cat: 0x7, setID: 0x1},\n\t98:  {cat: 0x62, setID: 0x3},\n\t99:  {cat: 0xf, setID: 0xe},\n\t100: {cat: 0x1f, setID: 0xf},\n\t101: {cat: 0x64, setID: 0x3},\n\t102: {cat: 0xf, setID: 0x16},\n\t103: {cat: 0x17, setID: 0x1},\n\t104: {cat: 0x65, setID: 0x3},\n\t105: {cat: 0xf, setID: 0x17},\n\t106: {cat: 0x65, setID: 0x3},\n\t107: {cat: 0xf, setID: 0xf},\n\t108: {cat: 0x65, setID: 0x3},\n\t109: {cat: 0x2f, setID: 0x6},\n\t110: {cat: 0x3a, setID: 0x7},\n\t111: {cat: 0x2f, setID: 0xe},\n\t112: {cat: 0x3c, setID: 0xf},\n\t113: {cat: 0x2d, setID: 0xa},\n\t114: {cat: 0x2d, setID: 0x17},\n\t115: {cat: 0x2d, setID: 0x18},\n\t116: {cat: 0x2f, setID: 0x6},\n\t117: {cat: 0x3a, setID: 0xb},\n\t118: {cat: 0x2f, setID: 0x19},\n\t119: {cat: 0x3c, setID: 0xb},\n\t120: {cat: 0x55, setID: 0x3},\n\t121: {cat: 0x22, setID: 0x1},\n\t122: {cat: 0x24, setID: 0x3},\n\t123: {cat: 0x2c, setID: 0xc},\n\t124: {cat: 0x2d, setID: 0xb},\n\t125: {cat: 0xf, setID: 0x6},\n\t126: {cat: 0x1f, setID: 0x7},\n\t127: {cat: 0x62, setID: 0x3},\n\t128: {cat: 0xf, setID: 0xe},\n\t129: {cat: 0x1f, setID: 0xf},\n\t130: {cat: 0x64, setID: 0x3},\n\t131: {cat: 0xf, setID: 0xa},\n\t132: {cat: 0x65, setID: 0x3},\n\t133: {cat: 0xf, setID: 0x17},\n\t134: {cat: 0x65, setID: 0x3},\n\t135: {cat: 0xf, setID: 0x18},\n\t136: {cat: 0x65, setID: 0x3},\n\t137: {cat: 0x2f, setID: 0x6},\n\t138: {cat: 0x3a, setID: 0x1a},\n\t139: {cat: 0x2f, setID: 0x1b},\n\t140: {cat: 0x3b, setID: 0x1c},\n\t141: {cat: 0x2f, setID: 0x1d},\n\t142: {cat: 0x3c, setID: 0x1e},\n\t143: {cat: 0x37, setID: 0x3},\n\t144: {cat: 0xa5, setID: 0x0},\n\t145: {cat: 0x22, setID: 0x1},\n\t146: {cat: 0x23, setID: 0x2},\n\t147: {cat: 0x24, setID: 0x1f},\n\t148: {cat: 0x25, setID: 0x20},\n\t149: {cat: 0xf, setID: 0x6},\n\t150: {cat: 0x62, setID: 0x3},\n\t151: {cat: 0xf, setID: 0x1b},\n\t152: {cat: 0x63, setID: 0x3},\n\t153: {cat: 0xf, setID: 0x21},\n\t154: {cat: 0x64, setID: 0x3},\n\t155: {cat: 0x75, setID: 0x3},\n\t156: {cat: 0x21, setID: 0x3},\n\t157: {cat: 0x22, setID: 0x1},\n\t158: {cat: 0x23, setID: 0x2},\n\t159: {cat: 0x2c, setID: 0x22},\n\t160: {cat: 0x2d, setID: 0x5},\n\t161: {cat: 0x21, setID: 0x3},\n\t162: {cat: 0x22, setID: 0x1},\n\t163: {cat: 0x23, setID: 0x2},\n\t164: {cat: 0x24, setID: 0x23},\n\t165: {cat: 0x25, setID: 0x24},\n} // Size: 356 bytes\n\nvar cardinalIndex = []uint8{ // 36 elements\n\t0x00, 0x00, 0x02, 0x03, 0x04, 0x06, 0x09, 0x0a,\n\t0x0c, 0x0d, 0x10, 0x14, 0x17, 0x1d, 0x28, 0x2b,\n\t0x2d, 0x2f, 0x32, 0x38, 0x42, 0x45, 0x4c, 0x55,\n\t0x5c, 0x61, 0x6d, 0x74, 0x79, 0x7d, 0x89, 0x91,\n\t0x95, 0x9c, 0xa1, 0xa6,\n} // Size: 60 bytes\n\nvar cardinalLangToIndex = []uint8{ // 775 elements\n\t// Entry 0 - 3F\n\t0x00, 0x08, 0x08, 0x08, 0x00, 0x00, 0x06, 0x06,\n\t0x01, 0x01, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,\n\t0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,\n\t0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,\n\t0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,\n\t0x01, 0x01, 0x08, 0x08, 0x04, 0x04, 0x08, 0x08,\n\t0x08, 0x08, 0x08, 0x00, 0x00, 0x1a, 0x1a, 0x08,\n\t0x08, 0x08, 0x08, 0x08, 0x08, 0x06, 0x00, 0x00,\n\t// Entry 40 - 7F\n\t0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x1e,\n\t0x08, 0x08, 0x13, 0x13, 0x13, 0x13, 0x13, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x08,\n\t0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,\n\t0x18, 0x18, 0x00, 0x00, 0x22, 0x22, 0x09, 0x09,\n\t0x09, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x00, 0x00, 0x16, 0x16, 0x00,\n\t0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 80 - BF\n\t0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t// Entry C0 - FF\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08,\n\t0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,\n\t0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,\n\t// Entry 100 - 13F\n\t0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,\n\t0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04,\n\t0x08, 0x08, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x0c, 0x0c,\n\t0x08, 0x08, 0x08, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 140 - 17F\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x08, 0x08, 0x04, 0x04, 0x1f, 0x1f,\n\t0x14, 0x14, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08,\n\t0x01, 0x01, 0x06, 0x00, 0x00, 0x20, 0x20, 0x08,\n\t0x08, 0x08, 0x08, 0x08, 0x08, 0x17, 0x17, 0x01,\n\t0x01, 0x13, 0x13, 0x13, 0x16, 0x16, 0x08, 0x08,\n\t0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 180 - 1BF\n\t0x00, 0x04, 0x0a, 0x0a, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x10, 0x17, 0x00, 0x00, 0x00, 0x08, 0x08,\n\t0x04, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x02,\n\t0x02, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08,\n\t0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01,\n\t0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08,\n\t0x08, 0x08, 0x00, 0x00, 0x0f, 0x0f, 0x08, 0x10,\n\t// Entry 1C0 - 1FF\n\t0x10, 0x08, 0x08, 0x0e, 0x0e, 0x08, 0x08, 0x08,\n\t0x08, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x1b, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x0d, 0x08,\n\t0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06,\n\t0x00, 0x00, 0x08, 0x08, 0x0b, 0x0b, 0x08, 0x08,\n\t0x08, 0x08, 0x12, 0x01, 0x01, 0x00, 0x00, 0x00,\n\t0x00, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 200 - 23F\n\t0x00, 0x08, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08,\n\t0x08, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00,\n\t0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08,\n\t0x06, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08,\n\t0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x08, 0x19, 0x19, 0x0d, 0x0d,\n\t0x08, 0x08, 0x03, 0x04, 0x03, 0x04, 0x04, 0x04,\n\t// Entry 240 - 27F\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00,\n\t0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x12,\n\t0x12, 0x12, 0x08, 0x08, 0x1d, 0x1d, 0x1d, 0x1d,\n\t0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x08, 0x08, 0x00,\n\t0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x08,\n\t0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x00, 0x00,\n\t0x00, 0x00, 0x13, 0x11, 0x11, 0x11, 0x11, 0x11,\n\t0x05, 0x05, 0x18, 0x18, 0x15, 0x15, 0x10, 0x10,\n\t// Entry 280 - 2BF\n\t0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08,\n\t0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x13,\n\t0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13,\n\t0x13, 0x13, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x08,\n\t0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,\n\t0x08, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06,\n\t0x08, 0x08, 0x08, 0x0c, 0x08, 0x00, 0x00, 0x08,\n\t// Entry 2C0 - 2FF\n\t0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x07,\n\t0x07, 0x08, 0x08, 0x1d, 0x1d, 0x04, 0x04, 0x04,\n\t0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08,\n\t0x08, 0x08, 0x08, 0x06, 0x08, 0x08, 0x00, 0x00,\n\t0x08, 0x08, 0x08, 0x00, 0x00, 0x04, 0x04, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 300 - 33F\n\t0x00, 0x00, 0x00, 0x01, 0x01, 0x04, 0x04,\n} // Size: 799 bytes\n\nvar cardinalInclusionMasks = []uint64{ // 100 elements\n\t// Entry 0 - 1F\n\t0x0000000200500419, 0x0000000000512153, 0x000000000a327105, 0x0000000ca23c7101,\n\t0x00000004a23c7201, 0x0000000482943001, 0x0000001482943201, 0x0000000502943001,\n\t0x0000000502943001, 0x0000000522943201, 0x0000000540543401, 0x00000000454128e1,\n\t0x000000005b02e821, 0x000000006304e821, 0x000000006304ea21, 0x0000000042842821,\n\t0x0000000042842a21, 0x0000000042842821, 0x0000000042842821, 0x0000000062842a21,\n\t0x0000000200400421, 0x0000000000400061, 0x000000000a004021, 0x0000000022004021,\n\t0x0000000022004221, 0x0000000002800021, 0x0000000002800221, 0x0000000002800021,\n\t0x0000000002800021, 0x0000000022800221, 0x0000000000400421, 0x0000000000400061,\n\t// Entry 20 - 3F\n\t0x000000000a004021, 0x0000000022004021, 0x0000000022004221, 0x0000000002800021,\n\t0x0000000002800221, 0x0000000002800021, 0x0000000002800021, 0x0000000022800221,\n\t0x0000000200400421, 0x0000000000400061, 0x000000000a004021, 0x0000000022004021,\n\t0x0000000022004221, 0x0000000002800021, 0x0000000002800221, 0x0000000002800021,\n\t0x0000000002800021, 0x0000000022800221, 0x0000000000400421, 0x0000000000400061,\n\t0x000000000a004021, 0x0000000022004021, 0x0000000022004221, 0x0000000002800021,\n\t0x0000000002800221, 0x0000000002800021, 0x0000000002800021, 0x0000000022800221,\n\t0x0000000200400421, 0x0000000000400061, 0x000000000a004021, 0x0000000022004021,\n\t// Entry 40 - 5F\n\t0x0000000022004221, 0x0000000002800021, 0x0000000002800221, 0x0000000002800021,\n\t0x0000000002800021, 0x0000000022800221, 0x0000000040400421, 0x0000000044400061,\n\t0x000000005a004021, 0x0000000062004021, 0x0000000062004221, 0x0000000042800021,\n\t0x0000000042800221, 0x0000000042800021, 0x0000000042800021, 0x0000000062800221,\n\t0x0000000200400421, 0x0000000000400061, 0x000000000a004021, 0x0000000022004021,\n\t0x0000000022004221, 0x0000000002800021, 0x0000000002800221, 0x0000000002800021,\n\t0x0000000002800021, 0x0000000022800221, 0x0000000040400421, 0x0000000044400061,\n\t0x000000005a004021, 0x0000000062004021, 0x0000000062004221, 0x0000000042800021,\n\t// Entry 60 - 7F\n\t0x0000000042800221, 0x0000000042800021, 0x0000000042800021, 0x0000000062800221,\n} // Size: 824 bytes\n\n// Slots used for cardinal: A6 of 0xFF rules; 24 of 0xFF indexes; 37 of 64 sets\n\n// Total table size 3860 bytes (3KiB); checksum: AAFBF21\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/catmsg/catmsg.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// Package catmsg contains support types for package x/text/message/catalog.\n//\n// This package contains the low-level implementations of Message used by the\n// catalog package and provides primitives for other packages to implement their\n// own. For instance, the plural package provides functionality for selecting\n// translation strings based on the plural category of substitution arguments.\n//\n// # Encoding and Decoding\n//\n// Catalogs store Messages encoded as a single string. Compiling a message into\n// a string both results in compacter representation and speeds up evaluation.\n//\n// A Message must implement a Compile method to convert its arbitrary\n// representation to a string. The Compile method takes an Encoder which\n// facilitates serializing the message. Encoders also provide more context of\n// the messages's creation (such as for which language the message is intended),\n// which may not be known at the time of the creation of the message.\n//\n// Each message type must also have an accompanying decoder registered to decode\n// the message. This decoder takes a Decoder argument which provides the\n// counterparts for the decoding.\n//\n// # Renderers\n//\n// A Decoder must be initialized with a Renderer implementation. These\n// implementations must be provided by packages that use Catalogs, typically\n// formatting packages such as x/text/message. A typical user will not need to\n// worry about this type; it is only relevant to packages that do string\n// formatting and want to use the catalog package to handle localized strings.\n//\n// A package that uses catalogs for selecting strings receives selection results\n// as sequence of substrings passed to the Renderer. The following snippet shows\n// how to express the above example using the message package.\n//\n//\tmessage.Set(language.English, \"You are %d minute(s) late.\",\n//\t\tcatalog.Var(\"minutes\", plural.Select(1, \"one\", \"minute\")),\n//\t\tcatalog.String(\"You are %[1]d ${minutes} late.\"))\n//\n//\tp := message.NewPrinter(language.English)\n//\tp.Printf(\"You are %d minute(s) late.\", 5) // always 5 minutes late.\n//\n// To evaluate the Printf, package message wraps the arguments in a Renderer\n// that is passed to the catalog for message decoding. The call sequence that\n// results from evaluating the above message, assuming the person is rather\n// tardy, is:\n//\n//\tRender(\"You are %[1]d \")\n//\tArg(1)\n//\tRender(\"minutes\")\n//\tRender(\" late.\")\n//\n// The calls to Arg is caused by the plural.Select execution, which evaluates\n// the argument to determine whether the singular or plural message form should\n// be selected. The calls to Render reports the partial results to the message\n// package for further evaluation.\npackage catmsg\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"golang.org/x/text/language\"\n)\n\n// A Handle refers to a registered message type.\ntype Handle int\n\n// A Handler decodes and evaluates data compiled by a Message and sends the\n// result to the Decoder. The output may depend on the value of the substitution\n// arguments, accessible by the Decoder's Arg method. The Handler returns false\n// if there is no translation for the given substitution arguments.\ntype Handler func(d *Decoder) bool\n\n// Register records the existence of a message type and returns a Handle that\n// can be used in the Encoder's EncodeMessageType method to create such\n// messages. The prefix of the name should be the package path followed by\n// an optional disambiguating string.\n// Register will panic if a handle for the same name was already registered.\nfunc Register(name string, handler Handler) Handle {\n\tmutex.Lock()\n\tdefer mutex.Unlock()\n\n\tif _, ok := names[name]; ok {\n\t\tpanic(fmt.Errorf(\"catmsg: handler for %q already exists\", name))\n\t}\n\th := Handle(len(handlers))\n\tnames[name] = h\n\thandlers = append(handlers, handler)\n\treturn h\n}\n\n// These handlers require fixed positions in the handlers slice.\nconst (\n\tmsgVars Handle = iota\n\tmsgFirst\n\tmsgRaw\n\tmsgString\n\tmsgAffix\n\t// Leave some arbitrary room for future expansion: 20 should suffice.\n\tnumInternal = 20\n)\n\nconst prefix = \"golang.org/x/text/internal/catmsg.\"\n\nvar (\n\t// TODO: find a more stable way to link handles to message types.\n\tmutex sync.Mutex\n\tnames = map[string]Handle{\n\t\tprefix + \"Vars\":   msgVars,\n\t\tprefix + \"First\":  msgFirst,\n\t\tprefix + \"Raw\":    msgRaw,\n\t\tprefix + \"String\": msgString,\n\t\tprefix + \"Affix\":  msgAffix,\n\t}\n\thandlers = make([]Handler, numInternal)\n)\n\nfunc init() {\n\t// This handler is a message type wrapper that initializes a decoder\n\t// with a variable block. This message type, if present, is always at the\n\t// start of an encoded message.\n\thandlers[msgVars] = func(d *Decoder) bool {\n\t\tblockSize := int(d.DecodeUint())\n\t\td.vars = d.data[:blockSize]\n\t\td.data = d.data[blockSize:]\n\t\treturn d.executeMessage()\n\t}\n\n\t// First takes the first message in a sequence that results in a match for\n\t// the given substitution arguments.\n\thandlers[msgFirst] = func(d *Decoder) bool {\n\t\tfor !d.Done() {\n\t\t\tif d.ExecuteMessage() {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\n\thandlers[msgRaw] = func(d *Decoder) bool {\n\t\td.Render(d.data)\n\t\treturn true\n\t}\n\n\t// A String message alternates between a string constant and a variable\n\t// substitution.\n\thandlers[msgString] = func(d *Decoder) bool {\n\t\tfor !d.Done() {\n\t\t\tif str := d.DecodeString(); str != \"\" {\n\t\t\t\td.Render(str)\n\t\t\t}\n\t\t\tif d.Done() {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\td.ExecuteSubstitution()\n\t\t}\n\t\treturn true\n\t}\n\n\thandlers[msgAffix] = func(d *Decoder) bool {\n\t\t// TODO: use an alternative method for common cases.\n\t\tprefix := d.DecodeString()\n\t\tsuffix := d.DecodeString()\n\t\tif prefix != \"\" {\n\t\t\td.Render(prefix)\n\t\t}\n\t\tret := d.ExecuteMessage()\n\t\tif suffix != \"\" {\n\t\t\td.Render(suffix)\n\t\t}\n\t\treturn ret\n\t}\n}\n\nvar (\n\t// ErrIncomplete indicates a compiled message does not define translations\n\t// for all possible argument values. If this message is returned, evaluating\n\t// a message may result in the ErrNoMatch error.\n\tErrIncomplete = errors.New(\"catmsg: incomplete message; may not give result for all inputs\")\n\n\t// ErrNoMatch indicates no translation message matched the given input\n\t// parameters when evaluating a message.\n\tErrNoMatch = errors.New(\"catmsg: no translation for inputs\")\n)\n\n// A Message holds a collection of translations for the same phrase that may\n// vary based on the values of substitution arguments.\ntype Message interface {\n\t// Compile encodes the format string(s) of the message as a string for later\n\t// evaluation.\n\t//\n\t// The first call Compile makes on the encoder must be EncodeMessageType.\n\t// The handle passed to this call may either be a handle returned by\n\t// Register to encode a single custom message, or HandleFirst followed by\n\t// a sequence of calls to EncodeMessage.\n\t//\n\t// Compile must return ErrIncomplete if it is possible for evaluation to\n\t// not match any translation for a given set of formatting parameters.\n\t// For example, selecting a translation based on plural form may not yield\n\t// a match if the form \"Other\" is not one of the selectors.\n\t//\n\t// Compile may return any other application-specific error. For backwards\n\t// compatibility with package like fmt, which often do not do sanity\n\t// checking of format strings ahead of time, Compile should still make an\n\t// effort to have some sensible fallback in case of an error.\n\tCompile(e *Encoder) error\n}\n\n// Compile converts a Message to a data string that can be stored in a Catalog.\n// The resulting string can subsequently be decoded by passing to the Execute\n// method of a Decoder.\nfunc Compile(tag language.Tag, macros Dictionary, m Message) (data string, err error) {\n\t// TODO: pass macros so they can be used for validation.\n\tv := &Encoder{inBody: true} // encoder for variables\n\tv.root = v\n\te := &Encoder{root: v, parent: v, tag: tag} // encoder for messages\n\terr = m.Compile(e)\n\t// This package serves te message package, which in turn is meant to be a\n\t// drop-in replacement for fmt.  With the fmt package, format strings are\n\t// evaluated lazily and errors are handled by substituting strings in the\n\t// result, rather then returning an error. Dealing with multiple languages\n\t// makes it more important to check errors ahead of time. We chose to be\n\t// consistent and compatible and allow graceful degradation in case of\n\t// errors.\n\tbuf := e.buf[stripPrefix(e.buf):]\n\tif len(v.buf) > 0 {\n\t\t// Prepend variable block.\n\t\tb := make([]byte, 1+maxVarintBytes+len(v.buf)+len(buf))\n\t\tb[0] = byte(msgVars)\n\t\tb = b[:1+encodeUint(b[1:], uint64(len(v.buf)))]\n\t\tb = append(b, v.buf...)\n\t\tb = append(b, buf...)\n\t\tbuf = b\n\t}\n\tif err == nil {\n\t\terr = v.err\n\t}\n\treturn string(buf), err\n}\n\n// FirstOf is a message type that prints the first message in the sequence that\n// resolves to a match for the given substitution arguments.\ntype FirstOf []Message\n\n// Compile implements Message.\nfunc (s FirstOf) Compile(e *Encoder) error {\n\te.EncodeMessageType(msgFirst)\n\terr := ErrIncomplete\n\tfor i, m := range s {\n\t\tif err == nil {\n\t\t\treturn fmt.Errorf(\"catalog: message argument %d is complete and blocks subsequent messages\", i-1)\n\t\t}\n\t\terr = e.EncodeMessage(m)\n\t}\n\treturn err\n}\n\n// Var defines a message that can be substituted for a placeholder of the same\n// name. If an expression does not result in a string after evaluation, Name is\n// used as the substitution. For example:\n//\n//\tVar{\n//\t  Name:    \"minutes\",\n//\t  Message: plural.Select(1, \"one\", \"minute\"),\n//\t}\n//\n// will resolve to minute for singular and minutes for plural forms.\ntype Var struct {\n\tName    string\n\tMessage Message\n}\n\nvar errIsVar = errors.New(\"catmsg: variable used as message\")\n\n// Compile implements Message.\n//\n// Note that this method merely registers a variable; it does not create an\n// encoded message.\nfunc (v *Var) Compile(e *Encoder) error {\n\tif err := e.addVar(v.Name, v.Message); err != nil {\n\t\treturn err\n\t}\n\t// Using a Var by itself is an error. If it is in a sequence followed by\n\t// other messages referring to it, this error will be ignored.\n\treturn errIsVar\n}\n\n// Raw is a message consisting of a single format string that is passed as is\n// to the Renderer.\n//\n// Note that a Renderer may still do its own variable substitution.\ntype Raw string\n\n// Compile implements Message.\nfunc (r Raw) Compile(e *Encoder) (err error) {\n\te.EncodeMessageType(msgRaw)\n\t// Special case: raw strings don't have a size encoding and so don't use\n\t// EncodeString.\n\te.buf = append(e.buf, r...)\n\treturn nil\n}\n\n// String is a message consisting of a single format string which contains\n// placeholders that may be substituted with variables.\n//\n// Variable substitutions are marked with placeholders and a variable name of\n// the form ${name}. Any other substitutions such as Go templates or\n// printf-style substitutions are left to be done by the Renderer.\n//\n// When evaluation a string interpolation, a Renderer will receive separate\n// calls for each placeholder and interstitial string. For example, for the\n// message: \"%[1]v ${invites} %[2]v to ${their} party.\" The sequence of calls\n// is:\n//\n//\td.Render(\"%[1]v \")\n//\td.Arg(1)\n//\td.Render(resultOfInvites)\n//\td.Render(\" %[2]v to \")\n//\td.Arg(2)\n//\td.Render(resultOfTheir)\n//\td.Render(\" party.\")\n//\n// where the messages for \"invites\" and \"their\" both use a plural.Select\n// referring to the first argument.\n//\n// Strings may also invoke macros. Macros are essentially variables that can be\n// reused. Macros may, for instance, be used to make selections between\n// different conjugations of a verb. See the catalog package description for an\n// overview of macros.\ntype String string\n\n// Compile implements Message. It parses the placeholder formats and returns\n// any error.\nfunc (s String) Compile(e *Encoder) (err error) {\n\tmsg := string(s)\n\tconst subStart = \"${\"\n\thasHeader := false\n\tp := 0\n\tb := []byte{}\n\tfor {\n\t\ti := strings.Index(msg[p:], subStart)\n\t\tif i == -1 {\n\t\t\tbreak\n\t\t}\n\t\tb = append(b, msg[p:p+i]...)\n\t\tp += i + len(subStart)\n\t\tif i = strings.IndexByte(msg[p:], '}'); i == -1 {\n\t\t\tb = append(b, \"$!(MISSINGBRACE)\"...)\n\t\t\terr = fmt.Errorf(\"catmsg: missing '}'\")\n\t\t\tp = len(msg)\n\t\t\tbreak\n\t\t}\n\t\tname := strings.TrimSpace(msg[p : p+i])\n\t\tif q := strings.IndexByte(name, '('); q == -1 {\n\t\t\tif !hasHeader {\n\t\t\t\thasHeader = true\n\t\t\t\te.EncodeMessageType(msgString)\n\t\t\t}\n\t\t\te.EncodeString(string(b))\n\t\t\te.EncodeSubstitution(name)\n\t\t\tb = b[:0]\n\t\t} else if j := strings.IndexByte(name[q:], ')'); j == -1 {\n\t\t\t// TODO: what should the error be?\n\t\t\tb = append(b, \"$!(MISSINGPAREN)\"...)\n\t\t\terr = fmt.Errorf(\"catmsg: missing ')'\")\n\t\t} else if x, sErr := strconv.ParseUint(strings.TrimSpace(name[q+1:q+j]), 10, 32); sErr != nil {\n\t\t\t// TODO: handle more than one argument\n\t\t\tb = append(b, \"$!(BADNUM)\"...)\n\t\t\terr = fmt.Errorf(\"catmsg: invalid number %q\", strings.TrimSpace(name[q+1:q+j]))\n\t\t} else {\n\t\t\tif !hasHeader {\n\t\t\t\thasHeader = true\n\t\t\t\te.EncodeMessageType(msgString)\n\t\t\t}\n\t\t\te.EncodeString(string(b))\n\t\t\te.EncodeSubstitution(name[:q], int(x))\n\t\t\tb = b[:0]\n\t\t}\n\t\tp += i + 1\n\t}\n\tb = append(b, msg[p:]...)\n\tif !hasHeader {\n\t\t// Simplify string to a raw string.\n\t\tRaw(string(b)).Compile(e)\n\t} else if len(b) > 0 {\n\t\te.EncodeString(string(b))\n\t}\n\treturn err\n}\n\n// Affix is a message that adds a prefix and suffix to another message.\n// This is mostly used add back whitespace to a translation that was stripped\n// before sending it out.\ntype Affix struct {\n\tMessage Message\n\tPrefix  string\n\tSuffix  string\n}\n\n// Compile implements Message.\nfunc (a Affix) Compile(e *Encoder) (err error) {\n\t// TODO: consider adding a special message type that just adds a single\n\t// return. This is probably common enough to handle the majority of cases.\n\t// Get some stats first, though.\n\te.EncodeMessageType(msgAffix)\n\te.EncodeString(a.Prefix)\n\te.EncodeString(a.Suffix)\n\te.EncodeMessage(a.Message)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/catmsg/codec.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 catmsg\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"golang.org/x/text/language\"\n)\n\n// A Renderer renders a Message.\ntype Renderer interface {\n\t// Render renders the given string. The given string may be interpreted as a\n\t// format string, such as the one used by the fmt package or a template.\n\tRender(s string)\n\n\t// Arg returns the i-th argument passed to format a message. This method\n\t// should return nil if there is no such argument. Messages need access to\n\t// arguments to allow selecting a message based on linguistic features of\n\t// those arguments.\n\tArg(i int) interface{}\n}\n\n// A Dictionary specifies a source of messages, including variables or macros.\ntype Dictionary interface {\n\t// Lookup returns the message for the given key. It returns false for ok if\n\t// such a message could not be found.\n\tLookup(key string) (data string, ok bool)\n\n\t// TODO: consider returning an interface, instead of a string. This will\n\t// allow implementations to do their own message type decoding.\n}\n\n// An Encoder serializes a Message to a string.\ntype Encoder struct {\n\t// The root encoder is used for storing encoded variables.\n\troot *Encoder\n\t// The parent encoder provides the surrounding scopes for resolving variable\n\t// names.\n\tparent *Encoder\n\n\ttag language.Tag\n\n\t// buf holds the encoded message so far. After a message completes encoding,\n\t// the contents of buf, prefixed by the encoded length, are flushed to the\n\t// parent buffer.\n\tbuf []byte\n\n\t// vars is the lookup table of variables in the current scope.\n\tvars []keyVal\n\n\terr    error\n\tinBody bool // if false next call must be EncodeMessageType\n}\n\ntype keyVal struct {\n\tkey    string\n\toffset int\n}\n\n// Language reports the language for which the encoded message will be stored\n// in the Catalog.\nfunc (e *Encoder) Language() language.Tag { return e.tag }\n\nfunc (e *Encoder) setError(err error) {\n\tif e.root.err == nil {\n\t\te.root.err = err\n\t}\n}\n\n// EncodeUint encodes x.\nfunc (e *Encoder) EncodeUint(x uint64) {\n\te.checkInBody()\n\tvar buf [maxVarintBytes]byte\n\tn := encodeUint(buf[:], x)\n\te.buf = append(e.buf, buf[:n]...)\n}\n\n// EncodeString encodes s.\nfunc (e *Encoder) EncodeString(s string) {\n\te.checkInBody()\n\te.EncodeUint(uint64(len(s)))\n\te.buf = append(e.buf, s...)\n}\n\n// EncodeMessageType marks the current message to be of type h.\n//\n// It must be the first call of a Message's Compile method.\nfunc (e *Encoder) EncodeMessageType(h Handle) {\n\tif e.inBody {\n\t\tpanic(\"catmsg: EncodeMessageType not the first method called\")\n\t}\n\te.inBody = true\n\te.EncodeUint(uint64(h))\n}\n\n// EncodeMessage serializes the given message inline at the current position.\nfunc (e *Encoder) EncodeMessage(m Message) error {\n\te = &Encoder{root: e.root, parent: e, tag: e.tag}\n\terr := m.Compile(e)\n\tif _, ok := m.(*Var); !ok {\n\t\te.flushTo(e.parent)\n\t}\n\treturn err\n}\n\nfunc (e *Encoder) checkInBody() {\n\tif !e.inBody {\n\t\tpanic(\"catmsg: expected prior call to EncodeMessageType\")\n\t}\n}\n\n// stripPrefix indicates the number of prefix bytes that must be stripped to\n// turn a single-element sequence into a message that is just this single member\n// without its size prefix. If the message can be stripped, b[1:n] contains the\n// size prefix.\nfunc stripPrefix(b []byte) (n int) {\n\tif len(b) > 0 && Handle(b[0]) == msgFirst {\n\t\tx, n, _ := decodeUint(b[1:])\n\t\tif 1+n+int(x) == len(b) {\n\t\t\treturn 1 + n\n\t\t}\n\t}\n\treturn 0\n}\n\nfunc (e *Encoder) flushTo(dst *Encoder) {\n\tdata := e.buf\n\tp := stripPrefix(data)\n\tif p > 0 {\n\t\tdata = data[1:]\n\t} else {\n\t\t// Prefix the size.\n\t\tdst.EncodeUint(uint64(len(data)))\n\t}\n\tdst.buf = append(dst.buf, data...)\n}\n\nfunc (e *Encoder) addVar(key string, m Message) error {\n\tfor _, v := range e.parent.vars {\n\t\tif v.key == key {\n\t\t\terr := fmt.Errorf(\"catmsg: duplicate variable %q\", key)\n\t\t\te.setError(err)\n\t\t\treturn err\n\t\t}\n\t}\n\tscope := e.parent\n\t// If a variable message is Incomplete, and does not evaluate to a message\n\t// during execution, we fall back to the variable name. We encode this by\n\t// appending the variable name if the message reports it's incomplete.\n\n\terr := m.Compile(e)\n\tif err != ErrIncomplete {\n\t\te.setError(err)\n\t}\n\tswitch {\n\tcase len(e.buf) == 1 && Handle(e.buf[0]) == msgFirst: // empty sequence\n\t\te.buf = e.buf[:0]\n\t\te.inBody = false\n\t\tfallthrough\n\tcase len(e.buf) == 0:\n\t\t// Empty message.\n\t\tif err := String(key).Compile(e); err != nil {\n\t\t\te.setError(err)\n\t\t}\n\tcase err == ErrIncomplete:\n\t\tif Handle(e.buf[0]) != msgFirst {\n\t\t\tseq := &Encoder{root: e.root, parent: e}\n\t\t\tseq.EncodeMessageType(msgFirst)\n\t\t\te.flushTo(seq)\n\t\t\te = seq\n\t\t}\n\t\t// e contains a sequence; append the fallback string.\n\t\te.EncodeMessage(String(key))\n\t}\n\n\t// Flush result to variable heap.\n\toffset := len(e.root.buf)\n\te.flushTo(e.root)\n\te.buf = e.buf[:0]\n\n\t// Record variable offset in current scope.\n\tscope.vars = append(scope.vars, keyVal{key: key, offset: offset})\n\treturn err\n}\n\nconst (\n\tsubstituteVar = iota\n\tsubstituteMacro\n\tsubstituteError\n)\n\n// EncodeSubstitution inserts a resolved reference to a variable or macro.\n//\n// This call must be matched with a call to ExecuteSubstitution at decoding\n// time.\nfunc (e *Encoder) EncodeSubstitution(name string, arguments ...int) {\n\tif arity := len(arguments); arity > 0 {\n\t\t// TODO: also resolve macros.\n\t\te.EncodeUint(substituteMacro)\n\t\te.EncodeString(name)\n\t\tfor _, a := range arguments {\n\t\t\te.EncodeUint(uint64(a))\n\t\t}\n\t\treturn\n\t}\n\tfor scope := e; scope != nil; scope = scope.parent {\n\t\tfor _, v := range scope.vars {\n\t\t\tif v.key != name {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\te.EncodeUint(substituteVar) // TODO: support arity > 0\n\t\t\te.EncodeUint(uint64(v.offset))\n\t\t\treturn\n\t\t}\n\t}\n\t// TODO: refer to dictionary-wide scoped variables.\n\te.EncodeUint(substituteError)\n\te.EncodeString(name)\n\te.setError(fmt.Errorf(\"catmsg: unknown var %q\", name))\n}\n\n// A Decoder deserializes and evaluates messages that are encoded by an encoder.\ntype Decoder struct {\n\ttag    language.Tag\n\tdst    Renderer\n\tmacros Dictionary\n\n\terr  error\n\tvars string\n\tdata string\n\n\tmacroArg int // TODO: allow more than one argument\n}\n\n// NewDecoder returns a new Decoder.\n//\n// Decoders are designed to be reused for multiple invocations of Execute.\n// Only one goroutine may call Execute concurrently.\nfunc NewDecoder(tag language.Tag, r Renderer, macros Dictionary) *Decoder {\n\treturn &Decoder{\n\t\ttag:    tag,\n\t\tdst:    r,\n\t\tmacros: macros,\n\t}\n}\n\nfunc (d *Decoder) setError(err error) {\n\tif d.err == nil {\n\t\td.err = err\n\t}\n}\n\n// Language returns the language in which the message is being rendered.\n//\n// The destination language may be a child language of the language used for\n// encoding. For instance, a decoding language of \"pt-PT\" is consistent with an\n// encoding language of \"pt\".\nfunc (d *Decoder) Language() language.Tag { return d.tag }\n\n// Done reports whether there are more bytes to process in this message.\nfunc (d *Decoder) Done() bool { return len(d.data) == 0 }\n\n// Render implements Renderer.\nfunc (d *Decoder) Render(s string) { d.dst.Render(s) }\n\n// Arg implements Renderer.\n//\n// During evaluation of macros, the argument positions may be mapped to\n// arguments that differ from the original call.\nfunc (d *Decoder) Arg(i int) interface{} {\n\tif d.macroArg != 0 {\n\t\tif i != 1 {\n\t\t\tpanic(\"catmsg: only macros with single argument supported\")\n\t\t}\n\t\ti = d.macroArg\n\t}\n\treturn d.dst.Arg(i)\n}\n\n// DecodeUint decodes a number that was encoded with EncodeUint and advances the\n// position.\nfunc (d *Decoder) DecodeUint() uint64 {\n\tx, n, err := decodeUintString(d.data)\n\td.data = d.data[n:]\n\tif err != nil {\n\t\td.setError(err)\n\t}\n\treturn x\n}\n\n// DecodeString decodes a string that was encoded with EncodeString and advances\n// the position.\nfunc (d *Decoder) DecodeString() string {\n\tsize := d.DecodeUint()\n\ts := d.data[:size]\n\td.data = d.data[size:]\n\treturn s\n}\n\n// SkipMessage skips the message at the current location and advances the\n// position.\nfunc (d *Decoder) SkipMessage() {\n\tn := int(d.DecodeUint())\n\td.data = d.data[n:]\n}\n\n// Execute decodes and evaluates msg.\n//\n// Only one goroutine may call execute.\nfunc (d *Decoder) Execute(msg string) error {\n\td.err = nil\n\tif !d.execute(msg) {\n\t\treturn ErrNoMatch\n\t}\n\treturn d.err\n}\n\nfunc (d *Decoder) execute(msg string) bool {\n\tsaved := d.data\n\td.data = msg\n\tok := d.executeMessage()\n\td.data = saved\n\treturn ok\n}\n\n// executeMessageFromData is like execute, but also decodes a leading message\n// size and clips the given string accordingly.\n//\n// It reports the number of bytes consumed and whether a message was selected.\nfunc (d *Decoder) executeMessageFromData(s string) (n int, ok bool) {\n\tsaved := d.data\n\td.data = s\n\tsize := int(d.DecodeUint())\n\tn = len(s) - len(d.data)\n\t// Sanitize the setting. This allows skipping a size argument for\n\t// RawString and method Done.\n\td.data = d.data[:size]\n\tok = d.executeMessage()\n\tn += size - len(d.data)\n\td.data = saved\n\treturn n, ok\n}\n\nvar errUnknownHandler = errors.New(\"catmsg: string contains unsupported handler\")\n\n// executeMessage reads the handle id, initializes the decoder and executes the\n// message. It is assumed that all of d.data[d.p:] is the single message.\nfunc (d *Decoder) executeMessage() bool {\n\tif d.Done() {\n\t\t// We interpret no data as a valid empty message.\n\t\treturn true\n\t}\n\thandle := d.DecodeUint()\n\n\tvar fn Handler\n\tmutex.Lock()\n\tif int(handle) < len(handlers) {\n\t\tfn = handlers[handle]\n\t}\n\tmutex.Unlock()\n\tif fn == nil {\n\t\td.setError(errUnknownHandler)\n\t\td.execute(fmt.Sprintf(\"\\x02$!(UNKNOWNMSGHANDLER=%#x)\", handle))\n\t\treturn true\n\t}\n\treturn fn(d)\n}\n\n// ExecuteMessage decodes and executes the message at the current position.\nfunc (d *Decoder) ExecuteMessage() bool {\n\tn, ok := d.executeMessageFromData(d.data)\n\td.data = d.data[n:]\n\treturn ok\n}\n\n// ExecuteSubstitution executes the message corresponding to the substitution\n// as encoded by EncodeSubstitution.\nfunc (d *Decoder) ExecuteSubstitution() {\n\tswitch x := d.DecodeUint(); x {\n\tcase substituteVar:\n\t\toffset := d.DecodeUint()\n\t\td.executeMessageFromData(d.vars[offset:])\n\tcase substituteMacro:\n\t\tname := d.DecodeString()\n\t\tdata, ok := d.macros.Lookup(name)\n\t\told := d.macroArg\n\t\t// TODO: support macros of arity other than 1.\n\t\td.macroArg = int(d.DecodeUint())\n\t\tswitch {\n\t\tcase !ok:\n\t\t\t// TODO: detect this at creation time.\n\t\t\td.setError(fmt.Errorf(\"catmsg: undefined macro %q\", name))\n\t\t\tfallthrough\n\t\tcase !d.execute(data):\n\t\t\td.dst.Render(name) // fall back to macro name.\n\t\t}\n\t\td.macroArg = old\n\tcase substituteError:\n\t\td.dst.Render(d.DecodeString())\n\tdefault:\n\t\tpanic(\"catmsg: unreachable\")\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/catmsg/varint.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 catmsg\n\n// This file implements varint encoding analogous to the one in encoding/binary.\n// We need a string version of this function, so we add that here and then add\n// the rest for consistency.\n\nimport \"errors\"\n\nvar (\n\terrIllegalVarint  = errors.New(\"catmsg: illegal varint\")\n\terrVarintTooLarge = errors.New(\"catmsg: varint too large for uint64\")\n)\n\nconst maxVarintBytes = 10 // maximum length of a varint\n\n// encodeUint encodes x as a variable-sized integer into buf and returns the\n// number of bytes written. buf must be at least maxVarintBytes long\nfunc encodeUint(buf []byte, x uint64) (n int) {\n\tfor ; x > 127; n++ {\n\t\tbuf[n] = 0x80 | uint8(x&0x7F)\n\t\tx >>= 7\n\t}\n\tbuf[n] = uint8(x)\n\tn++\n\treturn n\n}\n\nfunc decodeUintString(s string) (x uint64, size int, err error) {\n\ti := 0\n\tfor shift := uint(0); shift < 64; shift += 7 {\n\t\tif i >= len(s) {\n\t\t\treturn 0, i, errIllegalVarint\n\t\t}\n\t\tb := uint64(s[i])\n\t\ti++\n\t\tx |= (b & 0x7F) << shift\n\t\tif b&0x80 == 0 {\n\t\t\treturn x, i, nil\n\t\t}\n\t}\n\treturn 0, i, errVarintTooLarge\n}\n\nfunc decodeUint(b []byte) (x uint64, size int, err error) {\n\ti := 0\n\tfor shift := uint(0); shift < 64; shift += 7 {\n\t\tif i >= len(b) {\n\t\t\treturn 0, i, errIllegalVarint\n\t\t}\n\t\tc := uint64(b[i])\n\t\ti++\n\t\tx |= (c & 0x7F) << shift\n\t\tif c&0x80 == 0 {\n\t\t\treturn x, i, nil\n\t\t}\n\t}\n\treturn 0, i, errVarintTooLarge\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/format/format.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// Package format contains types for defining language-specific formatting of\n// values.\n//\n// This package is internal now, but will eventually be exposed after the API\n// settles.\npackage format // import \"golang.org/x/text/internal/format\"\n\nimport (\n\t\"fmt\"\n\n\t\"golang.org/x/text/language\"\n)\n\n// State represents the printer state passed to custom formatters. It provides\n// access to the fmt.State interface and the sentence and language-related\n// context.\ntype State interface {\n\tfmt.State\n\n\t// Language reports the requested language in which to render a message.\n\tLanguage() language.Tag\n\n\t// TODO: consider this and removing rune from the Format method in the\n\t// Formatter interface.\n\t//\n\t// Verb returns the format variant to render, analogous to the types used\n\t// in fmt. Use 'v' for the default or only variant.\n\t// Verb() rune\n\n\t// TODO: more info:\n\t// - sentence context such as linguistic features passed by the translator.\n}\n\n// Formatter is analogous to fmt.Formatter.\ntype Formatter interface {\n\tFormat(state State, verb rune)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/format/parser.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 format\n\nimport (\n\t\"reflect\"\n\t\"unicode/utf8\"\n)\n\n// A Parser parses a format string. The result from the parse are set in the\n// struct fields.\ntype Parser struct {\n\tVerb rune\n\n\tWidthPresent bool\n\tPrecPresent  bool\n\tMinus        bool\n\tPlus         bool\n\tSharp        bool\n\tSpace        bool\n\tZero         bool\n\n\t// For the formats %+v %#v, we set the plusV/sharpV flags\n\t// and clear the plus/sharp flags since %+v and %#v are in effect\n\t// different, flagless formats set at the top level.\n\tPlusV  bool\n\tSharpV bool\n\n\tHasIndex bool\n\n\tWidth int\n\tPrec  int // precision\n\n\t// retain arguments across calls.\n\tArgs []interface{}\n\t// retain current argument number across calls\n\tArgNum int\n\n\t// reordered records whether the format string used argument reordering.\n\tReordered bool\n\t// goodArgNum records whether the most recent reordering directive was valid.\n\tgoodArgNum bool\n\n\t// position info\n\tformat   string\n\tstartPos int\n\tendPos   int\n\tStatus   Status\n}\n\n// Reset initializes a parser to scan format strings for the given args.\nfunc (p *Parser) Reset(args []interface{}) {\n\tp.Args = args\n\tp.ArgNum = 0\n\tp.startPos = 0\n\tp.Reordered = false\n}\n\n// Text returns the part of the format string that was parsed by the last call\n// to Scan. It returns the original substitution clause if the current scan\n// parsed a substitution.\nfunc (p *Parser) Text() string { return p.format[p.startPos:p.endPos] }\n\n// SetFormat sets a new format string to parse. It does not reset the argument\n// count.\nfunc (p *Parser) SetFormat(format string) {\n\tp.format = format\n\tp.startPos = 0\n\tp.endPos = 0\n}\n\n// Status indicates the result type of a call to Scan.\ntype Status int\n\nconst (\n\tStatusText Status = iota\n\tStatusSubstitution\n\tStatusBadWidthSubstitution\n\tStatusBadPrecSubstitution\n\tStatusNoVerb\n\tStatusBadArgNum\n\tStatusMissingArg\n)\n\n// ClearFlags reset the parser to default behavior.\nfunc (p *Parser) ClearFlags() {\n\tp.WidthPresent = false\n\tp.PrecPresent = false\n\tp.Minus = false\n\tp.Plus = false\n\tp.Sharp = false\n\tp.Space = false\n\tp.Zero = false\n\n\tp.PlusV = false\n\tp.SharpV = false\n\n\tp.HasIndex = false\n}\n\n// Scan scans the next part of the format string and sets the status to\n// indicate whether it scanned a string literal, substitution or error.\nfunc (p *Parser) Scan() bool {\n\tp.Status = StatusText\n\tformat := p.format\n\tend := len(format)\n\tif p.endPos >= end {\n\t\treturn false\n\t}\n\tafterIndex := false // previous item in format was an index like [3].\n\n\tp.startPos = p.endPos\n\tp.goodArgNum = true\n\ti := p.startPos\n\tfor i < end && format[i] != '%' {\n\t\ti++\n\t}\n\tif i > p.startPos {\n\t\tp.endPos = i\n\t\treturn true\n\t}\n\t// Process one verb\n\ti++\n\n\tp.Status = StatusSubstitution\n\n\t// Do we have flags?\n\tp.ClearFlags()\n\nsimpleFormat:\n\tfor ; i < end; i++ {\n\t\tc := p.format[i]\n\t\tswitch c {\n\t\tcase '#':\n\t\t\tp.Sharp = true\n\t\tcase '0':\n\t\t\tp.Zero = !p.Minus // Only allow zero padding to the left.\n\t\tcase '+':\n\t\t\tp.Plus = true\n\t\tcase '-':\n\t\t\tp.Minus = true\n\t\t\tp.Zero = false // Do not pad with zeros to the right.\n\t\tcase ' ':\n\t\t\tp.Space = true\n\t\tdefault:\n\t\t\t// Fast path for common case of ascii lower case simple verbs\n\t\t\t// without precision or width or argument indices.\n\t\t\tif 'a' <= c && c <= 'z' && p.ArgNum < len(p.Args) {\n\t\t\t\tif c == 'v' {\n\t\t\t\t\t// Go syntax\n\t\t\t\t\tp.SharpV = p.Sharp\n\t\t\t\t\tp.Sharp = false\n\t\t\t\t\t// Struct-field syntax\n\t\t\t\t\tp.PlusV = p.Plus\n\t\t\t\t\tp.Plus = false\n\t\t\t\t}\n\t\t\t\tp.Verb = rune(c)\n\t\t\t\tp.ArgNum++\n\t\t\t\tp.endPos = i + 1\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Format is more complex than simple flags and a verb or is malformed.\n\t\t\tbreak simpleFormat\n\t\t}\n\t}\n\n\t// Do we have an explicit argument index?\n\ti, afterIndex = p.updateArgNumber(format, i)\n\n\t// Do we have width?\n\tif i < end && format[i] == '*' {\n\t\ti++\n\t\tp.Width, p.WidthPresent = p.intFromArg()\n\n\t\tif !p.WidthPresent {\n\t\t\tp.Status = StatusBadWidthSubstitution\n\t\t}\n\n\t\t// We have a negative width, so take its value and ensure\n\t\t// that the minus flag is set\n\t\tif p.Width < 0 {\n\t\t\tp.Width = -p.Width\n\t\t\tp.Minus = true\n\t\t\tp.Zero = false // Do not pad with zeros to the right.\n\t\t}\n\t\tafterIndex = false\n\t} else {\n\t\tp.Width, p.WidthPresent, i = parsenum(format, i, end)\n\t\tif afterIndex && p.WidthPresent { // \"%[3]2d\"\n\t\t\tp.goodArgNum = false\n\t\t}\n\t}\n\n\t// Do we have precision?\n\tif i+1 < end && format[i] == '.' {\n\t\ti++\n\t\tif afterIndex { // \"%[3].2d\"\n\t\t\tp.goodArgNum = false\n\t\t}\n\t\ti, afterIndex = p.updateArgNumber(format, i)\n\t\tif i < end && format[i] == '*' {\n\t\t\ti++\n\t\t\tp.Prec, p.PrecPresent = p.intFromArg()\n\t\t\t// Negative precision arguments don't make sense\n\t\t\tif p.Prec < 0 {\n\t\t\t\tp.Prec = 0\n\t\t\t\tp.PrecPresent = false\n\t\t\t}\n\t\t\tif !p.PrecPresent {\n\t\t\t\tp.Status = StatusBadPrecSubstitution\n\t\t\t}\n\t\t\tafterIndex = false\n\t\t} else {\n\t\t\tp.Prec, p.PrecPresent, i = parsenum(format, i, end)\n\t\t\tif !p.PrecPresent {\n\t\t\t\tp.Prec = 0\n\t\t\t\tp.PrecPresent = true\n\t\t\t}\n\t\t}\n\t}\n\n\tif !afterIndex {\n\t\ti, afterIndex = p.updateArgNumber(format, i)\n\t}\n\tp.HasIndex = afterIndex\n\n\tif i >= end {\n\t\tp.endPos = i\n\t\tp.Status = StatusNoVerb\n\t\treturn true\n\t}\n\n\tverb, w := utf8.DecodeRuneInString(format[i:])\n\tp.endPos = i + w\n\tp.Verb = verb\n\n\tswitch {\n\tcase verb == '%': // Percent does not absorb operands and ignores f.wid and f.prec.\n\t\tp.startPos = p.endPos - 1\n\t\tp.Status = StatusText\n\tcase !p.goodArgNum:\n\t\tp.Status = StatusBadArgNum\n\tcase p.ArgNum >= len(p.Args): // No argument left over to print for the current verb.\n\t\tp.Status = StatusMissingArg\n\t\tp.ArgNum++\n\tcase verb == 'v':\n\t\t// Go syntax\n\t\tp.SharpV = p.Sharp\n\t\tp.Sharp = false\n\t\t// Struct-field syntax\n\t\tp.PlusV = p.Plus\n\t\tp.Plus = false\n\t\tfallthrough\n\tdefault:\n\t\tp.ArgNum++\n\t}\n\treturn true\n}\n\n// intFromArg gets the ArgNumth element of Args. On return, isInt reports\n// whether the argument has integer type.\nfunc (p *Parser) intFromArg() (num int, isInt bool) {\n\tif p.ArgNum < len(p.Args) {\n\t\targ := p.Args[p.ArgNum]\n\t\tnum, isInt = arg.(int) // Almost always OK.\n\t\tif !isInt {\n\t\t\t// Work harder.\n\t\t\tswitch v := reflect.ValueOf(arg); v.Kind() {\n\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\t\tn := v.Int()\n\t\t\t\tif int64(int(n)) == n {\n\t\t\t\t\tnum = int(n)\n\t\t\t\t\tisInt = true\n\t\t\t\t}\n\t\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\t\t\tn := v.Uint()\n\t\t\t\tif int64(n) >= 0 && uint64(int(n)) == n {\n\t\t\t\t\tnum = int(n)\n\t\t\t\t\tisInt = true\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\t// Already 0, false.\n\t\t\t}\n\t\t}\n\t\tp.ArgNum++\n\t\tif tooLarge(num) {\n\t\t\tnum = 0\n\t\t\tisInt = false\n\t\t}\n\t}\n\treturn\n}\n\n// parseArgNumber returns the value of the bracketed number, minus 1\n// (explicit argument numbers are one-indexed but we want zero-indexed).\n// The opening bracket is known to be present at format[0].\n// The returned values are the index, the number of bytes to consume\n// up to the closing paren, if present, and whether the number parsed\n// ok. The bytes to consume will be 1 if no closing paren is present.\nfunc parseArgNumber(format string) (index int, wid int, ok bool) {\n\t// There must be at least 3 bytes: [n].\n\tif len(format) < 3 {\n\t\treturn 0, 1, false\n\t}\n\n\t// Find closing bracket.\n\tfor i := 1; i < len(format); i++ {\n\t\tif format[i] == ']' {\n\t\t\twidth, ok, newi := parsenum(format, 1, i)\n\t\t\tif !ok || newi != i {\n\t\t\t\treturn 0, i + 1, false\n\t\t\t}\n\t\t\treturn width - 1, i + 1, true // arg numbers are one-indexed and skip paren.\n\t\t}\n\t}\n\treturn 0, 1, false\n}\n\n// updateArgNumber returns the next argument to evaluate, which is either the value of the passed-in\n// argNum or the value of the bracketed integer that begins format[i:]. It also returns\n// the new value of i, that is, the index of the next byte of the format to process.\nfunc (p *Parser) updateArgNumber(format string, i int) (newi int, found bool) {\n\tif len(format) <= i || format[i] != '[' {\n\t\treturn i, false\n\t}\n\tp.Reordered = true\n\tindex, wid, ok := parseArgNumber(format[i:])\n\tif ok && 0 <= index && index < len(p.Args) {\n\t\tp.ArgNum = index\n\t\treturn i + wid, true\n\t}\n\tp.goodArgNum = false\n\treturn i + wid, ok\n}\n\n// tooLarge reports whether the magnitude of the integer is\n// too large to be used as a formatting width or precision.\nfunc tooLarge(x int) bool {\n\tconst max int = 1e6\n\treturn x > max || x < -max\n}\n\n// parsenum converts ASCII to integer.  num is 0 (and isnum is false) if no number present.\nfunc parsenum(s string, start, end int) (num int, isnum bool, newi int) {\n\tif start >= end {\n\t\treturn 0, false, end\n\t}\n\tfor newi = start; newi < end && '0' <= s[newi] && s[newi] <= '9'; newi++ {\n\t\tif tooLarge(num) {\n\t\t\treturn 0, false, end // Overflow; crazy long number most likely.\n\t\t}\n\t\tnum = num*10 + int(s[newi]-'0')\n\t\tisnum = true\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/internal.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// Package internal contains non-exported functionality that are used by\n// packages in the text repository.\npackage internal // import \"golang.org/x/text/internal\"\n\nimport (\n\t\"sort\"\n\n\t\"golang.org/x/text/language\"\n)\n\n// SortTags sorts tags in place.\nfunc SortTags(tags []language.Tag) {\n\tsort.Sort(sorter(tags))\n}\n\ntype sorter []language.Tag\n\nfunc (s sorter) Len() int {\n\treturn len(s)\n}\n\nfunc (s sorter) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc (s sorter) Less(i, j int) bool {\n\treturn s[i].String() < s[j].String()\n}\n\n// UniqueTags sorts and filters duplicate tags in place and returns a slice with\n// only unique tags.\nfunc UniqueTags(tags []language.Tag) []language.Tag {\n\tif len(tags) <= 1 {\n\t\treturn tags\n\t}\n\tSortTags(tags)\n\tk := 0\n\tfor i := 1; i < len(tags); i++ {\n\t\tif tags[k].String() < tags[i].String() {\n\t\t\tk++\n\t\t\ttags[k] = tags[i]\n\t\t}\n\t}\n\treturn tags[:k+1]\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/common.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage language\n\n// This file contains code common to the maketables.go and the package code.\n\n// AliasType is the type of an alias in AliasMap.\ntype AliasType int8\n\nconst (\n\tDeprecated AliasType = iota\n\tMacro\n\tLegacy\n\n\tAliasTypeUnknown AliasType = -1\n)\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/compact/compact.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 compact defines a compact representation of language tags.\n//\n// Common language tags (at least all for which locale information is defined\n// in CLDR) are assigned a unique index. Each Tag is associated with such an\n// ID for selecting language-related resources (such as translations) as well\n// as one for selecting regional defaults (currency, number formatting, etc.)\n//\n// It may want to export this functionality at some point, but at this point\n// this is only available for use within x/text.\npackage compact // import \"golang.org/x/text/internal/language/compact\"\n\nimport (\n\t\"sort\"\n\t\"strings\"\n\n\t\"golang.org/x/text/internal/language\"\n)\n\n// ID is an integer identifying a single tag.\ntype ID uint16\n\nfunc getCoreIndex(t language.Tag) (id ID, ok bool) {\n\tcci, ok := language.GetCompactCore(t)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\ti := sort.Search(len(coreTags), func(i int) bool {\n\t\treturn cci <= coreTags[i]\n\t})\n\tif i == len(coreTags) || coreTags[i] != cci {\n\t\treturn 0, false\n\t}\n\treturn ID(i), true\n}\n\n// Parent returns the ID of the parent or the root ID if id is already the root.\nfunc (id ID) Parent() ID {\n\treturn parents[id]\n}\n\n// Tag converts id to an internal language Tag.\nfunc (id ID) Tag() language.Tag {\n\tif int(id) >= len(coreTags) {\n\t\treturn specialTags[int(id)-len(coreTags)]\n\t}\n\treturn coreTags[id].Tag()\n}\n\nvar specialTags []language.Tag\n\nfunc init() {\n\ttags := strings.Split(specialTagsStr, \" \")\n\tspecialTags = make([]language.Tag, len(tags))\n\tfor i, t := range tags {\n\t\tspecialTags[i] = language.MustParse(t)\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/compact/language.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:generate go run gen.go gen_index.go -output tables.go\n//go:generate go run gen_parents.go\n\npackage compact\n\n// TODO: Remove above NOTE after:\n// - verifying that tables are dropped correctly (most notably matcher tables).\n\nimport (\n\t\"strings\"\n\n\t\"golang.org/x/text/internal/language\"\n)\n\n// Tag represents a BCP 47 language tag. It is used to specify an instance of a\n// specific language or locale. All language tag values are guaranteed to be\n// well-formed.\ntype Tag struct {\n\t// NOTE: exported tags will become part of the public API.\n\tlanguage ID\n\tlocale   ID\n\tfull     fullTag // always a language.Tag for now.\n}\n\nconst _und = 0\n\ntype fullTag interface {\n\tIsRoot() bool\n\tParent() language.Tag\n}\n\n// Make a compact Tag from a fully specified internal language Tag.\nfunc Make(t language.Tag) (tag Tag) {\n\tif region := t.TypeForKey(\"rg\"); len(region) == 6 && region[2:] == \"zzzz\" {\n\t\tif r, err := language.ParseRegion(region[:2]); err == nil {\n\t\t\ttFull := t\n\t\t\tt, _ = t.SetTypeForKey(\"rg\", \"\")\n\t\t\t// TODO: should we not consider \"va\" for the language tag?\n\t\t\tvar exact1, exact2 bool\n\t\t\ttag.language, exact1 = FromTag(t)\n\t\t\tt.RegionID = r\n\t\t\ttag.locale, exact2 = FromTag(t)\n\t\t\tif !exact1 || !exact2 {\n\t\t\t\ttag.full = tFull\n\t\t\t}\n\t\t\treturn tag\n\t\t}\n\t}\n\tlang, ok := FromTag(t)\n\ttag.language = lang\n\ttag.locale = lang\n\tif !ok {\n\t\ttag.full = t\n\t}\n\treturn tag\n}\n\n// Tag returns an internal language Tag version of this tag.\nfunc (t Tag) Tag() language.Tag {\n\tif t.full != nil {\n\t\treturn t.full.(language.Tag)\n\t}\n\ttag := t.language.Tag()\n\tif t.language != t.locale {\n\t\tloc := t.locale.Tag()\n\t\ttag, _ = tag.SetTypeForKey(\"rg\", strings.ToLower(loc.RegionID.String())+\"zzzz\")\n\t}\n\treturn tag\n}\n\n// IsCompact reports whether this tag is fully defined in terms of ID.\nfunc (t *Tag) IsCompact() bool {\n\treturn t.full == nil\n}\n\n// MayHaveVariants reports whether a tag may have variants. If it returns false\n// it is guaranteed the tag does not have variants.\nfunc (t Tag) MayHaveVariants() bool {\n\treturn t.full != nil || int(t.language) >= len(coreTags)\n}\n\n// MayHaveExtensions reports whether a tag may have extensions. If it returns\n// false it is guaranteed the tag does not have them.\nfunc (t Tag) MayHaveExtensions() bool {\n\treturn t.full != nil ||\n\t\tint(t.language) >= len(coreTags) ||\n\t\tt.language != t.locale\n}\n\n// IsRoot returns true if t is equal to language \"und\".\nfunc (t Tag) IsRoot() bool {\n\tif t.full != nil {\n\t\treturn t.full.IsRoot()\n\t}\n\treturn t.language == _und\n}\n\n// Parent returns the CLDR parent of t. In CLDR, missing fields in data for a\n// specific language are substituted with fields from the parent language.\n// The parent for a language may change for newer versions of CLDR.\nfunc (t Tag) Parent() Tag {\n\tif t.full != nil {\n\t\treturn Make(t.full.Parent())\n\t}\n\tif t.language != t.locale {\n\t\t// Simulate stripping -u-rg-xxxxxx\n\t\treturn Tag{language: t.language, locale: t.language}\n\t}\n\t// TODO: use parent lookup table once cycle from internal package is\n\t// removed. Probably by internalizing the table and declaring this fast\n\t// enough.\n\t// lang := compactID(internal.Parent(uint16(t.language)))\n\tlang, _ := FromTag(t.language.Tag().Parent())\n\treturn Tag{language: lang, locale: lang}\n}\n\n// nextToken returns token t and the rest of the string.\nfunc nextToken(s string) (t, tail string) {\n\tp := strings.Index(s[1:], \"-\")\n\tif p == -1 {\n\t\treturn s[1:], \"\"\n\t}\n\tp++\n\treturn s[1:p], s[p:]\n}\n\n// LanguageID returns an index, where 0 <= index < NumCompactTags, for tags\n// for which data exists in the text repository.The index will change over time\n// and should not be stored in persistent storage. If t does not match a compact\n// index, exact will be false and the compact index will be returned for the\n// first match after repeatedly taking the Parent of t.\nfunc LanguageID(t Tag) (id ID, exact bool) {\n\treturn t.language, t.full == nil\n}\n\n// RegionalID returns the ID for the regional variant of this tag. This index is\n// used to indicate region-specific overrides, such as default currency, default\n// calendar and week data, default time cycle, and default measurement system\n// and unit preferences.\n//\n// For instance, the tag en-GB-u-rg-uszzzz specifies British English with US\n// settings for currency, number formatting, etc. The CompactIndex for this tag\n// will be that for en-GB, while the RegionalID will be the one corresponding to\n// en-US.\nfunc RegionalID(t Tag) (id ID, exact bool) {\n\treturn t.locale, t.full == nil\n}\n\n// LanguageTag returns t stripped of regional variant indicators.\n//\n// At the moment this means it is stripped of a regional and variant subtag \"rg\"\n// and \"va\" in the \"u\" extension.\nfunc (t Tag) LanguageTag() Tag {\n\tif t.full == nil {\n\t\treturn Tag{language: t.language, locale: t.language}\n\t}\n\ttt := t.Tag()\n\ttt.SetTypeForKey(\"rg\", \"\")\n\ttt.SetTypeForKey(\"va\", \"\")\n\treturn Make(tt)\n}\n\n// RegionalTag returns the regional variant of the tag.\n//\n// At the moment this means that the region is set from the regional subtag\n// \"rg\" in the \"u\" extension.\nfunc (t Tag) RegionalTag() Tag {\n\trt := Tag{language: t.locale, locale: t.locale}\n\tif t.full == nil {\n\t\treturn rt\n\t}\n\tb := language.Builder{}\n\ttag := t.Tag()\n\t// tag, _ = tag.SetTypeForKey(\"rg\", \"\")\n\tb.SetTag(t.locale.Tag())\n\tif v := tag.Variants(); v != \"\" {\n\t\tfor _, v := range strings.Split(v, \"-\") {\n\t\t\tb.AddVariant(v)\n\t\t}\n\t}\n\tfor _, e := range tag.Extensions() {\n\t\tb.AddExt(e)\n\t}\n\treturn t\n}\n\n// FromTag reports closest matching ID for an internal language Tag.\nfunc FromTag(t language.Tag) (id ID, exact bool) {\n\t// TODO: perhaps give more frequent tags a lower index.\n\t// TODO: we could make the indexes stable. This will excluded some\n\t//       possibilities for optimization, so don't do this quite yet.\n\texact = true\n\n\tb, s, r := t.Raw()\n\tif t.HasString() {\n\t\tif t.IsPrivateUse() {\n\t\t\t// We have no entries for user-defined tags.\n\t\t\treturn 0, false\n\t\t}\n\t\thasExtra := false\n\t\tif t.HasVariants() {\n\t\t\tif t.HasExtensions() {\n\t\t\t\tbuild := language.Builder{}\n\t\t\t\tbuild.SetTag(language.Tag{LangID: b, ScriptID: s, RegionID: r})\n\t\t\t\tbuild.AddVariant(t.Variants())\n\t\t\t\texact = false\n\t\t\t\tt = build.Make()\n\t\t\t}\n\t\t\thasExtra = true\n\t\t} else if _, ok := t.Extension('u'); ok {\n\t\t\t// TODO: va may mean something else. Consider not considering it.\n\t\t\t// Strip all but the 'va' entry.\n\t\t\told := t\n\t\t\tvariant := t.TypeForKey(\"va\")\n\t\t\tt = language.Tag{LangID: b, ScriptID: s, RegionID: r}\n\t\t\tif variant != \"\" {\n\t\t\t\tt, _ = t.SetTypeForKey(\"va\", variant)\n\t\t\t\thasExtra = true\n\t\t\t}\n\t\t\texact = old == t\n\t\t} else {\n\t\t\texact = false\n\t\t}\n\t\tif hasExtra {\n\t\t\t// We have some variants.\n\t\t\tfor i, s := range specialTags {\n\t\t\t\tif s == t {\n\t\t\t\t\treturn ID(i + len(coreTags)), exact\n\t\t\t\t}\n\t\t\t}\n\t\t\texact = false\n\t\t}\n\t}\n\tif x, ok := getCoreIndex(t); ok {\n\t\treturn x, exact\n\t}\n\texact = false\n\tif r != 0 && s == 0 {\n\t\t// Deal with cases where an extra script is inserted for the region.\n\t\tt, _ := t.Maximize()\n\t\tif x, ok := getCoreIndex(t); ok {\n\t\t\treturn x, exact\n\t\t}\n\t}\n\tfor t = t.Parent(); t != root; t = t.Parent() {\n\t\t// No variants specified: just compare core components.\n\t\t// The key has the form lllssrrr, where l, s, and r are nibbles for\n\t\t// respectively the langID, scriptID, and regionID.\n\t\tif x, ok := getCoreIndex(t); ok {\n\t\t\treturn x, exact\n\t\t}\n\t}\n\treturn 0, exact\n}\n\nvar root = language.Tag{}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/compact/parents.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage compact\n\n// parents maps a compact index of a tag to the compact index of the parent of\n// this tag.\nvar parents = []ID{ // 775 elements\n\t// Entry 0 - 3F\n\t0x0000, 0x0000, 0x0001, 0x0001, 0x0000, 0x0004, 0x0000, 0x0006,\n\t0x0000, 0x0008, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,\n\t0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,\n\t0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,\n\t0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000,\n\t0x0000, 0x0028, 0x0000, 0x002a, 0x0000, 0x002c, 0x0000, 0x0000,\n\t0x002f, 0x002e, 0x002e, 0x0000, 0x0033, 0x0000, 0x0035, 0x0000,\n\t0x0037, 0x0000, 0x0039, 0x0000, 0x003b, 0x0000, 0x0000, 0x003e,\n\t// Entry 40 - 7F\n\t0x0000, 0x0040, 0x0040, 0x0000, 0x0043, 0x0043, 0x0000, 0x0046,\n\t0x0000, 0x0048, 0x0000, 0x0000, 0x004b, 0x004a, 0x004a, 0x0000,\n\t0x004f, 0x004f, 0x004f, 0x004f, 0x0000, 0x0054, 0x0054, 0x0000,\n\t0x0057, 0x0000, 0x0059, 0x0000, 0x005b, 0x0000, 0x005d, 0x005d,\n\t0x0000, 0x0060, 0x0000, 0x0062, 0x0000, 0x0064, 0x0000, 0x0066,\n\t0x0066, 0x0000, 0x0069, 0x0000, 0x006b, 0x006b, 0x006b, 0x006b,\n\t0x006b, 0x006b, 0x006b, 0x0000, 0x0073, 0x0000, 0x0075, 0x0000,\n\t0x0077, 0x0000, 0x0000, 0x007a, 0x0000, 0x007c, 0x0000, 0x007e,\n\t// Entry 80 - BF\n\t0x0000, 0x0080, 0x0080, 0x0000, 0x0083, 0x0083, 0x0000, 0x0086,\n\t0x0087, 0x0087, 0x0087, 0x0086, 0x0088, 0x0087, 0x0087, 0x0087,\n\t0x0086, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0088,\n\t0x0087, 0x0087, 0x0087, 0x0087, 0x0088, 0x0087, 0x0088, 0x0087,\n\t0x0087, 0x0088, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087,\n\t0x0087, 0x0087, 0x0087, 0x0086, 0x0087, 0x0087, 0x0087, 0x0087,\n\t0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087,\n\t0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0086, 0x0087, 0x0086,\n\t// Entry C0 - FF\n\t0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087,\n\t0x0088, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087,\n\t0x0086, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0088, 0x0087,\n\t0x0087, 0x0088, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087,\n\t0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0086, 0x0086, 0x0087,\n\t0x0087, 0x0086, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0000,\n\t0x00ef, 0x0000, 0x00f1, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f2,\n\t0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f1, 0x00f2, 0x00f1, 0x00f1,\n\t// Entry 100 - 13F\n\t0x00f2, 0x00f2, 0x00f1, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f1,\n\t0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x00f2, 0x0000, 0x010e,\n\t0x0000, 0x0110, 0x0000, 0x0112, 0x0000, 0x0114, 0x0114, 0x0000,\n\t0x0117, 0x0117, 0x0117, 0x0117, 0x0000, 0x011c, 0x0000, 0x011e,\n\t0x0000, 0x0120, 0x0120, 0x0000, 0x0123, 0x0123, 0x0123, 0x0123,\n\t0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123,\n\t0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123,\n\t0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123,\n\t// Entry 140 - 17F\n\t0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123,\n\t0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123,\n\t0x0123, 0x0123, 0x0000, 0x0152, 0x0000, 0x0154, 0x0000, 0x0156,\n\t0x0000, 0x0158, 0x0000, 0x015a, 0x0000, 0x015c, 0x015c, 0x015c,\n\t0x0000, 0x0160, 0x0000, 0x0000, 0x0163, 0x0000, 0x0165, 0x0000,\n\t0x0167, 0x0167, 0x0167, 0x0000, 0x016b, 0x0000, 0x016d, 0x0000,\n\t0x016f, 0x0000, 0x0171, 0x0171, 0x0000, 0x0174, 0x0000, 0x0176,\n\t0x0000, 0x0178, 0x0000, 0x017a, 0x0000, 0x017c, 0x0000, 0x017e,\n\t// Entry 180 - 1BF\n\t0x0000, 0x0000, 0x0000, 0x0182, 0x0000, 0x0184, 0x0184, 0x0184,\n\t0x0184, 0x0000, 0x0000, 0x0000, 0x018b, 0x0000, 0x0000, 0x018e,\n\t0x0000, 0x0000, 0x0191, 0x0000, 0x0000, 0x0000, 0x0195, 0x0000,\n\t0x0197, 0x0000, 0x0000, 0x019a, 0x0000, 0x0000, 0x019d, 0x0000,\n\t0x019f, 0x0000, 0x01a1, 0x0000, 0x01a3, 0x0000, 0x01a5, 0x0000,\n\t0x01a7, 0x0000, 0x01a9, 0x0000, 0x01ab, 0x0000, 0x01ad, 0x0000,\n\t0x01af, 0x0000, 0x01b1, 0x01b1, 0x0000, 0x01b4, 0x0000, 0x01b6,\n\t0x0000, 0x01b8, 0x0000, 0x01ba, 0x0000, 0x01bc, 0x0000, 0x0000,\n\t// Entry 1C0 - 1FF\n\t0x01bf, 0x0000, 0x01c1, 0x0000, 0x01c3, 0x0000, 0x01c5, 0x0000,\n\t0x01c7, 0x0000, 0x01c9, 0x0000, 0x01cb, 0x01cb, 0x01cb, 0x01cb,\n\t0x0000, 0x01d0, 0x0000, 0x01d2, 0x01d2, 0x0000, 0x01d5, 0x0000,\n\t0x01d7, 0x0000, 0x01d9, 0x0000, 0x01db, 0x0000, 0x01dd, 0x0000,\n\t0x01df, 0x01df, 0x0000, 0x01e2, 0x0000, 0x01e4, 0x0000, 0x01e6,\n\t0x0000, 0x01e8, 0x0000, 0x01ea, 0x0000, 0x01ec, 0x0000, 0x01ee,\n\t0x0000, 0x01f0, 0x0000, 0x0000, 0x01f3, 0x0000, 0x01f5, 0x01f5,\n\t0x01f5, 0x0000, 0x01f9, 0x0000, 0x01fb, 0x0000, 0x01fd, 0x0000,\n\t// Entry 200 - 23F\n\t0x01ff, 0x0000, 0x0000, 0x0202, 0x0000, 0x0204, 0x0204, 0x0000,\n\t0x0207, 0x0000, 0x0209, 0x0209, 0x0000, 0x020c, 0x020c, 0x0000,\n\t0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x0000,\n\t0x0217, 0x0000, 0x0219, 0x0000, 0x021b, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0221, 0x0000, 0x0000, 0x0224, 0x0000, 0x0226,\n\t0x0226, 0x0000, 0x0229, 0x0000, 0x022b, 0x022b, 0x0000, 0x0000,\n\t0x022f, 0x022e, 0x022e, 0x0000, 0x0000, 0x0234, 0x0000, 0x0236,\n\t0x0000, 0x0238, 0x0000, 0x0244, 0x023a, 0x0244, 0x0244, 0x0244,\n\t// Entry 240 - 27F\n\t0x0244, 0x0244, 0x0244, 0x0244, 0x023a, 0x0244, 0x0244, 0x0000,\n\t0x0247, 0x0247, 0x0247, 0x0000, 0x024b, 0x0000, 0x024d, 0x0000,\n\t0x024f, 0x024f, 0x0000, 0x0252, 0x0000, 0x0254, 0x0254, 0x0254,\n\t0x0254, 0x0254, 0x0254, 0x0000, 0x025b, 0x0000, 0x025d, 0x0000,\n\t0x025f, 0x0000, 0x0261, 0x0000, 0x0263, 0x0000, 0x0265, 0x0000,\n\t0x0000, 0x0268, 0x0268, 0x0268, 0x0000, 0x026c, 0x0000, 0x026e,\n\t0x0000, 0x0270, 0x0000, 0x0000, 0x0000, 0x0274, 0x0273, 0x0273,\n\t0x0000, 0x0278, 0x0000, 0x027a, 0x0000, 0x027c, 0x0000, 0x0000,\n\t// Entry 280 - 2BF\n\t0x0000, 0x0000, 0x0281, 0x0000, 0x0000, 0x0284, 0x0000, 0x0286,\n\t0x0286, 0x0286, 0x0286, 0x0000, 0x028b, 0x028b, 0x028b, 0x0000,\n\t0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x0000, 0x0295, 0x0295,\n\t0x0295, 0x0295, 0x0000, 0x0000, 0x0000, 0x0000, 0x029d, 0x029d,\n\t0x029d, 0x0000, 0x02a1, 0x02a1, 0x02a1, 0x02a1, 0x0000, 0x0000,\n\t0x02a7, 0x02a7, 0x02a7, 0x02a7, 0x0000, 0x02ac, 0x0000, 0x02ae,\n\t0x02ae, 0x0000, 0x02b1, 0x0000, 0x02b3, 0x0000, 0x02b5, 0x02b5,\n\t0x0000, 0x0000, 0x02b9, 0x0000, 0x0000, 0x0000, 0x02bd, 0x0000,\n\t// Entry 2C0 - 2FF\n\t0x02bf, 0x02bf, 0x0000, 0x0000, 0x02c3, 0x0000, 0x02c5, 0x0000,\n\t0x02c7, 0x0000, 0x02c9, 0x0000, 0x02cb, 0x0000, 0x02cd, 0x02cd,\n\t0x0000, 0x0000, 0x02d1, 0x0000, 0x02d3, 0x02d0, 0x02d0, 0x0000,\n\t0x0000, 0x02d8, 0x02d7, 0x02d7, 0x0000, 0x0000, 0x02dd, 0x0000,\n\t0x02df, 0x0000, 0x02e1, 0x0000, 0x0000, 0x02e4, 0x0000, 0x02e6,\n\t0x0000, 0x0000, 0x02e9, 0x0000, 0x02eb, 0x0000, 0x02ed, 0x0000,\n\t0x02ef, 0x02ef, 0x0000, 0x0000, 0x02f3, 0x02f2, 0x02f2, 0x0000,\n\t0x02f7, 0x0000, 0x02f9, 0x02f9, 0x02f9, 0x02f9, 0x02f9, 0x0000,\n\t// Entry 300 - 33F\n\t0x02ff, 0x0300, 0x02ff, 0x0000, 0x0303, 0x0051, 0x00e6,\n} // Size: 1574 bytes\n\n// Total table size 1574 bytes (1KiB); checksum: 895AAF0B\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/compact/tables.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage compact\n\nimport \"golang.org/x/text/internal/language\"\n\n// CLDRVersion is the CLDR version from which the tables in this package are derived.\nconst CLDRVersion = \"32\"\n\n// NumCompactTags is the number of common tags. The maximum tag is\n// NumCompactTags-1.\nconst NumCompactTags = 775\nconst (\n\tundIndex          ID = 0\n\tafIndex           ID = 1\n\tafNAIndex         ID = 2\n\tafZAIndex         ID = 3\n\tagqIndex          ID = 4\n\tagqCMIndex        ID = 5\n\takIndex           ID = 6\n\takGHIndex         ID = 7\n\tamIndex           ID = 8\n\tamETIndex         ID = 9\n\tarIndex           ID = 10\n\tar001Index        ID = 11\n\tarAEIndex         ID = 12\n\tarBHIndex         ID = 13\n\tarDJIndex         ID = 14\n\tarDZIndex         ID = 15\n\tarEGIndex         ID = 16\n\tarEHIndex         ID = 17\n\tarERIndex         ID = 18\n\tarILIndex         ID = 19\n\tarIQIndex         ID = 20\n\tarJOIndex         ID = 21\n\tarKMIndex         ID = 22\n\tarKWIndex         ID = 23\n\tarLBIndex         ID = 24\n\tarLYIndex         ID = 25\n\tarMAIndex         ID = 26\n\tarMRIndex         ID = 27\n\tarOMIndex         ID = 28\n\tarPSIndex         ID = 29\n\tarQAIndex         ID = 30\n\tarSAIndex         ID = 31\n\tarSDIndex         ID = 32\n\tarSOIndex         ID = 33\n\tarSSIndex         ID = 34\n\tarSYIndex         ID = 35\n\tarTDIndex         ID = 36\n\tarTNIndex         ID = 37\n\tarYEIndex         ID = 38\n\tarsIndex          ID = 39\n\tasIndex           ID = 40\n\tasINIndex         ID = 41\n\tasaIndex          ID = 42\n\tasaTZIndex        ID = 43\n\tastIndex          ID = 44\n\tastESIndex        ID = 45\n\tazIndex           ID = 46\n\tazCyrlIndex       ID = 47\n\tazCyrlAZIndex     ID = 48\n\tazLatnIndex       ID = 49\n\tazLatnAZIndex     ID = 50\n\tbasIndex          ID = 51\n\tbasCMIndex        ID = 52\n\tbeIndex           ID = 53\n\tbeBYIndex         ID = 54\n\tbemIndex          ID = 55\n\tbemZMIndex        ID = 56\n\tbezIndex          ID = 57\n\tbezTZIndex        ID = 58\n\tbgIndex           ID = 59\n\tbgBGIndex         ID = 60\n\tbhIndex           ID = 61\n\tbmIndex           ID = 62\n\tbmMLIndex         ID = 63\n\tbnIndex           ID = 64\n\tbnBDIndex         ID = 65\n\tbnINIndex         ID = 66\n\tboIndex           ID = 67\n\tboCNIndex         ID = 68\n\tboINIndex         ID = 69\n\tbrIndex           ID = 70\n\tbrFRIndex         ID = 71\n\tbrxIndex          ID = 72\n\tbrxINIndex        ID = 73\n\tbsIndex           ID = 74\n\tbsCyrlIndex       ID = 75\n\tbsCyrlBAIndex     ID = 76\n\tbsLatnIndex       ID = 77\n\tbsLatnBAIndex     ID = 78\n\tcaIndex           ID = 79\n\tcaADIndex         ID = 80\n\tcaESIndex         ID = 81\n\tcaFRIndex         ID = 82\n\tcaITIndex         ID = 83\n\tccpIndex          ID = 84\n\tccpBDIndex        ID = 85\n\tccpINIndex        ID = 86\n\tceIndex           ID = 87\n\tceRUIndex         ID = 88\n\tcggIndex          ID = 89\n\tcggUGIndex        ID = 90\n\tchrIndex          ID = 91\n\tchrUSIndex        ID = 92\n\tckbIndex          ID = 93\n\tckbIQIndex        ID = 94\n\tckbIRIndex        ID = 95\n\tcsIndex           ID = 96\n\tcsCZIndex         ID = 97\n\tcuIndex           ID = 98\n\tcuRUIndex         ID = 99\n\tcyIndex           ID = 100\n\tcyGBIndex         ID = 101\n\tdaIndex           ID = 102\n\tdaDKIndex         ID = 103\n\tdaGLIndex         ID = 104\n\tdavIndex          ID = 105\n\tdavKEIndex        ID = 106\n\tdeIndex           ID = 107\n\tdeATIndex         ID = 108\n\tdeBEIndex         ID = 109\n\tdeCHIndex         ID = 110\n\tdeDEIndex         ID = 111\n\tdeITIndex         ID = 112\n\tdeLIIndex         ID = 113\n\tdeLUIndex         ID = 114\n\tdjeIndex          ID = 115\n\tdjeNEIndex        ID = 116\n\tdsbIndex          ID = 117\n\tdsbDEIndex        ID = 118\n\tduaIndex          ID = 119\n\tduaCMIndex        ID = 120\n\tdvIndex           ID = 121\n\tdyoIndex          ID = 122\n\tdyoSNIndex        ID = 123\n\tdzIndex           ID = 124\n\tdzBTIndex         ID = 125\n\tebuIndex          ID = 126\n\tebuKEIndex        ID = 127\n\teeIndex           ID = 128\n\teeGHIndex         ID = 129\n\teeTGIndex         ID = 130\n\telIndex           ID = 131\n\telCYIndex         ID = 132\n\telGRIndex         ID = 133\n\tenIndex           ID = 134\n\ten001Index        ID = 135\n\ten150Index        ID = 136\n\tenAGIndex         ID = 137\n\tenAIIndex         ID = 138\n\tenASIndex         ID = 139\n\tenATIndex         ID = 140\n\tenAUIndex         ID = 141\n\tenBBIndex         ID = 142\n\tenBEIndex         ID = 143\n\tenBIIndex         ID = 144\n\tenBMIndex         ID = 145\n\tenBSIndex         ID = 146\n\tenBWIndex         ID = 147\n\tenBZIndex         ID = 148\n\tenCAIndex         ID = 149\n\tenCCIndex         ID = 150\n\tenCHIndex         ID = 151\n\tenCKIndex         ID = 152\n\tenCMIndex         ID = 153\n\tenCXIndex         ID = 154\n\tenCYIndex         ID = 155\n\tenDEIndex         ID = 156\n\tenDGIndex         ID = 157\n\tenDKIndex         ID = 158\n\tenDMIndex         ID = 159\n\tenERIndex         ID = 160\n\tenFIIndex         ID = 161\n\tenFJIndex         ID = 162\n\tenFKIndex         ID = 163\n\tenFMIndex         ID = 164\n\tenGBIndex         ID = 165\n\tenGDIndex         ID = 166\n\tenGGIndex         ID = 167\n\tenGHIndex         ID = 168\n\tenGIIndex         ID = 169\n\tenGMIndex         ID = 170\n\tenGUIndex         ID = 171\n\tenGYIndex         ID = 172\n\tenHKIndex         ID = 173\n\tenIEIndex         ID = 174\n\tenILIndex         ID = 175\n\tenIMIndex         ID = 176\n\tenINIndex         ID = 177\n\tenIOIndex         ID = 178\n\tenJEIndex         ID = 179\n\tenJMIndex         ID = 180\n\tenKEIndex         ID = 181\n\tenKIIndex         ID = 182\n\tenKNIndex         ID = 183\n\tenKYIndex         ID = 184\n\tenLCIndex         ID = 185\n\tenLRIndex         ID = 186\n\tenLSIndex         ID = 187\n\tenMGIndex         ID = 188\n\tenMHIndex         ID = 189\n\tenMOIndex         ID = 190\n\tenMPIndex         ID = 191\n\tenMSIndex         ID = 192\n\tenMTIndex         ID = 193\n\tenMUIndex         ID = 194\n\tenMWIndex         ID = 195\n\tenMYIndex         ID = 196\n\tenNAIndex         ID = 197\n\tenNFIndex         ID = 198\n\tenNGIndex         ID = 199\n\tenNLIndex         ID = 200\n\tenNRIndex         ID = 201\n\tenNUIndex         ID = 202\n\tenNZIndex         ID = 203\n\tenPGIndex         ID = 204\n\tenPHIndex         ID = 205\n\tenPKIndex         ID = 206\n\tenPNIndex         ID = 207\n\tenPRIndex         ID = 208\n\tenPWIndex         ID = 209\n\tenRWIndex         ID = 210\n\tenSBIndex         ID = 211\n\tenSCIndex         ID = 212\n\tenSDIndex         ID = 213\n\tenSEIndex         ID = 214\n\tenSGIndex         ID = 215\n\tenSHIndex         ID = 216\n\tenSIIndex         ID = 217\n\tenSLIndex         ID = 218\n\tenSSIndex         ID = 219\n\tenSXIndex         ID = 220\n\tenSZIndex         ID = 221\n\tenTCIndex         ID = 222\n\tenTKIndex         ID = 223\n\tenTOIndex         ID = 224\n\tenTTIndex         ID = 225\n\tenTVIndex         ID = 226\n\tenTZIndex         ID = 227\n\tenUGIndex         ID = 228\n\tenUMIndex         ID = 229\n\tenUSIndex         ID = 230\n\tenVCIndex         ID = 231\n\tenVGIndex         ID = 232\n\tenVIIndex         ID = 233\n\tenVUIndex         ID = 234\n\tenWSIndex         ID = 235\n\tenZAIndex         ID = 236\n\tenZMIndex         ID = 237\n\tenZWIndex         ID = 238\n\teoIndex           ID = 239\n\teo001Index        ID = 240\n\tesIndex           ID = 241\n\tes419Index        ID = 242\n\tesARIndex         ID = 243\n\tesBOIndex         ID = 244\n\tesBRIndex         ID = 245\n\tesBZIndex         ID = 246\n\tesCLIndex         ID = 247\n\tesCOIndex         ID = 248\n\tesCRIndex         ID = 249\n\tesCUIndex         ID = 250\n\tesDOIndex         ID = 251\n\tesEAIndex         ID = 252\n\tesECIndex         ID = 253\n\tesESIndex         ID = 254\n\tesGQIndex         ID = 255\n\tesGTIndex         ID = 256\n\tesHNIndex         ID = 257\n\tesICIndex         ID = 258\n\tesMXIndex         ID = 259\n\tesNIIndex         ID = 260\n\tesPAIndex         ID = 261\n\tesPEIndex         ID = 262\n\tesPHIndex         ID = 263\n\tesPRIndex         ID = 264\n\tesPYIndex         ID = 265\n\tesSVIndex         ID = 266\n\tesUSIndex         ID = 267\n\tesUYIndex         ID = 268\n\tesVEIndex         ID = 269\n\tetIndex           ID = 270\n\tetEEIndex         ID = 271\n\teuIndex           ID = 272\n\teuESIndex         ID = 273\n\tewoIndex          ID = 274\n\tewoCMIndex        ID = 275\n\tfaIndex           ID = 276\n\tfaAFIndex         ID = 277\n\tfaIRIndex         ID = 278\n\tffIndex           ID = 279\n\tffCMIndex         ID = 280\n\tffGNIndex         ID = 281\n\tffMRIndex         ID = 282\n\tffSNIndex         ID = 283\n\tfiIndex           ID = 284\n\tfiFIIndex         ID = 285\n\tfilIndex          ID = 286\n\tfilPHIndex        ID = 287\n\tfoIndex           ID = 288\n\tfoDKIndex         ID = 289\n\tfoFOIndex         ID = 290\n\tfrIndex           ID = 291\n\tfrBEIndex         ID = 292\n\tfrBFIndex         ID = 293\n\tfrBIIndex         ID = 294\n\tfrBJIndex         ID = 295\n\tfrBLIndex         ID = 296\n\tfrCAIndex         ID = 297\n\tfrCDIndex         ID = 298\n\tfrCFIndex         ID = 299\n\tfrCGIndex         ID = 300\n\tfrCHIndex         ID = 301\n\tfrCIIndex         ID = 302\n\tfrCMIndex         ID = 303\n\tfrDJIndex         ID = 304\n\tfrDZIndex         ID = 305\n\tfrFRIndex         ID = 306\n\tfrGAIndex         ID = 307\n\tfrGFIndex         ID = 308\n\tfrGNIndex         ID = 309\n\tfrGPIndex         ID = 310\n\tfrGQIndex         ID = 311\n\tfrHTIndex         ID = 312\n\tfrKMIndex         ID = 313\n\tfrLUIndex         ID = 314\n\tfrMAIndex         ID = 315\n\tfrMCIndex         ID = 316\n\tfrMFIndex         ID = 317\n\tfrMGIndex         ID = 318\n\tfrMLIndex         ID = 319\n\tfrMQIndex         ID = 320\n\tfrMRIndex         ID = 321\n\tfrMUIndex         ID = 322\n\tfrNCIndex         ID = 323\n\tfrNEIndex         ID = 324\n\tfrPFIndex         ID = 325\n\tfrPMIndex         ID = 326\n\tfrREIndex         ID = 327\n\tfrRWIndex         ID = 328\n\tfrSCIndex         ID = 329\n\tfrSNIndex         ID = 330\n\tfrSYIndex         ID = 331\n\tfrTDIndex         ID = 332\n\tfrTGIndex         ID = 333\n\tfrTNIndex         ID = 334\n\tfrVUIndex         ID = 335\n\tfrWFIndex         ID = 336\n\tfrYTIndex         ID = 337\n\tfurIndex          ID = 338\n\tfurITIndex        ID = 339\n\tfyIndex           ID = 340\n\tfyNLIndex         ID = 341\n\tgaIndex           ID = 342\n\tgaIEIndex         ID = 343\n\tgdIndex           ID = 344\n\tgdGBIndex         ID = 345\n\tglIndex           ID = 346\n\tglESIndex         ID = 347\n\tgswIndex          ID = 348\n\tgswCHIndex        ID = 349\n\tgswFRIndex        ID = 350\n\tgswLIIndex        ID = 351\n\tguIndex           ID = 352\n\tguINIndex         ID = 353\n\tguwIndex          ID = 354\n\tguzIndex          ID = 355\n\tguzKEIndex        ID = 356\n\tgvIndex           ID = 357\n\tgvIMIndex         ID = 358\n\thaIndex           ID = 359\n\thaGHIndex         ID = 360\n\thaNEIndex         ID = 361\n\thaNGIndex         ID = 362\n\thawIndex          ID = 363\n\thawUSIndex        ID = 364\n\theIndex           ID = 365\n\theILIndex         ID = 366\n\thiIndex           ID = 367\n\thiINIndex         ID = 368\n\thrIndex           ID = 369\n\thrBAIndex         ID = 370\n\thrHRIndex         ID = 371\n\thsbIndex          ID = 372\n\thsbDEIndex        ID = 373\n\thuIndex           ID = 374\n\thuHUIndex         ID = 375\n\thyIndex           ID = 376\n\thyAMIndex         ID = 377\n\tidIndex           ID = 378\n\tidIDIndex         ID = 379\n\tigIndex           ID = 380\n\tigNGIndex         ID = 381\n\tiiIndex           ID = 382\n\tiiCNIndex         ID = 383\n\tinIndex           ID = 384\n\tioIndex           ID = 385\n\tisIndex           ID = 386\n\tisISIndex         ID = 387\n\titIndex           ID = 388\n\titCHIndex         ID = 389\n\titITIndex         ID = 390\n\titSMIndex         ID = 391\n\titVAIndex         ID = 392\n\tiuIndex           ID = 393\n\tiwIndex           ID = 394\n\tjaIndex           ID = 395\n\tjaJPIndex         ID = 396\n\tjboIndex          ID = 397\n\tjgoIndex          ID = 398\n\tjgoCMIndex        ID = 399\n\tjiIndex           ID = 400\n\tjmcIndex          ID = 401\n\tjmcTZIndex        ID = 402\n\tjvIndex           ID = 403\n\tjwIndex           ID = 404\n\tkaIndex           ID = 405\n\tkaGEIndex         ID = 406\n\tkabIndex          ID = 407\n\tkabDZIndex        ID = 408\n\tkajIndex          ID = 409\n\tkamIndex          ID = 410\n\tkamKEIndex        ID = 411\n\tkcgIndex          ID = 412\n\tkdeIndex          ID = 413\n\tkdeTZIndex        ID = 414\n\tkeaIndex          ID = 415\n\tkeaCVIndex        ID = 416\n\tkhqIndex          ID = 417\n\tkhqMLIndex        ID = 418\n\tkiIndex           ID = 419\n\tkiKEIndex         ID = 420\n\tkkIndex           ID = 421\n\tkkKZIndex         ID = 422\n\tkkjIndex          ID = 423\n\tkkjCMIndex        ID = 424\n\tklIndex           ID = 425\n\tklGLIndex         ID = 426\n\tklnIndex          ID = 427\n\tklnKEIndex        ID = 428\n\tkmIndex           ID = 429\n\tkmKHIndex         ID = 430\n\tknIndex           ID = 431\n\tknINIndex         ID = 432\n\tkoIndex           ID = 433\n\tkoKPIndex         ID = 434\n\tkoKRIndex         ID = 435\n\tkokIndex          ID = 436\n\tkokINIndex        ID = 437\n\tksIndex           ID = 438\n\tksINIndex         ID = 439\n\tksbIndex          ID = 440\n\tksbTZIndex        ID = 441\n\tksfIndex          ID = 442\n\tksfCMIndex        ID = 443\n\tkshIndex          ID = 444\n\tkshDEIndex        ID = 445\n\tkuIndex           ID = 446\n\tkwIndex           ID = 447\n\tkwGBIndex         ID = 448\n\tkyIndex           ID = 449\n\tkyKGIndex         ID = 450\n\tlagIndex          ID = 451\n\tlagTZIndex        ID = 452\n\tlbIndex           ID = 453\n\tlbLUIndex         ID = 454\n\tlgIndex           ID = 455\n\tlgUGIndex         ID = 456\n\tlktIndex          ID = 457\n\tlktUSIndex        ID = 458\n\tlnIndex           ID = 459\n\tlnAOIndex         ID = 460\n\tlnCDIndex         ID = 461\n\tlnCFIndex         ID = 462\n\tlnCGIndex         ID = 463\n\tloIndex           ID = 464\n\tloLAIndex         ID = 465\n\tlrcIndex          ID = 466\n\tlrcIQIndex        ID = 467\n\tlrcIRIndex        ID = 468\n\tltIndex           ID = 469\n\tltLTIndex         ID = 470\n\tluIndex           ID = 471\n\tluCDIndex         ID = 472\n\tluoIndex          ID = 473\n\tluoKEIndex        ID = 474\n\tluyIndex          ID = 475\n\tluyKEIndex        ID = 476\n\tlvIndex           ID = 477\n\tlvLVIndex         ID = 478\n\tmasIndex          ID = 479\n\tmasKEIndex        ID = 480\n\tmasTZIndex        ID = 481\n\tmerIndex          ID = 482\n\tmerKEIndex        ID = 483\n\tmfeIndex          ID = 484\n\tmfeMUIndex        ID = 485\n\tmgIndex           ID = 486\n\tmgMGIndex         ID = 487\n\tmghIndex          ID = 488\n\tmghMZIndex        ID = 489\n\tmgoIndex          ID = 490\n\tmgoCMIndex        ID = 491\n\tmkIndex           ID = 492\n\tmkMKIndex         ID = 493\n\tmlIndex           ID = 494\n\tmlINIndex         ID = 495\n\tmnIndex           ID = 496\n\tmnMNIndex         ID = 497\n\tmoIndex           ID = 498\n\tmrIndex           ID = 499\n\tmrINIndex         ID = 500\n\tmsIndex           ID = 501\n\tmsBNIndex         ID = 502\n\tmsMYIndex         ID = 503\n\tmsSGIndex         ID = 504\n\tmtIndex           ID = 505\n\tmtMTIndex         ID = 506\n\tmuaIndex          ID = 507\n\tmuaCMIndex        ID = 508\n\tmyIndex           ID = 509\n\tmyMMIndex         ID = 510\n\tmznIndex          ID = 511\n\tmznIRIndex        ID = 512\n\tnahIndex          ID = 513\n\tnaqIndex          ID = 514\n\tnaqNAIndex        ID = 515\n\tnbIndex           ID = 516\n\tnbNOIndex         ID = 517\n\tnbSJIndex         ID = 518\n\tndIndex           ID = 519\n\tndZWIndex         ID = 520\n\tndsIndex          ID = 521\n\tndsDEIndex        ID = 522\n\tndsNLIndex        ID = 523\n\tneIndex           ID = 524\n\tneINIndex         ID = 525\n\tneNPIndex         ID = 526\n\tnlIndex           ID = 527\n\tnlAWIndex         ID = 528\n\tnlBEIndex         ID = 529\n\tnlBQIndex         ID = 530\n\tnlCWIndex         ID = 531\n\tnlNLIndex         ID = 532\n\tnlSRIndex         ID = 533\n\tnlSXIndex         ID = 534\n\tnmgIndex          ID = 535\n\tnmgCMIndex        ID = 536\n\tnnIndex           ID = 537\n\tnnNOIndex         ID = 538\n\tnnhIndex          ID = 539\n\tnnhCMIndex        ID = 540\n\tnoIndex           ID = 541\n\tnqoIndex          ID = 542\n\tnrIndex           ID = 543\n\tnsoIndex          ID = 544\n\tnusIndex          ID = 545\n\tnusSSIndex        ID = 546\n\tnyIndex           ID = 547\n\tnynIndex          ID = 548\n\tnynUGIndex        ID = 549\n\tomIndex           ID = 550\n\tomETIndex         ID = 551\n\tomKEIndex         ID = 552\n\torIndex           ID = 553\n\torINIndex         ID = 554\n\tosIndex           ID = 555\n\tosGEIndex         ID = 556\n\tosRUIndex         ID = 557\n\tpaIndex           ID = 558\n\tpaArabIndex       ID = 559\n\tpaArabPKIndex     ID = 560\n\tpaGuruIndex       ID = 561\n\tpaGuruINIndex     ID = 562\n\tpapIndex          ID = 563\n\tplIndex           ID = 564\n\tplPLIndex         ID = 565\n\tprgIndex          ID = 566\n\tprg001Index       ID = 567\n\tpsIndex           ID = 568\n\tpsAFIndex         ID = 569\n\tptIndex           ID = 570\n\tptAOIndex         ID = 571\n\tptBRIndex         ID = 572\n\tptCHIndex         ID = 573\n\tptCVIndex         ID = 574\n\tptGQIndex         ID = 575\n\tptGWIndex         ID = 576\n\tptLUIndex         ID = 577\n\tptMOIndex         ID = 578\n\tptMZIndex         ID = 579\n\tptPTIndex         ID = 580\n\tptSTIndex         ID = 581\n\tptTLIndex         ID = 582\n\tquIndex           ID = 583\n\tquBOIndex         ID = 584\n\tquECIndex         ID = 585\n\tquPEIndex         ID = 586\n\trmIndex           ID = 587\n\trmCHIndex         ID = 588\n\trnIndex           ID = 589\n\trnBIIndex         ID = 590\n\troIndex           ID = 591\n\troMDIndex         ID = 592\n\troROIndex         ID = 593\n\trofIndex          ID = 594\n\trofTZIndex        ID = 595\n\truIndex           ID = 596\n\truBYIndex         ID = 597\n\truKGIndex         ID = 598\n\truKZIndex         ID = 599\n\truMDIndex         ID = 600\n\truRUIndex         ID = 601\n\truUAIndex         ID = 602\n\trwIndex           ID = 603\n\trwRWIndex         ID = 604\n\trwkIndex          ID = 605\n\trwkTZIndex        ID = 606\n\tsahIndex          ID = 607\n\tsahRUIndex        ID = 608\n\tsaqIndex          ID = 609\n\tsaqKEIndex        ID = 610\n\tsbpIndex          ID = 611\n\tsbpTZIndex        ID = 612\n\tsdIndex           ID = 613\n\tsdPKIndex         ID = 614\n\tsdhIndex          ID = 615\n\tseIndex           ID = 616\n\tseFIIndex         ID = 617\n\tseNOIndex         ID = 618\n\tseSEIndex         ID = 619\n\tsehIndex          ID = 620\n\tsehMZIndex        ID = 621\n\tsesIndex          ID = 622\n\tsesMLIndex        ID = 623\n\tsgIndex           ID = 624\n\tsgCFIndex         ID = 625\n\tshIndex           ID = 626\n\tshiIndex          ID = 627\n\tshiLatnIndex      ID = 628\n\tshiLatnMAIndex    ID = 629\n\tshiTfngIndex      ID = 630\n\tshiTfngMAIndex    ID = 631\n\tsiIndex           ID = 632\n\tsiLKIndex         ID = 633\n\tskIndex           ID = 634\n\tskSKIndex         ID = 635\n\tslIndex           ID = 636\n\tslSIIndex         ID = 637\n\tsmaIndex          ID = 638\n\tsmiIndex          ID = 639\n\tsmjIndex          ID = 640\n\tsmnIndex          ID = 641\n\tsmnFIIndex        ID = 642\n\tsmsIndex          ID = 643\n\tsnIndex           ID = 644\n\tsnZWIndex         ID = 645\n\tsoIndex           ID = 646\n\tsoDJIndex         ID = 647\n\tsoETIndex         ID = 648\n\tsoKEIndex         ID = 649\n\tsoSOIndex         ID = 650\n\tsqIndex           ID = 651\n\tsqALIndex         ID = 652\n\tsqMKIndex         ID = 653\n\tsqXKIndex         ID = 654\n\tsrIndex           ID = 655\n\tsrCyrlIndex       ID = 656\n\tsrCyrlBAIndex     ID = 657\n\tsrCyrlMEIndex     ID = 658\n\tsrCyrlRSIndex     ID = 659\n\tsrCyrlXKIndex     ID = 660\n\tsrLatnIndex       ID = 661\n\tsrLatnBAIndex     ID = 662\n\tsrLatnMEIndex     ID = 663\n\tsrLatnRSIndex     ID = 664\n\tsrLatnXKIndex     ID = 665\n\tssIndex           ID = 666\n\tssyIndex          ID = 667\n\tstIndex           ID = 668\n\tsvIndex           ID = 669\n\tsvAXIndex         ID = 670\n\tsvFIIndex         ID = 671\n\tsvSEIndex         ID = 672\n\tswIndex           ID = 673\n\tswCDIndex         ID = 674\n\tswKEIndex         ID = 675\n\tswTZIndex         ID = 676\n\tswUGIndex         ID = 677\n\tsyrIndex          ID = 678\n\ttaIndex           ID = 679\n\ttaINIndex         ID = 680\n\ttaLKIndex         ID = 681\n\ttaMYIndex         ID = 682\n\ttaSGIndex         ID = 683\n\tteIndex           ID = 684\n\tteINIndex         ID = 685\n\tteoIndex          ID = 686\n\tteoKEIndex        ID = 687\n\tteoUGIndex        ID = 688\n\ttgIndex           ID = 689\n\ttgTJIndex         ID = 690\n\tthIndex           ID = 691\n\tthTHIndex         ID = 692\n\ttiIndex           ID = 693\n\ttiERIndex         ID = 694\n\ttiETIndex         ID = 695\n\ttigIndex          ID = 696\n\ttkIndex           ID = 697\n\ttkTMIndex         ID = 698\n\ttlIndex           ID = 699\n\ttnIndex           ID = 700\n\ttoIndex           ID = 701\n\ttoTOIndex         ID = 702\n\ttrIndex           ID = 703\n\ttrCYIndex         ID = 704\n\ttrTRIndex         ID = 705\n\ttsIndex           ID = 706\n\tttIndex           ID = 707\n\tttRUIndex         ID = 708\n\ttwqIndex          ID = 709\n\ttwqNEIndex        ID = 710\n\ttzmIndex          ID = 711\n\ttzmMAIndex        ID = 712\n\tugIndex           ID = 713\n\tugCNIndex         ID = 714\n\tukIndex           ID = 715\n\tukUAIndex         ID = 716\n\turIndex           ID = 717\n\turINIndex         ID = 718\n\turPKIndex         ID = 719\n\tuzIndex           ID = 720\n\tuzArabIndex       ID = 721\n\tuzArabAFIndex     ID = 722\n\tuzCyrlIndex       ID = 723\n\tuzCyrlUZIndex     ID = 724\n\tuzLatnIndex       ID = 725\n\tuzLatnUZIndex     ID = 726\n\tvaiIndex          ID = 727\n\tvaiLatnIndex      ID = 728\n\tvaiLatnLRIndex    ID = 729\n\tvaiVaiiIndex      ID = 730\n\tvaiVaiiLRIndex    ID = 731\n\tveIndex           ID = 732\n\tviIndex           ID = 733\n\tviVNIndex         ID = 734\n\tvoIndex           ID = 735\n\tvo001Index        ID = 736\n\tvunIndex          ID = 737\n\tvunTZIndex        ID = 738\n\twaIndex           ID = 739\n\twaeIndex          ID = 740\n\twaeCHIndex        ID = 741\n\twoIndex           ID = 742\n\twoSNIndex         ID = 743\n\txhIndex           ID = 744\n\txogIndex          ID = 745\n\txogUGIndex        ID = 746\n\tyavIndex          ID = 747\n\tyavCMIndex        ID = 748\n\tyiIndex           ID = 749\n\tyi001Index        ID = 750\n\tyoIndex           ID = 751\n\tyoBJIndex         ID = 752\n\tyoNGIndex         ID = 753\n\tyueIndex          ID = 754\n\tyueHansIndex      ID = 755\n\tyueHansCNIndex    ID = 756\n\tyueHantIndex      ID = 757\n\tyueHantHKIndex    ID = 758\n\tzghIndex          ID = 759\n\tzghMAIndex        ID = 760\n\tzhIndex           ID = 761\n\tzhHansIndex       ID = 762\n\tzhHansCNIndex     ID = 763\n\tzhHansHKIndex     ID = 764\n\tzhHansMOIndex     ID = 765\n\tzhHansSGIndex     ID = 766\n\tzhHantIndex       ID = 767\n\tzhHantHKIndex     ID = 768\n\tzhHantMOIndex     ID = 769\n\tzhHantTWIndex     ID = 770\n\tzuIndex           ID = 771\n\tzuZAIndex         ID = 772\n\tcaESvalenciaIndex ID = 773\n\tenUSuvaposixIndex ID = 774\n)\n\nvar coreTags = []language.CompactCoreInfo{ // 773 elements\n\t// Entry 0 - 1F\n\t0x00000000, 0x01600000, 0x016000d3, 0x01600162,\n\t0x01c00000, 0x01c00052, 0x02100000, 0x02100081,\n\t0x02700000, 0x02700070, 0x03a00000, 0x03a00001,\n\t0x03a00023, 0x03a00039, 0x03a00063, 0x03a00068,\n\t0x03a0006c, 0x03a0006d, 0x03a0006e, 0x03a00098,\n\t0x03a0009c, 0x03a000a2, 0x03a000a9, 0x03a000ad,\n\t0x03a000b1, 0x03a000ba, 0x03a000bb, 0x03a000ca,\n\t0x03a000e2, 0x03a000ee, 0x03a000f4, 0x03a00109,\n\t// Entry 20 - 3F\n\t0x03a0010c, 0x03a00116, 0x03a00118, 0x03a0011d,\n\t0x03a00121, 0x03a00129, 0x03a0015f, 0x04000000,\n\t0x04300000, 0x0430009a, 0x04400000, 0x04400130,\n\t0x04800000, 0x0480006f, 0x05800000, 0x05820000,\n\t0x05820032, 0x0585b000, 0x0585b032, 0x05e00000,\n\t0x05e00052, 0x07100000, 0x07100047, 0x07500000,\n\t0x07500163, 0x07900000, 0x07900130, 0x07e00000,\n\t0x07e00038, 0x08200000, 0x0a000000, 0x0a0000c4,\n\t// Entry 40 - 5F\n\t0x0a500000, 0x0a500035, 0x0a50009a, 0x0a900000,\n\t0x0a900053, 0x0a90009a, 0x0b200000, 0x0b200079,\n\t0x0b500000, 0x0b50009a, 0x0b700000, 0x0b720000,\n\t0x0b720033, 0x0b75b000, 0x0b75b033, 0x0d700000,\n\t0x0d700022, 0x0d70006f, 0x0d700079, 0x0d70009f,\n\t0x0db00000, 0x0db00035, 0x0db0009a, 0x0dc00000,\n\t0x0dc00107, 0x0df00000, 0x0df00132, 0x0e500000,\n\t0x0e500136, 0x0e900000, 0x0e90009c, 0x0e90009d,\n\t// Entry 60 - 7F\n\t0x0fa00000, 0x0fa0005f, 0x0fe00000, 0x0fe00107,\n\t0x10000000, 0x1000007c, 0x10100000, 0x10100064,\n\t0x10100083, 0x10800000, 0x108000a5, 0x10d00000,\n\t0x10d0002e, 0x10d00036, 0x10d0004e, 0x10d00061,\n\t0x10d0009f, 0x10d000b3, 0x10d000b8, 0x11700000,\n\t0x117000d5, 0x11f00000, 0x11f00061, 0x12400000,\n\t0x12400052, 0x12800000, 0x12b00000, 0x12b00115,\n\t0x12d00000, 0x12d00043, 0x12f00000, 0x12f000a5,\n\t// Entry 80 - 9F\n\t0x13000000, 0x13000081, 0x13000123, 0x13600000,\n\t0x1360005e, 0x13600088, 0x13900000, 0x13900001,\n\t0x1390001a, 0x13900025, 0x13900026, 0x1390002d,\n\t0x1390002e, 0x1390002f, 0x13900034, 0x13900036,\n\t0x1390003a, 0x1390003d, 0x13900042, 0x13900046,\n\t0x13900048, 0x13900049, 0x1390004a, 0x1390004e,\n\t0x13900050, 0x13900052, 0x1390005d, 0x1390005e,\n\t0x13900061, 0x13900062, 0x13900064, 0x13900065,\n\t// Entry A0 - BF\n\t0x1390006e, 0x13900073, 0x13900074, 0x13900075,\n\t0x13900076, 0x1390007c, 0x1390007d, 0x13900080,\n\t0x13900081, 0x13900082, 0x13900084, 0x1390008b,\n\t0x1390008d, 0x1390008e, 0x13900097, 0x13900098,\n\t0x13900099, 0x1390009a, 0x1390009b, 0x139000a0,\n\t0x139000a1, 0x139000a5, 0x139000a8, 0x139000aa,\n\t0x139000ae, 0x139000b2, 0x139000b5, 0x139000b6,\n\t0x139000c0, 0x139000c1, 0x139000c7, 0x139000c8,\n\t// Entry C0 - DF\n\t0x139000cb, 0x139000cc, 0x139000cd, 0x139000cf,\n\t0x139000d1, 0x139000d3, 0x139000d6, 0x139000d7,\n\t0x139000da, 0x139000de, 0x139000e0, 0x139000e1,\n\t0x139000e7, 0x139000e8, 0x139000e9, 0x139000ec,\n\t0x139000ed, 0x139000f1, 0x13900108, 0x1390010a,\n\t0x1390010b, 0x1390010c, 0x1390010d, 0x1390010e,\n\t0x1390010f, 0x13900110, 0x13900113, 0x13900118,\n\t0x1390011c, 0x1390011e, 0x13900120, 0x13900126,\n\t// Entry E0 - FF\n\t0x1390012a, 0x1390012d, 0x1390012e, 0x13900130,\n\t0x13900132, 0x13900134, 0x13900136, 0x1390013a,\n\t0x1390013d, 0x1390013e, 0x13900140, 0x13900143,\n\t0x13900162, 0x13900163, 0x13900165, 0x13c00000,\n\t0x13c00001, 0x13e00000, 0x13e0001f, 0x13e0002c,\n\t0x13e0003f, 0x13e00041, 0x13e00048, 0x13e00051,\n\t0x13e00054, 0x13e00057, 0x13e0005a, 0x13e00066,\n\t0x13e00069, 0x13e0006a, 0x13e0006f, 0x13e00087,\n\t// Entry 100 - 11F\n\t0x13e0008a, 0x13e00090, 0x13e00095, 0x13e000d0,\n\t0x13e000d9, 0x13e000e3, 0x13e000e5, 0x13e000e8,\n\t0x13e000ed, 0x13e000f2, 0x13e0011b, 0x13e00136,\n\t0x13e00137, 0x13e0013c, 0x14000000, 0x1400006b,\n\t0x14500000, 0x1450006f, 0x14600000, 0x14600052,\n\t0x14800000, 0x14800024, 0x1480009d, 0x14e00000,\n\t0x14e00052, 0x14e00085, 0x14e000ca, 0x14e00115,\n\t0x15100000, 0x15100073, 0x15300000, 0x153000e8,\n\t// Entry 120 - 13F\n\t0x15800000, 0x15800064, 0x15800077, 0x15e00000,\n\t0x15e00036, 0x15e00037, 0x15e0003a, 0x15e0003b,\n\t0x15e0003c, 0x15e00049, 0x15e0004b, 0x15e0004c,\n\t0x15e0004d, 0x15e0004e, 0x15e0004f, 0x15e00052,\n\t0x15e00063, 0x15e00068, 0x15e00079, 0x15e0007b,\n\t0x15e0007f, 0x15e00085, 0x15e00086, 0x15e00087,\n\t0x15e00092, 0x15e000a9, 0x15e000b8, 0x15e000bb,\n\t0x15e000bc, 0x15e000bf, 0x15e000c0, 0x15e000c4,\n\t// Entry 140 - 15F\n\t0x15e000c9, 0x15e000ca, 0x15e000cd, 0x15e000d4,\n\t0x15e000d5, 0x15e000e6, 0x15e000eb, 0x15e00103,\n\t0x15e00108, 0x15e0010b, 0x15e00115, 0x15e0011d,\n\t0x15e00121, 0x15e00123, 0x15e00129, 0x15e00140,\n\t0x15e00141, 0x15e00160, 0x16900000, 0x1690009f,\n\t0x16d00000, 0x16d000da, 0x16e00000, 0x16e00097,\n\t0x17e00000, 0x17e0007c, 0x19000000, 0x1900006f,\n\t0x1a300000, 0x1a30004e, 0x1a300079, 0x1a3000b3,\n\t// Entry 160 - 17F\n\t0x1a400000, 0x1a40009a, 0x1a900000, 0x1ab00000,\n\t0x1ab000a5, 0x1ac00000, 0x1ac00099, 0x1b400000,\n\t0x1b400081, 0x1b4000d5, 0x1b4000d7, 0x1b800000,\n\t0x1b800136, 0x1bc00000, 0x1bc00098, 0x1be00000,\n\t0x1be0009a, 0x1d100000, 0x1d100033, 0x1d100091,\n\t0x1d200000, 0x1d200061, 0x1d500000, 0x1d500093,\n\t0x1d700000, 0x1d700028, 0x1e100000, 0x1e100096,\n\t0x1e700000, 0x1e7000d7, 0x1ea00000, 0x1ea00053,\n\t// Entry 180 - 19F\n\t0x1f300000, 0x1f500000, 0x1f800000, 0x1f80009e,\n\t0x1f900000, 0x1f90004e, 0x1f90009f, 0x1f900114,\n\t0x1f900139, 0x1fa00000, 0x1fb00000, 0x20000000,\n\t0x200000a3, 0x20300000, 0x20700000, 0x20700052,\n\t0x20800000, 0x20a00000, 0x20a00130, 0x20e00000,\n\t0x20f00000, 0x21000000, 0x2100007e, 0x21200000,\n\t0x21200068, 0x21600000, 0x21700000, 0x217000a5,\n\t0x21f00000, 0x22300000, 0x22300130, 0x22700000,\n\t// Entry 1A0 - 1BF\n\t0x2270005b, 0x23400000, 0x234000c4, 0x23900000,\n\t0x239000a5, 0x24200000, 0x242000af, 0x24400000,\n\t0x24400052, 0x24500000, 0x24500083, 0x24600000,\n\t0x246000a5, 0x24a00000, 0x24a000a7, 0x25100000,\n\t0x2510009a, 0x25400000, 0x254000ab, 0x254000ac,\n\t0x25600000, 0x2560009a, 0x26a00000, 0x26a0009a,\n\t0x26b00000, 0x26b00130, 0x26d00000, 0x26d00052,\n\t0x26e00000, 0x26e00061, 0x27400000, 0x28100000,\n\t// Entry 1C0 - 1DF\n\t0x2810007c, 0x28a00000, 0x28a000a6, 0x29100000,\n\t0x29100130, 0x29500000, 0x295000b8, 0x2a300000,\n\t0x2a300132, 0x2af00000, 0x2af00136, 0x2b500000,\n\t0x2b50002a, 0x2b50004b, 0x2b50004c, 0x2b50004d,\n\t0x2b800000, 0x2b8000b0, 0x2bf00000, 0x2bf0009c,\n\t0x2bf0009d, 0x2c000000, 0x2c0000b7, 0x2c200000,\n\t0x2c20004b, 0x2c400000, 0x2c4000a5, 0x2c500000,\n\t0x2c5000a5, 0x2c700000, 0x2c7000b9, 0x2d100000,\n\t// Entry 1E0 - 1FF\n\t0x2d1000a5, 0x2d100130, 0x2e900000, 0x2e9000a5,\n\t0x2ed00000, 0x2ed000cd, 0x2f100000, 0x2f1000c0,\n\t0x2f200000, 0x2f2000d2, 0x2f400000, 0x2f400052,\n\t0x2ff00000, 0x2ff000c3, 0x30400000, 0x3040009a,\n\t0x30b00000, 0x30b000c6, 0x31000000, 0x31b00000,\n\t0x31b0009a, 0x31f00000, 0x31f0003e, 0x31f000d1,\n\t0x31f0010e, 0x32000000, 0x320000cc, 0x32500000,\n\t0x32500052, 0x33100000, 0x331000c5, 0x33a00000,\n\t// Entry 200 - 21F\n\t0x33a0009d, 0x34100000, 0x34500000, 0x345000d3,\n\t0x34700000, 0x347000db, 0x34700111, 0x34e00000,\n\t0x34e00165, 0x35000000, 0x35000061, 0x350000da,\n\t0x35100000, 0x3510009a, 0x351000dc, 0x36700000,\n\t0x36700030, 0x36700036, 0x36700040, 0x3670005c,\n\t0x367000da, 0x36700117, 0x3670011c, 0x36800000,\n\t0x36800052, 0x36a00000, 0x36a000db, 0x36c00000,\n\t0x36c00052, 0x36f00000, 0x37500000, 0x37600000,\n\t// Entry 220 - 23F\n\t0x37a00000, 0x38000000, 0x38000118, 0x38700000,\n\t0x38900000, 0x38900132, 0x39000000, 0x39000070,\n\t0x390000a5, 0x39500000, 0x3950009a, 0x39800000,\n\t0x3980007e, 0x39800107, 0x39d00000, 0x39d05000,\n\t0x39d050e9, 0x39d36000, 0x39d3609a, 0x3a100000,\n\t0x3b300000, 0x3b3000ea, 0x3bd00000, 0x3bd00001,\n\t0x3be00000, 0x3be00024, 0x3c000000, 0x3c00002a,\n\t0x3c000041, 0x3c00004e, 0x3c00005b, 0x3c000087,\n\t// Entry 240 - 25F\n\t0x3c00008c, 0x3c0000b8, 0x3c0000c7, 0x3c0000d2,\n\t0x3c0000ef, 0x3c000119, 0x3c000127, 0x3c400000,\n\t0x3c40003f, 0x3c40006a, 0x3c4000e5, 0x3d400000,\n\t0x3d40004e, 0x3d900000, 0x3d90003a, 0x3dc00000,\n\t0x3dc000bd, 0x3dc00105, 0x3de00000, 0x3de00130,\n\t0x3e200000, 0x3e200047, 0x3e2000a6, 0x3e2000af,\n\t0x3e2000bd, 0x3e200107, 0x3e200131, 0x3e500000,\n\t0x3e500108, 0x3e600000, 0x3e600130, 0x3eb00000,\n\t// Entry 260 - 27F\n\t0x3eb00107, 0x3ec00000, 0x3ec000a5, 0x3f300000,\n\t0x3f300130, 0x3fa00000, 0x3fa000e9, 0x3fc00000,\n\t0x3fd00000, 0x3fd00073, 0x3fd000db, 0x3fd0010d,\n\t0x3ff00000, 0x3ff000d2, 0x40100000, 0x401000c4,\n\t0x40200000, 0x4020004c, 0x40700000, 0x40800000,\n\t0x4085b000, 0x4085b0bb, 0x408eb000, 0x408eb0bb,\n\t0x40c00000, 0x40c000b4, 0x41200000, 0x41200112,\n\t0x41600000, 0x41600110, 0x41c00000, 0x41d00000,\n\t// Entry 280 - 29F\n\t0x41e00000, 0x41f00000, 0x41f00073, 0x42200000,\n\t0x42300000, 0x42300165, 0x42900000, 0x42900063,\n\t0x42900070, 0x429000a5, 0x42900116, 0x43100000,\n\t0x43100027, 0x431000c3, 0x4310014e, 0x43200000,\n\t0x43220000, 0x43220033, 0x432200be, 0x43220106,\n\t0x4322014e, 0x4325b000, 0x4325b033, 0x4325b0be,\n\t0x4325b106, 0x4325b14e, 0x43700000, 0x43a00000,\n\t0x43b00000, 0x44400000, 0x44400031, 0x44400073,\n\t// Entry 2A0 - 2BF\n\t0x4440010d, 0x44500000, 0x4450004b, 0x445000a5,\n\t0x44500130, 0x44500132, 0x44e00000, 0x45000000,\n\t0x4500009a, 0x450000b4, 0x450000d1, 0x4500010e,\n\t0x46100000, 0x4610009a, 0x46400000, 0x464000a5,\n\t0x46400132, 0x46700000, 0x46700125, 0x46b00000,\n\t0x46b00124, 0x46f00000, 0x46f0006e, 0x46f00070,\n\t0x47100000, 0x47600000, 0x47600128, 0x47a00000,\n\t0x48000000, 0x48200000, 0x4820012a, 0x48a00000,\n\t// Entry 2C0 - 2DF\n\t0x48a0005e, 0x48a0012c, 0x48e00000, 0x49400000,\n\t0x49400107, 0x4a400000, 0x4a4000d5, 0x4a900000,\n\t0x4a9000bb, 0x4ac00000, 0x4ac00053, 0x4ae00000,\n\t0x4ae00131, 0x4b400000, 0x4b40009a, 0x4b4000e9,\n\t0x4bc00000, 0x4bc05000, 0x4bc05024, 0x4bc20000,\n\t0x4bc20138, 0x4bc5b000, 0x4bc5b138, 0x4be00000,\n\t0x4be5b000, 0x4be5b0b5, 0x4bef4000, 0x4bef40b5,\n\t0x4c000000, 0x4c300000, 0x4c30013f, 0x4c900000,\n\t// Entry 2E0 - 2FF\n\t0x4c900001, 0x4cc00000, 0x4cc00130, 0x4ce00000,\n\t0x4cf00000, 0x4cf0004e, 0x4e500000, 0x4e500115,\n\t0x4f200000, 0x4fb00000, 0x4fb00132, 0x50900000,\n\t0x50900052, 0x51200000, 0x51200001, 0x51800000,\n\t0x5180003b, 0x518000d7, 0x51f00000, 0x51f3b000,\n\t0x51f3b053, 0x51f3c000, 0x51f3c08e, 0x52800000,\n\t0x528000bb, 0x52900000, 0x5293b000, 0x5293b053,\n\t0x5293b08e, 0x5293b0c7, 0x5293b10e, 0x5293c000,\n\t// Entry 300 - 31F\n\t0x5293c08e, 0x5293c0c7, 0x5293c12f, 0x52f00000,\n\t0x52f00162,\n} // Size: 3116 bytes\n\nconst specialTagsStr string = \"ca-ES-valencia en-US-u-va-posix\"\n\n// Total table size 3147 bytes (3KiB); checksum: 5A8FFFA5\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/compact/tags.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 compact\n\nvar (\n\tund = Tag{}\n\n\tUnd Tag = Tag{}\n\n\tAfrikaans            Tag = Tag{language: afIndex, locale: afIndex}\n\tAmharic              Tag = Tag{language: amIndex, locale: amIndex}\n\tArabic               Tag = Tag{language: arIndex, locale: arIndex}\n\tModernStandardArabic Tag = Tag{language: ar001Index, locale: ar001Index}\n\tAzerbaijani          Tag = Tag{language: azIndex, locale: azIndex}\n\tBulgarian            Tag = Tag{language: bgIndex, locale: bgIndex}\n\tBengali              Tag = Tag{language: bnIndex, locale: bnIndex}\n\tCatalan              Tag = Tag{language: caIndex, locale: caIndex}\n\tCzech                Tag = Tag{language: csIndex, locale: csIndex}\n\tDanish               Tag = Tag{language: daIndex, locale: daIndex}\n\tGerman               Tag = Tag{language: deIndex, locale: deIndex}\n\tGreek                Tag = Tag{language: elIndex, locale: elIndex}\n\tEnglish              Tag = Tag{language: enIndex, locale: enIndex}\n\tAmericanEnglish      Tag = Tag{language: enUSIndex, locale: enUSIndex}\n\tBritishEnglish       Tag = Tag{language: enGBIndex, locale: enGBIndex}\n\tSpanish              Tag = Tag{language: esIndex, locale: esIndex}\n\tEuropeanSpanish      Tag = Tag{language: esESIndex, locale: esESIndex}\n\tLatinAmericanSpanish Tag = Tag{language: es419Index, locale: es419Index}\n\tEstonian             Tag = Tag{language: etIndex, locale: etIndex}\n\tPersian              Tag = Tag{language: faIndex, locale: faIndex}\n\tFinnish              Tag = Tag{language: fiIndex, locale: fiIndex}\n\tFilipino             Tag = Tag{language: filIndex, locale: filIndex}\n\tFrench               Tag = Tag{language: frIndex, locale: frIndex}\n\tCanadianFrench       Tag = Tag{language: frCAIndex, locale: frCAIndex}\n\tGujarati             Tag = Tag{language: guIndex, locale: guIndex}\n\tHebrew               Tag = Tag{language: heIndex, locale: heIndex}\n\tHindi                Tag = Tag{language: hiIndex, locale: hiIndex}\n\tCroatian             Tag = Tag{language: hrIndex, locale: hrIndex}\n\tHungarian            Tag = Tag{language: huIndex, locale: huIndex}\n\tArmenian             Tag = Tag{language: hyIndex, locale: hyIndex}\n\tIndonesian           Tag = Tag{language: idIndex, locale: idIndex}\n\tIcelandic            Tag = Tag{language: isIndex, locale: isIndex}\n\tItalian              Tag = Tag{language: itIndex, locale: itIndex}\n\tJapanese             Tag = Tag{language: jaIndex, locale: jaIndex}\n\tGeorgian             Tag = Tag{language: kaIndex, locale: kaIndex}\n\tKazakh               Tag = Tag{language: kkIndex, locale: kkIndex}\n\tKhmer                Tag = Tag{language: kmIndex, locale: kmIndex}\n\tKannada              Tag = Tag{language: knIndex, locale: knIndex}\n\tKorean               Tag = Tag{language: koIndex, locale: koIndex}\n\tKirghiz              Tag = Tag{language: kyIndex, locale: kyIndex}\n\tLao                  Tag = Tag{language: loIndex, locale: loIndex}\n\tLithuanian           Tag = Tag{language: ltIndex, locale: ltIndex}\n\tLatvian              Tag = Tag{language: lvIndex, locale: lvIndex}\n\tMacedonian           Tag = Tag{language: mkIndex, locale: mkIndex}\n\tMalayalam            Tag = Tag{language: mlIndex, locale: mlIndex}\n\tMongolian            Tag = Tag{language: mnIndex, locale: mnIndex}\n\tMarathi              Tag = Tag{language: mrIndex, locale: mrIndex}\n\tMalay                Tag = Tag{language: msIndex, locale: msIndex}\n\tBurmese              Tag = Tag{language: myIndex, locale: myIndex}\n\tNepali               Tag = Tag{language: neIndex, locale: neIndex}\n\tDutch                Tag = Tag{language: nlIndex, locale: nlIndex}\n\tNorwegian            Tag = Tag{language: noIndex, locale: noIndex}\n\tPunjabi              Tag = Tag{language: paIndex, locale: paIndex}\n\tPolish               Tag = Tag{language: plIndex, locale: plIndex}\n\tPortuguese           Tag = Tag{language: ptIndex, locale: ptIndex}\n\tBrazilianPortuguese  Tag = Tag{language: ptBRIndex, locale: ptBRIndex}\n\tEuropeanPortuguese   Tag = Tag{language: ptPTIndex, locale: ptPTIndex}\n\tRomanian             Tag = Tag{language: roIndex, locale: roIndex}\n\tRussian              Tag = Tag{language: ruIndex, locale: ruIndex}\n\tSinhala              Tag = Tag{language: siIndex, locale: siIndex}\n\tSlovak               Tag = Tag{language: skIndex, locale: skIndex}\n\tSlovenian            Tag = Tag{language: slIndex, locale: slIndex}\n\tAlbanian             Tag = Tag{language: sqIndex, locale: sqIndex}\n\tSerbian              Tag = Tag{language: srIndex, locale: srIndex}\n\tSerbianLatin         Tag = Tag{language: srLatnIndex, locale: srLatnIndex}\n\tSwedish              Tag = Tag{language: svIndex, locale: svIndex}\n\tSwahili              Tag = Tag{language: swIndex, locale: swIndex}\n\tTamil                Tag = Tag{language: taIndex, locale: taIndex}\n\tTelugu               Tag = Tag{language: teIndex, locale: teIndex}\n\tThai                 Tag = Tag{language: thIndex, locale: thIndex}\n\tTurkish              Tag = Tag{language: trIndex, locale: trIndex}\n\tUkrainian            Tag = Tag{language: ukIndex, locale: ukIndex}\n\tUrdu                 Tag = Tag{language: urIndex, locale: urIndex}\n\tUzbek                Tag = Tag{language: uzIndex, locale: uzIndex}\n\tVietnamese           Tag = Tag{language: viIndex, locale: viIndex}\n\tChinese              Tag = Tag{language: zhIndex, locale: zhIndex}\n\tSimplifiedChinese    Tag = Tag{language: zhHansIndex, locale: zhHansIndex}\n\tTraditionalChinese   Tag = Tag{language: zhHantIndex, locale: zhHantIndex}\n\tZulu                 Tag = Tag{language: zuIndex, locale: zuIndex}\n)\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/compact.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 language\n\n// CompactCoreInfo is a compact integer with the three core tags encoded.\ntype CompactCoreInfo uint32\n\n// GetCompactCore generates a uint32 value that is guaranteed to be unique for\n// different language, region, and script values.\nfunc GetCompactCore(t Tag) (cci CompactCoreInfo, ok bool) {\n\tif t.LangID > langNoIndexOffset {\n\t\treturn 0, false\n\t}\n\tcci |= CompactCoreInfo(t.LangID) << (8 + 12)\n\tcci |= CompactCoreInfo(t.ScriptID) << 12\n\tcci |= CompactCoreInfo(t.RegionID)\n\treturn cci, true\n}\n\n// Tag generates a tag from c.\nfunc (c CompactCoreInfo) Tag() Tag {\n\treturn Tag{\n\t\tLangID:   Language(c >> 20),\n\t\tRegionID: Region(c & 0x3ff),\n\t\tScriptID: Script(c>>12) & 0xff,\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/compose.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 language\n\nimport (\n\t\"sort\"\n\t\"strings\"\n)\n\n// A Builder allows constructing a Tag from individual components.\n// Its main user is Compose in the top-level language package.\ntype Builder struct {\n\tTag Tag\n\n\tprivate    string // the x extension\n\tvariants   []string\n\textensions []string\n}\n\n// Make returns a new Tag from the current settings.\nfunc (b *Builder) Make() Tag {\n\tt := b.Tag\n\n\tif len(b.extensions) > 0 || len(b.variants) > 0 {\n\t\tsort.Sort(sortVariants(b.variants))\n\t\tsort.Strings(b.extensions)\n\n\t\tif b.private != \"\" {\n\t\t\tb.extensions = append(b.extensions, b.private)\n\t\t}\n\t\tn := maxCoreSize + tokenLen(b.variants...) + tokenLen(b.extensions...)\n\t\tbuf := make([]byte, n)\n\t\tp := t.genCoreBytes(buf)\n\t\tt.pVariant = byte(p)\n\t\tp += appendTokens(buf[p:], b.variants...)\n\t\tt.pExt = uint16(p)\n\t\tp += appendTokens(buf[p:], b.extensions...)\n\t\tt.str = string(buf[:p])\n\t\t// We may not always need to remake the string, but when or when not\n\t\t// to do so is rather tricky.\n\t\tscan := makeScanner(buf[:p])\n\t\tt, _ = parse(&scan, \"\")\n\t\treturn t\n\n\t} else if b.private != \"\" {\n\t\tt.str = b.private\n\t\tt.RemakeString()\n\t}\n\treturn t\n}\n\n// SetTag copies all the settings from a given Tag. Any previously set values\n// are discarded.\nfunc (b *Builder) SetTag(t Tag) {\n\tb.Tag.LangID = t.LangID\n\tb.Tag.RegionID = t.RegionID\n\tb.Tag.ScriptID = t.ScriptID\n\t// TODO: optimize\n\tb.variants = b.variants[:0]\n\tif variants := t.Variants(); variants != \"\" {\n\t\tfor _, vr := range strings.Split(variants[1:], \"-\") {\n\t\t\tb.variants = append(b.variants, vr)\n\t\t}\n\t}\n\tb.extensions, b.private = b.extensions[:0], \"\"\n\tfor _, e := range t.Extensions() {\n\t\tb.AddExt(e)\n\t}\n}\n\n// AddExt adds extension e to the tag. e must be a valid extension as returned\n// by Tag.Extension. If the extension already exists, it will be discarded,\n// except for a -u extension, where non-existing key-type pairs will added.\nfunc (b *Builder) AddExt(e string) {\n\tif e[0] == 'x' {\n\t\tif b.private == \"\" {\n\t\t\tb.private = e\n\t\t}\n\t\treturn\n\t}\n\tfor i, s := range b.extensions {\n\t\tif s[0] == e[0] {\n\t\t\tif e[0] == 'u' {\n\t\t\t\tb.extensions[i] += e[1:]\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t}\n\tb.extensions = append(b.extensions, e)\n}\n\n// SetExt sets the extension e to the tag. e must be a valid extension as\n// returned by Tag.Extension. If the extension already exists, it will be\n// overwritten, except for a -u extension, where the individual key-type pairs\n// will be set.\nfunc (b *Builder) SetExt(e string) {\n\tif e[0] == 'x' {\n\t\tb.private = e\n\t\treturn\n\t}\n\tfor i, s := range b.extensions {\n\t\tif s[0] == e[0] {\n\t\t\tif e[0] == 'u' {\n\t\t\t\tb.extensions[i] = e + s[1:]\n\t\t\t} else {\n\t\t\t\tb.extensions[i] = e\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t}\n\tb.extensions = append(b.extensions, e)\n}\n\n// AddVariant adds any number of variants.\nfunc (b *Builder) AddVariant(v ...string) {\n\tfor _, v := range v {\n\t\tif v != \"\" {\n\t\t\tb.variants = append(b.variants, v)\n\t\t}\n\t}\n}\n\n// ClearVariants removes any variants previously added, including those\n// copied from a Tag in SetTag.\nfunc (b *Builder) ClearVariants() {\n\tb.variants = b.variants[:0]\n}\n\n// ClearExtensions removes any extensions previously added, including those\n// copied from a Tag in SetTag.\nfunc (b *Builder) ClearExtensions() {\n\tb.private = \"\"\n\tb.extensions = b.extensions[:0]\n}\n\nfunc tokenLen(token ...string) (n int) {\n\tfor _, t := range token {\n\t\tn += len(t) + 1\n\t}\n\treturn\n}\n\nfunc appendTokens(b []byte, token ...string) int {\n\tp := 0\n\tfor _, t := range token {\n\t\tb[p] = '-'\n\t\tcopy(b[p+1:], t)\n\t\tp += 1 + len(t)\n\t}\n\treturn p\n}\n\ntype sortVariants []string\n\nfunc (s sortVariants) Len() int {\n\treturn len(s)\n}\n\nfunc (s sortVariants) Swap(i, j int) {\n\ts[j], s[i] = s[i], s[j]\n}\n\nfunc (s sortVariants) Less(i, j int) bool {\n\treturn variantIndex[s[i]] < variantIndex[s[j]]\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/coverage.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 language\n\n// BaseLanguages returns the list of all supported base languages. It generates\n// the list by traversing the internal structures.\nfunc BaseLanguages() []Language {\n\tbase := make([]Language, 0, NumLanguages)\n\tfor i := 0; i < langNoIndexOffset; i++ {\n\t\t// We included \"und\" already for the value 0.\n\t\tif i != nonCanonicalUnd {\n\t\t\tbase = append(base, Language(i))\n\t\t}\n\t}\n\ti := langNoIndexOffset\n\tfor _, v := range langNoIndex {\n\t\tfor k := 0; k < 8; k++ {\n\t\t\tif v&1 == 1 {\n\t\t\t\tbase = append(base, Language(i))\n\t\t\t}\n\t\t\tv >>= 1\n\t\t\ti++\n\t\t}\n\t}\n\treturn base\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/language.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:generate go run gen.go gen_common.go -output tables.go\n\npackage language // import \"golang.org/x/text/internal/language\"\n\n// TODO: Remove above NOTE after:\n// - verifying that tables are dropped correctly (most notably matcher tables).\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n)\n\nconst (\n\t// maxCoreSize is the maximum size of a BCP 47 tag without variants and\n\t// extensions. Equals max lang (3) + script (4) + max reg (3) + 2 dashes.\n\tmaxCoreSize = 12\n\n\t// max99thPercentileSize is a somewhat arbitrary buffer size that presumably\n\t// is large enough to hold at least 99% of the BCP 47 tags.\n\tmax99thPercentileSize = 32\n\n\t// maxSimpleUExtensionSize is the maximum size of a -u extension with one\n\t// key-type pair. Equals len(\"-u-\") + key (2) + dash + max value (8).\n\tmaxSimpleUExtensionSize = 14\n)\n\n// Tag represents a BCP 47 language tag. It is used to specify an instance of a\n// specific language or locale. All language tag values are guaranteed to be\n// well-formed. The zero value of Tag is Und.\ntype Tag struct {\n\t// TODO: the following fields have the form TagTypeID. This name is chosen\n\t// to allow refactoring the public package without conflicting with its\n\t// Base, Script, and Region methods. Once the transition is fully completed\n\t// the ID can be stripped from the name.\n\n\tLangID   Language\n\tRegionID Region\n\t// TODO: we will soon run out of positions for ScriptID. Idea: instead of\n\t// storing lang, region, and ScriptID codes, store only the compact index and\n\t// have a lookup table from this code to its expansion. This greatly speeds\n\t// up table lookup, speed up common variant cases.\n\t// This will also immediately free up 3 extra bytes. Also, the pVariant\n\t// field can now be moved to the lookup table, as the compact index uniquely\n\t// determines the offset of a possible variant.\n\tScriptID Script\n\tpVariant byte   // offset in str, includes preceding '-'\n\tpExt     uint16 // offset of first extension, includes preceding '-'\n\n\t// str is the string representation of the Tag. It will only be used if the\n\t// tag has variants or extensions.\n\tstr string\n}\n\n// Make is a convenience wrapper for Parse that omits the error.\n// In case of an error, a sensible default is returned.\nfunc Make(s string) Tag {\n\tt, _ := Parse(s)\n\treturn t\n}\n\n// Raw returns the raw base language, script and region, without making an\n// attempt to infer their values.\n// TODO: consider removing\nfunc (t Tag) Raw() (b Language, s Script, r Region) {\n\treturn t.LangID, t.ScriptID, t.RegionID\n}\n\n// equalTags compares language, script and region subtags only.\nfunc (t Tag) equalTags(a Tag) bool {\n\treturn t.LangID == a.LangID && t.ScriptID == a.ScriptID && t.RegionID == a.RegionID\n}\n\n// IsRoot returns true if t is equal to language \"und\".\nfunc (t Tag) IsRoot() bool {\n\tif int(t.pVariant) < len(t.str) {\n\t\treturn false\n\t}\n\treturn t.equalTags(Und)\n}\n\n// IsPrivateUse reports whether the Tag consists solely of an IsPrivateUse use\n// tag.\nfunc (t Tag) IsPrivateUse() bool {\n\treturn t.str != \"\" && t.pVariant == 0\n}\n\n// RemakeString is used to update t.str in case lang, script or region changed.\n// It is assumed that pExt and pVariant still point to the start of the\n// respective parts.\nfunc (t *Tag) RemakeString() {\n\tif t.str == \"\" {\n\t\treturn\n\t}\n\textra := t.str[t.pVariant:]\n\tif t.pVariant > 0 {\n\t\textra = extra[1:]\n\t}\n\tif t.equalTags(Und) && strings.HasPrefix(extra, \"x-\") {\n\t\tt.str = extra\n\t\tt.pVariant = 0\n\t\tt.pExt = 0\n\t\treturn\n\t}\n\tvar buf [max99thPercentileSize]byte // avoid extra memory allocation in most cases.\n\tb := buf[:t.genCoreBytes(buf[:])]\n\tif extra != \"\" {\n\t\tdiff := len(b) - int(t.pVariant)\n\t\tb = append(b, '-')\n\t\tb = append(b, extra...)\n\t\tt.pVariant = uint8(int(t.pVariant) + diff)\n\t\tt.pExt = uint16(int(t.pExt) + diff)\n\t} else {\n\t\tt.pVariant = uint8(len(b))\n\t\tt.pExt = uint16(len(b))\n\t}\n\tt.str = string(b)\n}\n\n// genCoreBytes writes a string for the base languages, script and region tags\n// to the given buffer and returns the number of bytes written. It will never\n// write more than maxCoreSize bytes.\nfunc (t *Tag) genCoreBytes(buf []byte) int {\n\tn := t.LangID.StringToBuf(buf[:])\n\tif t.ScriptID != 0 {\n\t\tn += copy(buf[n:], \"-\")\n\t\tn += copy(buf[n:], t.ScriptID.String())\n\t}\n\tif t.RegionID != 0 {\n\t\tn += copy(buf[n:], \"-\")\n\t\tn += copy(buf[n:], t.RegionID.String())\n\t}\n\treturn n\n}\n\n// String returns the canonical string representation of the language tag.\nfunc (t Tag) String() string {\n\tif t.str != \"\" {\n\t\treturn t.str\n\t}\n\tif t.ScriptID == 0 && t.RegionID == 0 {\n\t\treturn t.LangID.String()\n\t}\n\tbuf := [maxCoreSize]byte{}\n\treturn string(buf[:t.genCoreBytes(buf[:])])\n}\n\n// MarshalText implements encoding.TextMarshaler.\nfunc (t Tag) MarshalText() (text []byte, err error) {\n\tif t.str != \"\" {\n\t\ttext = append(text, t.str...)\n\t} else if t.ScriptID == 0 && t.RegionID == 0 {\n\t\ttext = append(text, t.LangID.String()...)\n\t} else {\n\t\tbuf := [maxCoreSize]byte{}\n\t\ttext = buf[:t.genCoreBytes(buf[:])]\n\t}\n\treturn text, nil\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler.\nfunc (t *Tag) UnmarshalText(text []byte) error {\n\ttag, err := Parse(string(text))\n\t*t = tag\n\treturn err\n}\n\n// Variants returns the part of the tag holding all variants or the empty string\n// if there are no variants defined.\nfunc (t Tag) Variants() string {\n\tif t.pVariant == 0 {\n\t\treturn \"\"\n\t}\n\treturn t.str[t.pVariant:t.pExt]\n}\n\n// VariantOrPrivateUseTags returns variants or private use tags.\nfunc (t Tag) VariantOrPrivateUseTags() string {\n\tif t.pExt > 0 {\n\t\treturn t.str[t.pVariant:t.pExt]\n\t}\n\treturn t.str[t.pVariant:]\n}\n\n// HasString reports whether this tag defines more than just the raw\n// components.\nfunc (t Tag) HasString() bool {\n\treturn t.str != \"\"\n}\n\n// Parent returns the CLDR parent of t. In CLDR, missing fields in data for a\n// specific language are substituted with fields from the parent language.\n// The parent for a language may change for newer versions of CLDR.\nfunc (t Tag) Parent() Tag {\n\tif t.str != \"\" {\n\t\t// Strip the variants and extensions.\n\t\tb, s, r := t.Raw()\n\t\tt = Tag{LangID: b, ScriptID: s, RegionID: r}\n\t\tif t.RegionID == 0 && t.ScriptID != 0 && t.LangID != 0 {\n\t\t\tbase, _ := addTags(Tag{LangID: t.LangID})\n\t\t\tif base.ScriptID == t.ScriptID {\n\t\t\t\treturn Tag{LangID: t.LangID}\n\t\t\t}\n\t\t}\n\t\treturn t\n\t}\n\tif t.LangID != 0 {\n\t\tif t.RegionID != 0 {\n\t\t\tmaxScript := t.ScriptID\n\t\t\tif maxScript == 0 {\n\t\t\t\tmax, _ := addTags(t)\n\t\t\t\tmaxScript = max.ScriptID\n\t\t\t}\n\n\t\t\tfor i := range parents {\n\t\t\t\tif Language(parents[i].lang) == t.LangID && Script(parents[i].maxScript) == maxScript {\n\t\t\t\t\tfor _, r := range parents[i].fromRegion {\n\t\t\t\t\t\tif Region(r) == t.RegionID {\n\t\t\t\t\t\t\treturn Tag{\n\t\t\t\t\t\t\t\tLangID:   t.LangID,\n\t\t\t\t\t\t\t\tScriptID: Script(parents[i].script),\n\t\t\t\t\t\t\t\tRegionID: Region(parents[i].toRegion),\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\n\t\t\t// Strip the script if it is the default one.\n\t\t\tbase, _ := addTags(Tag{LangID: t.LangID})\n\t\t\tif base.ScriptID != maxScript {\n\t\t\t\treturn Tag{LangID: t.LangID, ScriptID: maxScript}\n\t\t\t}\n\t\t\treturn Tag{LangID: t.LangID}\n\t\t} else if t.ScriptID != 0 {\n\t\t\t// The parent for an base-script pair with a non-default script is\n\t\t\t// \"und\" instead of the base language.\n\t\t\tbase, _ := addTags(Tag{LangID: t.LangID})\n\t\t\tif base.ScriptID != t.ScriptID {\n\t\t\t\treturn Und\n\t\t\t}\n\t\t\treturn Tag{LangID: t.LangID}\n\t\t}\n\t}\n\treturn Und\n}\n\n// ParseExtension parses s as an extension and returns it on success.\nfunc ParseExtension(s string) (ext string, err error) {\n\tdefer func() {\n\t\tif recover() != nil {\n\t\t\text = \"\"\n\t\t\terr = ErrSyntax\n\t\t}\n\t}()\n\n\tscan := makeScannerString(s)\n\tvar end int\n\tif n := len(scan.token); n != 1 {\n\t\treturn \"\", ErrSyntax\n\t}\n\tscan.toLower(0, len(scan.b))\n\tend = parseExtension(&scan)\n\tif end != len(s) {\n\t\treturn \"\", ErrSyntax\n\t}\n\treturn string(scan.b), nil\n}\n\n// HasVariants reports whether t has variants.\nfunc (t Tag) HasVariants() bool {\n\treturn uint16(t.pVariant) < t.pExt\n}\n\n// HasExtensions reports whether t has extensions.\nfunc (t Tag) HasExtensions() bool {\n\treturn int(t.pExt) < len(t.str)\n}\n\n// Extension returns the extension of type x for tag t. It will return\n// false for ok if t does not have the requested extension. The returned\n// extension will be invalid in this case.\nfunc (t Tag) Extension(x byte) (ext string, ok bool) {\n\tfor i := int(t.pExt); i < len(t.str)-1; {\n\t\tvar ext string\n\t\ti, ext = getExtension(t.str, i)\n\t\tif ext[0] == x {\n\t\t\treturn ext, true\n\t\t}\n\t}\n\treturn \"\", false\n}\n\n// Extensions returns all extensions of t.\nfunc (t Tag) Extensions() []string {\n\te := []string{}\n\tfor i := int(t.pExt); i < len(t.str)-1; {\n\t\tvar ext string\n\t\ti, ext = getExtension(t.str, i)\n\t\te = append(e, ext)\n\t}\n\treturn e\n}\n\n// TypeForKey returns the type associated with the given key, where key and type\n// are of the allowed values defined for the Unicode locale extension ('u') in\n// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.\n// TypeForKey will traverse the inheritance chain to get the correct value.\n//\n// If there are multiple types associated with a key, only the first will be\n// returned. If there is no type associated with a key, it returns the empty\n// string.\nfunc (t Tag) TypeForKey(key string) string {\n\tif _, start, end, _ := t.findTypeForKey(key); end != start {\n\t\ts := t.str[start:end]\n\t\tif p := strings.IndexByte(s, '-'); p >= 0 {\n\t\t\ts = s[:p]\n\t\t}\n\t\treturn s\n\t}\n\treturn \"\"\n}\n\nvar (\n\terrPrivateUse       = errors.New(\"cannot set a key on a private use tag\")\n\terrInvalidArguments = errors.New(\"invalid key or type\")\n)\n\n// SetTypeForKey returns a new Tag with the key set to type, where key and type\n// are of the allowed values defined for the Unicode locale extension ('u') in\n// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.\n// An empty value removes an existing pair with the same key.\nfunc (t Tag) SetTypeForKey(key, value string) (Tag, error) {\n\tif t.IsPrivateUse() {\n\t\treturn t, errPrivateUse\n\t}\n\tif len(key) != 2 {\n\t\treturn t, errInvalidArguments\n\t}\n\n\t// Remove the setting if value is \"\".\n\tif value == \"\" {\n\t\tstart, sep, end, _ := t.findTypeForKey(key)\n\t\tif start != sep {\n\t\t\t// Remove a possible empty extension.\n\t\t\tswitch {\n\t\t\tcase t.str[start-2] != '-': // has previous elements.\n\t\t\tcase end == len(t.str), // end of string\n\t\t\t\tend+2 < len(t.str) && t.str[end+2] == '-': // end of extension\n\t\t\t\tstart -= 2\n\t\t\t}\n\t\t\tif start == int(t.pVariant) && end == len(t.str) {\n\t\t\t\tt.str = \"\"\n\t\t\t\tt.pVariant, t.pExt = 0, 0\n\t\t\t} else {\n\t\t\t\tt.str = fmt.Sprintf(\"%s%s\", t.str[:start], t.str[end:])\n\t\t\t}\n\t\t}\n\t\treturn t, nil\n\t}\n\n\tif len(value) < 3 || len(value) > 8 {\n\t\treturn t, errInvalidArguments\n\t}\n\n\tvar (\n\t\tbuf    [maxCoreSize + maxSimpleUExtensionSize]byte\n\t\tuStart int // start of the -u extension.\n\t)\n\n\t// Generate the tag string if needed.\n\tif t.str == \"\" {\n\t\tuStart = t.genCoreBytes(buf[:])\n\t\tbuf[uStart] = '-'\n\t\tuStart++\n\t}\n\n\t// Create new key-type pair and parse it to verify.\n\tb := buf[uStart:]\n\tcopy(b, \"u-\")\n\tcopy(b[2:], key)\n\tb[4] = '-'\n\tb = b[:5+copy(b[5:], value)]\n\tscan := makeScanner(b)\n\tif parseExtensions(&scan); scan.err != nil {\n\t\treturn t, scan.err\n\t}\n\n\t// Assemble the replacement string.\n\tif t.str == \"\" {\n\t\tt.pVariant, t.pExt = byte(uStart-1), uint16(uStart-1)\n\t\tt.str = string(buf[:uStart+len(b)])\n\t} else {\n\t\ts := t.str\n\t\tstart, sep, end, hasExt := t.findTypeForKey(key)\n\t\tif start == sep {\n\t\t\tif hasExt {\n\t\t\t\tb = b[2:]\n\t\t\t}\n\t\t\tt.str = fmt.Sprintf(\"%s-%s%s\", s[:sep], b, s[end:])\n\t\t} else {\n\t\t\tt.str = fmt.Sprintf(\"%s-%s%s\", s[:start+3], value, s[end:])\n\t\t}\n\t}\n\treturn t, nil\n}\n\n// findTypeForKey returns the start and end position for the type corresponding\n// to key or the point at which to insert the key-value pair if the type\n// wasn't found. The hasExt return value reports whether an -u extension was present.\n// Note: the extensions are typically very small and are likely to contain\n// only one key-type pair.\nfunc (t Tag) findTypeForKey(key string) (start, sep, end int, hasExt bool) {\n\tp := int(t.pExt)\n\tif len(key) != 2 || p == len(t.str) || p == 0 {\n\t\treturn p, p, p, false\n\t}\n\ts := t.str\n\n\t// Find the correct extension.\n\tfor p++; s[p] != 'u'; p++ {\n\t\tif s[p] > 'u' {\n\t\t\tp--\n\t\t\treturn p, p, p, false\n\t\t}\n\t\tif p = nextExtension(s, p); p == len(s) {\n\t\t\treturn len(s), len(s), len(s), false\n\t\t}\n\t}\n\t// Proceed to the hyphen following the extension name.\n\tp++\n\n\t// curKey is the key currently being processed.\n\tcurKey := \"\"\n\n\t// Iterate over keys until we get the end of a section.\n\tfor {\n\t\tend = p\n\t\tfor p++; p < len(s) && s[p] != '-'; p++ {\n\t\t}\n\t\tn := p - end - 1\n\t\tif n <= 2 && curKey == key {\n\t\t\tif sep < end {\n\t\t\t\tsep++\n\t\t\t}\n\t\t\treturn start, sep, end, true\n\t\t}\n\t\tswitch n {\n\t\tcase 0, // invalid string\n\t\t\t1: // next extension\n\t\t\treturn end, end, end, true\n\t\tcase 2:\n\t\t\t// next key\n\t\t\tcurKey = s[end+1 : p]\n\t\t\tif curKey > key {\n\t\t\t\treturn end, end, end, true\n\t\t\t}\n\t\t\tstart = end\n\t\t\tsep = p\n\t\t}\n\t}\n}\n\n// ParseBase parses a 2- or 3-letter ISO 639 code.\n// It returns a ValueError if s is a well-formed but unknown language identifier\n// or another error if another error occurred.\nfunc ParseBase(s string) (l Language, err error) {\n\tdefer func() {\n\t\tif recover() != nil {\n\t\t\tl = 0\n\t\t\terr = ErrSyntax\n\t\t}\n\t}()\n\n\tif n := len(s); n < 2 || 3 < n {\n\t\treturn 0, ErrSyntax\n\t}\n\tvar buf [3]byte\n\treturn getLangID(buf[:copy(buf[:], s)])\n}\n\n// ParseScript parses a 4-letter ISO 15924 code.\n// It returns a ValueError if s is a well-formed but unknown script identifier\n// or another error if another error occurred.\nfunc ParseScript(s string) (scr Script, err error) {\n\tdefer func() {\n\t\tif recover() != nil {\n\t\t\tscr = 0\n\t\t\terr = ErrSyntax\n\t\t}\n\t}()\n\n\tif len(s) != 4 {\n\t\treturn 0, ErrSyntax\n\t}\n\tvar buf [4]byte\n\treturn getScriptID(script, buf[:copy(buf[:], s)])\n}\n\n// EncodeM49 returns the Region for the given UN M.49 code.\n// It returns an error if r is not a valid code.\nfunc EncodeM49(r int) (Region, error) {\n\treturn getRegionM49(r)\n}\n\n// ParseRegion parses a 2- or 3-letter ISO 3166-1 or a UN M.49 code.\n// It returns a ValueError if s is a well-formed but unknown region identifier\n// or another error if another error occurred.\nfunc ParseRegion(s string) (r Region, err error) {\n\tdefer func() {\n\t\tif recover() != nil {\n\t\t\tr = 0\n\t\t\terr = ErrSyntax\n\t\t}\n\t}()\n\n\tif n := len(s); n < 2 || 3 < n {\n\t\treturn 0, ErrSyntax\n\t}\n\tvar buf [3]byte\n\treturn getRegionID(buf[:copy(buf[:], s)])\n}\n\n// IsCountry returns whether this region is a country or autonomous area. This\n// includes non-standard definitions from CLDR.\nfunc (r Region) IsCountry() bool {\n\tif r == 0 || r.IsGroup() || r.IsPrivateUse() && r != _XK {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// IsGroup returns whether this region defines a collection of regions. This\n// includes non-standard definitions from CLDR.\nfunc (r Region) IsGroup() bool {\n\tif r == 0 {\n\t\treturn false\n\t}\n\treturn int(regionInclusion[r]) < len(regionContainment)\n}\n\n// Contains returns whether Region c is contained by Region r. It returns true\n// if c == r.\nfunc (r Region) Contains(c Region) bool {\n\tif r == c {\n\t\treturn true\n\t}\n\tg := regionInclusion[r]\n\tif g >= nRegionGroups {\n\t\treturn false\n\t}\n\tm := regionContainment[g]\n\n\td := regionInclusion[c]\n\tb := regionInclusionBits[d]\n\n\t// A contained country may belong to multiple disjoint groups. Matching any\n\t// of these indicates containment. If the contained region is a group, it\n\t// must strictly be a subset.\n\tif d >= nRegionGroups {\n\t\treturn b&m != 0\n\t}\n\treturn b&^m == 0\n}\n\nvar errNoTLD = errors.New(\"language: region is not a valid ccTLD\")\n\n// TLD returns the country code top-level domain (ccTLD). UK is returned for GB.\n// In all other cases it returns either the region itself or an error.\n//\n// This method may return an error for a region for which there exists a\n// canonical form with a ccTLD. To get that ccTLD canonicalize r first. The\n// region will already be canonicalized it was obtained from a Tag that was\n// obtained using any of the default methods.\nfunc (r Region) TLD() (Region, error) {\n\t// See http://en.wikipedia.org/wiki/Country_code_top-level_domain for the\n\t// difference between ISO 3166-1 and IANA ccTLD.\n\tif r == _GB {\n\t\tr = _UK\n\t}\n\tif (r.typ() & ccTLD) == 0 {\n\t\treturn 0, errNoTLD\n\t}\n\treturn r, nil\n}\n\n// Canonicalize returns the region or a possible replacement if the region is\n// deprecated. It will not return a replacement for deprecated regions that\n// are split into multiple regions.\nfunc (r Region) Canonicalize() Region {\n\tif cr := normRegion(r); cr != 0 {\n\t\treturn cr\n\t}\n\treturn r\n}\n\n// Variant represents a registered variant of a language as defined by BCP 47.\ntype Variant struct {\n\tID  uint8\n\tstr string\n}\n\n// ParseVariant parses and returns a Variant. An error is returned if s is not\n// a valid variant.\nfunc ParseVariant(s string) (v Variant, err error) {\n\tdefer func() {\n\t\tif recover() != nil {\n\t\t\tv = Variant{}\n\t\t\terr = ErrSyntax\n\t\t}\n\t}()\n\n\ts = strings.ToLower(s)\n\tif id, ok := variantIndex[s]; ok {\n\t\treturn Variant{id, s}, nil\n\t}\n\treturn Variant{}, NewValueError([]byte(s))\n}\n\n// String returns the string representation of the variant.\nfunc (v Variant) String() string {\n\treturn v.str\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/lookup.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 language\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strconv\"\n\n\t\"golang.org/x/text/internal/tag\"\n)\n\n// findIndex tries to find the given tag in idx and returns a standardized error\n// if it could not be found.\nfunc findIndex(idx tag.Index, key []byte, form string) (index int, err error) {\n\tif !tag.FixCase(form, key) {\n\t\treturn 0, ErrSyntax\n\t}\n\ti := idx.Index(key)\n\tif i == -1 {\n\t\treturn 0, NewValueError(key)\n\t}\n\treturn i, nil\n}\n\nfunc searchUint(imap []uint16, key uint16) int {\n\treturn sort.Search(len(imap), func(i int) bool {\n\t\treturn imap[i] >= key\n\t})\n}\n\ntype Language uint16\n\n// getLangID returns the langID of s if s is a canonical subtag\n// or langUnknown if s is not a canonical subtag.\nfunc getLangID(s []byte) (Language, error) {\n\tif len(s) == 2 {\n\t\treturn getLangISO2(s)\n\t}\n\treturn getLangISO3(s)\n}\n\n// TODO language normalization as well as the AliasMaps could be moved to the\n// higher level package, but it is a bit tricky to separate the generation.\n\nfunc (id Language) Canonicalize() (Language, AliasType) {\n\treturn normLang(id)\n}\n\n// normLang returns the mapped langID of id according to mapping m.\nfunc normLang(id Language) (Language, AliasType) {\n\tk := sort.Search(len(AliasMap), func(i int) bool {\n\t\treturn AliasMap[i].From >= uint16(id)\n\t})\n\tif k < len(AliasMap) && AliasMap[k].From == uint16(id) {\n\t\treturn Language(AliasMap[k].To), AliasTypes[k]\n\t}\n\treturn id, AliasTypeUnknown\n}\n\n// getLangISO2 returns the langID for the given 2-letter ISO language code\n// or unknownLang if this does not exist.\nfunc getLangISO2(s []byte) (Language, error) {\n\tif !tag.FixCase(\"zz\", s) {\n\t\treturn 0, ErrSyntax\n\t}\n\tif i := lang.Index(s); i != -1 && lang.Elem(i)[3] != 0 {\n\t\treturn Language(i), nil\n\t}\n\treturn 0, NewValueError(s)\n}\n\nconst base = 'z' - 'a' + 1\n\nfunc strToInt(s []byte) uint {\n\tv := uint(0)\n\tfor i := 0; i < len(s); i++ {\n\t\tv *= base\n\t\tv += uint(s[i] - 'a')\n\t}\n\treturn v\n}\n\n// converts the given integer to the original ASCII string passed to strToInt.\n// len(s) must match the number of characters obtained.\nfunc intToStr(v uint, s []byte) {\n\tfor i := len(s) - 1; i >= 0; i-- {\n\t\ts[i] = byte(v%base) + 'a'\n\t\tv /= base\n\t}\n}\n\n// getLangISO3 returns the langID for the given 3-letter ISO language code\n// or unknownLang if this does not exist.\nfunc getLangISO3(s []byte) (Language, error) {\n\tif tag.FixCase(\"und\", s) {\n\t\t// first try to match canonical 3-letter entries\n\t\tfor i := lang.Index(s[:2]); i != -1; i = lang.Next(s[:2], i) {\n\t\t\tif e := lang.Elem(i); e[3] == 0 && e[2] == s[2] {\n\t\t\t\t// We treat \"und\" as special and always translate it to \"unspecified\".\n\t\t\t\t// Note that ZZ and Zzzz are private use and are not treated as\n\t\t\t\t// unspecified by default.\n\t\t\t\tid := Language(i)\n\t\t\t\tif id == nonCanonicalUnd {\n\t\t\t\t\treturn 0, nil\n\t\t\t\t}\n\t\t\t\treturn id, nil\n\t\t\t}\n\t\t}\n\t\tif i := altLangISO3.Index(s); i != -1 {\n\t\t\treturn Language(altLangIndex[altLangISO3.Elem(i)[3]]), nil\n\t\t}\n\t\tn := strToInt(s)\n\t\tif langNoIndex[n/8]&(1<<(n%8)) != 0 {\n\t\t\treturn Language(n) + langNoIndexOffset, nil\n\t\t}\n\t\t// Check for non-canonical uses of ISO3.\n\t\tfor i := lang.Index(s[:1]); i != -1; i = lang.Next(s[:1], i) {\n\t\t\tif e := lang.Elem(i); e[2] == s[1] && e[3] == s[2] {\n\t\t\t\treturn Language(i), nil\n\t\t\t}\n\t\t}\n\t\treturn 0, NewValueError(s)\n\t}\n\treturn 0, ErrSyntax\n}\n\n// StringToBuf writes the string to b and returns the number of bytes\n// written.  cap(b) must be >= 3.\nfunc (id Language) StringToBuf(b []byte) int {\n\tif id >= langNoIndexOffset {\n\t\tintToStr(uint(id)-langNoIndexOffset, b[:3])\n\t\treturn 3\n\t} else if id == 0 {\n\t\treturn copy(b, \"und\")\n\t}\n\tl := lang[id<<2:]\n\tif l[3] == 0 {\n\t\treturn copy(b, l[:3])\n\t}\n\treturn copy(b, l[:2])\n}\n\n// String returns the BCP 47 representation of the langID.\n// Use b as variable name, instead of id, to ensure the variable\n// used is consistent with that of Base in which this type is embedded.\nfunc (b Language) String() string {\n\tif b == 0 {\n\t\treturn \"und\"\n\t} else if b >= langNoIndexOffset {\n\t\tb -= langNoIndexOffset\n\t\tbuf := [3]byte{}\n\t\tintToStr(uint(b), buf[:])\n\t\treturn string(buf[:])\n\t}\n\tl := lang.Elem(int(b))\n\tif l[3] == 0 {\n\t\treturn l[:3]\n\t}\n\treturn l[:2]\n}\n\n// ISO3 returns the ISO 639-3 language code.\nfunc (b Language) ISO3() string {\n\tif b == 0 || b >= langNoIndexOffset {\n\t\treturn b.String()\n\t}\n\tl := lang.Elem(int(b))\n\tif l[3] == 0 {\n\t\treturn l[:3]\n\t} else if l[2] == 0 {\n\t\treturn altLangISO3.Elem(int(l[3]))[:3]\n\t}\n\t// This allocation will only happen for 3-letter ISO codes\n\t// that are non-canonical BCP 47 language identifiers.\n\treturn l[0:1] + l[2:4]\n}\n\n// IsPrivateUse reports whether this language code is reserved for private use.\nfunc (b Language) IsPrivateUse() bool {\n\treturn langPrivateStart <= b && b <= langPrivateEnd\n}\n\n// SuppressScript returns the script marked as SuppressScript in the IANA\n// language tag repository, or 0 if there is no such script.\nfunc (b Language) SuppressScript() Script {\n\tif b < langNoIndexOffset {\n\t\treturn Script(suppressScript[b])\n\t}\n\treturn 0\n}\n\ntype Region uint16\n\n// getRegionID returns the region id for s if s is a valid 2-letter region code\n// or unknownRegion.\nfunc getRegionID(s []byte) (Region, error) {\n\tif len(s) == 3 {\n\t\tif isAlpha(s[0]) {\n\t\t\treturn getRegionISO3(s)\n\t\t}\n\t\tif i, err := strconv.ParseUint(string(s), 10, 10); err == nil {\n\t\t\treturn getRegionM49(int(i))\n\t\t}\n\t}\n\treturn getRegionISO2(s)\n}\n\n// getRegionISO2 returns the regionID for the given 2-letter ISO country code\n// or unknownRegion if this does not exist.\nfunc getRegionISO2(s []byte) (Region, error) {\n\ti, err := findIndex(regionISO, s, \"ZZ\")\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn Region(i) + isoRegionOffset, nil\n}\n\n// getRegionISO3 returns the regionID for the given 3-letter ISO country code\n// or unknownRegion if this does not exist.\nfunc getRegionISO3(s []byte) (Region, error) {\n\tif tag.FixCase(\"ZZZ\", s) {\n\t\tfor i := regionISO.Index(s[:1]); i != -1; i = regionISO.Next(s[:1], i) {\n\t\t\tif e := regionISO.Elem(i); e[2] == s[1] && e[3] == s[2] {\n\t\t\t\treturn Region(i) + isoRegionOffset, nil\n\t\t\t}\n\t\t}\n\t\tfor i := 0; i < len(altRegionISO3); i += 3 {\n\t\t\tif tag.Compare(altRegionISO3[i:i+3], s) == 0 {\n\t\t\t\treturn Region(altRegionIDs[i/3]), nil\n\t\t\t}\n\t\t}\n\t\treturn 0, NewValueError(s)\n\t}\n\treturn 0, ErrSyntax\n}\n\nfunc getRegionM49(n int) (Region, error) {\n\tif 0 < n && n <= 999 {\n\t\tconst (\n\t\t\tsearchBits = 7\n\t\t\tregionBits = 9\n\t\t\tregionMask = 1<<regionBits - 1\n\t\t)\n\t\tidx := n >> searchBits\n\t\tbuf := fromM49[m49Index[idx]:m49Index[idx+1]]\n\t\tval := uint16(n) << regionBits // we rely on bits shifting out\n\t\ti := sort.Search(len(buf), func(i int) bool {\n\t\t\treturn buf[i] >= val\n\t\t})\n\t\tif r := fromM49[int(m49Index[idx])+i]; r&^regionMask == val {\n\t\t\treturn Region(r & regionMask), nil\n\t\t}\n\t}\n\tvar e ValueError\n\tfmt.Fprint(bytes.NewBuffer([]byte(e.v[:])), n)\n\treturn 0, e\n}\n\n// normRegion returns a region if r is deprecated or 0 otherwise.\n// TODO: consider supporting BYS (-> BLR), CSK (-> 200 or CZ), PHI (-> PHL) and AFI (-> DJ).\n// TODO: consider mapping split up regions to new most populous one (like CLDR).\nfunc normRegion(r Region) Region {\n\tm := regionOldMap\n\tk := sort.Search(len(m), func(i int) bool {\n\t\treturn m[i].From >= uint16(r)\n\t})\n\tif k < len(m) && m[k].From == uint16(r) {\n\t\treturn Region(m[k].To)\n\t}\n\treturn 0\n}\n\nconst (\n\tiso3166UserAssigned = 1 << iota\n\tccTLD\n\tbcp47Region\n)\n\nfunc (r Region) typ() byte {\n\treturn regionTypes[r]\n}\n\n// String returns the BCP 47 representation for the region.\n// It returns \"ZZ\" for an unspecified region.\nfunc (r Region) String() string {\n\tif r < isoRegionOffset {\n\t\tif r == 0 {\n\t\t\treturn \"ZZ\"\n\t\t}\n\t\treturn fmt.Sprintf(\"%03d\", r.M49())\n\t}\n\tr -= isoRegionOffset\n\treturn regionISO.Elem(int(r))[:2]\n}\n\n// ISO3 returns the 3-letter ISO code of r.\n// Note that not all regions have a 3-letter ISO code.\n// In such cases this method returns \"ZZZ\".\nfunc (r Region) ISO3() string {\n\tif r < isoRegionOffset {\n\t\treturn \"ZZZ\"\n\t}\n\tr -= isoRegionOffset\n\treg := regionISO.Elem(int(r))\n\tswitch reg[2] {\n\tcase 0:\n\t\treturn altRegionISO3[reg[3]:][:3]\n\tcase ' ':\n\t\treturn \"ZZZ\"\n\t}\n\treturn reg[0:1] + reg[2:4]\n}\n\n// M49 returns the UN M.49 encoding of r, or 0 if this encoding\n// is not defined for r.\nfunc (r Region) M49() int {\n\treturn int(m49[r])\n}\n\n// IsPrivateUse reports whether r has the ISO 3166 User-assigned status. This\n// may include private-use tags that are assigned by CLDR and used in this\n// implementation. So IsPrivateUse and IsCountry can be simultaneously true.\nfunc (r Region) IsPrivateUse() bool {\n\treturn r.typ()&iso3166UserAssigned != 0\n}\n\ntype Script uint16\n\n// getScriptID returns the script id for string s. It assumes that s\n// is of the format [A-Z][a-z]{3}.\nfunc getScriptID(idx tag.Index, s []byte) (Script, error) {\n\ti, err := findIndex(idx, s, \"Zzzz\")\n\treturn Script(i), err\n}\n\n// String returns the script code in title case.\n// It returns \"Zzzz\" for an unspecified script.\nfunc (s Script) String() string {\n\tif s == 0 {\n\t\treturn \"Zzzz\"\n\t}\n\treturn script.Elem(int(s))\n}\n\n// IsPrivateUse reports whether this script code is reserved for private use.\nfunc (s Script) IsPrivateUse() bool {\n\treturn _Qaaa <= s && s <= _Qabx\n}\n\nconst (\n\tmaxAltTaglen = len(\"en-US-POSIX\")\n\tmaxLen       = maxAltTaglen\n)\n\nvar (\n\t// grandfatheredMap holds a mapping from legacy and grandfathered tags to\n\t// their base language or index to more elaborate tag.\n\tgrandfatheredMap = map[[maxLen]byte]int16{\n\t\t[maxLen]byte{'a', 'r', 't', '-', 'l', 'o', 'j', 'b', 'a', 'n'}: _jbo, // art-lojban\n\t\t[maxLen]byte{'i', '-', 'a', 'm', 'i'}:                          _ami, // i-ami\n\t\t[maxLen]byte{'i', '-', 'b', 'n', 'n'}:                          _bnn, // i-bnn\n\t\t[maxLen]byte{'i', '-', 'h', 'a', 'k'}:                          _hak, // i-hak\n\t\t[maxLen]byte{'i', '-', 'k', 'l', 'i', 'n', 'g', 'o', 'n'}:      _tlh, // i-klingon\n\t\t[maxLen]byte{'i', '-', 'l', 'u', 'x'}:                          _lb,  // i-lux\n\t\t[maxLen]byte{'i', '-', 'n', 'a', 'v', 'a', 'j', 'o'}:           _nv,  // i-navajo\n\t\t[maxLen]byte{'i', '-', 'p', 'w', 'n'}:                          _pwn, // i-pwn\n\t\t[maxLen]byte{'i', '-', 't', 'a', 'o'}:                          _tao, // i-tao\n\t\t[maxLen]byte{'i', '-', 't', 'a', 'y'}:                          _tay, // i-tay\n\t\t[maxLen]byte{'i', '-', 't', 's', 'u'}:                          _tsu, // i-tsu\n\t\t[maxLen]byte{'n', 'o', '-', 'b', 'o', 'k'}:                     _nb,  // no-bok\n\t\t[maxLen]byte{'n', 'o', '-', 'n', 'y', 'n'}:                     _nn,  // no-nyn\n\t\t[maxLen]byte{'s', 'g', 'n', '-', 'b', 'e', '-', 'f', 'r'}:      _sfb, // sgn-BE-FR\n\t\t[maxLen]byte{'s', 'g', 'n', '-', 'b', 'e', '-', 'n', 'l'}:      _vgt, // sgn-BE-NL\n\t\t[maxLen]byte{'s', 'g', 'n', '-', 'c', 'h', '-', 'd', 'e'}:      _sgg, // sgn-CH-DE\n\t\t[maxLen]byte{'z', 'h', '-', 'g', 'u', 'o', 'y', 'u'}:           _cmn, // zh-guoyu\n\t\t[maxLen]byte{'z', 'h', '-', 'h', 'a', 'k', 'k', 'a'}:           _hak, // zh-hakka\n\t\t[maxLen]byte{'z', 'h', '-', 'm', 'i', 'n', '-', 'n', 'a', 'n'}: _nan, // zh-min-nan\n\t\t[maxLen]byte{'z', 'h', '-', 'x', 'i', 'a', 'n', 'g'}:           _hsn, // zh-xiang\n\n\t\t// Grandfathered tags with no modern replacement will be converted as\n\t\t// follows:\n\t\t[maxLen]byte{'c', 'e', 'l', '-', 'g', 'a', 'u', 'l', 'i', 's', 'h'}: -1, // cel-gaulish\n\t\t[maxLen]byte{'e', 'n', '-', 'g', 'b', '-', 'o', 'e', 'd'}:           -2, // en-GB-oed\n\t\t[maxLen]byte{'i', '-', 'd', 'e', 'f', 'a', 'u', 'l', 't'}:           -3, // i-default\n\t\t[maxLen]byte{'i', '-', 'e', 'n', 'o', 'c', 'h', 'i', 'a', 'n'}:      -4, // i-enochian\n\t\t[maxLen]byte{'i', '-', 'm', 'i', 'n', 'g', 'o'}:                     -5, // i-mingo\n\t\t[maxLen]byte{'z', 'h', '-', 'm', 'i', 'n'}:                          -6, // zh-min\n\n\t\t// CLDR-specific tag.\n\t\t[maxLen]byte{'r', 'o', 'o', 't'}:                                    0,  // root\n\t\t[maxLen]byte{'e', 'n', '-', 'u', 's', '-', 'p', 'o', 's', 'i', 'x'}: -7, // en_US_POSIX\"\n\t}\n\n\taltTagIndex = [...]uint8{0, 17, 31, 45, 61, 74, 86, 102}\n\n\taltTags = \"xtg-x-cel-gaulishen-GB-oxendicten-x-i-defaultund-x-i-enochiansee-x-i-mingonan-x-zh-minen-US-u-va-posix\"\n)\n\nfunc grandfathered(s [maxAltTaglen]byte) (t Tag, ok bool) {\n\tif v, ok := grandfatheredMap[s]; ok {\n\t\tif v < 0 {\n\t\t\treturn Make(altTags[altTagIndex[-v-1]:altTagIndex[-v]]), true\n\t\t}\n\t\tt.LangID = Language(v)\n\t\treturn t, true\n\t}\n\treturn t, false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/match.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 language\n\nimport \"errors\"\n\ntype scriptRegionFlags uint8\n\nconst (\n\tisList = 1 << iota\n\tscriptInFrom\n\tregionInFrom\n)\n\nfunc (t *Tag) setUndefinedLang(id Language) {\n\tif t.LangID == 0 {\n\t\tt.LangID = id\n\t}\n}\n\nfunc (t *Tag) setUndefinedScript(id Script) {\n\tif t.ScriptID == 0 {\n\t\tt.ScriptID = id\n\t}\n}\n\nfunc (t *Tag) setUndefinedRegion(id Region) {\n\tif t.RegionID == 0 || t.RegionID.Contains(id) {\n\t\tt.RegionID = id\n\t}\n}\n\n// ErrMissingLikelyTagsData indicates no information was available\n// to compute likely values of missing tags.\nvar ErrMissingLikelyTagsData = errors.New(\"missing likely tags data\")\n\n// addLikelySubtags sets subtags to their most likely value, given the locale.\n// In most cases this means setting fields for unknown values, but in some\n// cases it may alter a value.  It returns an ErrMissingLikelyTagsData error\n// if the given locale cannot be expanded.\nfunc (t Tag) addLikelySubtags() (Tag, error) {\n\tid, err := addTags(t)\n\tif err != nil {\n\t\treturn t, err\n\t} else if id.equalTags(t) {\n\t\treturn t, nil\n\t}\n\tid.RemakeString()\n\treturn id, nil\n}\n\n// specializeRegion attempts to specialize a group region.\nfunc specializeRegion(t *Tag) bool {\n\tif i := regionInclusion[t.RegionID]; i < nRegionGroups {\n\t\tx := likelyRegionGroup[i]\n\t\tif Language(x.lang) == t.LangID && Script(x.script) == t.ScriptID {\n\t\t\tt.RegionID = Region(x.region)\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Maximize returns a new tag with missing tags filled in.\nfunc (t Tag) Maximize() (Tag, error) {\n\treturn addTags(t)\n}\n\nfunc addTags(t Tag) (Tag, error) {\n\t// We leave private use identifiers alone.\n\tif t.IsPrivateUse() {\n\t\treturn t, nil\n\t}\n\tif t.ScriptID != 0 && t.RegionID != 0 {\n\t\tif t.LangID != 0 {\n\t\t\t// already fully specified\n\t\t\tspecializeRegion(&t)\n\t\t\treturn t, nil\n\t\t}\n\t\t// Search matches for und-script-region. Note that for these cases\n\t\t// region will never be a group so there is no need to check for this.\n\t\tlist := likelyRegion[t.RegionID : t.RegionID+1]\n\t\tif x := list[0]; x.flags&isList != 0 {\n\t\t\tlist = likelyRegionList[x.lang : x.lang+uint16(x.script)]\n\t\t}\n\t\tfor _, x := range list {\n\t\t\t// Deviating from the spec. See match_test.go for details.\n\t\t\tif Script(x.script) == t.ScriptID {\n\t\t\t\tt.setUndefinedLang(Language(x.lang))\n\t\t\t\treturn t, nil\n\t\t\t}\n\t\t}\n\t}\n\tif t.LangID != 0 {\n\t\t// Search matches for lang-script and lang-region, where lang != und.\n\t\tif t.LangID < langNoIndexOffset {\n\t\t\tx := likelyLang[t.LangID]\n\t\t\tif x.flags&isList != 0 {\n\t\t\t\tlist := likelyLangList[x.region : x.region+uint16(x.script)]\n\t\t\t\tif t.ScriptID != 0 {\n\t\t\t\t\tfor _, x := range list {\n\t\t\t\t\t\tif Script(x.script) == t.ScriptID && x.flags&scriptInFrom != 0 {\n\t\t\t\t\t\t\tt.setUndefinedRegion(Region(x.region))\n\t\t\t\t\t\t\treturn t, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if t.RegionID != 0 {\n\t\t\t\t\tcount := 0\n\t\t\t\t\tgoodScript := true\n\t\t\t\t\ttt := t\n\t\t\t\t\tfor _, x := range list {\n\t\t\t\t\t\t// We visit all entries for which the script was not\n\t\t\t\t\t\t// defined, including the ones where the region was not\n\t\t\t\t\t\t// defined. This allows for proper disambiguation within\n\t\t\t\t\t\t// regions.\n\t\t\t\t\t\tif x.flags&scriptInFrom == 0 && t.RegionID.Contains(Region(x.region)) {\n\t\t\t\t\t\t\ttt.RegionID = Region(x.region)\n\t\t\t\t\t\t\ttt.setUndefinedScript(Script(x.script))\n\t\t\t\t\t\t\tgoodScript = goodScript && tt.ScriptID == Script(x.script)\n\t\t\t\t\t\t\tcount++\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif count == 1 {\n\t\t\t\t\t\treturn tt, nil\n\t\t\t\t\t}\n\t\t\t\t\t// Even if we fail to find a unique Region, we might have\n\t\t\t\t\t// an unambiguous script.\n\t\t\t\t\tif goodScript {\n\t\t\t\t\t\tt.ScriptID = tt.ScriptID\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// Search matches for und-script.\n\t\tif t.ScriptID != 0 {\n\t\t\tx := likelyScript[t.ScriptID]\n\t\t\tif x.region != 0 {\n\t\t\t\tt.setUndefinedRegion(Region(x.region))\n\t\t\t\tt.setUndefinedLang(Language(x.lang))\n\t\t\t\treturn t, nil\n\t\t\t}\n\t\t}\n\t\t// Search matches for und-region. If und-script-region exists, it would\n\t\t// have been found earlier.\n\t\tif t.RegionID != 0 {\n\t\t\tif i := regionInclusion[t.RegionID]; i < nRegionGroups {\n\t\t\t\tx := likelyRegionGroup[i]\n\t\t\t\tif x.region != 0 {\n\t\t\t\t\tt.setUndefinedLang(Language(x.lang))\n\t\t\t\t\tt.setUndefinedScript(Script(x.script))\n\t\t\t\t\tt.RegionID = Region(x.region)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tx := likelyRegion[t.RegionID]\n\t\t\t\tif x.flags&isList != 0 {\n\t\t\t\t\tx = likelyRegionList[x.lang]\n\t\t\t\t}\n\t\t\t\tif x.script != 0 && x.flags != scriptInFrom {\n\t\t\t\t\tt.setUndefinedLang(Language(x.lang))\n\t\t\t\t\tt.setUndefinedScript(Script(x.script))\n\t\t\t\t\treturn t, nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Search matches for lang.\n\tif t.LangID < langNoIndexOffset {\n\t\tx := likelyLang[t.LangID]\n\t\tif x.flags&isList != 0 {\n\t\t\tx = likelyLangList[x.region]\n\t\t}\n\t\tif x.region != 0 {\n\t\t\tt.setUndefinedScript(Script(x.script))\n\t\t\tt.setUndefinedRegion(Region(x.region))\n\t\t}\n\t\tspecializeRegion(&t)\n\t\tif t.LangID == 0 {\n\t\t\tt.LangID = _en // default language\n\t\t}\n\t\treturn t, nil\n\t}\n\treturn t, ErrMissingLikelyTagsData\n}\n\nfunc (t *Tag) setTagsFrom(id Tag) {\n\tt.LangID = id.LangID\n\tt.ScriptID = id.ScriptID\n\tt.RegionID = id.RegionID\n}\n\n// minimize removes the region or script subtags from t such that\n// t.addLikelySubtags() == t.minimize().addLikelySubtags().\nfunc (t Tag) minimize() (Tag, error) {\n\tt, err := minimizeTags(t)\n\tif err != nil {\n\t\treturn t, err\n\t}\n\tt.RemakeString()\n\treturn t, nil\n}\n\n// minimizeTags mimics the behavior of the ICU 51 C implementation.\nfunc minimizeTags(t Tag) (Tag, error) {\n\tif t.equalTags(Und) {\n\t\treturn t, nil\n\t}\n\tmax, err := addTags(t)\n\tif err != nil {\n\t\treturn t, err\n\t}\n\tfor _, id := range [...]Tag{\n\t\t{LangID: t.LangID},\n\t\t{LangID: t.LangID, RegionID: t.RegionID},\n\t\t{LangID: t.LangID, ScriptID: t.ScriptID},\n\t} {\n\t\tif x, err := addTags(id); err == nil && max.equalTags(x) {\n\t\t\tt.setTagsFrom(id)\n\t\t\tbreak\n\t\t}\n\t}\n\treturn t, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/parse.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 language\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"sort\"\n\n\t\"golang.org/x/text/internal/tag\"\n)\n\n// isAlpha returns true if the byte is not a digit.\n// b must be an ASCII letter or digit.\nfunc isAlpha(b byte) bool {\n\treturn b > '9'\n}\n\n// isAlphaNum returns true if the string contains only ASCII letters or digits.\nfunc isAlphaNum(s []byte) bool {\n\tfor _, c := range s {\n\t\tif !('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9') {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// ErrSyntax is returned by any of the parsing functions when the\n// input is not well-formed, according to BCP 47.\n// TODO: return the position at which the syntax error occurred?\nvar ErrSyntax = errors.New(\"language: tag is not well-formed\")\n\n// ErrDuplicateKey is returned when a tag contains the same key twice with\n// different values in the -u section.\nvar ErrDuplicateKey = errors.New(\"language: different values for same key in -u extension\")\n\n// ValueError is returned by any of the parsing functions when the\n// input is well-formed but the respective subtag is not recognized\n// as a valid value.\ntype ValueError struct {\n\tv [8]byte\n}\n\n// NewValueError creates a new ValueError.\nfunc NewValueError(tag []byte) ValueError {\n\tvar e ValueError\n\tcopy(e.v[:], tag)\n\treturn e\n}\n\nfunc (e ValueError) tag() []byte {\n\tn := bytes.IndexByte(e.v[:], 0)\n\tif n == -1 {\n\t\tn = 8\n\t}\n\treturn e.v[:n]\n}\n\n// Error implements the error interface.\nfunc (e ValueError) Error() string {\n\treturn fmt.Sprintf(\"language: subtag %q is well-formed but unknown\", e.tag())\n}\n\n// Subtag returns the subtag for which the error occurred.\nfunc (e ValueError) Subtag() string {\n\treturn string(e.tag())\n}\n\n// scanner is used to scan BCP 47 tokens, which are separated by _ or -.\ntype scanner struct {\n\tb     []byte\n\tbytes [max99thPercentileSize]byte\n\ttoken []byte\n\tstart int // start position of the current token\n\tend   int // end position of the current token\n\tnext  int // next point for scan\n\terr   error\n\tdone  bool\n}\n\nfunc makeScannerString(s string) scanner {\n\tscan := scanner{}\n\tif len(s) <= len(scan.bytes) {\n\t\tscan.b = scan.bytes[:copy(scan.bytes[:], s)]\n\t} else {\n\t\tscan.b = []byte(s)\n\t}\n\tscan.init()\n\treturn scan\n}\n\n// makeScanner returns a scanner using b as the input buffer.\n// b is not copied and may be modified by the scanner routines.\nfunc makeScanner(b []byte) scanner {\n\tscan := scanner{b: b}\n\tscan.init()\n\treturn scan\n}\n\nfunc (s *scanner) init() {\n\tfor i, c := range s.b {\n\t\tif c == '_' {\n\t\t\ts.b[i] = '-'\n\t\t}\n\t}\n\ts.scan()\n}\n\n// restToLower converts the string between start and end to lower case.\nfunc (s *scanner) toLower(start, end int) {\n\tfor i := start; i < end; i++ {\n\t\tc := s.b[i]\n\t\tif 'A' <= c && c <= 'Z' {\n\t\t\ts.b[i] += 'a' - 'A'\n\t\t}\n\t}\n}\n\nfunc (s *scanner) setError(e error) {\n\tif s.err == nil || (e == ErrSyntax && s.err != ErrSyntax) {\n\t\ts.err = e\n\t}\n}\n\n// resizeRange shrinks or grows the array at position oldStart such that\n// a new string of size newSize can fit between oldStart and oldEnd.\n// Sets the scan point to after the resized range.\nfunc (s *scanner) resizeRange(oldStart, oldEnd, newSize int) {\n\ts.start = oldStart\n\tif end := oldStart + newSize; end != oldEnd {\n\t\tdiff := end - oldEnd\n\t\tvar b []byte\n\t\tif n := len(s.b) + diff; n > cap(s.b) {\n\t\t\tb = make([]byte, n)\n\t\t\tcopy(b, s.b[:oldStart])\n\t\t} else {\n\t\t\tb = s.b[:n]\n\t\t}\n\t\tcopy(b[end:], s.b[oldEnd:])\n\t\ts.b = b\n\t\ts.next = end + (s.next - s.end)\n\t\ts.end = end\n\t}\n}\n\n// replace replaces the current token with repl.\nfunc (s *scanner) replace(repl string) {\n\ts.resizeRange(s.start, s.end, len(repl))\n\tcopy(s.b[s.start:], repl)\n}\n\n// gobble removes the current token from the input.\n// Caller must call scan after calling gobble.\nfunc (s *scanner) gobble(e error) {\n\ts.setError(e)\n\tif s.start == 0 {\n\t\ts.b = s.b[:+copy(s.b, s.b[s.next:])]\n\t\ts.end = 0\n\t} else {\n\t\ts.b = s.b[:s.start-1+copy(s.b[s.start-1:], s.b[s.end:])]\n\t\ts.end = s.start - 1\n\t}\n\ts.next = s.start\n}\n\n// deleteRange removes the given range from s.b before the current token.\nfunc (s *scanner) deleteRange(start, end int) {\n\ts.b = s.b[:start+copy(s.b[start:], s.b[end:])]\n\tdiff := end - start\n\ts.next -= diff\n\ts.start -= diff\n\ts.end -= diff\n}\n\n// scan parses the next token of a BCP 47 string.  Tokens that are larger\n// than 8 characters or include non-alphanumeric characters result in an error\n// and are gobbled and removed from the output.\n// It returns the end position of the last token consumed.\nfunc (s *scanner) scan() (end int) {\n\tend = s.end\n\ts.token = nil\n\tfor s.start = s.next; s.next < len(s.b); {\n\t\ti := bytes.IndexByte(s.b[s.next:], '-')\n\t\tif i == -1 {\n\t\t\ts.end = len(s.b)\n\t\t\ts.next = len(s.b)\n\t\t\ti = s.end - s.start\n\t\t} else {\n\t\t\ts.end = s.next + i\n\t\t\ts.next = s.end + 1\n\t\t}\n\t\ttoken := s.b[s.start:s.end]\n\t\tif i < 1 || i > 8 || !isAlphaNum(token) {\n\t\t\ts.gobble(ErrSyntax)\n\t\t\tcontinue\n\t\t}\n\t\ts.token = token\n\t\treturn end\n\t}\n\tif n := len(s.b); n > 0 && s.b[n-1] == '-' {\n\t\ts.setError(ErrSyntax)\n\t\ts.b = s.b[:len(s.b)-1]\n\t}\n\ts.done = true\n\treturn end\n}\n\n// acceptMinSize parses multiple tokens of the given size or greater.\n// It returns the end position of the last token consumed.\nfunc (s *scanner) acceptMinSize(min int) (end int) {\n\tend = s.end\n\ts.scan()\n\tfor ; len(s.token) >= min; s.scan() {\n\t\tend = s.end\n\t}\n\treturn end\n}\n\n// Parse parses the given BCP 47 string and returns a valid Tag. If parsing\n// failed it returns an error and any part of the tag that could be parsed.\n// If parsing succeeded but an unknown value was found, it returns\n// ValueError. The Tag returned in this case is just stripped of the unknown\n// value. All other values are preserved. It accepts tags in the BCP 47 format\n// and extensions to this standard defined in\n// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.\nfunc Parse(s string) (t Tag, err error) {\n\t// TODO: consider supporting old-style locale key-value pairs.\n\tif s == \"\" {\n\t\treturn Und, ErrSyntax\n\t}\n\tdefer func() {\n\t\tif recover() != nil {\n\t\t\tt = Und\n\t\t\terr = ErrSyntax\n\t\t\treturn\n\t\t}\n\t}()\n\tif len(s) <= maxAltTaglen {\n\t\tb := [maxAltTaglen]byte{}\n\t\tfor i, c := range s {\n\t\t\t// Generating invalid UTF-8 is okay as it won't match.\n\t\t\tif 'A' <= c && c <= 'Z' {\n\t\t\t\tc += 'a' - 'A'\n\t\t\t} else if c == '_' {\n\t\t\t\tc = '-'\n\t\t\t}\n\t\t\tb[i] = byte(c)\n\t\t}\n\t\tif t, ok := grandfathered(b); ok {\n\t\t\treturn t, nil\n\t\t}\n\t}\n\tscan := makeScannerString(s)\n\treturn parse(&scan, s)\n}\n\nfunc parse(scan *scanner, s string) (t Tag, err error) {\n\tt = Und\n\tvar end int\n\tif n := len(scan.token); n <= 1 {\n\t\tscan.toLower(0, len(scan.b))\n\t\tif n == 0 || scan.token[0] != 'x' {\n\t\t\treturn t, ErrSyntax\n\t\t}\n\t\tend = parseExtensions(scan)\n\t} else if n >= 4 {\n\t\treturn Und, ErrSyntax\n\t} else { // the usual case\n\t\tt, end = parseTag(scan, true)\n\t\tif n := len(scan.token); n == 1 {\n\t\t\tt.pExt = uint16(end)\n\t\t\tend = parseExtensions(scan)\n\t\t} else if end < len(scan.b) {\n\t\t\tscan.setError(ErrSyntax)\n\t\t\tscan.b = scan.b[:end]\n\t\t}\n\t}\n\tif int(t.pVariant) < len(scan.b) {\n\t\tif end < len(s) {\n\t\t\ts = s[:end]\n\t\t}\n\t\tif len(s) > 0 && tag.Compare(s, scan.b) == 0 {\n\t\t\tt.str = s\n\t\t} else {\n\t\t\tt.str = string(scan.b)\n\t\t}\n\t} else {\n\t\tt.pVariant, t.pExt = 0, 0\n\t}\n\treturn t, scan.err\n}\n\n// parseTag parses language, script, region and variants.\n// It returns a Tag and the end position in the input that was parsed.\n// If doNorm is true, then <lang>-<extlang> will be normalized to <extlang>.\nfunc parseTag(scan *scanner, doNorm bool) (t Tag, end int) {\n\tvar e error\n\t// TODO: set an error if an unknown lang, script or region is encountered.\n\tt.LangID, e = getLangID(scan.token)\n\tscan.setError(e)\n\tscan.replace(t.LangID.String())\n\tlangStart := scan.start\n\tend = scan.scan()\n\tfor len(scan.token) == 3 && isAlpha(scan.token[0]) {\n\t\t// From http://tools.ietf.org/html/bcp47, <lang>-<extlang> tags are equivalent\n\t\t// to a tag of the form <extlang>.\n\t\tif doNorm {\n\t\t\tlang, e := getLangID(scan.token)\n\t\t\tif lang != 0 {\n\t\t\t\tt.LangID = lang\n\t\t\t\tlangStr := lang.String()\n\t\t\t\tcopy(scan.b[langStart:], langStr)\n\t\t\t\tscan.b[langStart+len(langStr)] = '-'\n\t\t\t\tscan.start = langStart + len(langStr) + 1\n\t\t\t}\n\t\t\tscan.gobble(e)\n\t\t}\n\t\tend = scan.scan()\n\t}\n\tif len(scan.token) == 4 && isAlpha(scan.token[0]) {\n\t\tt.ScriptID, e = getScriptID(script, scan.token)\n\t\tif t.ScriptID == 0 {\n\t\t\tscan.gobble(e)\n\t\t}\n\t\tend = scan.scan()\n\t}\n\tif n := len(scan.token); n >= 2 && n <= 3 {\n\t\tt.RegionID, e = getRegionID(scan.token)\n\t\tif t.RegionID == 0 {\n\t\t\tscan.gobble(e)\n\t\t} else {\n\t\t\tscan.replace(t.RegionID.String())\n\t\t}\n\t\tend = scan.scan()\n\t}\n\tscan.toLower(scan.start, len(scan.b))\n\tt.pVariant = byte(end)\n\tend = parseVariants(scan, end, t)\n\tt.pExt = uint16(end)\n\treturn t, end\n}\n\nvar separator = []byte{'-'}\n\n// parseVariants scans tokens as long as each token is a valid variant string.\n// Duplicate variants are removed.\nfunc parseVariants(scan *scanner, end int, t Tag) int {\n\tstart := scan.start\n\tvarIDBuf := [4]uint8{}\n\tvariantBuf := [4][]byte{}\n\tvarID := varIDBuf[:0]\n\tvariant := variantBuf[:0]\n\tlast := -1\n\tneedSort := false\n\tfor ; len(scan.token) >= 4; scan.scan() {\n\t\t// TODO: measure the impact of needing this conversion and redesign\n\t\t// the data structure if there is an issue.\n\t\tv, ok := variantIndex[string(scan.token)]\n\t\tif !ok {\n\t\t\t// unknown variant\n\t\t\t// TODO: allow user-defined variants?\n\t\t\tscan.gobble(NewValueError(scan.token))\n\t\t\tcontinue\n\t\t}\n\t\tvarID = append(varID, v)\n\t\tvariant = append(variant, scan.token)\n\t\tif !needSort {\n\t\t\tif last < int(v) {\n\t\t\t\tlast = int(v)\n\t\t\t} else {\n\t\t\t\tneedSort = true\n\t\t\t\t// There is no legal combinations of more than 7 variants\n\t\t\t\t// (and this is by no means a useful sequence).\n\t\t\t\tconst maxVariants = 8\n\t\t\t\tif len(varID) > maxVariants {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tend = scan.end\n\t}\n\tif needSort {\n\t\tsort.Sort(variantsSort{varID, variant})\n\t\tk, l := 0, -1\n\t\tfor i, v := range varID {\n\t\t\tw := int(v)\n\t\t\tif l == w {\n\t\t\t\t// Remove duplicates.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvarID[k] = varID[i]\n\t\t\tvariant[k] = variant[i]\n\t\t\tk++\n\t\t\tl = w\n\t\t}\n\t\tif str := bytes.Join(variant[:k], separator); len(str) == 0 {\n\t\t\tend = start - 1\n\t\t} else {\n\t\t\tscan.resizeRange(start, end, len(str))\n\t\t\tcopy(scan.b[scan.start:], str)\n\t\t\tend = scan.end\n\t\t}\n\t}\n\treturn end\n}\n\ntype variantsSort struct {\n\ti []uint8\n\tv [][]byte\n}\n\nfunc (s variantsSort) Len() int {\n\treturn len(s.i)\n}\n\nfunc (s variantsSort) Swap(i, j int) {\n\ts.i[i], s.i[j] = s.i[j], s.i[i]\n\ts.v[i], s.v[j] = s.v[j], s.v[i]\n}\n\nfunc (s variantsSort) Less(i, j int) bool {\n\treturn s.i[i] < s.i[j]\n}\n\ntype bytesSort struct {\n\tb [][]byte\n\tn int // first n bytes to compare\n}\n\nfunc (b bytesSort) Len() int {\n\treturn len(b.b)\n}\n\nfunc (b bytesSort) Swap(i, j int) {\n\tb.b[i], b.b[j] = b.b[j], b.b[i]\n}\n\nfunc (b bytesSort) Less(i, j int) bool {\n\tfor k := 0; k < b.n; k++ {\n\t\tif b.b[i][k] == b.b[j][k] {\n\t\t\tcontinue\n\t\t}\n\t\treturn b.b[i][k] < b.b[j][k]\n\t}\n\treturn false\n}\n\n// parseExtensions parses and normalizes the extensions in the buffer.\n// It returns the last position of scan.b that is part of any extension.\n// It also trims scan.b to remove excess parts accordingly.\nfunc parseExtensions(scan *scanner) int {\n\tstart := scan.start\n\texts := [][]byte{}\n\tprivate := []byte{}\n\tend := scan.end\n\tfor len(scan.token) == 1 {\n\t\textStart := scan.start\n\t\text := scan.token[0]\n\t\tend = parseExtension(scan)\n\t\textension := scan.b[extStart:end]\n\t\tif len(extension) < 3 || (ext != 'x' && len(extension) < 4) {\n\t\t\tscan.setError(ErrSyntax)\n\t\t\tend = extStart\n\t\t\tcontinue\n\t\t} else if start == extStart && (ext == 'x' || scan.start == len(scan.b)) {\n\t\t\tscan.b = scan.b[:end]\n\t\t\treturn end\n\t\t} else if ext == 'x' {\n\t\t\tprivate = extension\n\t\t\tbreak\n\t\t}\n\t\texts = append(exts, extension)\n\t}\n\tsort.Sort(bytesSort{exts, 1})\n\tif len(private) > 0 {\n\t\texts = append(exts, private)\n\t}\n\tscan.b = scan.b[:start]\n\tif len(exts) > 0 {\n\t\tscan.b = append(scan.b, bytes.Join(exts, separator)...)\n\t} else if start > 0 {\n\t\t// Strip trailing '-'.\n\t\tscan.b = scan.b[:start-1]\n\t}\n\treturn end\n}\n\n// parseExtension parses a single extension and returns the position of\n// the extension end.\nfunc parseExtension(scan *scanner) int {\n\tstart, end := scan.start, scan.end\n\tswitch scan.token[0] {\n\tcase 'u': // https://www.ietf.org/rfc/rfc6067.txt\n\t\tattrStart := end\n\t\tscan.scan()\n\t\tfor last := []byte{}; len(scan.token) > 2; scan.scan() {\n\t\t\tif bytes.Compare(scan.token, last) != -1 {\n\t\t\t\t// Attributes are unsorted. Start over from scratch.\n\t\t\t\tp := attrStart + 1\n\t\t\t\tscan.next = p\n\t\t\t\tattrs := [][]byte{}\n\t\t\t\tfor scan.scan(); len(scan.token) > 2; scan.scan() {\n\t\t\t\t\tattrs = append(attrs, scan.token)\n\t\t\t\t\tend = scan.end\n\t\t\t\t}\n\t\t\t\tsort.Sort(bytesSort{attrs, 3})\n\t\t\t\tcopy(scan.b[p:], bytes.Join(attrs, separator))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tlast = scan.token\n\t\t\tend = scan.end\n\t\t}\n\t\t// Scan key-type sequences. A key is of length 2 and may be followed\n\t\t// by 0 or more \"type\" subtags from 3 to the maximum of 8 letters.\n\t\tvar last, key []byte\n\t\tfor attrEnd := end; len(scan.token) == 2; last = key {\n\t\t\tkey = scan.token\n\t\t\tend = scan.end\n\t\t\tfor scan.scan(); end < scan.end && len(scan.token) > 2; scan.scan() {\n\t\t\t\tend = scan.end\n\t\t\t}\n\t\t\t// TODO: check key value validity\n\t\t\tif bytes.Compare(key, last) != 1 || scan.err != nil {\n\t\t\t\t// We have an invalid key or the keys are not sorted.\n\t\t\t\t// Start scanning keys from scratch and reorder.\n\t\t\t\tp := attrEnd + 1\n\t\t\t\tscan.next = p\n\t\t\t\tkeys := [][]byte{}\n\t\t\t\tfor scan.scan(); len(scan.token) == 2; {\n\t\t\t\t\tkeyStart := scan.start\n\t\t\t\t\tend = scan.end\n\t\t\t\t\tfor scan.scan(); end < scan.end && len(scan.token) > 2; scan.scan() {\n\t\t\t\t\t\tend = scan.end\n\t\t\t\t\t}\n\t\t\t\t\tkeys = append(keys, scan.b[keyStart:end])\n\t\t\t\t}\n\t\t\t\tsort.Stable(bytesSort{keys, 2})\n\t\t\t\tif n := len(keys); n > 0 {\n\t\t\t\t\tk := 0\n\t\t\t\t\tfor i := 1; i < n; i++ {\n\t\t\t\t\t\tif !bytes.Equal(keys[k][:2], keys[i][:2]) {\n\t\t\t\t\t\t\tk++\n\t\t\t\t\t\t\tkeys[k] = keys[i]\n\t\t\t\t\t\t} else if !bytes.Equal(keys[k], keys[i]) {\n\t\t\t\t\t\t\tscan.setError(ErrDuplicateKey)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tkeys = keys[:k+1]\n\t\t\t\t}\n\t\t\t\treordered := bytes.Join(keys, separator)\n\t\t\t\tif e := p + len(reordered); e < end {\n\t\t\t\t\tscan.deleteRange(e, end)\n\t\t\t\t\tend = e\n\t\t\t\t}\n\t\t\t\tcopy(scan.b[p:], reordered)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\tcase 't': // https://www.ietf.org/rfc/rfc6497.txt\n\t\tscan.scan()\n\t\tif n := len(scan.token); n >= 2 && n <= 3 && isAlpha(scan.token[1]) {\n\t\t\t_, end = parseTag(scan, false)\n\t\t\tscan.toLower(start, end)\n\t\t}\n\t\tfor len(scan.token) == 2 && !isAlpha(scan.token[1]) {\n\t\t\tend = scan.acceptMinSize(3)\n\t\t}\n\tcase 'x':\n\t\tend = scan.acceptMinSize(1)\n\tdefault:\n\t\tend = scan.acceptMinSize(2)\n\t}\n\treturn end\n}\n\n// getExtension returns the name, body and end position of the extension.\nfunc getExtension(s string, p int) (end int, ext string) {\n\tif s[p] == '-' {\n\t\tp++\n\t}\n\tif s[p] == 'x' {\n\t\treturn len(s), s[p:]\n\t}\n\tend = nextExtension(s, p)\n\treturn end, s[p:end]\n}\n\n// nextExtension finds the next extension within the string, searching\n// for the -<char>- pattern from position p.\n// In the fast majority of cases, language tags will have at most\n// one extension and extensions tend to be small.\nfunc nextExtension(s string, p int) int {\n\tfor n := len(s) - 3; p < n; {\n\t\tif s[p] == '-' {\n\t\t\tif s[p+2] == '-' {\n\t\t\t\treturn p\n\t\t\t}\n\t\t\tp += 3\n\t\t} else {\n\t\t\tp++\n\t\t}\n\t}\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/tables.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage language\n\nimport \"golang.org/x/text/internal/tag\"\n\n// CLDRVersion is the CLDR version from which the tables in this package are derived.\nconst CLDRVersion = \"32\"\n\nconst NumLanguages = 8798\n\nconst NumScripts = 261\n\nconst NumRegions = 358\n\ntype FromTo struct {\n\tFrom uint16\n\tTo   uint16\n}\n\nconst nonCanonicalUnd = 1201\nconst (\n\t_af  = 22\n\t_am  = 39\n\t_ar  = 58\n\t_az  = 88\n\t_bg  = 126\n\t_bn  = 165\n\t_ca  = 215\n\t_cs  = 250\n\t_da  = 257\n\t_de  = 269\n\t_el  = 310\n\t_en  = 313\n\t_es  = 318\n\t_et  = 320\n\t_fa  = 328\n\t_fi  = 337\n\t_fil = 339\n\t_fr  = 350\n\t_gu  = 420\n\t_he  = 444\n\t_hi  = 446\n\t_hr  = 465\n\t_hu  = 469\n\t_hy  = 471\n\t_id  = 481\n\t_is  = 504\n\t_it  = 505\n\t_ja  = 512\n\t_ka  = 528\n\t_kk  = 578\n\t_km  = 586\n\t_kn  = 593\n\t_ko  = 596\n\t_ky  = 650\n\t_lo  = 696\n\t_lt  = 704\n\t_lv  = 711\n\t_mk  = 767\n\t_ml  = 772\n\t_mn  = 779\n\t_mo  = 784\n\t_mr  = 795\n\t_ms  = 799\n\t_mul = 806\n\t_my  = 817\n\t_nb  = 839\n\t_ne  = 849\n\t_nl  = 871\n\t_no  = 879\n\t_pa  = 925\n\t_pl  = 947\n\t_pt  = 960\n\t_ro  = 988\n\t_ru  = 994\n\t_sh  = 1031\n\t_si  = 1036\n\t_sk  = 1042\n\t_sl  = 1046\n\t_sq  = 1073\n\t_sr  = 1074\n\t_sv  = 1092\n\t_sw  = 1093\n\t_ta  = 1104\n\t_te  = 1121\n\t_th  = 1131\n\t_tl  = 1146\n\t_tn  = 1152\n\t_tr  = 1162\n\t_uk  = 1198\n\t_ur  = 1204\n\t_uz  = 1212\n\t_vi  = 1219\n\t_zh  = 1321\n\t_zu  = 1327\n\t_jbo = 515\n\t_ami = 1650\n\t_bnn = 2357\n\t_hak = 438\n\t_tlh = 14467\n\t_lb  = 661\n\t_nv  = 899\n\t_pwn = 12055\n\t_tao = 14188\n\t_tay = 14198\n\t_tsu = 14662\n\t_nn  = 874\n\t_sfb = 13629\n\t_vgt = 15701\n\t_sgg = 13660\n\t_cmn = 3007\n\t_nan = 835\n\t_hsn = 467\n)\n\nconst langPrivateStart = 0x2f72\n\nconst langPrivateEnd = 0x3179\n\n// lang holds an alphabetically sorted list of ISO-639 language identifiers.\n// All entries are 4 bytes. The index of the identifier (divided by 4) is the language tag.\n// For 2-byte language identifiers, the two successive bytes have the following meaning:\n//   - if the first letter of the 2- and 3-letter ISO codes are the same:\n//     the second and third letter of the 3-letter ISO code.\n//   - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3.\n//\n// For 3-byte language identifiers the 4th byte is 0.\nconst lang tag.Index = \"\" + // Size: 5324 bytes\n\t\"---\\x00aaaraai\\x00aak\\x00aau\\x00abbkabi\\x00abq\\x00abr\\x00abt\\x00aby\\x00a\" +\n\t\"cd\\x00ace\\x00ach\\x00ada\\x00ade\\x00adj\\x00ady\\x00adz\\x00aeveaeb\\x00aey\" +\n\t\"\\x00affragc\\x00agd\\x00agg\\x00agm\\x00ago\\x00agq\\x00aha\\x00ahl\\x00aho\\x00a\" +\n\t\"jg\\x00akkaakk\\x00ala\\x00ali\\x00aln\\x00alt\\x00ammhamm\\x00amn\\x00amo\\x00am\" +\n\t\"p\\x00anrganc\\x00ank\\x00ann\\x00any\\x00aoj\\x00aom\\x00aoz\\x00apc\\x00apd\\x00\" +\n\t\"ape\\x00apr\\x00aps\\x00apz\\x00arraarc\\x00arh\\x00arn\\x00aro\\x00arq\\x00ars\" +\n\t\"\\x00ary\\x00arz\\x00assmasa\\x00ase\\x00asg\\x00aso\\x00ast\\x00ata\\x00atg\\x00a\" +\n\t\"tj\\x00auy\\x00avvaavl\\x00avn\\x00avt\\x00avu\\x00awa\\x00awb\\x00awo\\x00awx\" +\n\t\"\\x00ayymayb\\x00azzebaakbal\\x00ban\\x00bap\\x00bar\\x00bas\\x00bav\\x00bax\\x00\" +\n\t\"bba\\x00bbb\\x00bbc\\x00bbd\\x00bbj\\x00bbp\\x00bbr\\x00bcf\\x00bch\\x00bci\\x00bc\" +\n\t\"m\\x00bcn\\x00bco\\x00bcq\\x00bcu\\x00bdd\\x00beelbef\\x00beh\\x00bej\\x00bem\\x00\" +\n\t\"bet\\x00bew\\x00bex\\x00bez\\x00bfd\\x00bfq\\x00bft\\x00bfy\\x00bgulbgc\\x00bgn\" +\n\t\"\\x00bgx\\x00bhihbhb\\x00bhg\\x00bhi\\x00bhk\\x00bhl\\x00bho\\x00bhy\\x00biisbib\" +\n\t\"\\x00big\\x00bik\\x00bim\\x00bin\\x00bio\\x00biq\\x00bjh\\x00bji\\x00bjj\\x00bjn\" +\n\t\"\\x00bjo\\x00bjr\\x00bjt\\x00bjz\\x00bkc\\x00bkm\\x00bkq\\x00bku\\x00bkv\\x00blt\" +\n\t\"\\x00bmambmh\\x00bmk\\x00bmq\\x00bmu\\x00bnenbng\\x00bnm\\x00bnp\\x00boodboj\\x00\" +\n\t\"bom\\x00bon\\x00bpy\\x00bqc\\x00bqi\\x00bqp\\x00bqv\\x00brrebra\\x00brh\\x00brx\" +\n\t\"\\x00brz\\x00bsosbsj\\x00bsq\\x00bss\\x00bst\\x00bto\\x00btt\\x00btv\\x00bua\\x00b\" +\n\t\"uc\\x00bud\\x00bug\\x00buk\\x00bum\\x00buo\\x00bus\\x00buu\\x00bvb\\x00bwd\\x00bwr\" +\n\t\"\\x00bxh\\x00bye\\x00byn\\x00byr\\x00bys\\x00byv\\x00byx\\x00bza\\x00bze\\x00bzf\" +\n\t\"\\x00bzh\\x00bzw\\x00caatcan\\x00cbj\\x00cch\\x00ccp\\x00ceheceb\\x00cfa\\x00cgg\" +\n\t\"\\x00chhachk\\x00chm\\x00cho\\x00chp\\x00chr\\x00cja\\x00cjm\\x00cjv\\x00ckb\\x00c\" +\n\t\"kl\\x00cko\\x00cky\\x00cla\\x00cme\\x00cmg\\x00cooscop\\x00cps\\x00crrecrh\\x00cr\" +\n\t\"j\\x00crk\\x00crl\\x00crm\\x00crs\\x00csescsb\\x00csw\\x00ctd\\x00cuhucvhvcyymda\" +\n\t\"andad\\x00daf\\x00dag\\x00dah\\x00dak\\x00dar\\x00dav\\x00dbd\\x00dbq\\x00dcc\\x00\" +\n\t\"ddn\\x00deeuded\\x00den\\x00dga\\x00dgh\\x00dgi\\x00dgl\\x00dgr\\x00dgz\\x00dia\" +\n\t\"\\x00dje\\x00dnj\\x00dob\\x00doi\\x00dop\\x00dow\\x00dri\\x00drs\\x00dsb\\x00dtm\" +\n\t\"\\x00dtp\\x00dts\\x00dty\\x00dua\\x00duc\\x00dud\\x00dug\\x00dvivdva\\x00dww\\x00d\" +\n\t\"yo\\x00dyu\\x00dzzodzg\\x00ebu\\x00eeweefi\\x00egl\\x00egy\\x00eka\\x00eky\\x00el\" +\n\t\"llema\\x00emi\\x00enngenn\\x00enq\\x00eopoeri\\x00es\\x00\\x05esu\\x00etstetr\" +\n\t\"\\x00ett\\x00etu\\x00etx\\x00euusewo\\x00ext\\x00faasfaa\\x00fab\\x00fag\\x00fai\" +\n\t\"\\x00fan\\x00ffulffi\\x00ffm\\x00fiinfia\\x00fil\\x00fit\\x00fjijflr\\x00fmp\\x00\" +\n\t\"foaofod\\x00fon\\x00for\\x00fpe\\x00fqs\\x00frrafrc\\x00frp\\x00frr\\x00frs\\x00f\" +\n\t\"ub\\x00fud\\x00fue\\x00fuf\\x00fuh\\x00fuq\\x00fur\\x00fuv\\x00fuy\\x00fvr\\x00fyr\" +\n\t\"ygalegaa\\x00gaf\\x00gag\\x00gah\\x00gaj\\x00gam\\x00gan\\x00gaw\\x00gay\\x00gba\" +\n\t\"\\x00gbf\\x00gbm\\x00gby\\x00gbz\\x00gcr\\x00gdlagde\\x00gdn\\x00gdr\\x00geb\\x00g\" +\n\t\"ej\\x00gel\\x00gez\\x00gfk\\x00ggn\\x00ghs\\x00gil\\x00gim\\x00gjk\\x00gjn\\x00gju\" +\n\t\"\\x00gkn\\x00gkp\\x00gllgglk\\x00gmm\\x00gmv\\x00gnrngnd\\x00gng\\x00god\\x00gof\" +\n\t\"\\x00goi\\x00gom\\x00gon\\x00gor\\x00gos\\x00got\\x00grb\\x00grc\\x00grt\\x00grw\" +\n\t\"\\x00gsw\\x00guujgub\\x00guc\\x00gud\\x00gur\\x00guw\\x00gux\\x00guz\\x00gvlvgvf\" +\n\t\"\\x00gvr\\x00gvs\\x00gwc\\x00gwi\\x00gwt\\x00gyi\\x00haauhag\\x00hak\\x00ham\\x00h\" +\n\t\"aw\\x00haz\\x00hbb\\x00hdy\\x00heebhhy\\x00hiinhia\\x00hif\\x00hig\\x00hih\\x00hi\" +\n\t\"l\\x00hla\\x00hlu\\x00hmd\\x00hmt\\x00hnd\\x00hne\\x00hnj\\x00hnn\\x00hno\\x00homo\" +\n\t\"hoc\\x00hoj\\x00hot\\x00hrrvhsb\\x00hsn\\x00htathuunhui\\x00hyyehzerianaian\" +\n\t\"\\x00iar\\x00iba\\x00ibb\\x00iby\\x00ica\\x00ich\\x00idndidd\\x00idi\\x00idu\\x00i\" +\n\t\"eleife\\x00igboigb\\x00ige\\x00iiiiijj\\x00ikpkikk\\x00ikt\\x00ikw\\x00ikx\\x00i\" +\n\t\"lo\\x00imo\\x00inndinh\\x00iodoiou\\x00iri\\x00isslittaiukuiw\\x00\\x03iwm\\x00i\" +\n\t\"ws\\x00izh\\x00izi\\x00japnjab\\x00jam\\x00jbo\\x00jbu\\x00jen\\x00jgk\\x00jgo\" +\n\t\"\\x00ji\\x00\\x06jib\\x00jmc\\x00jml\\x00jra\\x00jut\\x00jvavjwavkaatkaa\\x00kab\" +\n\t\"\\x00kac\\x00kad\\x00kai\\x00kaj\\x00kam\\x00kao\\x00kbd\\x00kbm\\x00kbp\\x00kbq\" +\n\t\"\\x00kbx\\x00kby\\x00kcg\\x00kck\\x00kcl\\x00kct\\x00kde\\x00kdh\\x00kdl\\x00kdt\" +\n\t\"\\x00kea\\x00ken\\x00kez\\x00kfo\\x00kfr\\x00kfy\\x00kgonkge\\x00kgf\\x00kgp\\x00k\" +\n\t\"ha\\x00khb\\x00khn\\x00khq\\x00khs\\x00kht\\x00khw\\x00khz\\x00kiikkij\\x00kiu\" +\n\t\"\\x00kiw\\x00kjuakjd\\x00kjg\\x00kjs\\x00kjy\\x00kkazkkc\\x00kkj\\x00klalkln\\x00\" +\n\t\"klq\\x00klt\\x00klx\\x00kmhmkmb\\x00kmh\\x00kmo\\x00kms\\x00kmu\\x00kmw\\x00knank\" +\n\t\"nf\\x00knp\\x00koorkoi\\x00kok\\x00kol\\x00kos\\x00koz\\x00kpe\\x00kpf\\x00kpo\" +\n\t\"\\x00kpr\\x00kpx\\x00kqb\\x00kqf\\x00kqs\\x00kqy\\x00kraukrc\\x00kri\\x00krj\\x00k\" +\n\t\"rl\\x00krs\\x00kru\\x00ksasksb\\x00ksd\\x00ksf\\x00ksh\\x00ksj\\x00ksr\\x00ktb\" +\n\t\"\\x00ktm\\x00kto\\x00kuurkub\\x00kud\\x00kue\\x00kuj\\x00kum\\x00kun\\x00kup\\x00k\" +\n\t\"us\\x00kvomkvg\\x00kvr\\x00kvx\\x00kw\\x00\\x01kwj\\x00kwo\\x00kxa\\x00kxc\\x00kxm\" +\n\t\"\\x00kxp\\x00kxw\\x00kxz\\x00kyirkye\\x00kyx\\x00kzr\\x00laatlab\\x00lad\\x00lag\" +\n\t\"\\x00lah\\x00laj\\x00las\\x00lbtzlbe\\x00lbu\\x00lbw\\x00lcm\\x00lcp\\x00ldb\\x00l\" +\n\t\"ed\\x00lee\\x00lem\\x00lep\\x00leq\\x00leu\\x00lez\\x00lguglgg\\x00liimlia\\x00li\" +\n\t\"d\\x00lif\\x00lig\\x00lih\\x00lij\\x00lis\\x00ljp\\x00lki\\x00lkt\\x00lle\\x00lln\" +\n\t\"\\x00lmn\\x00lmo\\x00lmp\\x00lninlns\\x00lnu\\x00loaoloj\\x00lok\\x00lol\\x00lor\" +\n\t\"\\x00los\\x00loz\\x00lrc\\x00ltitltg\\x00luublua\\x00luo\\x00luy\\x00luz\\x00lvav\" +\n\t\"lwl\\x00lzh\\x00lzz\\x00mad\\x00maf\\x00mag\\x00mai\\x00mak\\x00man\\x00mas\\x00ma\" +\n\t\"w\\x00maz\\x00mbh\\x00mbo\\x00mbq\\x00mbu\\x00mbw\\x00mci\\x00mcp\\x00mcq\\x00mcr\" +\n\t\"\\x00mcu\\x00mda\\x00mde\\x00mdf\\x00mdh\\x00mdj\\x00mdr\\x00mdx\\x00med\\x00mee\" +\n\t\"\\x00mek\\x00men\\x00mer\\x00met\\x00meu\\x00mfa\\x00mfe\\x00mfn\\x00mfo\\x00mfq\" +\n\t\"\\x00mglgmgh\\x00mgl\\x00mgo\\x00mgp\\x00mgy\\x00mhahmhi\\x00mhl\\x00mirimif\\x00\" +\n\t\"min\\x00mis\\x00miw\\x00mkkdmki\\x00mkl\\x00mkp\\x00mkw\\x00mlalmle\\x00mlp\\x00m\" +\n\t\"ls\\x00mmo\\x00mmu\\x00mmx\\x00mnonmna\\x00mnf\\x00mni\\x00mnw\\x00moolmoa\\x00mo\" +\n\t\"e\\x00moh\\x00mos\\x00mox\\x00mpp\\x00mps\\x00mpt\\x00mpx\\x00mql\\x00mrarmrd\\x00\" +\n\t\"mrj\\x00mro\\x00mssamtltmtc\\x00mtf\\x00mti\\x00mtr\\x00mua\\x00mul\\x00mur\\x00m\" +\n\t\"us\\x00mva\\x00mvn\\x00mvy\\x00mwk\\x00mwr\\x00mwv\\x00mxc\\x00mxm\\x00myyamyk\" +\n\t\"\\x00mym\\x00myv\\x00myw\\x00myx\\x00myz\\x00mzk\\x00mzm\\x00mzn\\x00mzp\\x00mzw\" +\n\t\"\\x00mzz\\x00naaunac\\x00naf\\x00nah\\x00nak\\x00nan\\x00nap\\x00naq\\x00nas\\x00n\" +\n\t\"bobnca\\x00nce\\x00ncf\\x00nch\\x00nco\\x00ncu\\x00nddendc\\x00nds\\x00neepneb\" +\n\t\"\\x00new\\x00nex\\x00nfr\\x00ngdonga\\x00ngb\\x00ngl\\x00nhb\\x00nhe\\x00nhw\\x00n\" +\n\t\"if\\x00nii\\x00nij\\x00nin\\x00niu\\x00niy\\x00niz\\x00njo\\x00nkg\\x00nko\\x00nll\" +\n\t\"dnmg\\x00nmz\\x00nnnonnf\\x00nnh\\x00nnk\\x00nnm\\x00noornod\\x00noe\\x00non\\x00\" +\n\t\"nop\\x00nou\\x00nqo\\x00nrblnrb\\x00nsk\\x00nsn\\x00nso\\x00nss\\x00ntm\\x00ntr\" +\n\t\"\\x00nui\\x00nup\\x00nus\\x00nuv\\x00nux\\x00nvavnwb\\x00nxq\\x00nxr\\x00nyyanym\" +\n\t\"\\x00nyn\\x00nzi\\x00occiogc\\x00ojjiokr\\x00okv\\x00omrmong\\x00onn\\x00ons\\x00\" +\n\t\"opm\\x00orrioro\\x00oru\\x00osssosa\\x00ota\\x00otk\\x00ozm\\x00paanpag\\x00pal\" +\n\t\"\\x00pam\\x00pap\\x00pau\\x00pbi\\x00pcd\\x00pcm\\x00pdc\\x00pdt\\x00ped\\x00peo\" +\n\t\"\\x00pex\\x00pfl\\x00phl\\x00phn\\x00pilipil\\x00pip\\x00pka\\x00pko\\x00plolpla\" +\n\t\"\\x00pms\\x00png\\x00pnn\\x00pnt\\x00pon\\x00ppo\\x00pra\\x00prd\\x00prg\\x00psusp\" +\n\t\"ss\\x00ptorptp\\x00puu\\x00pwa\\x00quuequc\\x00qug\\x00rai\\x00raj\\x00rao\\x00rc\" +\n\t\"f\\x00rej\\x00rel\\x00res\\x00rgn\\x00rhg\\x00ria\\x00rif\\x00rjs\\x00rkt\\x00rmoh\" +\n\t\"rmf\\x00rmo\\x00rmt\\x00rmu\\x00rnunrna\\x00rng\\x00roonrob\\x00rof\\x00roo\\x00r\" +\n\t\"ro\\x00rtm\\x00ruusrue\\x00rug\\x00rw\\x00\\x04rwk\\x00rwo\\x00ryu\\x00saansaf\" +\n\t\"\\x00sah\\x00saq\\x00sas\\x00sat\\x00sav\\x00saz\\x00sba\\x00sbe\\x00sbp\\x00scrds\" +\n\t\"ck\\x00scl\\x00scn\\x00sco\\x00scs\\x00sdndsdc\\x00sdh\\x00semesef\\x00seh\\x00se\" +\n\t\"i\\x00ses\\x00sgagsga\\x00sgs\\x00sgw\\x00sgz\\x00sh\\x00\\x02shi\\x00shk\\x00shn\" +\n\t\"\\x00shu\\x00siinsid\\x00sig\\x00sil\\x00sim\\x00sjr\\x00sklkskc\\x00skr\\x00sks\" +\n\t\"\\x00sllvsld\\x00sli\\x00sll\\x00sly\\x00smmosma\\x00smi\\x00smj\\x00smn\\x00smp\" +\n\t\"\\x00smq\\x00sms\\x00snnasnc\\x00snk\\x00snp\\x00snx\\x00sny\\x00soomsok\\x00soq\" +\n\t\"\\x00sou\\x00soy\\x00spd\\x00spl\\x00sps\\x00sqqisrrpsrb\\x00srn\\x00srr\\x00srx\" +\n\t\"\\x00ssswssd\\x00ssg\\x00ssy\\x00stotstk\\x00stq\\x00suunsua\\x00sue\\x00suk\\x00\" +\n\t\"sur\\x00sus\\x00svweswwaswb\\x00swc\\x00swg\\x00swp\\x00swv\\x00sxn\\x00sxw\\x00s\" +\n\t\"yl\\x00syr\\x00szl\\x00taamtaj\\x00tal\\x00tan\\x00taq\\x00tbc\\x00tbd\\x00tbf\" +\n\t\"\\x00tbg\\x00tbo\\x00tbw\\x00tbz\\x00tci\\x00tcy\\x00tdd\\x00tdg\\x00tdh\\x00teelt\" +\n\t\"ed\\x00tem\\x00teo\\x00tet\\x00tfi\\x00tggktgc\\x00tgo\\x00tgu\\x00thhathl\\x00th\" +\n\t\"q\\x00thr\\x00tiirtif\\x00tig\\x00tik\\x00tim\\x00tio\\x00tiv\\x00tkuktkl\\x00tkr\" +\n\t\"\\x00tkt\\x00tlgltlf\\x00tlx\\x00tly\\x00tmh\\x00tmy\\x00tnsntnh\\x00toontof\\x00\" +\n\t\"tog\\x00toq\\x00tpi\\x00tpm\\x00tpz\\x00tqo\\x00trurtru\\x00trv\\x00trw\\x00tssot\" +\n\t\"sd\\x00tsf\\x00tsg\\x00tsj\\x00tsw\\x00ttatttd\\x00tte\\x00ttj\\x00ttr\\x00tts\" +\n\t\"\\x00ttt\\x00tuh\\x00tul\\x00tum\\x00tuq\\x00tvd\\x00tvl\\x00tvu\\x00twwitwh\\x00t\" +\n\t\"wq\\x00txg\\x00tyahtya\\x00tyv\\x00tzm\\x00ubu\\x00udm\\x00ugiguga\\x00ukkruli\" +\n\t\"\\x00umb\\x00und\\x00unr\\x00unx\\x00urrduri\\x00urt\\x00urw\\x00usa\\x00utr\\x00u\" +\n\t\"vh\\x00uvl\\x00uzzbvag\\x00vai\\x00van\\x00veenvec\\x00vep\\x00viievic\\x00viv\" +\n\t\"\\x00vls\\x00vmf\\x00vmw\\x00voolvot\\x00vro\\x00vun\\x00vut\\x00walnwae\\x00waj\" +\n\t\"\\x00wal\\x00wan\\x00war\\x00wbp\\x00wbq\\x00wbr\\x00wci\\x00wer\\x00wgi\\x00whg\" +\n\t\"\\x00wib\\x00wiu\\x00wiv\\x00wja\\x00wji\\x00wls\\x00wmo\\x00wnc\\x00wni\\x00wnu\" +\n\t\"\\x00woolwob\\x00wos\\x00wrs\\x00wsk\\x00wtm\\x00wuu\\x00wuv\\x00wwa\\x00xav\\x00x\" +\n\t\"bi\\x00xcr\\x00xes\\x00xhhoxla\\x00xlc\\x00xld\\x00xmf\\x00xmn\\x00xmr\\x00xna\" +\n\t\"\\x00xnr\\x00xog\\x00xon\\x00xpr\\x00xrb\\x00xsa\\x00xsi\\x00xsm\\x00xsr\\x00xwe\" +\n\t\"\\x00yam\\x00yao\\x00yap\\x00yas\\x00yat\\x00yav\\x00yay\\x00yaz\\x00yba\\x00ybb\" +\n\t\"\\x00yby\\x00yer\\x00ygr\\x00ygw\\x00yiidyko\\x00yle\\x00ylg\\x00yll\\x00yml\\x00y\" +\n\t\"ooryon\\x00yrb\\x00yre\\x00yrl\\x00yss\\x00yua\\x00yue\\x00yuj\\x00yut\\x00yuw\" +\n\t\"\\x00zahazag\\x00zbl\\x00zdj\\x00zea\\x00zgh\\x00zhhozhx\\x00zia\\x00zlm\\x00zmi\" +\n\t\"\\x00zne\\x00zuulzxx\\x00zza\\x00\\xff\\xff\\xff\\xff\"\n\nconst langNoIndexOffset = 1330\n\n// langNoIndex is a bit vector of all 3-letter language codes that are not used as an index\n// in lookup tables. The language ids for these language codes are derived directly\n// from the letters and are not consecutive.\n// Size: 2197 bytes, 2197 elements\nvar langNoIndex = [2197]uint8{\n\t// Entry 0 - 3F\n\t0xff, 0xf8, 0xed, 0xfe, 0xeb, 0xd3, 0x3b, 0xd2,\n\t0xfb, 0xbf, 0x7a, 0xfa, 0x37, 0x1d, 0x3c, 0x57,\n\t0x6e, 0x97, 0x73, 0x38, 0xfb, 0xea, 0xbf, 0x70,\n\t0xad, 0x03, 0xff, 0xff, 0xcf, 0x05, 0x84, 0x72,\n\t0xe9, 0xbf, 0xfd, 0xbf, 0xbf, 0xf7, 0xfd, 0x77,\n\t0x0f, 0xff, 0xef, 0x6f, 0xff, 0xfb, 0xdf, 0xe2,\n\t0xc9, 0xf8, 0x7f, 0x7e, 0x4d, 0xbc, 0x0a, 0x6a,\n\t0x7c, 0xea, 0xe3, 0xfa, 0x7a, 0xbf, 0x67, 0xff,\n\t// Entry 40 - 7F\n\t0xff, 0xff, 0xff, 0xdf, 0x2a, 0x54, 0x91, 0xc0,\n\t0x5d, 0xe3, 0x97, 0x14, 0x07, 0x20, 0xdd, 0xed,\n\t0x9f, 0x3f, 0xc9, 0x21, 0xf8, 0x3f, 0x94, 0x35,\n\t0x7c, 0x5f, 0xff, 0x5f, 0x8e, 0x6e, 0xdf, 0xff,\n\t0xff, 0xff, 0x55, 0x7c, 0xd3, 0xfd, 0xbf, 0xb5,\n\t0x7b, 0xdf, 0x7f, 0xf7, 0xca, 0xfe, 0xdb, 0xa3,\n\t0xa8, 0xff, 0x1f, 0x67, 0x7d, 0xeb, 0xef, 0xce,\n\t0xff, 0xff, 0x9f, 0xff, 0xb7, 0xef, 0xfe, 0xcf,\n\t// Entry 80 - BF\n\t0xdb, 0xff, 0xf3, 0xcd, 0xfb, 0x7f, 0xff, 0xff,\n\t0xbb, 0xee, 0xf7, 0xbd, 0xdb, 0xff, 0x5f, 0xf7,\n\t0xfd, 0xf2, 0xfd, 0xff, 0x5e, 0x2f, 0x3b, 0xba,\n\t0x7e, 0xff, 0xff, 0xfe, 0xf7, 0xff, 0xdd, 0xff,\n\t0xfd, 0xdf, 0xfb, 0xfe, 0x9d, 0xb4, 0xd3, 0xff,\n\t0xef, 0xff, 0xdf, 0xf7, 0x7f, 0xb7, 0xfd, 0xd5,\n\t0xa5, 0x77, 0x40, 0xff, 0x9c, 0xc1, 0x41, 0x2c,\n\t0x08, 0x21, 0x41, 0x00, 0x50, 0x40, 0x00, 0x80,\n\t// Entry C0 - FF\n\t0xfb, 0x4a, 0xf2, 0x9f, 0xb4, 0x42, 0x41, 0x96,\n\t0x1b, 0x14, 0x08, 0xf3, 0x2b, 0xe7, 0x17, 0x56,\n\t0x05, 0x7d, 0x0e, 0x1c, 0x37, 0x7f, 0xf3, 0xef,\n\t0x97, 0xff, 0x5d, 0x38, 0x64, 0x08, 0x00, 0x10,\n\t0xbc, 0x85, 0xaf, 0xdf, 0xff, 0xff, 0x7b, 0x35,\n\t0x3e, 0xc7, 0xc7, 0xdf, 0xff, 0x01, 0x81, 0x00,\n\t0xb0, 0x05, 0x80, 0x00, 0x20, 0x00, 0x00, 0x03,\n\t0x40, 0x00, 0x40, 0x92, 0x21, 0x50, 0xb1, 0x5d,\n\t// Entry 100 - 13F\n\t0xfd, 0xdc, 0xbe, 0x5e, 0x00, 0x00, 0x02, 0x64,\n\t0x0d, 0x19, 0x41, 0xdf, 0x79, 0x22, 0x00, 0x00,\n\t0x00, 0x5e, 0x64, 0xdc, 0x24, 0xe5, 0xd9, 0xe3,\n\t0xfe, 0xff, 0xfd, 0xcb, 0x9f, 0x14, 0x41, 0x0c,\n\t0x86, 0x00, 0xd1, 0x00, 0xf0, 0xc7, 0x67, 0x5f,\n\t0x56, 0x99, 0x5e, 0xb5, 0x6c, 0xaf, 0x03, 0x00,\n\t0x02, 0x00, 0x00, 0x00, 0xc0, 0x37, 0xda, 0x56,\n\t0x90, 0x6d, 0x01, 0x2e, 0x96, 0x69, 0x20, 0xfb,\n\t// Entry 140 - 17F\n\t0xff, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x0c, 0x16,\n\t0x03, 0x00, 0x00, 0xb0, 0x14, 0x23, 0x50, 0x06,\n\t0x0a, 0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x09,\n\t0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x10,\n\t0x00, 0x00, 0x44, 0x00, 0x00, 0x10, 0x00, 0x05,\n\t0x08, 0x00, 0x00, 0x05, 0x00, 0x80, 0x28, 0x04,\n\t0x00, 0x00, 0x40, 0xd5, 0x2d, 0x00, 0x64, 0x35,\n\t0x24, 0x52, 0xf4, 0xd5, 0xbf, 0x62, 0xc9, 0x03,\n\t// Entry 180 - 1BF\n\t0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x04, 0x13, 0x39, 0x01, 0xdd, 0x57, 0x98,\n\t0x21, 0x18, 0x81, 0x08, 0x00, 0x01, 0x40, 0x82,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x01, 0x40, 0x00, 0x44, 0x00, 0x00, 0x80, 0xea,\n\t0xa9, 0x39, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,\n\t// Entry 1C0 - 1FF\n\t0x00, 0x03, 0x28, 0x05, 0x00, 0x00, 0x00, 0x00,\n\t0x04, 0x20, 0x04, 0xa6, 0x00, 0x04, 0x00, 0x00,\n\t0x81, 0x50, 0x00, 0x00, 0x00, 0x11, 0x84, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x55,\n\t0x02, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x40,\n\t0x30, 0x83, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x1e, 0xcd, 0xbf, 0x7a, 0xbf,\n\t// Entry 200 - 23F\n\t0xdf, 0xc3, 0x83, 0x82, 0xc0, 0xfb, 0x57, 0x27,\n\t0xed, 0x55, 0xe7, 0x01, 0x00, 0x20, 0xb2, 0xc5,\n\t0xa4, 0x45, 0x25, 0x9b, 0x02, 0xdf, 0xe1, 0xdf,\n\t0x03, 0x44, 0x08, 0x90, 0x01, 0x04, 0x81, 0xe3,\n\t0x92, 0x54, 0xdb, 0x28, 0xd3, 0x5f, 0xfe, 0x6d,\n\t0x79, 0xed, 0x1c, 0x7f, 0x04, 0x08, 0x00, 0x01,\n\t0x21, 0x12, 0x64, 0x5f, 0xdd, 0x0e, 0x85, 0x4f,\n\t0x40, 0x40, 0x00, 0x04, 0xf1, 0xfd, 0x3d, 0x54,\n\t// Entry 240 - 27F\n\t0xe8, 0x03, 0xb4, 0x27, 0x23, 0x0d, 0x00, 0x00,\n\t0x20, 0x7b, 0x78, 0x02, 0x07, 0x84, 0x00, 0xf0,\n\t0xbb, 0x7e, 0x5a, 0x00, 0x18, 0x04, 0x81, 0x00,\n\t0x00, 0x00, 0x80, 0x10, 0x90, 0x1c, 0x01, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x00, 0x04,\n\t0x08, 0xa0, 0x70, 0xa5, 0x0c, 0x40, 0x00, 0x00,\n\t0x91, 0x24, 0x04, 0x68, 0x00, 0x20, 0x70, 0xff,\n\t0x7b, 0x7f, 0x70, 0x00, 0x05, 0x9b, 0xdd, 0x66,\n\t// Entry 280 - 2BF\n\t0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x05,\n\t0xb5, 0xb6, 0x80, 0x08, 0x04, 0x00, 0x04, 0x51,\n\t0xe2, 0xef, 0xfd, 0x3f, 0x05, 0x09, 0x08, 0x05,\n\t0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,\n\t0x0c, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x60,\n\t0xe7, 0x48, 0x00, 0x81, 0x20, 0xc0, 0x05, 0x80,\n\t0x03, 0x00, 0x00, 0x00, 0x8c, 0x50, 0x40, 0x04,\n\t0x84, 0x47, 0x84, 0x40, 0x20, 0x10, 0x00, 0x20,\n\t// Entry 2C0 - 2FF\n\t0x02, 0x50, 0x80, 0x11, 0x00, 0x99, 0x6c, 0xe2,\n\t0x50, 0x27, 0x1d, 0x11, 0x29, 0x0e, 0x59, 0xe9,\n\t0x33, 0x08, 0x00, 0x20, 0x04, 0x40, 0x10, 0x00,\n\t0x00, 0x00, 0x50, 0x44, 0x92, 0x49, 0xd6, 0x5d,\n\t0xa7, 0x81, 0x47, 0x97, 0xfb, 0x00, 0x10, 0x00,\n\t0x08, 0x00, 0x80, 0x00, 0x40, 0x04, 0x00, 0x01,\n\t0x02, 0x00, 0x01, 0x40, 0x80, 0x00, 0x40, 0x08,\n\t0xd8, 0xeb, 0xf6, 0x39, 0xc4, 0x8d, 0x12, 0x00,\n\t// Entry 300 - 33F\n\t0x00, 0x0c, 0x04, 0x01, 0x20, 0x20, 0xdd, 0xa0,\n\t0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,\n\t0x04, 0x10, 0xd0, 0x9d, 0x95, 0x13, 0x04, 0x80,\n\t0x00, 0x01, 0xd0, 0x16, 0x40, 0x00, 0x10, 0xb0,\n\t0x10, 0x62, 0x4c, 0xd2, 0x02, 0x01, 0x4a, 0x00,\n\t0x46, 0x04, 0x00, 0x08, 0x02, 0x00, 0x20, 0x80,\n\t0x00, 0x80, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00,\n\t0x00, 0xf0, 0xd8, 0x6f, 0x15, 0x02, 0x08, 0x00,\n\t// Entry 340 - 37F\n\t0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01,\n\t0x00, 0x10, 0x00, 0x00, 0x00, 0xf0, 0x84, 0xe3,\n\t0xdd, 0xbf, 0xf9, 0xf9, 0x3b, 0x7f, 0x7f, 0xdb,\n\t0xfd, 0xfc, 0xfe, 0xdf, 0xff, 0xfd, 0xff, 0xf6,\n\t0xfb, 0xfc, 0xf7, 0x1f, 0xff, 0xb3, 0x6c, 0xff,\n\t0xd9, 0xad, 0xdf, 0xfe, 0xef, 0xba, 0xdf, 0xff,\n\t0xff, 0xff, 0xb7, 0xdd, 0x7d, 0xbf, 0xab, 0x7f,\n\t0xfd, 0xfd, 0xdf, 0x2f, 0x9c, 0xdf, 0xf3, 0x6f,\n\t// Entry 380 - 3BF\n\t0xdf, 0xdd, 0xff, 0xfb, 0xee, 0xd2, 0xab, 0x5f,\n\t0xd5, 0xdf, 0x7f, 0xff, 0xeb, 0xff, 0xe4, 0x4d,\n\t0xf9, 0xff, 0xfe, 0xf7, 0xfd, 0xdf, 0xfb, 0xbf,\n\t0xee, 0xdb, 0x6f, 0xef, 0xff, 0x7f, 0xff, 0xff,\n\t0xf7, 0x5f, 0xd3, 0x3b, 0xfd, 0xd9, 0xdf, 0xeb,\n\t0xbc, 0x08, 0x05, 0x24, 0xff, 0x07, 0x70, 0xfe,\n\t0xe6, 0x5e, 0x00, 0x08, 0x00, 0x83, 0x7d, 0x1f,\n\t0x06, 0xe6, 0x72, 0x60, 0xd1, 0x3c, 0x7f, 0x44,\n\t// Entry 3C0 - 3FF\n\t0x02, 0x30, 0x9f, 0x7a, 0x16, 0xbd, 0x7f, 0x57,\n\t0xf2, 0xff, 0x31, 0xff, 0xf2, 0x1e, 0x90, 0xf7,\n\t0xf1, 0xf9, 0x45, 0x80, 0x01, 0x02, 0x00, 0x20,\n\t0x40, 0x54, 0x9f, 0x8a, 0xdf, 0xf9, 0x6e, 0x11,\n\t0x86, 0x51, 0xc0, 0xf3, 0xfb, 0x47, 0x40, 0x03,\n\t0x05, 0xd1, 0x50, 0x5c, 0x00, 0x40, 0x00, 0x10,\n\t0x04, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x17, 0xd2,\n\t0xb9, 0xfd, 0xfc, 0xba, 0xfe, 0xef, 0xc7, 0xbe,\n\t// Entry 400 - 43F\n\t0x53, 0x6f, 0xdf, 0xe7, 0xdb, 0x65, 0xbb, 0x7f,\n\t0xfa, 0xff, 0x77, 0xf3, 0xef, 0xbf, 0xfd, 0xf7,\n\t0xdf, 0xdf, 0x9b, 0x7f, 0xff, 0xff, 0x7f, 0x6f,\n\t0xf7, 0xfb, 0xeb, 0xdf, 0xbc, 0xff, 0xbf, 0x6b,\n\t0x7b, 0xfb, 0xff, 0xce, 0x76, 0xbd, 0xf7, 0xf7,\n\t0xdf, 0xdc, 0xf7, 0xf7, 0xff, 0xdf, 0xf3, 0xfe,\n\t0xef, 0xff, 0xff, 0xff, 0xb6, 0x7f, 0x7f, 0xde,\n\t0xf7, 0xb9, 0xeb, 0x77, 0xff, 0xfb, 0xbf, 0xdf,\n\t// Entry 440 - 47F\n\t0xfd, 0xfe, 0xfb, 0xff, 0xfe, 0xeb, 0x1f, 0x7d,\n\t0x2f, 0xfd, 0xb6, 0xb5, 0xa5, 0xfc, 0xff, 0xfd,\n\t0x7f, 0x4e, 0xbf, 0x8f, 0xae, 0xff, 0xee, 0xdf,\n\t0x7f, 0xf7, 0x73, 0x02, 0x02, 0x04, 0xfc, 0xf7,\n\t0xff, 0xb7, 0xd7, 0xef, 0xfe, 0xcd, 0xf5, 0xce,\n\t0xe2, 0x8e, 0xe7, 0xbf, 0xb7, 0xff, 0x56, 0xfd,\n\t0xcd, 0xff, 0xfb, 0xff, 0xdf, 0xd7, 0xea, 0xff,\n\t0xe5, 0x5f, 0x6d, 0x0f, 0xa7, 0x51, 0x06, 0xc4,\n\t// Entry 480 - 4BF\n\t0x93, 0x50, 0x5d, 0xaf, 0xa6, 0xff, 0x99, 0xfb,\n\t0x63, 0x1d, 0x53, 0xff, 0xef, 0xb7, 0x35, 0x20,\n\t0x14, 0x00, 0x55, 0x51, 0xc2, 0x65, 0xf5, 0x41,\n\t0xe2, 0xff, 0xfc, 0xdf, 0x02, 0x85, 0xc5, 0x05,\n\t0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x05,\n\t0x41, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x51, 0x20, 0x05, 0x04, 0x01, 0x00, 0x00,\n\t0x06, 0x11, 0x20, 0x00, 0x18, 0x01, 0x92, 0xf1,\n\t// Entry 4C0 - 4FF\n\t0xfd, 0x47, 0x69, 0x06, 0x95, 0x06, 0x57, 0xed,\n\t0xfb, 0x4d, 0x1c, 0x6b, 0x83, 0x04, 0x62, 0x40,\n\t0x00, 0x11, 0x42, 0x00, 0x00, 0x00, 0x54, 0x83,\n\t0xb8, 0x4f, 0x10, 0x8e, 0x89, 0x46, 0xde, 0xf7,\n\t0x13, 0x31, 0x00, 0x20, 0x00, 0x00, 0x00, 0x90,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x10, 0x00,\n\t0x01, 0x00, 0x00, 0xf0, 0x5b, 0xf4, 0xbe, 0x3d,\n\t0xbe, 0xcf, 0xf7, 0xaf, 0x42, 0x04, 0x84, 0x41,\n\t// Entry 500 - 53F\n\t0x30, 0xff, 0x79, 0x72, 0x04, 0x00, 0x00, 0x49,\n\t0x2d, 0x14, 0x27, 0x5f, 0xed, 0xf1, 0x3f, 0xe7,\n\t0x3f, 0x00, 0x00, 0x02, 0xc6, 0xa0, 0x1e, 0xf8,\n\t0xbb, 0xff, 0xfd, 0xfb, 0xb7, 0xfd, 0xe7, 0xf7,\n\t0xfd, 0xfc, 0xd5, 0xed, 0x47, 0xf4, 0x7e, 0x10,\n\t0x01, 0x01, 0x84, 0x6d, 0xff, 0xf7, 0xdd, 0xf9,\n\t0x5b, 0x05, 0x86, 0xed, 0xf5, 0x77, 0xbd, 0x3c,\n\t0x00, 0x00, 0x00, 0x42, 0x71, 0x42, 0x00, 0x40,\n\t// Entry 540 - 57F\n\t0x00, 0x00, 0x01, 0x43, 0x19, 0x24, 0x08, 0x00,\n\t0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n\t0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n\t0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n\t0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n\t0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n\t0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n\t0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n\t// Entry 580 - 5BF\n\t0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n\t0xff, 0xab, 0xbd, 0xe7, 0x57, 0xee, 0x13, 0x5d,\n\t0x09, 0xc1, 0x40, 0x21, 0xfa, 0x17, 0x01, 0x80,\n\t0x00, 0x00, 0x00, 0x00, 0xf0, 0xce, 0xfb, 0xbf,\n\t0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,\n\t0x00, 0x30, 0x15, 0xa3, 0x10, 0x00, 0x00, 0x00,\n\t0x11, 0x04, 0x16, 0x00, 0x00, 0x02, 0x20, 0x81,\n\t0xa3, 0x01, 0x50, 0x00, 0x00, 0x83, 0x11, 0x40,\n\t// Entry 5C0 - 5FF\n\t0x00, 0x00, 0x00, 0xf0, 0xdd, 0x7b, 0xbe, 0x02,\n\t0xaa, 0x10, 0x5d, 0x98, 0x52, 0x00, 0x80, 0x20,\n\t0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x02, 0x02,\n\t0x3d, 0x40, 0x10, 0x02, 0x10, 0x61, 0x5a, 0x9d,\n\t0x31, 0x00, 0x00, 0x00, 0x01, 0x18, 0x02, 0x20,\n\t0x00, 0x00, 0x01, 0x00, 0x42, 0x00, 0x20, 0x00,\n\t0x00, 0x1f, 0xdf, 0xd2, 0xb9, 0xff, 0xfd, 0x3f,\n\t0x1f, 0x98, 0xcf, 0x9c, 0xff, 0xaf, 0x5f, 0xfe,\n\t// Entry 600 - 63F\n\t0x7b, 0x4b, 0x40, 0x10, 0xe1, 0xfd, 0xaf, 0xd9,\n\t0xb7, 0xf6, 0xfb, 0xb3, 0xc7, 0xff, 0x6f, 0xf1,\n\t0x73, 0xb1, 0x7f, 0x9f, 0x7f, 0xbd, 0xfc, 0xb7,\n\t0xee, 0x1c, 0xfa, 0xcb, 0xef, 0xdd, 0xf9, 0xbd,\n\t0x6e, 0xae, 0x55, 0xfd, 0x6e, 0x81, 0x76, 0x9f,\n\t0xd4, 0x77, 0xf5, 0x7d, 0xfb, 0xff, 0xeb, 0xfe,\n\t0xbe, 0x5f, 0x46, 0x5b, 0xe9, 0x5f, 0x50, 0x18,\n\t0x02, 0xfa, 0xf7, 0x9d, 0x15, 0x97, 0x05, 0x0f,\n\t// Entry 640 - 67F\n\t0x75, 0xc4, 0x7d, 0x81, 0x92, 0xf5, 0x57, 0x6c,\n\t0xff, 0xe4, 0xef, 0x6f, 0xff, 0xfc, 0xdd, 0xde,\n\t0xfc, 0xfd, 0x76, 0x5f, 0x7a, 0x3f, 0x00, 0x98,\n\t0x02, 0xfb, 0xa3, 0xef, 0xf3, 0xd6, 0xf2, 0xff,\n\t0xb9, 0xda, 0x7d, 0xd0, 0x3e, 0x15, 0x7b, 0xb4,\n\t0xf5, 0x3e, 0xff, 0xff, 0xf1, 0xf7, 0xff, 0xe7,\n\t0x5f, 0xff, 0xff, 0x9e, 0xdf, 0xf6, 0xd7, 0xb9,\n\t0xef, 0x27, 0x80, 0xbb, 0xc5, 0xff, 0xff, 0xe3,\n\t// Entry 680 - 6BF\n\t0x97, 0x9d, 0xbf, 0x9f, 0xf7, 0xc7, 0xfd, 0x37,\n\t0xce, 0x7f, 0x44, 0x1d, 0x73, 0x7f, 0xf8, 0xda,\n\t0x5d, 0xce, 0x7d, 0x06, 0xb9, 0xea, 0x79, 0xa0,\n\t0x1a, 0x20, 0x00, 0x30, 0x02, 0x04, 0x24, 0x08,\n\t0x04, 0x00, 0x00, 0x40, 0xd4, 0x02, 0x04, 0x00,\n\t0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x09, 0x06,\n\t0x50, 0x00, 0x08, 0x00, 0x00, 0x00, 0x24, 0x00,\n\t0x04, 0x00, 0x10, 0xdc, 0x58, 0xd7, 0x0d, 0x0f,\n\t// Entry 6C0 - 6FF\n\t0x54, 0x4d, 0xf1, 0x16, 0x44, 0xd5, 0x42, 0x08,\n\t0x40, 0x02, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00,\n\t0x00, 0xdc, 0xfb, 0xcb, 0x0e, 0x58, 0x48, 0x41,\n\t0x24, 0x20, 0x04, 0x00, 0x30, 0x12, 0x40, 0x00,\n\t0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x01, 0x00, 0x00, 0x00, 0x80, 0x10, 0x10, 0xab,\n\t0x6d, 0x93, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x80, 0x80, 0x25, 0x00, 0x00,\n\t// Entry 700 - 73F\n\t0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,\n\t0x80, 0x86, 0xc2, 0x00, 0x00, 0x01, 0x00, 0x01,\n\t0xff, 0x18, 0x02, 0x00, 0x02, 0xf0, 0xfd, 0x79,\n\t0x3b, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,\n\t0x03, 0x00, 0x09, 0x20, 0x00, 0x00, 0x01, 0x00,\n\t0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 740 - 77F\n\t0x00, 0x00, 0x00, 0xef, 0xd5, 0xfd, 0xcf, 0x7e,\n\t0xb0, 0x11, 0x00, 0x00, 0x00, 0x92, 0x01, 0x46,\n\t0xcd, 0xf9, 0x5c, 0x00, 0x01, 0x00, 0x30, 0x04,\n\t0x04, 0x55, 0x00, 0x01, 0x04, 0xf4, 0x3f, 0x4a,\n\t0x01, 0x00, 0x00, 0xb0, 0x80, 0x20, 0x55, 0x75,\n\t0x97, 0x7c, 0xdf, 0x31, 0xcc, 0x68, 0xd1, 0x03,\n\t0xd5, 0x57, 0x27, 0x14, 0x01, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x2c, 0xf7, 0xcb, 0x1f, 0x14, 0x60,\n\t// Entry 780 - 7BF\n\t0x83, 0x68, 0x01, 0x10, 0x8b, 0x38, 0x8a, 0x01,\n\t0x00, 0x00, 0x20, 0x00, 0x24, 0x44, 0x00, 0x00,\n\t0x10, 0x03, 0x31, 0x02, 0x01, 0x00, 0x00, 0xf0,\n\t0xf5, 0xff, 0xd5, 0x97, 0xbc, 0x70, 0xd6, 0x78,\n\t0x78, 0x15, 0x50, 0x05, 0xa4, 0x84, 0xa9, 0x41,\n\t0x00, 0x00, 0x00, 0x6b, 0x39, 0x52, 0x74, 0x40,\n\t0xe8, 0x30, 0x90, 0x6a, 0x92, 0x00, 0x00, 0x02,\n\t0xff, 0xef, 0xff, 0x4b, 0x85, 0x53, 0xf4, 0xed,\n\t// Entry 7C0 - 7FF\n\t0xdd, 0xbf, 0xf2, 0x5d, 0xc7, 0x0c, 0xd5, 0x42,\n\t0xfc, 0xff, 0xf7, 0x1f, 0x00, 0x80, 0x40, 0x56,\n\t0xcc, 0x16, 0x9e, 0xea, 0x35, 0x7d, 0xef, 0xff,\n\t0xbd, 0xa4, 0xaf, 0x01, 0x44, 0x18, 0x01, 0x4d,\n\t0x4e, 0x4a, 0x08, 0x50, 0x28, 0x30, 0xe0, 0x80,\n\t0x10, 0x20, 0x24, 0x00, 0xff, 0x2f, 0xd3, 0x60,\n\t0xfe, 0x01, 0x02, 0x88, 0x2a, 0x40, 0x16, 0x01,\n\t0x01, 0x15, 0x2b, 0x3c, 0x01, 0x00, 0x00, 0x10,\n\t// Entry 800 - 83F\n\t0x90, 0x49, 0x41, 0x02, 0x02, 0x01, 0xe1, 0xbf,\n\t0xbf, 0x03, 0x00, 0x00, 0x10, 0xdc, 0xa3, 0xd1,\n\t0x40, 0x9c, 0x44, 0xdf, 0xf5, 0x8f, 0x66, 0xb3,\n\t0x55, 0x20, 0xd4, 0xc1, 0xd8, 0x30, 0x3d, 0x80,\n\t0x00, 0x00, 0x00, 0x04, 0xd4, 0x11, 0xc5, 0x84,\n\t0x2f, 0x50, 0x00, 0x22, 0x50, 0x6e, 0xbd, 0x93,\n\t0x07, 0x00, 0x20, 0x10, 0x84, 0xb2, 0x45, 0x10,\n\t0x06, 0x44, 0x00, 0x00, 0x12, 0x02, 0x11, 0x00,\n\t// Entry 840 - 87F\n\t0xf0, 0xfb, 0xfd, 0x7f, 0x05, 0x00, 0x16, 0x89,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x03,\n\t0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x02, 0x28,\n\t0x84, 0x00, 0x21, 0xc0, 0x23, 0x24, 0x00, 0x00,\n\t0x00, 0xcb, 0xe4, 0x3a, 0x46, 0x88, 0x54, 0xf1,\n\t0xef, 0xff, 0x7f, 0x12, 0x01, 0x01, 0x84, 0x50,\n\t0x07, 0xfc, 0xff, 0xff, 0x0f, 0x01, 0x00, 0x40,\n\t0x10, 0x38, 0x01, 0x01, 0x1c, 0x12, 0x40, 0xe1,\n\t// Entry 880 - 8BF\n\t0x76, 0x16, 0x08, 0x03, 0x10, 0x00, 0x00, 0x00,\n\t0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24,\n\t0x0a, 0x00, 0x80, 0x00, 0x00,\n}\n\n// altLangISO3 holds an alphabetically sorted list of 3-letter language code alternatives\n// to 2-letter language codes that cannot be derived using the method described above.\n// Each 3-letter code is followed by its 1-byte langID.\nconst altLangISO3 tag.Index = \"---\\x00cor\\x00hbs\\x01heb\\x02kin\\x03spa\\x04yid\\x05\\xff\\xff\\xff\\xff\"\n\n// altLangIndex is used to convert indexes in altLangISO3 to langIDs.\n// Size: 12 bytes, 6 elements\nvar altLangIndex = [6]uint16{\n\t0x0281, 0x0407, 0x01fb, 0x03e5, 0x013e, 0x0208,\n}\n\n// AliasMap maps langIDs to their suggested replacements.\n// Size: 772 bytes, 193 elements\nvar AliasMap = [193]FromTo{\n\t0:   {From: 0x82, To: 0x88},\n\t1:   {From: 0x187, To: 0x1ae},\n\t2:   {From: 0x1f3, To: 0x1e1},\n\t3:   {From: 0x1fb, To: 0x1bc},\n\t4:   {From: 0x208, To: 0x512},\n\t5:   {From: 0x20f, To: 0x20e},\n\t6:   {From: 0x310, To: 0x3dc},\n\t7:   {From: 0x347, To: 0x36f},\n\t8:   {From: 0x407, To: 0x432},\n\t9:   {From: 0x47a, To: 0x153},\n\t10:  {From: 0x490, To: 0x451},\n\t11:  {From: 0x4a2, To: 0x21},\n\t12:  {From: 0x53e, To: 0x544},\n\t13:  {From: 0x58f, To: 0x12d},\n\t14:  {From: 0x62b, To: 0x34},\n\t15:  {From: 0x62f, To: 0x14},\n\t16:  {From: 0x630, To: 0x1eb1},\n\t17:  {From: 0x651, To: 0x431},\n\t18:  {From: 0x662, To: 0x431},\n\t19:  {From: 0x6ed, To: 0x3a},\n\t20:  {From: 0x6f8, To: 0x1d7},\n\t21:  {From: 0x709, To: 0x3625},\n\t22:  {From: 0x73e, To: 0x21a1},\n\t23:  {From: 0x7b3, To: 0x56},\n\t24:  {From: 0x7b9, To: 0x299b},\n\t25:  {From: 0x7c5, To: 0x58},\n\t26:  {From: 0x7e6, To: 0x145},\n\t27:  {From: 0x80c, To: 0x5a},\n\t28:  {From: 0x815, To: 0x8d},\n\t29:  {From: 0x87e, To: 0x810},\n\t30:  {From: 0x8a8, To: 0x8b7},\n\t31:  {From: 0x8c3, To: 0xee3},\n\t32:  {From: 0x8fa, To: 0x1dc},\n\t33:  {From: 0x9ef, To: 0x331},\n\t34:  {From: 0xa36, To: 0x2c5},\n\t35:  {From: 0xa3d, To: 0xbf},\n\t36:  {From: 0xabe, To: 0x3322},\n\t37:  {From: 0xb38, To: 0x529},\n\t38:  {From: 0xb75, To: 0x265a},\n\t39:  {From: 0xb7e, To: 0xbc3},\n\t40:  {From: 0xb9b, To: 0x44e},\n\t41:  {From: 0xbbc, To: 0x4229},\n\t42:  {From: 0xbbf, To: 0x529},\n\t43:  {From: 0xbfe, To: 0x2da7},\n\t44:  {From: 0xc2e, To: 0x3181},\n\t45:  {From: 0xcb9, To: 0xf3},\n\t46:  {From: 0xd08, To: 0xfa},\n\t47:  {From: 0xdc8, To: 0x11a},\n\t48:  {From: 0xdd7, To: 0x32d},\n\t49:  {From: 0xdf8, To: 0xdfb},\n\t50:  {From: 0xdfe, To: 0x531},\n\t51:  {From: 0xe01, To: 0xdf3},\n\t52:  {From: 0xedf, To: 0x205a},\n\t53:  {From: 0xee9, To: 0x222e},\n\t54:  {From: 0xeee, To: 0x2e9a},\n\t55:  {From: 0xf39, To: 0x367},\n\t56:  {From: 0x10d0, To: 0x140},\n\t57:  {From: 0x1104, To: 0x2d0},\n\t58:  {From: 0x11a0, To: 0x1ec},\n\t59:  {From: 0x1279, To: 0x21},\n\t60:  {From: 0x1424, To: 0x15e},\n\t61:  {From: 0x1470, To: 0x14e},\n\t62:  {From: 0x151f, To: 0xd9b},\n\t63:  {From: 0x1523, To: 0x390},\n\t64:  {From: 0x1532, To: 0x19f},\n\t65:  {From: 0x1580, To: 0x210},\n\t66:  {From: 0x1583, To: 0x10d},\n\t67:  {From: 0x15a3, To: 0x3caf},\n\t68:  {From: 0x1630, To: 0x222e},\n\t69:  {From: 0x166a, To: 0x19b},\n\t70:  {From: 0x16c8, To: 0x136},\n\t71:  {From: 0x1700, To: 0x29f8},\n\t72:  {From: 0x1718, To: 0x194},\n\t73:  {From: 0x1727, To: 0xf3f},\n\t74:  {From: 0x177a, To: 0x178},\n\t75:  {From: 0x1809, To: 0x17b6},\n\t76:  {From: 0x1816, To: 0x18f3},\n\t77:  {From: 0x188a, To: 0x436},\n\t78:  {From: 0x1979, To: 0x1d01},\n\t79:  {From: 0x1a74, To: 0x2bb0},\n\t80:  {From: 0x1a8a, To: 0x1f8},\n\t81:  {From: 0x1b5a, To: 0x1fa},\n\t82:  {From: 0x1b86, To: 0x1515},\n\t83:  {From: 0x1d64, To: 0x2c9b},\n\t84:  {From: 0x2038, To: 0x37b1},\n\t85:  {From: 0x203d, To: 0x20dd},\n\t86:  {From: 0x2042, To: 0x2e00},\n\t87:  {From: 0x205a, To: 0x30b},\n\t88:  {From: 0x20e3, To: 0x274},\n\t89:  {From: 0x20ee, To: 0x263},\n\t90:  {From: 0x20f2, To: 0x22d},\n\t91:  {From: 0x20f9, To: 0x256},\n\t92:  {From: 0x210f, To: 0x21eb},\n\t93:  {From: 0x2135, To: 0x27d},\n\t94:  {From: 0x2160, To: 0x913},\n\t95:  {From: 0x2199, To: 0x121},\n\t96:  {From: 0x21ce, To: 0x1561},\n\t97:  {From: 0x21e6, To: 0x504},\n\t98:  {From: 0x21f4, To: 0x49f},\n\t99:  {From: 0x21fb, To: 0x269},\n\t100: {From: 0x222d, To: 0x121},\n\t101: {From: 0x2237, To: 0x121},\n\t102: {From: 0x2248, To: 0x217d},\n\t103: {From: 0x2262, To: 0x92a},\n\t104: {From: 0x2316, To: 0x3226},\n\t105: {From: 0x236a, To: 0x2835},\n\t106: {From: 0x2382, To: 0x3365},\n\t107: {From: 0x2472, To: 0x2c7},\n\t108: {From: 0x24e4, To: 0x2ff},\n\t109: {From: 0x24f0, To: 0x2fa},\n\t110: {From: 0x24fa, To: 0x31f},\n\t111: {From: 0x2550, To: 0xb5b},\n\t112: {From: 0x25a9, To: 0xe2},\n\t113: {From: 0x263e, To: 0x2d0},\n\t114: {From: 0x26c9, To: 0x26b4},\n\t115: {From: 0x26f9, To: 0x3c8},\n\t116: {From: 0x2727, To: 0x3caf},\n\t117: {From: 0x2755, To: 0x6a4},\n\t118: {From: 0x2765, To: 0x26b4},\n\t119: {From: 0x2789, To: 0x4358},\n\t120: {From: 0x27c9, To: 0x2001},\n\t121: {From: 0x28ea, To: 0x27b1},\n\t122: {From: 0x28ef, To: 0x2837},\n\t123: {From: 0x28fe, To: 0xaa5},\n\t124: {From: 0x2914, To: 0x351},\n\t125: {From: 0x2986, To: 0x2da7},\n\t126: {From: 0x29f0, To: 0x96b},\n\t127: {From: 0x2b1a, To: 0x38d},\n\t128: {From: 0x2bfc, To: 0x395},\n\t129: {From: 0x2c3f, To: 0x3caf},\n\t130: {From: 0x2ce1, To: 0x2201},\n\t131: {From: 0x2cfc, To: 0x3be},\n\t132: {From: 0x2d13, To: 0x597},\n\t133: {From: 0x2d47, To: 0x148},\n\t134: {From: 0x2d48, To: 0x148},\n\t135: {From: 0x2dff, To: 0x2f1},\n\t136: {From: 0x2e08, To: 0x19cc},\n\t137: {From: 0x2e10, To: 0xc45},\n\t138: {From: 0x2e1a, To: 0x2d95},\n\t139: {From: 0x2e21, To: 0x292},\n\t140: {From: 0x2e54, To: 0x7d},\n\t141: {From: 0x2e65, To: 0x2282},\n\t142: {From: 0x2e97, To: 0x1a4},\n\t143: {From: 0x2ea0, To: 0x2e9b},\n\t144: {From: 0x2eef, To: 0x2ed7},\n\t145: {From: 0x3193, To: 0x3c4},\n\t146: {From: 0x3366, To: 0x338e},\n\t147: {From: 0x342a, To: 0x3dc},\n\t148: {From: 0x34ee, To: 0x18d0},\n\t149: {From: 0x35c8, To: 0x2c9b},\n\t150: {From: 0x35e6, To: 0x412},\n\t151: {From: 0x35f5, To: 0x24b},\n\t152: {From: 0x360d, To: 0x1dc},\n\t153: {From: 0x3658, To: 0x246},\n\t154: {From: 0x3676, To: 0x3f4},\n\t155: {From: 0x36fd, To: 0x445},\n\t156: {From: 0x3747, To: 0x3b42},\n\t157: {From: 0x37c0, To: 0x121},\n\t158: {From: 0x3816, To: 0x38f2},\n\t159: {From: 0x382a, To: 0x2b48},\n\t160: {From: 0x382b, To: 0x2c9b},\n\t161: {From: 0x382f, To: 0xa9},\n\t162: {From: 0x3832, To: 0x3228},\n\t163: {From: 0x386c, To: 0x39a6},\n\t164: {From: 0x3892, To: 0x3fc0},\n\t165: {From: 0x38a0, To: 0x45f},\n\t166: {From: 0x38a5, To: 0x39d7},\n\t167: {From: 0x38b4, To: 0x1fa4},\n\t168: {From: 0x38b5, To: 0x2e9a},\n\t169: {From: 0x38fa, To: 0x38f1},\n\t170: {From: 0x395c, To: 0x47e},\n\t171: {From: 0x3b4e, To: 0xd91},\n\t172: {From: 0x3b78, To: 0x137},\n\t173: {From: 0x3c99, To: 0x4bc},\n\t174: {From: 0x3fbd, To: 0x100},\n\t175: {From: 0x4208, To: 0xa91},\n\t176: {From: 0x42be, To: 0x573},\n\t177: {From: 0x42f9, To: 0x3f60},\n\t178: {From: 0x4378, To: 0x25a},\n\t179: {From: 0x43b8, To: 0xe6c},\n\t180: {From: 0x43cd, To: 0x10f},\n\t181: {From: 0x43d4, To: 0x4848},\n\t182: {From: 0x44af, To: 0x3322},\n\t183: {From: 0x44e3, To: 0x512},\n\t184: {From: 0x45ca, To: 0x2409},\n\t185: {From: 0x45dd, To: 0x26dc},\n\t186: {From: 0x4610, To: 0x48ae},\n\t187: {From: 0x46ae, To: 0x46a0},\n\t188: {From: 0x473e, To: 0x4745},\n\t189: {From: 0x4817, To: 0x3503},\n\t190: {From: 0x483b, To: 0x208b},\n\t191: {From: 0x4916, To: 0x31f},\n\t192: {From: 0x49a7, To: 0x523},\n}\n\n// Size: 193 bytes, 193 elements\nvar AliasTypes = [193]AliasType{\n\t// Entry 0 - 3F\n\t1, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 0, 0, 0, 0,\n\t1, 2, 1, 1, 2, 0, 0, 1, 0, 1, 2, 1, 1, 0, 0, 0,\n\t0, 2, 1, 1, 0, 2, 0, 0, 1, 0, 1, 0, 0, 1, 2, 1,\n\t1, 1, 1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 1, 0, 1,\n\t// Entry 40 - 7F\n\t1, 2, 2, 0, 0, 1, 2, 0, 1, 0, 1, 1, 1, 1, 0, 0,\n\t2, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0,\n\t0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 2, 0,\n\t1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,\n\t// Entry 80 - BF\n\t1, 0, 0, 1, 0, 2, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0,\n\t0, 1, 1, 2, 0, 0, 2, 0, 0, 1, 1, 1, 0, 0, 0, 0,\n\t0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 2, 0,\n\t0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1,\n\t// Entry C0 - FF\n\t1,\n}\n\nconst (\n\t_Latn = 91\n\t_Hani = 57\n\t_Hans = 59\n\t_Hant = 60\n\t_Qaaa = 149\n\t_Qaai = 157\n\t_Qabx = 198\n\t_Zinh = 255\n\t_Zyyy = 260\n\t_Zzzz = 261\n)\n\n// script is an alphabetically sorted list of ISO 15924 codes. The index\n// of the script in the string, divided by 4, is the internal scriptID.\nconst script tag.Index = \"\" + // Size: 1052 bytes\n\t\"----AdlmAfakAghbAhomArabAranArmiArmnAvstBaliBamuBassBatkBengBhksBlisBopo\" +\n\t\"BrahBraiBugiBuhdCakmCansCariChamCherChrsCirtCoptCpmnCprtCyrlCyrsDevaDiak\" +\n\t\"DogrDsrtDuplEgydEgyhEgypElbaElymEthiGeokGeorGlagGongGonmGothGranGrekGujr\" +\n\t\"GuruHanbHangHaniHanoHansHantHatrHebrHiraHluwHmngHmnpHrktHungIndsItalJamo\" +\n\t\"JavaJpanJurcKaliKanaKawiKharKhmrKhojKitlKitsKndaKoreKpelKthiLanaLaooLatf\" +\n\t\"LatgLatnLekeLepcLimbLinaLinbLisuLomaLyciLydiMahjMakaMandManiMarcMayaMedf\" +\n\t\"MendMercMeroMlymModiMongMoonMrooMteiMultMymrNagmNandNarbNbatNewaNkdbNkgb\" +\n\t\"NkooNshuOgamOlckOrkhOryaOsgeOsmaOugrPalmPaucPcunPelmPermPhagPhliPhlpPhlv\" +\n\t\"PhnxPiqdPlrdPrtiPsinQaaaQaabQaacQaadQaaeQaafQaagQaahQaaiQaajQaakQaalQaam\" +\n\t\"QaanQaaoQaapQaaqQaarQaasQaatQaauQaavQaawQaaxQaayQaazQabaQabbQabcQabdQabe\" +\n\t\"QabfQabgQabhQabiQabjQabkQablQabmQabnQaboQabpQabqQabrQabsQabtQabuQabvQabw\" +\n\t\"QabxRanjRjngRohgRoroRunrSamrSaraSarbSaurSgnwShawShrdShuiSiddSindSinhSogd\" +\n\t\"SogoSoraSoyoSundSunuSyloSyrcSyreSyrjSyrnTagbTakrTaleTaluTamlTangTavtTelu\" +\n\t\"TengTfngTglgThaaThaiTibtTirhTnsaTotoUgarVaiiVispVithWaraWchoWoleXpeoXsux\" +\n\t\"YeziYiiiZanbZinhZmthZsyeZsymZxxxZyyyZzzz\\xff\\xff\\xff\\xff\"\n\n// suppressScript is an index from langID to the dominant script for that language,\n// if it exists.  If a script is given, it should be suppressed from the language tag.\n// Size: 1330 bytes, 1330 elements\nvar suppressScript = [1330]uint8{\n\t// Entry 0 - 3F\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 40 - 7F\n\t0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,\n\t// Entry 80 - BF\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry C0 - FF\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 100 - 13F\n\t0x5b, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0xed, 0x00, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00,\n\t0x00, 0x5b, 0x00, 0x00, 0x5b, 0x00, 0x5b, 0x00,\n\t// Entry 140 - 17F\n\t0x5b, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00,\n\t0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00,\n\t0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00,\n\t0x00, 0x5b, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x5b, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 180 - 1BF\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x5b, 0x35, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x22, 0x00,\n\t// Entry 1C0 - 1FF\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x5b, 0x5b, 0x00, 0x5b, 0x5b, 0x00, 0x08,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00,\n\t0x5b, 0x5b, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 200 - 23F\n\t0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 240 - 27F\n\t0x00, 0x00, 0x20, 0x00, 0x00, 0x5b, 0x00, 0x00,\n\t0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x53, 0x00, 0x00, 0x54, 0x00, 0x22, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 280 - 2BF\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00,\n\t0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 2C0 - 2FF\n\t0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,\n\t// Entry 300 - 33F\n\t0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x5b,\n\t0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00,\n\t// Entry 340 - 37F\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00,\n\t0x5b, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b,\n\t0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x5b,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x5b, 0x00,\n\t0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 380 - 3BF\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x5b, 0x00, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00,\n\t// Entry 3C0 - 3FF\n\t0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00,\n\t0x00, 0x5b, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x20, 0x00, 0x00, 0x5b, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 400 - 43F\n\t0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00,\n\t0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b,\n\t0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 440 - 47F\n\t0x00, 0x00, 0x00, 0x00, 0x5b, 0x5b, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0xe9, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x2c,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b,\n\t0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00,\n\t// Entry 480 - 4BF\n\t0x5b, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00,\n\t0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 4C0 - 4FF\n\t0x5b, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 500 - 53F\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b,\n\t0x00, 0x00,\n}\n\nconst (\n\t_001 = 1\n\t_419 = 31\n\t_BR  = 65\n\t_CA  = 73\n\t_ES  = 111\n\t_GB  = 124\n\t_MD  = 189\n\t_PT  = 239\n\t_UK  = 307\n\t_US  = 310\n\t_ZZ  = 358\n\t_XA  = 324\n\t_XC  = 326\n\t_XK  = 334\n)\n\n// isoRegionOffset needs to be added to the index of regionISO to obtain the regionID\n// for 2-letter ISO codes. (The first isoRegionOffset regionIDs are reserved for\n// the UN.M49 codes used for groups.)\nconst isoRegionOffset = 32\n\n// regionTypes defines the status of a region for various standards.\n// Size: 359 bytes, 359 elements\nvar regionTypes = [359]uint8{\n\t// Entry 0 - 3F\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t// Entry 40 - 7F\n\t0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x04, 0x06,\n\t0x04, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x04, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x00,\n\t0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x00, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t// Entry 80 - BF\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x00, 0x04, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t// Entry C0 - FF\n\t0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x00, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04,\n\t0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x00, 0x06, 0x06, 0x00, 0x06, 0x05, 0x05, 0x05,\n\t0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,\n\t// Entry 100 - 13F\n\t0x05, 0x05, 0x05, 0x06, 0x00, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x02, 0x06, 0x04, 0x06, 0x06,\n\t0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06,\n\t// Entry 140 - 17F\n\t0x06, 0x06, 0x00, 0x06, 0x05, 0x05, 0x05, 0x05,\n\t0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,\n\t0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,\n\t0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x06,\n\t0x06, 0x04, 0x06, 0x06, 0x04, 0x06, 0x05,\n}\n\n// regionISO holds a list of alphabetically sorted 2-letter ISO region codes.\n// Each 2-letter codes is followed by two bytes with the following meaning:\n//   - [A-Z}{2}: the first letter of the 2-letter code plus these two\n//     letters form the 3-letter ISO code.\n//   - 0, n:     index into altRegionISO3.\nconst regionISO tag.Index = \"\" + // Size: 1312 bytes\n\t\"AAAAACSCADNDAEREAFFGAGTGAIIAALLBAMRMANNTAOGOAQTAARRGASSMATUTAUUSAWBWAXLA\" +\n\t\"AZZEBAIHBBRBBDGDBEELBFFABGGRBHHRBIDIBJENBLLMBMMUBNRNBOOLBQESBRRABSHSBTTN\" +\n\t\"BUURBVVTBWWABYLRBZLZCAANCCCKCDODCFAFCGOGCHHECIIVCKOKCLHLCMMRCNHNCOOLCPPT\" +\n\t\"CQ  CRRICS\\x00\\x00CTTECUUBCVPVCWUWCXXRCYYPCZZEDDDRDEEUDGGADJJIDKNKDMMADO\" +\n\t\"OMDYHYDZZAEA  ECCUEESTEGGYEHSHERRIESSPETTHEU\\x00\\x03EZ  FIINFJJIFKLKFMSM\" +\n\t\"FOROFQ\\x00\\x18FRRAFXXXGAABGBBRGDRDGEEOGFUFGGGYGHHAGIIBGLRLGMMBGNINGPLPGQ\" +\n\t\"NQGRRCGS\\x00\\x06GTTMGUUMGWNBGYUYHKKGHMMDHNNDHRRVHTTIHUUNHVVOIC  IDDNIERL\" +\n\t\"ILSRIMMNINNDIOOTIQRQIRRNISSLITTAJEEYJMAMJOORJPPNJTTNKEENKGGZKHHMKIIRKM\" +\n\t\"\\x00\\x09KNNAKP\\x00\\x0cKRORKWWTKY\\x00\\x0fKZAZLAAOLBBNLCCALIIELKKALRBRLSSO\" +\n\t\"LTTULUUXLVVALYBYMAARMCCOMDDAMENEMFAFMGDGMHHLMIIDMKKDMLLIMMMRMNNGMOACMPNP\" +\n\t\"MQTQMRRTMSSRMTLTMUUSMVDVMWWIMXEXMYYSMZOZNAAMNCCLNEERNFFKNGGANHHBNIICNLLD\" +\n\t\"NOORNPPLNQ\\x00\\x1eNRRUNTTZNUIUNZZLOMMNPAANPCCIPEERPFYFPGNGPHHLPKAKPLOLPM\" +\n\t\"\\x00\\x12PNCNPRRIPSSEPTRTPUUSPWLWPYRYPZCZQAATQMMMQNNNQOOOQPPPQQQQQRRRQSSS\" +\n\t\"QTTTQU\\x00\\x03QVVVQWWWQXXXQYYYQZZZREEURHHOROOURS\\x00\\x15RUUSRWWASAAUSBLB\" +\n\t\"SCYCSDDNSEWESGGPSHHNSIVNSJJMSKVKSLLESMMRSNENSOOMSRURSSSDSTTPSUUNSVLVSXXM\" +\n\t\"SYYRSZWZTAAATCCATDCDTF\\x00\\x18TGGOTHHATJJKTKKLTLLSTMKMTNUNTOONTPMPTRURTT\" +\n\t\"TOTVUVTWWNTZZAUAKRUGGAUK  UMMIUN  USSAUYRYUZZBVAATVCCTVDDRVEENVGGBVIIRVN\" +\n\t\"NMVUUTWFLFWKAKWSSMXAAAXBBBXCCCXDDDXEEEXFFFXGGGXHHHXIIIXJJJXKKKXLLLXMMMXN\" +\n\t\"NNXOOOXPPPXQQQXRRRXSSSXTTTXUUUXVVVXWWWXXXXXYYYXZZZYDMDYEEMYT\\x00\\x1bYUUG\" +\n\t\"ZAAFZMMBZRARZWWEZZZZ\\xff\\xff\\xff\\xff\"\n\n// altRegionISO3 holds a list of 3-letter region codes that cannot be\n// mapped to 2-letter codes using the default algorithm. This is a short list.\nconst altRegionISO3 string = \"SCGQUUSGSCOMPRKCYMSPMSRBATFMYTATN\"\n\n// altRegionIDs holds a list of regionIDs the positions of which match those\n// of the 3-letter ISO codes in altRegionISO3.\n// Size: 22 bytes, 11 elements\nvar altRegionIDs = [11]uint16{\n\t0x0058, 0x0071, 0x0089, 0x00a9, 0x00ab, 0x00ae, 0x00eb, 0x0106,\n\t0x0122, 0x0160, 0x00dd,\n}\n\n// Size: 80 bytes, 20 elements\nvar regionOldMap = [20]FromTo{\n\t0:  {From: 0x44, To: 0xc5},\n\t1:  {From: 0x59, To: 0xa8},\n\t2:  {From: 0x60, To: 0x61},\n\t3:  {From: 0x67, To: 0x3b},\n\t4:  {From: 0x7a, To: 0x79},\n\t5:  {From: 0x94, To: 0x37},\n\t6:  {From: 0xa4, To: 0x134},\n\t7:  {From: 0xc2, To: 0x134},\n\t8:  {From: 0xd8, To: 0x140},\n\t9:  {From: 0xdd, To: 0x2b},\n\t10: {From: 0xf0, To: 0x134},\n\t11: {From: 0xf3, To: 0xe3},\n\t12: {From: 0xfd, To: 0x71},\n\t13: {From: 0x104, To: 0x165},\n\t14: {From: 0x12b, To: 0x127},\n\t15: {From: 0x133, To: 0x7c},\n\t16: {From: 0x13b, To: 0x13f},\n\t17: {From: 0x142, To: 0x134},\n\t18: {From: 0x15e, To: 0x15f},\n\t19: {From: 0x164, To: 0x4b},\n}\n\n// m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are\n// codes indicating collections of regions.\n// Size: 718 bytes, 359 elements\nvar m49 = [359]int16{\n\t// Entry 0 - 3F\n\t0, 1, 2, 3, 5, 9, 11, 13,\n\t14, 15, 17, 18, 19, 21, 29, 30,\n\t34, 35, 39, 53, 54, 57, 61, 142,\n\t143, 145, 150, 151, 154, 155, 202, 419,\n\t958, 0, 20, 784, 4, 28, 660, 8,\n\t51, 530, 24, 10, 32, 16, 40, 36,\n\t533, 248, 31, 70, 52, 50, 56, 854,\n\t100, 48, 108, 204, 652, 60, 96, 68,\n\t// Entry 40 - 7F\n\t535, 76, 44, 64, 104, 74, 72, 112,\n\t84, 124, 166, 180, 140, 178, 756, 384,\n\t184, 152, 120, 156, 170, 0, 0, 188,\n\t891, 296, 192, 132, 531, 162, 196, 203,\n\t278, 276, 0, 262, 208, 212, 214, 204,\n\t12, 0, 218, 233, 818, 732, 232, 724,\n\t231, 967, 0, 246, 242, 238, 583, 234,\n\t0, 250, 249, 266, 826, 308, 268, 254,\n\t// Entry 80 - BF\n\t831, 288, 292, 304, 270, 324, 312, 226,\n\t300, 239, 320, 316, 624, 328, 344, 334,\n\t340, 191, 332, 348, 854, 0, 360, 372,\n\t376, 833, 356, 86, 368, 364, 352, 380,\n\t832, 388, 400, 392, 581, 404, 417, 116,\n\t296, 174, 659, 408, 410, 414, 136, 398,\n\t418, 422, 662, 438, 144, 430, 426, 440,\n\t442, 428, 434, 504, 492, 498, 499, 663,\n\t// Entry C0 - FF\n\t450, 584, 581, 807, 466, 104, 496, 446,\n\t580, 474, 478, 500, 470, 480, 462, 454,\n\t484, 458, 508, 516, 540, 562, 574, 566,\n\t548, 558, 528, 578, 524, 10, 520, 536,\n\t570, 554, 512, 591, 0, 604, 258, 598,\n\t608, 586, 616, 666, 612, 630, 275, 620,\n\t581, 585, 600, 591, 634, 959, 960, 961,\n\t962, 963, 964, 965, 966, 967, 968, 969,\n\t// Entry 100 - 13F\n\t970, 971, 972, 638, 716, 642, 688, 643,\n\t646, 682, 90, 690, 729, 752, 702, 654,\n\t705, 744, 703, 694, 674, 686, 706, 740,\n\t728, 678, 810, 222, 534, 760, 748, 0,\n\t796, 148, 260, 768, 764, 762, 772, 626,\n\t795, 788, 776, 626, 792, 780, 798, 158,\n\t834, 804, 800, 826, 581, 0, 840, 858,\n\t860, 336, 670, 704, 862, 92, 850, 704,\n\t// Entry 140 - 17F\n\t548, 876, 581, 882, 973, 974, 975, 976,\n\t977, 978, 979, 980, 981, 982, 983, 984,\n\t985, 986, 987, 988, 989, 990, 991, 992,\n\t993, 994, 995, 996, 997, 998, 720, 887,\n\t175, 891, 710, 894, 180, 716, 999,\n}\n\n// m49Index gives indexes into fromM49 based on the three most significant bits\n// of a 10-bit UN.M49 code. To search an UN.M49 code in fromM49, search in\n//\n//\tfromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]]\n//\n// for an entry where the first 7 bits match the 7 lsb of the UN.M49 code.\n// The region code is stored in the 9 lsb of the indexed value.\n// Size: 18 bytes, 9 elements\nvar m49Index = [9]int16{\n\t0, 59, 108, 143, 181, 220, 259, 291,\n\t333,\n}\n\n// fromM49 contains entries to map UN.M49 codes to regions. See m49Index for details.\n// Size: 666 bytes, 333 elements\nvar fromM49 = [333]uint16{\n\t// Entry 0 - 3F\n\t0x0201, 0x0402, 0x0603, 0x0824, 0x0a04, 0x1027, 0x1205, 0x142b,\n\t0x1606, 0x1868, 0x1a07, 0x1c08, 0x1e09, 0x202d, 0x220a, 0x240b,\n\t0x260c, 0x2822, 0x2a0d, 0x302a, 0x3825, 0x3a0e, 0x3c0f, 0x3e32,\n\t0x402c, 0x4410, 0x4611, 0x482f, 0x4e12, 0x502e, 0x5842, 0x6039,\n\t0x6435, 0x6628, 0x6834, 0x6a13, 0x6c14, 0x7036, 0x7215, 0x783d,\n\t0x7a16, 0x8043, 0x883f, 0x8c33, 0x9046, 0x9445, 0x9841, 0xa848,\n\t0xac9b, 0xb50a, 0xb93d, 0xc03e, 0xc838, 0xd0c5, 0xd83a, 0xe047,\n\t0xe8a7, 0xf052, 0xf849, 0x085b, 0x10ae, 0x184c, 0x1c17, 0x1e18,\n\t// Entry 40 - 7F\n\t0x20b4, 0x2219, 0x2921, 0x2c1a, 0x2e1b, 0x3051, 0x341c, 0x361d,\n\t0x3853, 0x3d2f, 0x445d, 0x4c4a, 0x5454, 0x5ca9, 0x5f60, 0x644d,\n\t0x684b, 0x7050, 0x7857, 0x7e91, 0x805a, 0x885e, 0x941e, 0x965f,\n\t0x983b, 0xa064, 0xa865, 0xac66, 0xb46a, 0xbd1b, 0xc487, 0xcc70,\n\t0xce70, 0xd06e, 0xd26b, 0xd477, 0xdc75, 0xde89, 0xe474, 0xec73,\n\t0xf031, 0xf27a, 0xf479, 0xfc7f, 0x04e6, 0x0922, 0x0c63, 0x147b,\n\t0x187e, 0x1c84, 0x26ee, 0x2861, 0x2c60, 0x3061, 0x4081, 0x4882,\n\t0x50a8, 0x5888, 0x6083, 0x687d, 0x7086, 0x788b, 0x808a, 0x8885,\n\t// Entry 80 - BF\n\t0x908d, 0x9892, 0x9c8f, 0xa139, 0xa890, 0xb08e, 0xb893, 0xc09e,\n\t0xc89a, 0xd096, 0xd89d, 0xe09c, 0xe897, 0xf098, 0xf89f, 0x004f,\n\t0x08a1, 0x10a3, 0x1caf, 0x20a2, 0x28a5, 0x30ab, 0x34ac, 0x3cad,\n\t0x42a6, 0x44b0, 0x461f, 0x4cb1, 0x54b6, 0x58b9, 0x5cb5, 0x64ba,\n\t0x6cb3, 0x70b7, 0x74b8, 0x7cc7, 0x84c0, 0x8ccf, 0x94d1, 0x9cce,\n\t0xa4c4, 0xaccc, 0xb4c9, 0xbcca, 0xc0cd, 0xc8d0, 0xd8bc, 0xe0c6,\n\t0xe4bd, 0xe6be, 0xe8cb, 0xf0bb, 0xf8d2, 0x00e2, 0x08d3, 0x10de,\n\t0x18dc, 0x20da, 0x2429, 0x265c, 0x2a30, 0x2d1c, 0x2e40, 0x30df,\n\t// Entry C0 - FF\n\t0x38d4, 0x4940, 0x54e1, 0x5cd9, 0x64d5, 0x6cd7, 0x74e0, 0x7cd6,\n\t0x84db, 0x88c8, 0x8b34, 0x8e76, 0x90c1, 0x92f1, 0x94e9, 0x9ee3,\n\t0xace7, 0xb0f2, 0xb8e5, 0xc0e8, 0xc8ec, 0xd0ea, 0xd8ef, 0xe08c,\n\t0xe527, 0xeced, 0xf4f4, 0xfd03, 0x0505, 0x0707, 0x0d08, 0x183c,\n\t0x1d0f, 0x26aa, 0x2826, 0x2cb2, 0x2ebf, 0x34eb, 0x3d3a, 0x4514,\n\t0x4d19, 0x5509, 0x5d15, 0x6106, 0x650b, 0x6d13, 0x7d0e, 0x7f12,\n\t0x813f, 0x8310, 0x8516, 0x8d62, 0x9965, 0xa15e, 0xa86f, 0xb118,\n\t0xb30c, 0xb86d, 0xc10c, 0xc917, 0xd111, 0xd91e, 0xe10d, 0xe84e,\n\t// Entry 100 - 13F\n\t0xf11d, 0xf525, 0xf924, 0x0123, 0x0926, 0x112a, 0x192d, 0x2023,\n\t0x2929, 0x312c, 0x3728, 0x3920, 0x3d2e, 0x4132, 0x4931, 0x4ec3,\n\t0x551a, 0x646c, 0x747c, 0x7e80, 0x80a0, 0x8299, 0x8530, 0x9136,\n\t0xa53e, 0xac37, 0xb537, 0xb938, 0xbd3c, 0xd941, 0xe543, 0xed5f,\n\t0xef5f, 0xf658, 0xfd63, 0x7c20, 0x7ef5, 0x80f6, 0x82f7, 0x84f8,\n\t0x86f9, 0x88fa, 0x8afb, 0x8cfc, 0x8e71, 0x90fe, 0x92ff, 0x9500,\n\t0x9701, 0x9902, 0x9b44, 0x9d45, 0x9f46, 0xa147, 0xa348, 0xa549,\n\t0xa74a, 0xa94b, 0xab4c, 0xad4d, 0xaf4e, 0xb14f, 0xb350, 0xb551,\n\t// Entry 140 - 17F\n\t0xb752, 0xb953, 0xbb54, 0xbd55, 0xbf56, 0xc157, 0xc358, 0xc559,\n\t0xc75a, 0xc95b, 0xcb5c, 0xcd5d, 0xcf66,\n}\n\n// Size: 2128 bytes\nvar variantIndex = map[string]uint8{\n\t\"1606nict\": 0x0,\n\t\"1694acad\": 0x1,\n\t\"1901\":     0x2,\n\t\"1959acad\": 0x3,\n\t\"1994\":     0x67,\n\t\"1996\":     0x4,\n\t\"abl1943\":  0x5,\n\t\"akuapem\":  0x6,\n\t\"alalc97\":  0x69,\n\t\"aluku\":    0x7,\n\t\"ao1990\":   0x8,\n\t\"aranes\":   0x9,\n\t\"arevela\":  0xa,\n\t\"arevmda\":  0xb,\n\t\"arkaika\":  0xc,\n\t\"asante\":   0xd,\n\t\"auvern\":   0xe,\n\t\"baku1926\": 0xf,\n\t\"balanka\":  0x10,\n\t\"barla\":    0x11,\n\t\"basiceng\": 0x12,\n\t\"bauddha\":  0x13,\n\t\"bciav\":    0x14,\n\t\"bcizbl\":   0x15,\n\t\"biscayan\": 0x16,\n\t\"biske\":    0x62,\n\t\"bohoric\":  0x17,\n\t\"boont\":    0x18,\n\t\"bornholm\": 0x19,\n\t\"cisaup\":   0x1a,\n\t\"colb1945\": 0x1b,\n\t\"cornu\":    0x1c,\n\t\"creiss\":   0x1d,\n\t\"dajnko\":   0x1e,\n\t\"ekavsk\":   0x1f,\n\t\"emodeng\":  0x20,\n\t\"fonipa\":   0x6a,\n\t\"fonkirsh\": 0x6b,\n\t\"fonnapa\":  0x6c,\n\t\"fonupa\":   0x6d,\n\t\"fonxsamp\": 0x6e,\n\t\"gallo\":    0x21,\n\t\"gascon\":   0x22,\n\t\"grclass\":  0x23,\n\t\"grital\":   0x24,\n\t\"grmistr\":  0x25,\n\t\"hepburn\":  0x26,\n\t\"heploc\":   0x68,\n\t\"hognorsk\": 0x27,\n\t\"hsistemo\": 0x28,\n\t\"ijekavsk\": 0x29,\n\t\"itihasa\":  0x2a,\n\t\"ivanchov\": 0x2b,\n\t\"jauer\":    0x2c,\n\t\"jyutping\": 0x2d,\n\t\"kkcor\":    0x2e,\n\t\"kociewie\": 0x2f,\n\t\"kscor\":    0x30,\n\t\"laukika\":  0x31,\n\t\"lemosin\":  0x32,\n\t\"lengadoc\": 0x33,\n\t\"lipaw\":    0x63,\n\t\"ltg1929\":  0x34,\n\t\"ltg2007\":  0x35,\n\t\"luna1918\": 0x36,\n\t\"metelko\":  0x37,\n\t\"monoton\":  0x38,\n\t\"ndyuka\":   0x39,\n\t\"nedis\":    0x3a,\n\t\"newfound\": 0x3b,\n\t\"nicard\":   0x3c,\n\t\"njiva\":    0x64,\n\t\"nulik\":    0x3d,\n\t\"osojs\":    0x65,\n\t\"oxendict\": 0x3e,\n\t\"pahawh2\":  0x3f,\n\t\"pahawh3\":  0x40,\n\t\"pahawh4\":  0x41,\n\t\"pamaka\":   0x42,\n\t\"peano\":    0x43,\n\t\"petr1708\": 0x44,\n\t\"pinyin\":   0x45,\n\t\"polyton\":  0x46,\n\t\"provenc\":  0x47,\n\t\"puter\":    0x48,\n\t\"rigik\":    0x49,\n\t\"rozaj\":    0x4a,\n\t\"rumgr\":    0x4b,\n\t\"scotland\": 0x4c,\n\t\"scouse\":   0x4d,\n\t\"simple\":   0x6f,\n\t\"solba\":    0x66,\n\t\"sotav\":    0x4e,\n\t\"spanglis\": 0x4f,\n\t\"surmiran\": 0x50,\n\t\"sursilv\":  0x51,\n\t\"sutsilv\":  0x52,\n\t\"synnejyl\": 0x53,\n\t\"tarask\":   0x54,\n\t\"tongyong\": 0x55,\n\t\"tunumiit\": 0x56,\n\t\"uccor\":    0x57,\n\t\"ucrcor\":   0x58,\n\t\"ulster\":   0x59,\n\t\"unifon\":   0x5a,\n\t\"vaidika\":  0x5b,\n\t\"valencia\": 0x5c,\n\t\"vallader\": 0x5d,\n\t\"vecdruka\": 0x5e,\n\t\"vivaraup\": 0x5f,\n\t\"wadegile\": 0x60,\n\t\"xsistemo\": 0x61,\n}\n\n// variantNumSpecialized is the number of specialized variants in variants.\nconst variantNumSpecialized = 105\n\n// nRegionGroups is the number of region groups.\nconst nRegionGroups = 33\n\ntype likelyLangRegion struct {\n\tlang   uint16\n\tregion uint16\n}\n\n// likelyScript is a lookup table, indexed by scriptID, for the most likely\n// languages and regions given a script.\n// Size: 1052 bytes, 263 elements\nvar likelyScript = [263]likelyLangRegion{\n\t1:   {lang: 0x14e, region: 0x85},\n\t3:   {lang: 0x2a2, region: 0x107},\n\t4:   {lang: 0x1f, region: 0x9a},\n\t5:   {lang: 0x3a, region: 0x6c},\n\t7:   {lang: 0x3b, region: 0x9d},\n\t8:   {lang: 0x1d7, region: 0x28},\n\t9:   {lang: 0x13, region: 0x9d},\n\t10:  {lang: 0x5b, region: 0x96},\n\t11:  {lang: 0x60, region: 0x52},\n\t12:  {lang: 0xb9, region: 0xb5},\n\t13:  {lang: 0x63, region: 0x96},\n\t14:  {lang: 0xa5, region: 0x35},\n\t15:  {lang: 0x3e9, region: 0x9a},\n\t17:  {lang: 0x529, region: 0x12f},\n\t18:  {lang: 0x3b1, region: 0x9a},\n\t19:  {lang: 0x15e, region: 0x79},\n\t20:  {lang: 0xc2, region: 0x96},\n\t21:  {lang: 0x9d, region: 0xe8},\n\t22:  {lang: 0xdb, region: 0x35},\n\t23:  {lang: 0xf3, region: 0x49},\n\t24:  {lang: 0x4f0, region: 0x12c},\n\t25:  {lang: 0xe7, region: 0x13f},\n\t26:  {lang: 0xe5, region: 0x136},\n\t29:  {lang: 0xf1, region: 0x6c},\n\t31:  {lang: 0x1a0, region: 0x5e},\n\t32:  {lang: 0x3e2, region: 0x107},\n\t34:  {lang: 0x1be, region: 0x9a},\n\t38:  {lang: 0x15e, region: 0x79},\n\t41:  {lang: 0x133, region: 0x6c},\n\t42:  {lang: 0x431, region: 0x27},\n\t44:  {lang: 0x27, region: 0x70},\n\t46:  {lang: 0x210, region: 0x7e},\n\t47:  {lang: 0xfe, region: 0x38},\n\t49:  {lang: 0x19b, region: 0x9a},\n\t50:  {lang: 0x19e, region: 0x131},\n\t51:  {lang: 0x3e9, region: 0x9a},\n\t52:  {lang: 0x136, region: 0x88},\n\t53:  {lang: 0x1a4, region: 0x9a},\n\t54:  {lang: 0x39d, region: 0x9a},\n\t55:  {lang: 0x529, region: 0x12f},\n\t56:  {lang: 0x254, region: 0xac},\n\t57:  {lang: 0x529, region: 0x53},\n\t58:  {lang: 0x1cb, region: 0xe8},\n\t59:  {lang: 0x529, region: 0x53},\n\t60:  {lang: 0x529, region: 0x12f},\n\t61:  {lang: 0x2fd, region: 0x9c},\n\t62:  {lang: 0x1bc, region: 0x98},\n\t63:  {lang: 0x200, region: 0xa3},\n\t64:  {lang: 0x1c5, region: 0x12c},\n\t65:  {lang: 0x1ca, region: 0xb0},\n\t68:  {lang: 0x1d5, region: 0x93},\n\t70:  {lang: 0x142, region: 0x9f},\n\t71:  {lang: 0x254, region: 0xac},\n\t72:  {lang: 0x20e, region: 0x96},\n\t73:  {lang: 0x200, region: 0xa3},\n\t75:  {lang: 0x135, region: 0xc5},\n\t76:  {lang: 0x200, region: 0xa3},\n\t78:  {lang: 0x3bb, region: 0xe9},\n\t79:  {lang: 0x24a, region: 0xa7},\n\t80:  {lang: 0x3fa, region: 0x9a},\n\t83:  {lang: 0x251, region: 0x9a},\n\t84:  {lang: 0x254, region: 0xac},\n\t86:  {lang: 0x88, region: 0x9a},\n\t87:  {lang: 0x370, region: 0x124},\n\t88:  {lang: 0x2b8, region: 0xb0},\n\t93:  {lang: 0x29f, region: 0x9a},\n\t94:  {lang: 0x2a8, region: 0x9a},\n\t95:  {lang: 0x28f, region: 0x88},\n\t96:  {lang: 0x1a0, region: 0x88},\n\t97:  {lang: 0x2ac, region: 0x53},\n\t99:  {lang: 0x4f4, region: 0x12c},\n\t100: {lang: 0x4f5, region: 0x12c},\n\t101: {lang: 0x1be, region: 0x9a},\n\t103: {lang: 0x337, region: 0x9d},\n\t104: {lang: 0x4f7, region: 0x53},\n\t105: {lang: 0xa9, region: 0x53},\n\t108: {lang: 0x2e8, region: 0x113},\n\t109: {lang: 0x4f8, region: 0x10c},\n\t110: {lang: 0x4f8, region: 0x10c},\n\t111: {lang: 0x304, region: 0x9a},\n\t112: {lang: 0x31b, region: 0x9a},\n\t113: {lang: 0x30b, region: 0x53},\n\t115: {lang: 0x31e, region: 0x35},\n\t116: {lang: 0x30e, region: 0x9a},\n\t117: {lang: 0x414, region: 0xe9},\n\t118: {lang: 0x331, region: 0xc5},\n\t121: {lang: 0x4f9, region: 0x109},\n\t122: {lang: 0x3b, region: 0xa2},\n\t123: {lang: 0x353, region: 0xdc},\n\t126: {lang: 0x2d0, region: 0x85},\n\t127: {lang: 0x52a, region: 0x53},\n\t128: {lang: 0x403, region: 0x97},\n\t129: {lang: 0x3ee, region: 0x9a},\n\t130: {lang: 0x39b, region: 0xc6},\n\t131: {lang: 0x395, region: 0x9a},\n\t132: {lang: 0x399, region: 0x136},\n\t133: {lang: 0x429, region: 0x116},\n\t135: {lang: 0x3b, region: 0x11d},\n\t136: {lang: 0xfd, region: 0xc5},\n\t139: {lang: 0x27d, region: 0x107},\n\t140: {lang: 0x2c9, region: 0x53},\n\t141: {lang: 0x39f, region: 0x9d},\n\t142: {lang: 0x39f, region: 0x53},\n\t144: {lang: 0x3ad, region: 0xb1},\n\t146: {lang: 0x1c6, region: 0x53},\n\t147: {lang: 0x4fd, region: 0x9d},\n\t200: {lang: 0x3cb, region: 0x96},\n\t203: {lang: 0x372, region: 0x10d},\n\t204: {lang: 0x420, region: 0x98},\n\t206: {lang: 0x4ff, region: 0x15f},\n\t207: {lang: 0x3f0, region: 0x9a},\n\t208: {lang: 0x45, region: 0x136},\n\t209: {lang: 0x139, region: 0x7c},\n\t210: {lang: 0x3e9, region: 0x9a},\n\t212: {lang: 0x3e9, region: 0x9a},\n\t213: {lang: 0x3fa, region: 0x9a},\n\t214: {lang: 0x40c, region: 0xb4},\n\t217: {lang: 0x433, region: 0x9a},\n\t218: {lang: 0xef, region: 0xc6},\n\t219: {lang: 0x43e, region: 0x96},\n\t221: {lang: 0x44d, region: 0x35},\n\t222: {lang: 0x44e, region: 0x9c},\n\t226: {lang: 0x45a, region: 0xe8},\n\t227: {lang: 0x11a, region: 0x9a},\n\t228: {lang: 0x45e, region: 0x53},\n\t229: {lang: 0x232, region: 0x53},\n\t230: {lang: 0x450, region: 0x9a},\n\t231: {lang: 0x4a5, region: 0x53},\n\t232: {lang: 0x9f, region: 0x13f},\n\t233: {lang: 0x461, region: 0x9a},\n\t235: {lang: 0x528, region: 0xbb},\n\t236: {lang: 0x153, region: 0xe8},\n\t237: {lang: 0x128, region: 0xce},\n\t238: {lang: 0x46b, region: 0x124},\n\t239: {lang: 0xa9, region: 0x53},\n\t240: {lang: 0x2ce, region: 0x9a},\n\t243: {lang: 0x4ad, region: 0x11d},\n\t244: {lang: 0x4be, region: 0xb5},\n\t247: {lang: 0x1ce, region: 0x9a},\n\t250: {lang: 0x3a9, region: 0x9d},\n\t251: {lang: 0x22, region: 0x9c},\n\t253: {lang: 0x1ea, region: 0x53},\n\t254: {lang: 0xef, region: 0xc6},\n}\n\ntype likelyScriptRegion struct {\n\tregion uint16\n\tscript uint16\n\tflags  uint8\n}\n\n// likelyLang is a lookup table, indexed by langID, for the most likely\n// scripts and regions given incomplete information. If more entries exist for a\n// given language, region and script are the index and size respectively\n// of the list in likelyLangList.\n// Size: 7980 bytes, 1330 elements\nvar likelyLang = [1330]likelyScriptRegion{\n\t0:    {region: 0x136, script: 0x5b, flags: 0x0},\n\t1:    {region: 0x70, script: 0x5b, flags: 0x0},\n\t2:    {region: 0x166, script: 0x5b, flags: 0x0},\n\t3:    {region: 0x166, script: 0x5b, flags: 0x0},\n\t4:    {region: 0x166, script: 0x5b, flags: 0x0},\n\t5:    {region: 0x7e, script: 0x20, flags: 0x0},\n\t6:    {region: 0x166, script: 0x5b, flags: 0x0},\n\t7:    {region: 0x166, script: 0x20, flags: 0x0},\n\t8:    {region: 0x81, script: 0x5b, flags: 0x0},\n\t9:    {region: 0x166, script: 0x5b, flags: 0x0},\n\t10:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t11:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t12:   {region: 0x96, script: 0x5b, flags: 0x0},\n\t13:   {region: 0x132, script: 0x5b, flags: 0x0},\n\t14:   {region: 0x81, script: 0x5b, flags: 0x0},\n\t15:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t16:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t17:   {region: 0x107, script: 0x20, flags: 0x0},\n\t18:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t19:   {region: 0x9d, script: 0x9, flags: 0x0},\n\t20:   {region: 0x129, script: 0x5, flags: 0x0},\n\t21:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t22:   {region: 0x162, script: 0x5b, flags: 0x0},\n\t23:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t24:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t25:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t26:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t27:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t28:   {region: 0x52, script: 0x5b, flags: 0x0},\n\t29:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t30:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t31:   {region: 0x9a, script: 0x4, flags: 0x0},\n\t32:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t33:   {region: 0x81, script: 0x5b, flags: 0x0},\n\t34:   {region: 0x9c, script: 0xfb, flags: 0x0},\n\t35:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t36:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t37:   {region: 0x14e, script: 0x5b, flags: 0x0},\n\t38:   {region: 0x107, script: 0x20, flags: 0x0},\n\t39:   {region: 0x70, script: 0x2c, flags: 0x0},\n\t40:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t41:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t42:   {region: 0xd7, script: 0x5b, flags: 0x0},\n\t43:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t45:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t46:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t47:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t48:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t49:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t50:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t51:   {region: 0x96, script: 0x5b, flags: 0x0},\n\t52:   {region: 0x166, script: 0x5, flags: 0x0},\n\t53:   {region: 0x123, script: 0x5, flags: 0x0},\n\t54:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t55:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t56:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t57:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t58:   {region: 0x6c, script: 0x5, flags: 0x0},\n\t59:   {region: 0x0, script: 0x3, flags: 0x1},\n\t60:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t61:   {region: 0x51, script: 0x5b, flags: 0x0},\n\t62:   {region: 0x3f, script: 0x5b, flags: 0x0},\n\t63:   {region: 0x68, script: 0x5, flags: 0x0},\n\t65:   {region: 0xbb, script: 0x5, flags: 0x0},\n\t66:   {region: 0x6c, script: 0x5, flags: 0x0},\n\t67:   {region: 0x9a, script: 0xe, flags: 0x0},\n\t68:   {region: 0x130, script: 0x5b, flags: 0x0},\n\t69:   {region: 0x136, script: 0xd0, flags: 0x0},\n\t70:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t71:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t72:   {region: 0x6f, script: 0x5b, flags: 0x0},\n\t73:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t74:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t75:   {region: 0x49, script: 0x5b, flags: 0x0},\n\t76:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t77:   {region: 0x107, script: 0x20, flags: 0x0},\n\t78:   {region: 0x166, script: 0x5, flags: 0x0},\n\t79:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t80:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t81:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t82:   {region: 0x9a, script: 0x22, flags: 0x0},\n\t83:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t84:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t85:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t86:   {region: 0x3f, script: 0x5b, flags: 0x0},\n\t87:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t88:   {region: 0x3, script: 0x5, flags: 0x1},\n\t89:   {region: 0x107, script: 0x20, flags: 0x0},\n\t90:   {region: 0xe9, script: 0x5, flags: 0x0},\n\t91:   {region: 0x96, script: 0x5b, flags: 0x0},\n\t92:   {region: 0xdc, script: 0x22, flags: 0x0},\n\t93:   {region: 0x2e, script: 0x5b, flags: 0x0},\n\t94:   {region: 0x52, script: 0x5b, flags: 0x0},\n\t95:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t96:   {region: 0x52, script: 0xb, flags: 0x0},\n\t97:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t98:   {region: 0x166, script: 0x5b, flags: 0x0},\n\t99:   {region: 0x96, script: 0x5b, flags: 0x0},\n\t100:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t101:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t102:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t103:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t104:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t105:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t106:  {region: 0x4f, script: 0x5b, flags: 0x0},\n\t107:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t108:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t109:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t110:  {region: 0x166, script: 0x2c, flags: 0x0},\n\t111:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t112:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t113:  {region: 0x47, script: 0x20, flags: 0x0},\n\t114:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t115:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t116:  {region: 0x10c, script: 0x5, flags: 0x0},\n\t117:  {region: 0x163, script: 0x5b, flags: 0x0},\n\t118:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t119:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t120:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t121:  {region: 0x130, script: 0x5b, flags: 0x0},\n\t122:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t123:  {region: 0x9a, script: 0xe6, flags: 0x0},\n\t124:  {region: 0xe9, script: 0x5, flags: 0x0},\n\t125:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t126:  {region: 0x38, script: 0x20, flags: 0x0},\n\t127:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t128:  {region: 0xe9, script: 0x5, flags: 0x0},\n\t129:  {region: 0x12c, script: 0x34, flags: 0x0},\n\t131:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t132:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t133:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t134:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t135:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t136:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t137:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t138:  {region: 0x140, script: 0x5b, flags: 0x0},\n\t139:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t140:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t141:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t142:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t143:  {region: 0xd7, script: 0x5b, flags: 0x0},\n\t144:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t145:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t146:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t147:  {region: 0x166, script: 0x2c, flags: 0x0},\n\t148:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t149:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t150:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t151:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t152:  {region: 0x115, script: 0x5b, flags: 0x0},\n\t153:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t154:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t155:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t156:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t157:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t158:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t159:  {region: 0x13f, script: 0xe8, flags: 0x0},\n\t160:  {region: 0xc4, script: 0x5b, flags: 0x0},\n\t161:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t162:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t163:  {region: 0xc4, script: 0x5b, flags: 0x0},\n\t164:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t165:  {region: 0x35, script: 0xe, flags: 0x0},\n\t166:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t167:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t168:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t169:  {region: 0x53, script: 0xef, flags: 0x0},\n\t170:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t171:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t172:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t173:  {region: 0x9a, script: 0xe, flags: 0x0},\n\t174:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t175:  {region: 0x9d, script: 0x5, flags: 0x0},\n\t176:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t177:  {region: 0x4f, script: 0x5b, flags: 0x0},\n\t178:  {region: 0x79, script: 0x5b, flags: 0x0},\n\t179:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t180:  {region: 0xe9, script: 0x5, flags: 0x0},\n\t181:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t182:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t183:  {region: 0x33, script: 0x5b, flags: 0x0},\n\t184:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t185:  {region: 0xb5, script: 0xc, flags: 0x0},\n\t186:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t187:  {region: 0x166, script: 0x2c, flags: 0x0},\n\t188:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t189:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t190:  {region: 0xe9, script: 0x22, flags: 0x0},\n\t191:  {region: 0x107, script: 0x20, flags: 0x0},\n\t192:  {region: 0x160, script: 0x5b, flags: 0x0},\n\t193:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t194:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t195:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t196:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t197:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t198:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t199:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t200:  {region: 0x87, script: 0x5b, flags: 0x0},\n\t201:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t202:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t203:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t204:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t205:  {region: 0x6e, script: 0x2c, flags: 0x0},\n\t206:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t207:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t208:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t209:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t210:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t211:  {region: 0xc4, script: 0x5b, flags: 0x0},\n\t212:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t213:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t214:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t215:  {region: 0x6f, script: 0x5b, flags: 0x0},\n\t216:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t217:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t218:  {region: 0xd7, script: 0x5b, flags: 0x0},\n\t219:  {region: 0x35, script: 0x16, flags: 0x0},\n\t220:  {region: 0x107, script: 0x20, flags: 0x0},\n\t221:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t222:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t223:  {region: 0x132, script: 0x5b, flags: 0x0},\n\t224:  {region: 0x8b, script: 0x5b, flags: 0x0},\n\t225:  {region: 0x76, script: 0x5b, flags: 0x0},\n\t226:  {region: 0x107, script: 0x20, flags: 0x0},\n\t227:  {region: 0x136, script: 0x5b, flags: 0x0},\n\t228:  {region: 0x49, script: 0x5b, flags: 0x0},\n\t229:  {region: 0x136, script: 0x1a, flags: 0x0},\n\t230:  {region: 0xa7, script: 0x5, flags: 0x0},\n\t231:  {region: 0x13f, script: 0x19, flags: 0x0},\n\t232:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t233:  {region: 0x9c, script: 0x5, flags: 0x0},\n\t234:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t235:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t236:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t237:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t238:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t239:  {region: 0xc6, script: 0xda, flags: 0x0},\n\t240:  {region: 0x79, script: 0x5b, flags: 0x0},\n\t241:  {region: 0x6c, script: 0x1d, flags: 0x0},\n\t242:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t243:  {region: 0x49, script: 0x17, flags: 0x0},\n\t244:  {region: 0x131, script: 0x20, flags: 0x0},\n\t245:  {region: 0x49, script: 0x17, flags: 0x0},\n\t246:  {region: 0x49, script: 0x17, flags: 0x0},\n\t247:  {region: 0x49, script: 0x17, flags: 0x0},\n\t248:  {region: 0x49, script: 0x17, flags: 0x0},\n\t249:  {region: 0x10b, script: 0x5b, flags: 0x0},\n\t250:  {region: 0x5f, script: 0x5b, flags: 0x0},\n\t251:  {region: 0xea, script: 0x5b, flags: 0x0},\n\t252:  {region: 0x49, script: 0x17, flags: 0x0},\n\t253:  {region: 0xc5, script: 0x88, flags: 0x0},\n\t254:  {region: 0x8, script: 0x2, flags: 0x1},\n\t255:  {region: 0x107, script: 0x20, flags: 0x0},\n\t256:  {region: 0x7c, script: 0x5b, flags: 0x0},\n\t257:  {region: 0x64, script: 0x5b, flags: 0x0},\n\t258:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t259:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t260:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t261:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t262:  {region: 0x136, script: 0x5b, flags: 0x0},\n\t263:  {region: 0x107, script: 0x20, flags: 0x0},\n\t264:  {region: 0xa5, script: 0x5b, flags: 0x0},\n\t265:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t266:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t267:  {region: 0x9a, script: 0x5, flags: 0x0},\n\t268:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t269:  {region: 0x61, script: 0x5b, flags: 0x0},\n\t270:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t271:  {region: 0x49, script: 0x5b, flags: 0x0},\n\t272:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t273:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t274:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t275:  {region: 0x166, script: 0x5, flags: 0x0},\n\t276:  {region: 0x49, script: 0x5b, flags: 0x0},\n\t277:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t278:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t279:  {region: 0xd5, script: 0x5b, flags: 0x0},\n\t280:  {region: 0x4f, script: 0x5b, flags: 0x0},\n\t281:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t282:  {region: 0x9a, script: 0x5, flags: 0x0},\n\t283:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t284:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t285:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t286:  {region: 0x166, script: 0x2c, flags: 0x0},\n\t287:  {region: 0x61, script: 0x5b, flags: 0x0},\n\t288:  {region: 0xc4, script: 0x5b, flags: 0x0},\n\t289:  {region: 0xd1, script: 0x5b, flags: 0x0},\n\t290:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t291:  {region: 0xdc, script: 0x22, flags: 0x0},\n\t292:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t293:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t294:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t295:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t296:  {region: 0xce, script: 0xed, flags: 0x0},\n\t297:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t298:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t299:  {region: 0x115, script: 0x5b, flags: 0x0},\n\t300:  {region: 0x37, script: 0x5b, flags: 0x0},\n\t301:  {region: 0x43, script: 0xef, flags: 0x0},\n\t302:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t303:  {region: 0xa5, script: 0x5b, flags: 0x0},\n\t304:  {region: 0x81, script: 0x5b, flags: 0x0},\n\t305:  {region: 0xd7, script: 0x5b, flags: 0x0},\n\t306:  {region: 0x9f, script: 0x5b, flags: 0x0},\n\t307:  {region: 0x6c, script: 0x29, flags: 0x0},\n\t308:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t309:  {region: 0xc5, script: 0x4b, flags: 0x0},\n\t310:  {region: 0x88, script: 0x34, flags: 0x0},\n\t311:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t312:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t313:  {region: 0xa, script: 0x2, flags: 0x1},\n\t314:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t315:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t316:  {region: 0x1, script: 0x5b, flags: 0x0},\n\t317:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t318:  {region: 0x6f, script: 0x5b, flags: 0x0},\n\t319:  {region: 0x136, script: 0x5b, flags: 0x0},\n\t320:  {region: 0x6b, script: 0x5b, flags: 0x0},\n\t321:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t322:  {region: 0x9f, script: 0x46, flags: 0x0},\n\t323:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t324:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t325:  {region: 0x6f, script: 0x5b, flags: 0x0},\n\t326:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t327:  {region: 0x6f, script: 0x5b, flags: 0x0},\n\t328:  {region: 0x9d, script: 0x5, flags: 0x0},\n\t329:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t330:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t331:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t332:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t333:  {region: 0x87, script: 0x5b, flags: 0x0},\n\t334:  {region: 0xc, script: 0x2, flags: 0x1},\n\t335:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t336:  {region: 0xc4, script: 0x5b, flags: 0x0},\n\t337:  {region: 0x73, script: 0x5b, flags: 0x0},\n\t338:  {region: 0x10c, script: 0x5, flags: 0x0},\n\t339:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t340:  {region: 0x10d, script: 0x5b, flags: 0x0},\n\t341:  {region: 0x74, script: 0x5b, flags: 0x0},\n\t342:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t343:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t344:  {region: 0x77, script: 0x5b, flags: 0x0},\n\t345:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t346:  {region: 0x3b, script: 0x5b, flags: 0x0},\n\t347:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t348:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t349:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t350:  {region: 0x79, script: 0x5b, flags: 0x0},\n\t351:  {region: 0x136, script: 0x5b, flags: 0x0},\n\t352:  {region: 0x79, script: 0x5b, flags: 0x0},\n\t353:  {region: 0x61, script: 0x5b, flags: 0x0},\n\t354:  {region: 0x61, script: 0x5b, flags: 0x0},\n\t355:  {region: 0x52, script: 0x5, flags: 0x0},\n\t356:  {region: 0x141, script: 0x5b, flags: 0x0},\n\t357:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t358:  {region: 0x85, script: 0x5b, flags: 0x0},\n\t359:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t360:  {region: 0xd5, script: 0x5b, flags: 0x0},\n\t361:  {region: 0x9f, script: 0x5b, flags: 0x0},\n\t362:  {region: 0xd7, script: 0x5b, flags: 0x0},\n\t363:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t364:  {region: 0x10c, script: 0x5b, flags: 0x0},\n\t365:  {region: 0xda, script: 0x5b, flags: 0x0},\n\t366:  {region: 0x97, script: 0x5b, flags: 0x0},\n\t367:  {region: 0x81, script: 0x5b, flags: 0x0},\n\t368:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t369:  {region: 0xbd, script: 0x5b, flags: 0x0},\n\t370:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t371:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t372:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t373:  {region: 0x53, script: 0x3b, flags: 0x0},\n\t374:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t375:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t376:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t377:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t378:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t379:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t380:  {region: 0x9d, script: 0x5, flags: 0x0},\n\t381:  {region: 0x7f, script: 0x5b, flags: 0x0},\n\t382:  {region: 0x7c, script: 0x5b, flags: 0x0},\n\t383:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t384:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t385:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t386:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t387:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t388:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t389:  {region: 0x70, script: 0x2c, flags: 0x0},\n\t390:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t391:  {region: 0xdc, script: 0x22, flags: 0x0},\n\t392:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t393:  {region: 0xa8, script: 0x5b, flags: 0x0},\n\t394:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t395:  {region: 0xe9, script: 0x5, flags: 0x0},\n\t396:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t397:  {region: 0xe9, script: 0x5, flags: 0x0},\n\t398:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t399:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t400:  {region: 0x6f, script: 0x5b, flags: 0x0},\n\t401:  {region: 0x9d, script: 0x5, flags: 0x0},\n\t402:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t403:  {region: 0x166, script: 0x2c, flags: 0x0},\n\t404:  {region: 0xf2, script: 0x5b, flags: 0x0},\n\t405:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t406:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t407:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t408:  {region: 0x166, script: 0x2c, flags: 0x0},\n\t409:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t410:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t411:  {region: 0x9a, script: 0xe9, flags: 0x0},\n\t412:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t413:  {region: 0xda, script: 0x5b, flags: 0x0},\n\t414:  {region: 0x131, script: 0x32, flags: 0x0},\n\t415:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t416:  {region: 0xe, script: 0x2, flags: 0x1},\n\t417:  {region: 0x9a, script: 0xe, flags: 0x0},\n\t418:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t419:  {region: 0x4e, script: 0x5b, flags: 0x0},\n\t420:  {region: 0x9a, script: 0x35, flags: 0x0},\n\t421:  {region: 0x41, script: 0x5b, flags: 0x0},\n\t422:  {region: 0x54, script: 0x5b, flags: 0x0},\n\t423:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t424:  {region: 0x81, script: 0x5b, flags: 0x0},\n\t425:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t426:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t427:  {region: 0xa5, script: 0x5b, flags: 0x0},\n\t428:  {region: 0x99, script: 0x5b, flags: 0x0},\n\t429:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t430:  {region: 0xdc, script: 0x22, flags: 0x0},\n\t431:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t432:  {region: 0x166, script: 0x5, flags: 0x0},\n\t433:  {region: 0x49, script: 0x5b, flags: 0x0},\n\t434:  {region: 0x166, script: 0x5, flags: 0x0},\n\t435:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t436:  {region: 0x10, script: 0x3, flags: 0x1},\n\t437:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t438:  {region: 0x53, script: 0x3b, flags: 0x0},\n\t439:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t440:  {region: 0x136, script: 0x5b, flags: 0x0},\n\t441:  {region: 0x24, script: 0x5, flags: 0x0},\n\t442:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t443:  {region: 0x166, script: 0x2c, flags: 0x0},\n\t444:  {region: 0x98, script: 0x3e, flags: 0x0},\n\t445:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t446:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t447:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t448:  {region: 0x74, script: 0x5b, flags: 0x0},\n\t449:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t450:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t451:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t452:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t453:  {region: 0x12c, script: 0x40, flags: 0x0},\n\t454:  {region: 0x53, script: 0x92, flags: 0x0},\n\t455:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t456:  {region: 0xe9, script: 0x5, flags: 0x0},\n\t457:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t458:  {region: 0xb0, script: 0x41, flags: 0x0},\n\t459:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t460:  {region: 0xe9, script: 0x5, flags: 0x0},\n\t461:  {region: 0xe7, script: 0x5b, flags: 0x0},\n\t462:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t463:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t464:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t465:  {region: 0x91, script: 0x5b, flags: 0x0},\n\t466:  {region: 0x61, script: 0x5b, flags: 0x0},\n\t467:  {region: 0x53, script: 0x3b, flags: 0x0},\n\t468:  {region: 0x92, script: 0x5b, flags: 0x0},\n\t469:  {region: 0x93, script: 0x5b, flags: 0x0},\n\t470:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t471:  {region: 0x28, script: 0x8, flags: 0x0},\n\t472:  {region: 0xd3, script: 0x5b, flags: 0x0},\n\t473:  {region: 0x79, script: 0x5b, flags: 0x0},\n\t474:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t475:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t476:  {region: 0xd1, script: 0x5b, flags: 0x0},\n\t477:  {region: 0xd7, script: 0x5b, flags: 0x0},\n\t478:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t479:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t480:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t481:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t482:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t483:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t484:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t486:  {region: 0x123, script: 0x5b, flags: 0x0},\n\t487:  {region: 0xd7, script: 0x5b, flags: 0x0},\n\t488:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t489:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t490:  {region: 0x53, script: 0xfd, flags: 0x0},\n\t491:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t492:  {region: 0x136, script: 0x5b, flags: 0x0},\n\t493:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t494:  {region: 0x49, script: 0x5b, flags: 0x0},\n\t495:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t496:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t497:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t498:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t499:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t500:  {region: 0x107, script: 0x20, flags: 0x0},\n\t501:  {region: 0x1, script: 0x5b, flags: 0x0},\n\t502:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t503:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t504:  {region: 0x9e, script: 0x5b, flags: 0x0},\n\t505:  {region: 0x9f, script: 0x5b, flags: 0x0},\n\t506:  {region: 0x49, script: 0x17, flags: 0x0},\n\t507:  {region: 0x98, script: 0x3e, flags: 0x0},\n\t508:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t509:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t510:  {region: 0x107, script: 0x5b, flags: 0x0},\n\t511:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t512:  {region: 0xa3, script: 0x49, flags: 0x0},\n\t513:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t514:  {region: 0xa1, script: 0x5b, flags: 0x0},\n\t515:  {region: 0x1, script: 0x5b, flags: 0x0},\n\t516:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t517:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t518:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t519:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t520:  {region: 0x131, script: 0x3e, flags: 0x0},\n\t521:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t522:  {region: 0x130, script: 0x5b, flags: 0x0},\n\t523:  {region: 0xdc, script: 0x22, flags: 0x0},\n\t524:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t525:  {region: 0x64, script: 0x5b, flags: 0x0},\n\t526:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t527:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t528:  {region: 0x7e, script: 0x2e, flags: 0x0},\n\t529:  {region: 0x138, script: 0x20, flags: 0x0},\n\t530:  {region: 0x68, script: 0x5b, flags: 0x0},\n\t531:  {region: 0xc5, script: 0x5b, flags: 0x0},\n\t532:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t533:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t534:  {region: 0xd7, script: 0x5b, flags: 0x0},\n\t535:  {region: 0xa5, script: 0x5b, flags: 0x0},\n\t536:  {region: 0xc4, script: 0x5b, flags: 0x0},\n\t537:  {region: 0x107, script: 0x20, flags: 0x0},\n\t538:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t539:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t540:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t541:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t542:  {region: 0xd5, script: 0x5, flags: 0x0},\n\t543:  {region: 0xd7, script: 0x5b, flags: 0x0},\n\t544:  {region: 0x165, script: 0x5b, flags: 0x0},\n\t545:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t546:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t547:  {region: 0x130, script: 0x5b, flags: 0x0},\n\t548:  {region: 0x123, script: 0x5, flags: 0x0},\n\t549:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t550:  {region: 0x124, script: 0xee, flags: 0x0},\n\t551:  {region: 0x5b, script: 0x5b, flags: 0x0},\n\t552:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t553:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t554:  {region: 0x4f, script: 0x5b, flags: 0x0},\n\t555:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t556:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t557:  {region: 0x4b, script: 0x5b, flags: 0x0},\n\t558:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t559:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t560:  {region: 0x41, script: 0x5b, flags: 0x0},\n\t561:  {region: 0x9a, script: 0x5b, flags: 0x0},\n\t562:  {region: 0x53, script: 0xe5, flags: 0x0},\n\t563:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t564:  {region: 0xc4, script: 0x5b, flags: 0x0},\n\t565:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t566:  {region: 0x9a, script: 0x76, flags: 0x0},\n\t567:  {region: 0xe9, script: 0x5, flags: 0x0},\n\t568:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t569:  {region: 0xa5, script: 0x5b, flags: 0x0},\n\t570:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t571:  {region: 0x12c, script: 0x5b, flags: 0x0},\n\t572:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t573:  {region: 0xd3, script: 0x5b, flags: 0x0},\n\t574:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t575:  {region: 0xb0, script: 0x58, flags: 0x0},\n\t576:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t577:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t578:  {region: 0x13, script: 0x6, flags: 0x1},\n\t579:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t580:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t581:  {region: 0x83, script: 0x5b, flags: 0x0},\n\t582:  {region: 0xa5, script: 0x5b, flags: 0x0},\n\t583:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t584:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t585:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t586:  {region: 0xa7, script: 0x4f, flags: 0x0},\n\t587:  {region: 0x2a, script: 0x5b, flags: 0x0},\n\t588:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t589:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t590:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t591:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t592:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t593:  {region: 0x9a, script: 0x53, flags: 0x0},\n\t594:  {region: 0x8c, script: 0x5b, flags: 0x0},\n\t595:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t596:  {region: 0xac, script: 0x54, flags: 0x0},\n\t597:  {region: 0x107, script: 0x20, flags: 0x0},\n\t598:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t599:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t600:  {region: 0x76, script: 0x5b, flags: 0x0},\n\t601:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t602:  {region: 0xb5, script: 0x5b, flags: 0x0},\n\t603:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t604:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t605:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t606:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t607:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t608:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t609:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t610:  {region: 0x166, script: 0x2c, flags: 0x0},\n\t611:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t612:  {region: 0x107, script: 0x20, flags: 0x0},\n\t613:  {region: 0x113, script: 0x5b, flags: 0x0},\n\t614:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t615:  {region: 0x107, script: 0x5b, flags: 0x0},\n\t616:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t617:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t618:  {region: 0x9a, script: 0x5, flags: 0x0},\n\t619:  {region: 0x130, script: 0x5b, flags: 0x0},\n\t620:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t621:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t622:  {region: 0x61, script: 0x5b, flags: 0x0},\n\t623:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t624:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t625:  {region: 0x166, script: 0x2c, flags: 0x0},\n\t626:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t627:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t628:  {region: 0x19, script: 0x3, flags: 0x1},\n\t629:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t630:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t631:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t632:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t633:  {region: 0x107, script: 0x20, flags: 0x0},\n\t634:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t635:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t636:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t637:  {region: 0x107, script: 0x20, flags: 0x0},\n\t638:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t639:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t640:  {region: 0xe9, script: 0x5, flags: 0x0},\n\t641:  {region: 0x7c, script: 0x5b, flags: 0x0},\n\t642:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t643:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t644:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t645:  {region: 0x166, script: 0x2c, flags: 0x0},\n\t646:  {region: 0x124, script: 0xee, flags: 0x0},\n\t647:  {region: 0xe9, script: 0x5, flags: 0x0},\n\t648:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t649:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t650:  {region: 0x1c, script: 0x5, flags: 0x1},\n\t651:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t652:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t653:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t654:  {region: 0x139, script: 0x5b, flags: 0x0},\n\t655:  {region: 0x88, script: 0x5f, flags: 0x0},\n\t656:  {region: 0x98, script: 0x3e, flags: 0x0},\n\t657:  {region: 0x130, script: 0x5b, flags: 0x0},\n\t658:  {region: 0xe9, script: 0x5, flags: 0x0},\n\t659:  {region: 0x132, script: 0x5b, flags: 0x0},\n\t660:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t661:  {region: 0xb8, script: 0x5b, flags: 0x0},\n\t662:  {region: 0x107, script: 0x20, flags: 0x0},\n\t663:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t664:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t665:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t666:  {region: 0x53, script: 0xee, flags: 0x0},\n\t667:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t668:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t669:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t670:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t671:  {region: 0x9a, script: 0x5d, flags: 0x0},\n\t672:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t673:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t674:  {region: 0x107, script: 0x20, flags: 0x0},\n\t675:  {region: 0x132, script: 0x5b, flags: 0x0},\n\t676:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t677:  {region: 0xda, script: 0x5b, flags: 0x0},\n\t678:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t679:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t680:  {region: 0x21, script: 0x2, flags: 0x1},\n\t681:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t682:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t683:  {region: 0x9f, script: 0x5b, flags: 0x0},\n\t684:  {region: 0x53, script: 0x61, flags: 0x0},\n\t685:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t686:  {region: 0x9d, script: 0x5, flags: 0x0},\n\t687:  {region: 0x136, script: 0x5b, flags: 0x0},\n\t688:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t689:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t690:  {region: 0x9a, script: 0xe9, flags: 0x0},\n\t691:  {region: 0x9f, script: 0x5b, flags: 0x0},\n\t692:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t693:  {region: 0x4b, script: 0x5b, flags: 0x0},\n\t694:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t695:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t696:  {region: 0xb0, script: 0x58, flags: 0x0},\n\t697:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t698:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t699:  {region: 0x4b, script: 0x5b, flags: 0x0},\n\t700:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t701:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t702:  {region: 0x163, script: 0x5b, flags: 0x0},\n\t703:  {region: 0x9d, script: 0x5, flags: 0x0},\n\t704:  {region: 0xb7, script: 0x5b, flags: 0x0},\n\t705:  {region: 0xb9, script: 0x5b, flags: 0x0},\n\t706:  {region: 0x4b, script: 0x5b, flags: 0x0},\n\t707:  {region: 0x4b, script: 0x5b, flags: 0x0},\n\t708:  {region: 0xa5, script: 0x5b, flags: 0x0},\n\t709:  {region: 0xa5, script: 0x5b, flags: 0x0},\n\t710:  {region: 0x9d, script: 0x5, flags: 0x0},\n\t711:  {region: 0xb9, script: 0x5b, flags: 0x0},\n\t712:  {region: 0x124, script: 0xee, flags: 0x0},\n\t713:  {region: 0x53, script: 0x3b, flags: 0x0},\n\t714:  {region: 0x12c, script: 0x5b, flags: 0x0},\n\t715:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t716:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t717:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t718:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t719:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t720:  {region: 0x23, script: 0x3, flags: 0x1},\n\t721:  {region: 0xa5, script: 0x5b, flags: 0x0},\n\t722:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t723:  {region: 0xd0, script: 0x5b, flags: 0x0},\n\t724:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t725:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t726:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t727:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t728:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t729:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t730:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t731:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t732:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t733:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t734:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t735:  {region: 0x166, script: 0x5, flags: 0x0},\n\t736:  {region: 0x107, script: 0x20, flags: 0x0},\n\t737:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t738:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t739:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t740:  {region: 0x166, script: 0x2c, flags: 0x0},\n\t741:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t742:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t743:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t744:  {region: 0x113, script: 0x5b, flags: 0x0},\n\t745:  {region: 0xa5, script: 0x5b, flags: 0x0},\n\t746:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t747:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t748:  {region: 0x124, script: 0x5, flags: 0x0},\n\t749:  {region: 0xcd, script: 0x5b, flags: 0x0},\n\t750:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t751:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t752:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t753:  {region: 0xc0, script: 0x5b, flags: 0x0},\n\t754:  {region: 0xd2, script: 0x5b, flags: 0x0},\n\t755:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t756:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t757:  {region: 0xdc, script: 0x22, flags: 0x0},\n\t758:  {region: 0x130, script: 0x5b, flags: 0x0},\n\t759:  {region: 0xc1, script: 0x5b, flags: 0x0},\n\t760:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t761:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t762:  {region: 0xe1, script: 0x5b, flags: 0x0},\n\t763:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t764:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t765:  {region: 0x9c, script: 0x3d, flags: 0x0},\n\t766:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t767:  {region: 0xc3, script: 0x20, flags: 0x0},\n\t768:  {region: 0x166, script: 0x5, flags: 0x0},\n\t769:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t770:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t771:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t772:  {region: 0x9a, script: 0x6f, flags: 0x0},\n\t773:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t774:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t775:  {region: 0x10c, script: 0x5b, flags: 0x0},\n\t776:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t777:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t778:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t779:  {region: 0x26, script: 0x3, flags: 0x1},\n\t780:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t781:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t782:  {region: 0x9a, script: 0xe, flags: 0x0},\n\t783:  {region: 0xc5, script: 0x76, flags: 0x0},\n\t785:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t786:  {region: 0x49, script: 0x5b, flags: 0x0},\n\t787:  {region: 0x49, script: 0x5b, flags: 0x0},\n\t788:  {region: 0x37, script: 0x5b, flags: 0x0},\n\t789:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t790:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t791:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t792:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t793:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t794:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t795:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t796:  {region: 0xdc, script: 0x22, flags: 0x0},\n\t797:  {region: 0x107, script: 0x20, flags: 0x0},\n\t798:  {region: 0x35, script: 0x73, flags: 0x0},\n\t799:  {region: 0x29, script: 0x3, flags: 0x1},\n\t800:  {region: 0xcc, script: 0x5b, flags: 0x0},\n\t801:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t802:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t803:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t804:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t805:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t807:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t808:  {region: 0x136, script: 0x5b, flags: 0x0},\n\t809:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t810:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t811:  {region: 0xe9, script: 0x5, flags: 0x0},\n\t812:  {region: 0xc4, script: 0x5b, flags: 0x0},\n\t813:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t814:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t815:  {region: 0x165, script: 0x5b, flags: 0x0},\n\t816:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t817:  {region: 0xc5, script: 0x76, flags: 0x0},\n\t818:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t819:  {region: 0x166, script: 0x2c, flags: 0x0},\n\t820:  {region: 0x107, script: 0x20, flags: 0x0},\n\t821:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t822:  {region: 0x132, script: 0x5b, flags: 0x0},\n\t823:  {region: 0x9d, script: 0x67, flags: 0x0},\n\t824:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t825:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t826:  {region: 0x9d, script: 0x5, flags: 0x0},\n\t827:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t828:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t829:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t830:  {region: 0xde, script: 0x5b, flags: 0x0},\n\t831:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t832:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t834:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t835:  {region: 0x53, script: 0x3b, flags: 0x0},\n\t836:  {region: 0x9f, script: 0x5b, flags: 0x0},\n\t837:  {region: 0xd3, script: 0x5b, flags: 0x0},\n\t838:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t839:  {region: 0xdb, script: 0x5b, flags: 0x0},\n\t840:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t841:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t842:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t843:  {region: 0xd0, script: 0x5b, flags: 0x0},\n\t844:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t845:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t846:  {region: 0x165, script: 0x5b, flags: 0x0},\n\t847:  {region: 0xd2, script: 0x5b, flags: 0x0},\n\t848:  {region: 0x61, script: 0x5b, flags: 0x0},\n\t849:  {region: 0xdc, script: 0x22, flags: 0x0},\n\t850:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t851:  {region: 0xdc, script: 0x22, flags: 0x0},\n\t852:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t853:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t854:  {region: 0xd3, script: 0x5b, flags: 0x0},\n\t855:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t856:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t857:  {region: 0xd2, script: 0x5b, flags: 0x0},\n\t858:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t859:  {region: 0xd0, script: 0x5b, flags: 0x0},\n\t860:  {region: 0xd0, script: 0x5b, flags: 0x0},\n\t861:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t862:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t863:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t864:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t865:  {region: 0xe0, script: 0x5b, flags: 0x0},\n\t866:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t867:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t868:  {region: 0x9a, script: 0x5b, flags: 0x0},\n\t869:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t870:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t871:  {region: 0xda, script: 0x5b, flags: 0x0},\n\t872:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t873:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t874:  {region: 0xdb, script: 0x5b, flags: 0x0},\n\t875:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t876:  {region: 0x52, script: 0x5b, flags: 0x0},\n\t877:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t878:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t879:  {region: 0xdb, script: 0x5b, flags: 0x0},\n\t880:  {region: 0x124, script: 0x57, flags: 0x0},\n\t881:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t882:  {region: 0x10d, script: 0xcb, flags: 0x0},\n\t883:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t884:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t885:  {region: 0x85, script: 0x7e, flags: 0x0},\n\t886:  {region: 0x162, script: 0x5b, flags: 0x0},\n\t887:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t888:  {region: 0x49, script: 0x17, flags: 0x0},\n\t889:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t890:  {region: 0x162, script: 0x5b, flags: 0x0},\n\t891:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t892:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t893:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t894:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t895:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t896:  {region: 0x118, script: 0x5b, flags: 0x0},\n\t897:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t898:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t899:  {region: 0x136, script: 0x5b, flags: 0x0},\n\t900:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t901:  {region: 0x53, script: 0x5b, flags: 0x0},\n\t902:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t903:  {region: 0xcf, script: 0x5b, flags: 0x0},\n\t904:  {region: 0x130, script: 0x5b, flags: 0x0},\n\t905:  {region: 0x132, script: 0x5b, flags: 0x0},\n\t906:  {region: 0x81, script: 0x5b, flags: 0x0},\n\t907:  {region: 0x79, script: 0x5b, flags: 0x0},\n\t908:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t910:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t911:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t912:  {region: 0x70, script: 0x5b, flags: 0x0},\n\t913:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t914:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t915:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t916:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t917:  {region: 0x9a, script: 0x83, flags: 0x0},\n\t918:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t919:  {region: 0x166, script: 0x5, flags: 0x0},\n\t920:  {region: 0x7e, script: 0x20, flags: 0x0},\n\t921:  {region: 0x136, script: 0x84, flags: 0x0},\n\t922:  {region: 0x166, script: 0x5, flags: 0x0},\n\t923:  {region: 0xc6, script: 0x82, flags: 0x0},\n\t924:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t925:  {region: 0x2c, script: 0x3, flags: 0x1},\n\t926:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t927:  {region: 0x2f, script: 0x2, flags: 0x1},\n\t928:  {region: 0xe8, script: 0x5b, flags: 0x0},\n\t929:  {region: 0x30, script: 0x5b, flags: 0x0},\n\t930:  {region: 0xf1, script: 0x5b, flags: 0x0},\n\t931:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t932:  {region: 0x79, script: 0x5b, flags: 0x0},\n\t933:  {region: 0xd7, script: 0x5b, flags: 0x0},\n\t934:  {region: 0x136, script: 0x5b, flags: 0x0},\n\t935:  {region: 0x49, script: 0x5b, flags: 0x0},\n\t936:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t937:  {region: 0x9d, script: 0xfa, flags: 0x0},\n\t938:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t939:  {region: 0x61, script: 0x5b, flags: 0x0},\n\t940:  {region: 0x166, script: 0x5, flags: 0x0},\n\t941:  {region: 0xb1, script: 0x90, flags: 0x0},\n\t943:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t944:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t945:  {region: 0x9a, script: 0x12, flags: 0x0},\n\t946:  {region: 0xa5, script: 0x5b, flags: 0x0},\n\t947:  {region: 0xea, script: 0x5b, flags: 0x0},\n\t948:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t949:  {region: 0x9f, script: 0x5b, flags: 0x0},\n\t950:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t951:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t952:  {region: 0x88, script: 0x34, flags: 0x0},\n\t953:  {region: 0x76, script: 0x5b, flags: 0x0},\n\t954:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t955:  {region: 0xe9, script: 0x4e, flags: 0x0},\n\t956:  {region: 0x9d, script: 0x5, flags: 0x0},\n\t957:  {region: 0x1, script: 0x5b, flags: 0x0},\n\t958:  {region: 0x24, script: 0x5, flags: 0x0},\n\t959:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t960:  {region: 0x41, script: 0x5b, flags: 0x0},\n\t961:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t962:  {region: 0x7b, script: 0x5b, flags: 0x0},\n\t963:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t964:  {region: 0xe5, script: 0x5b, flags: 0x0},\n\t965:  {region: 0x8a, script: 0x5b, flags: 0x0},\n\t966:  {region: 0x6a, script: 0x5b, flags: 0x0},\n\t967:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t968:  {region: 0x9a, script: 0x22, flags: 0x0},\n\t969:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t970:  {region: 0x103, script: 0x5b, flags: 0x0},\n\t971:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t972:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t973:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t974:  {region: 0x9f, script: 0x5b, flags: 0x0},\n\t975:  {region: 0x166, script: 0x5, flags: 0x0},\n\t976:  {region: 0x9a, script: 0x5b, flags: 0x0},\n\t977:  {region: 0x31, script: 0x2, flags: 0x1},\n\t978:  {region: 0xdc, script: 0x22, flags: 0x0},\n\t979:  {region: 0x35, script: 0xe, flags: 0x0},\n\t980:  {region: 0x4e, script: 0x5b, flags: 0x0},\n\t981:  {region: 0x73, script: 0x5b, flags: 0x0},\n\t982:  {region: 0x4e, script: 0x5b, flags: 0x0},\n\t983:  {region: 0x9d, script: 0x5, flags: 0x0},\n\t984:  {region: 0x10d, script: 0x5b, flags: 0x0},\n\t985:  {region: 0x3a, script: 0x5b, flags: 0x0},\n\t986:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t987:  {region: 0xd2, script: 0x5b, flags: 0x0},\n\t988:  {region: 0x105, script: 0x5b, flags: 0x0},\n\t989:  {region: 0x96, script: 0x5b, flags: 0x0},\n\t990:  {region: 0x130, script: 0x5b, flags: 0x0},\n\t991:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t992:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t993:  {region: 0x74, script: 0x5b, flags: 0x0},\n\t994:  {region: 0x107, script: 0x20, flags: 0x0},\n\t995:  {region: 0x131, script: 0x20, flags: 0x0},\n\t996:  {region: 0x10a, script: 0x5b, flags: 0x0},\n\t997:  {region: 0x108, script: 0x5b, flags: 0x0},\n\t998:  {region: 0x130, script: 0x5b, flags: 0x0},\n\t999:  {region: 0x166, script: 0x5b, flags: 0x0},\n\t1000: {region: 0xa3, script: 0x4c, flags: 0x0},\n\t1001: {region: 0x9a, script: 0x22, flags: 0x0},\n\t1002: {region: 0x81, script: 0x5b, flags: 0x0},\n\t1003: {region: 0x107, script: 0x20, flags: 0x0},\n\t1004: {region: 0xa5, script: 0x5b, flags: 0x0},\n\t1005: {region: 0x96, script: 0x5b, flags: 0x0},\n\t1006: {region: 0x9a, script: 0x5b, flags: 0x0},\n\t1007: {region: 0x115, script: 0x5b, flags: 0x0},\n\t1008: {region: 0x9a, script: 0xcf, flags: 0x0},\n\t1009: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1010: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1011: {region: 0x130, script: 0x5b, flags: 0x0},\n\t1012: {region: 0x9f, script: 0x5b, flags: 0x0},\n\t1013: {region: 0x9a, script: 0x22, flags: 0x0},\n\t1014: {region: 0x166, script: 0x5, flags: 0x0},\n\t1015: {region: 0x9f, script: 0x5b, flags: 0x0},\n\t1016: {region: 0x7c, script: 0x5b, flags: 0x0},\n\t1017: {region: 0x49, script: 0x5b, flags: 0x0},\n\t1018: {region: 0x33, script: 0x4, flags: 0x1},\n\t1019: {region: 0x9f, script: 0x5b, flags: 0x0},\n\t1020: {region: 0x9d, script: 0x5, flags: 0x0},\n\t1021: {region: 0xdb, script: 0x5b, flags: 0x0},\n\t1022: {region: 0x4f, script: 0x5b, flags: 0x0},\n\t1023: {region: 0xd2, script: 0x5b, flags: 0x0},\n\t1024: {region: 0xd0, script: 0x5b, flags: 0x0},\n\t1025: {region: 0xc4, script: 0x5b, flags: 0x0},\n\t1026: {region: 0x4c, script: 0x5b, flags: 0x0},\n\t1027: {region: 0x97, script: 0x80, flags: 0x0},\n\t1028: {region: 0xb7, script: 0x5b, flags: 0x0},\n\t1029: {region: 0x166, script: 0x2c, flags: 0x0},\n\t1030: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1032: {region: 0xbb, script: 0xeb, flags: 0x0},\n\t1033: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1034: {region: 0xc5, script: 0x76, flags: 0x0},\n\t1035: {region: 0x166, script: 0x5, flags: 0x0},\n\t1036: {region: 0xb4, script: 0xd6, flags: 0x0},\n\t1037: {region: 0x70, script: 0x5b, flags: 0x0},\n\t1038: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1039: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1040: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1041: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1042: {region: 0x112, script: 0x5b, flags: 0x0},\n\t1043: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1044: {region: 0xe9, script: 0x5, flags: 0x0},\n\t1045: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1046: {region: 0x110, script: 0x5b, flags: 0x0},\n\t1047: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1048: {region: 0xea, script: 0x5b, flags: 0x0},\n\t1049: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1050: {region: 0x96, script: 0x5b, flags: 0x0},\n\t1051: {region: 0x143, script: 0x5b, flags: 0x0},\n\t1052: {region: 0x10d, script: 0x5b, flags: 0x0},\n\t1054: {region: 0x10d, script: 0x5b, flags: 0x0},\n\t1055: {region: 0x73, script: 0x5b, flags: 0x0},\n\t1056: {region: 0x98, script: 0xcc, flags: 0x0},\n\t1057: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1058: {region: 0x73, script: 0x5b, flags: 0x0},\n\t1059: {region: 0x165, script: 0x5b, flags: 0x0},\n\t1060: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1061: {region: 0xc4, script: 0x5b, flags: 0x0},\n\t1062: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1063: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1064: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1065: {region: 0x116, script: 0x5b, flags: 0x0},\n\t1066: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1067: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1068: {region: 0x124, script: 0xee, flags: 0x0},\n\t1069: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1070: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1071: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1072: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1073: {region: 0x27, script: 0x5b, flags: 0x0},\n\t1074: {region: 0x37, script: 0x5, flags: 0x1},\n\t1075: {region: 0x9a, script: 0xd9, flags: 0x0},\n\t1076: {region: 0x117, script: 0x5b, flags: 0x0},\n\t1077: {region: 0x115, script: 0x5b, flags: 0x0},\n\t1078: {region: 0x9a, script: 0x22, flags: 0x0},\n\t1079: {region: 0x162, script: 0x5b, flags: 0x0},\n\t1080: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1081: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1082: {region: 0x6e, script: 0x5b, flags: 0x0},\n\t1083: {region: 0x162, script: 0x5b, flags: 0x0},\n\t1084: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1085: {region: 0x61, script: 0x5b, flags: 0x0},\n\t1086: {region: 0x96, script: 0x5b, flags: 0x0},\n\t1087: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1088: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1089: {region: 0x130, script: 0x5b, flags: 0x0},\n\t1090: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1091: {region: 0x85, script: 0x5b, flags: 0x0},\n\t1092: {region: 0x10d, script: 0x5b, flags: 0x0},\n\t1093: {region: 0x130, script: 0x5b, flags: 0x0},\n\t1094: {region: 0x160, script: 0x5, flags: 0x0},\n\t1095: {region: 0x4b, script: 0x5b, flags: 0x0},\n\t1096: {region: 0x61, script: 0x5b, flags: 0x0},\n\t1097: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1098: {region: 0x9a, script: 0x22, flags: 0x0},\n\t1099: {region: 0x96, script: 0x5b, flags: 0x0},\n\t1100: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1101: {region: 0x35, script: 0xe, flags: 0x0},\n\t1102: {region: 0x9c, script: 0xde, flags: 0x0},\n\t1103: {region: 0xea, script: 0x5b, flags: 0x0},\n\t1104: {region: 0x9a, script: 0xe6, flags: 0x0},\n\t1105: {region: 0xdc, script: 0x22, flags: 0x0},\n\t1106: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1107: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1108: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1109: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1110: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1111: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1112: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1113: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1114: {region: 0xe8, script: 0x5b, flags: 0x0},\n\t1115: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1116: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1117: {region: 0x9a, script: 0x53, flags: 0x0},\n\t1118: {region: 0x53, script: 0xe4, flags: 0x0},\n\t1119: {region: 0xdc, script: 0x22, flags: 0x0},\n\t1120: {region: 0xdc, script: 0x22, flags: 0x0},\n\t1121: {region: 0x9a, script: 0xe9, flags: 0x0},\n\t1122: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1123: {region: 0x113, script: 0x5b, flags: 0x0},\n\t1124: {region: 0x132, script: 0x5b, flags: 0x0},\n\t1125: {region: 0x127, script: 0x5b, flags: 0x0},\n\t1126: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1127: {region: 0x3c, script: 0x3, flags: 0x1},\n\t1128: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1129: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1130: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1131: {region: 0x124, script: 0xee, flags: 0x0},\n\t1132: {region: 0xdc, script: 0x22, flags: 0x0},\n\t1133: {region: 0xdc, script: 0x22, flags: 0x0},\n\t1134: {region: 0xdc, script: 0x22, flags: 0x0},\n\t1135: {region: 0x70, script: 0x2c, flags: 0x0},\n\t1136: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1137: {region: 0x6e, script: 0x2c, flags: 0x0},\n\t1138: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1139: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1140: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1141: {region: 0xd7, script: 0x5b, flags: 0x0},\n\t1142: {region: 0x128, script: 0x5b, flags: 0x0},\n\t1143: {region: 0x126, script: 0x5b, flags: 0x0},\n\t1144: {region: 0x32, script: 0x5b, flags: 0x0},\n\t1145: {region: 0xdc, script: 0x22, flags: 0x0},\n\t1146: {region: 0xe8, script: 0x5b, flags: 0x0},\n\t1147: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1148: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1149: {region: 0x32, script: 0x5b, flags: 0x0},\n\t1150: {region: 0xd5, script: 0x5b, flags: 0x0},\n\t1151: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1152: {region: 0x162, script: 0x5b, flags: 0x0},\n\t1153: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1154: {region: 0x12a, script: 0x5b, flags: 0x0},\n\t1155: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1156: {region: 0xcf, script: 0x5b, flags: 0x0},\n\t1157: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1158: {region: 0xe7, script: 0x5b, flags: 0x0},\n\t1159: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1160: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1161: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1162: {region: 0x12c, script: 0x5b, flags: 0x0},\n\t1163: {region: 0x12c, script: 0x5b, flags: 0x0},\n\t1164: {region: 0x12f, script: 0x5b, flags: 0x0},\n\t1165: {region: 0x166, script: 0x5, flags: 0x0},\n\t1166: {region: 0x162, script: 0x5b, flags: 0x0},\n\t1167: {region: 0x88, script: 0x34, flags: 0x0},\n\t1168: {region: 0xdc, script: 0x22, flags: 0x0},\n\t1169: {region: 0xe8, script: 0x5b, flags: 0x0},\n\t1170: {region: 0x43, script: 0xef, flags: 0x0},\n\t1171: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1172: {region: 0x107, script: 0x20, flags: 0x0},\n\t1173: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1174: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1175: {region: 0x132, script: 0x5b, flags: 0x0},\n\t1176: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1177: {region: 0x124, script: 0xee, flags: 0x0},\n\t1178: {region: 0x32, script: 0x5b, flags: 0x0},\n\t1179: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1180: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1181: {region: 0xcf, script: 0x5b, flags: 0x0},\n\t1182: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1183: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1184: {region: 0x12e, script: 0x5b, flags: 0x0},\n\t1185: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1187: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1188: {region: 0xd5, script: 0x5b, flags: 0x0},\n\t1189: {region: 0x53, script: 0xe7, flags: 0x0},\n\t1190: {region: 0xe6, script: 0x5b, flags: 0x0},\n\t1191: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1192: {region: 0x107, script: 0x20, flags: 0x0},\n\t1193: {region: 0xbb, script: 0x5b, flags: 0x0},\n\t1194: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1195: {region: 0x107, script: 0x20, flags: 0x0},\n\t1196: {region: 0x3f, script: 0x4, flags: 0x1},\n\t1197: {region: 0x11d, script: 0xf3, flags: 0x0},\n\t1198: {region: 0x131, script: 0x20, flags: 0x0},\n\t1199: {region: 0x76, script: 0x5b, flags: 0x0},\n\t1200: {region: 0x2a, script: 0x5b, flags: 0x0},\n\t1202: {region: 0x43, script: 0x3, flags: 0x1},\n\t1203: {region: 0x9a, script: 0xe, flags: 0x0},\n\t1204: {region: 0xe9, script: 0x5, flags: 0x0},\n\t1205: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1206: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1207: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1208: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1209: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1210: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1211: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1212: {region: 0x46, script: 0x4, flags: 0x1},\n\t1213: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1214: {region: 0xb5, script: 0xf4, flags: 0x0},\n\t1215: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1216: {region: 0x162, script: 0x5b, flags: 0x0},\n\t1217: {region: 0x9f, script: 0x5b, flags: 0x0},\n\t1218: {region: 0x107, script: 0x5b, flags: 0x0},\n\t1219: {region: 0x13f, script: 0x5b, flags: 0x0},\n\t1220: {region: 0x11c, script: 0x5b, flags: 0x0},\n\t1221: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1222: {region: 0x36, script: 0x5b, flags: 0x0},\n\t1223: {region: 0x61, script: 0x5b, flags: 0x0},\n\t1224: {region: 0xd2, script: 0x5b, flags: 0x0},\n\t1225: {region: 0x1, script: 0x5b, flags: 0x0},\n\t1226: {region: 0x107, script: 0x5b, flags: 0x0},\n\t1227: {region: 0x6b, script: 0x5b, flags: 0x0},\n\t1228: {region: 0x130, script: 0x5b, flags: 0x0},\n\t1229: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1230: {region: 0x36, script: 0x5b, flags: 0x0},\n\t1231: {region: 0x4e, script: 0x5b, flags: 0x0},\n\t1232: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1233: {region: 0x70, script: 0x2c, flags: 0x0},\n\t1234: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1235: {region: 0xe8, script: 0x5b, flags: 0x0},\n\t1236: {region: 0x2f, script: 0x5b, flags: 0x0},\n\t1237: {region: 0x9a, script: 0xe9, flags: 0x0},\n\t1238: {region: 0x9a, script: 0x22, flags: 0x0},\n\t1239: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1240: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1241: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1242: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1243: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1244: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1245: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1246: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1247: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1248: {region: 0x141, script: 0x5b, flags: 0x0},\n\t1249: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1250: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1251: {region: 0xa9, script: 0x5, flags: 0x0},\n\t1252: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1253: {region: 0x115, script: 0x5b, flags: 0x0},\n\t1254: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1255: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1256: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1257: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1258: {region: 0x9a, script: 0x22, flags: 0x0},\n\t1259: {region: 0x53, script: 0x3b, flags: 0x0},\n\t1260: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1261: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1262: {region: 0x41, script: 0x5b, flags: 0x0},\n\t1263: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1264: {region: 0x12c, script: 0x18, flags: 0x0},\n\t1265: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1266: {region: 0x162, script: 0x5b, flags: 0x0},\n\t1267: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1268: {region: 0x12c, script: 0x63, flags: 0x0},\n\t1269: {region: 0x12c, script: 0x64, flags: 0x0},\n\t1270: {region: 0x7e, script: 0x2e, flags: 0x0},\n\t1271: {region: 0x53, script: 0x68, flags: 0x0},\n\t1272: {region: 0x10c, script: 0x6d, flags: 0x0},\n\t1273: {region: 0x109, script: 0x79, flags: 0x0},\n\t1274: {region: 0x9a, script: 0x22, flags: 0x0},\n\t1275: {region: 0x132, script: 0x5b, flags: 0x0},\n\t1276: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1277: {region: 0x9d, script: 0x93, flags: 0x0},\n\t1278: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1279: {region: 0x15f, script: 0xce, flags: 0x0},\n\t1280: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1281: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1282: {region: 0xdc, script: 0x22, flags: 0x0},\n\t1283: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1284: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1285: {region: 0xd2, script: 0x5b, flags: 0x0},\n\t1286: {region: 0x76, script: 0x5b, flags: 0x0},\n\t1287: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1288: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1289: {region: 0x52, script: 0x5b, flags: 0x0},\n\t1290: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1291: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1292: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1293: {region: 0x52, script: 0x5b, flags: 0x0},\n\t1294: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1295: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1296: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1297: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1298: {region: 0x1, script: 0x3e, flags: 0x0},\n\t1299: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1300: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1301: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1302: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1303: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1304: {region: 0xd7, script: 0x5b, flags: 0x0},\n\t1305: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1306: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1307: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1308: {region: 0x41, script: 0x5b, flags: 0x0},\n\t1309: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1310: {region: 0xd0, script: 0x5b, flags: 0x0},\n\t1311: {region: 0x4a, script: 0x3, flags: 0x1},\n\t1312: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1313: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1314: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1315: {region: 0x53, script: 0x5b, flags: 0x0},\n\t1316: {region: 0x10c, script: 0x5b, flags: 0x0},\n\t1318: {region: 0xa9, script: 0x5, flags: 0x0},\n\t1319: {region: 0xda, script: 0x5b, flags: 0x0},\n\t1320: {region: 0xbb, script: 0xeb, flags: 0x0},\n\t1321: {region: 0x4d, script: 0x14, flags: 0x1},\n\t1322: {region: 0x53, script: 0x7f, flags: 0x0},\n\t1323: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1324: {region: 0x123, script: 0x5b, flags: 0x0},\n\t1325: {region: 0xd1, script: 0x5b, flags: 0x0},\n\t1326: {region: 0x166, script: 0x5b, flags: 0x0},\n\t1327: {region: 0x162, script: 0x5b, flags: 0x0},\n\t1329: {region: 0x12c, script: 0x5b, flags: 0x0},\n}\n\n// likelyLangList holds lists info associated with likelyLang.\n// Size: 582 bytes, 97 elements\nvar likelyLangList = [97]likelyScriptRegion{\n\t0:  {region: 0x9d, script: 0x7, flags: 0x0},\n\t1:  {region: 0xa2, script: 0x7a, flags: 0x2},\n\t2:  {region: 0x11d, script: 0x87, flags: 0x2},\n\t3:  {region: 0x32, script: 0x5b, flags: 0x0},\n\t4:  {region: 0x9c, script: 0x5, flags: 0x4},\n\t5:  {region: 0x9d, script: 0x5, flags: 0x4},\n\t6:  {region: 0x107, script: 0x20, flags: 0x4},\n\t7:  {region: 0x9d, script: 0x5, flags: 0x2},\n\t8:  {region: 0x107, script: 0x20, flags: 0x0},\n\t9:  {region: 0x38, script: 0x2f, flags: 0x2},\n\t10: {region: 0x136, script: 0x5b, flags: 0x0},\n\t11: {region: 0x7c, script: 0xd1, flags: 0x2},\n\t12: {region: 0x115, script: 0x5b, flags: 0x0},\n\t13: {region: 0x85, script: 0x1, flags: 0x2},\n\t14: {region: 0x5e, script: 0x1f, flags: 0x0},\n\t15: {region: 0x88, script: 0x60, flags: 0x2},\n\t16: {region: 0xd7, script: 0x5b, flags: 0x0},\n\t17: {region: 0x52, script: 0x5, flags: 0x4},\n\t18: {region: 0x10c, script: 0x5, flags: 0x4},\n\t19: {region: 0xaf, script: 0x20, flags: 0x0},\n\t20: {region: 0x24, script: 0x5, flags: 0x4},\n\t21: {region: 0x53, script: 0x5, flags: 0x4},\n\t22: {region: 0x9d, script: 0x5, flags: 0x4},\n\t23: {region: 0xc6, script: 0x5, flags: 0x4},\n\t24: {region: 0x53, script: 0x5, flags: 0x2},\n\t25: {region: 0x12c, script: 0x5b, flags: 0x0},\n\t26: {region: 0xb1, script: 0x5, flags: 0x4},\n\t27: {region: 0x9c, script: 0x5, flags: 0x2},\n\t28: {region: 0xa6, script: 0x20, flags: 0x0},\n\t29: {region: 0x53, script: 0x5, flags: 0x4},\n\t30: {region: 0x12c, script: 0x5b, flags: 0x4},\n\t31: {region: 0x53, script: 0x5, flags: 0x2},\n\t32: {region: 0x12c, script: 0x5b, flags: 0x2},\n\t33: {region: 0xdc, script: 0x22, flags: 0x0},\n\t34: {region: 0x9a, script: 0x5e, flags: 0x2},\n\t35: {region: 0x84, script: 0x5b, flags: 0x0},\n\t36: {region: 0x85, script: 0x7e, flags: 0x4},\n\t37: {region: 0x85, script: 0x7e, flags: 0x2},\n\t38: {region: 0xc6, script: 0x20, flags: 0x0},\n\t39: {region: 0x53, script: 0x71, flags: 0x4},\n\t40: {region: 0x53, script: 0x71, flags: 0x2},\n\t41: {region: 0xd1, script: 0x5b, flags: 0x0},\n\t42: {region: 0x4a, script: 0x5, flags: 0x4},\n\t43: {region: 0x96, script: 0x5, flags: 0x4},\n\t44: {region: 0x9a, script: 0x36, flags: 0x0},\n\t45: {region: 0xe9, script: 0x5, flags: 0x4},\n\t46: {region: 0xe9, script: 0x5, flags: 0x2},\n\t47: {region: 0x9d, script: 0x8d, flags: 0x0},\n\t48: {region: 0x53, script: 0x8e, flags: 0x2},\n\t49: {region: 0xbb, script: 0xeb, flags: 0x0},\n\t50: {region: 0xda, script: 0x5b, flags: 0x4},\n\t51: {region: 0xe9, script: 0x5, flags: 0x0},\n\t52: {region: 0x9a, script: 0x22, flags: 0x2},\n\t53: {region: 0x9a, script: 0x50, flags: 0x2},\n\t54: {region: 0x9a, script: 0xd5, flags: 0x2},\n\t55: {region: 0x106, script: 0x20, flags: 0x0},\n\t56: {region: 0xbe, script: 0x5b, flags: 0x4},\n\t57: {region: 0x105, script: 0x5b, flags: 0x4},\n\t58: {region: 0x107, script: 0x5b, flags: 0x4},\n\t59: {region: 0x12c, script: 0x5b, flags: 0x4},\n\t60: {region: 0x125, script: 0x20, flags: 0x0},\n\t61: {region: 0xe9, script: 0x5, flags: 0x4},\n\t62: {region: 0xe9, script: 0x5, flags: 0x2},\n\t63: {region: 0x53, script: 0x5, flags: 0x0},\n\t64: {region: 0xaf, script: 0x20, flags: 0x4},\n\t65: {region: 0xc6, script: 0x20, flags: 0x4},\n\t66: {region: 0xaf, script: 0x20, flags: 0x2},\n\t67: {region: 0x9a, script: 0xe, flags: 0x0},\n\t68: {region: 0xdc, script: 0x22, flags: 0x4},\n\t69: {region: 0xdc, script: 0x22, flags: 0x2},\n\t70: {region: 0x138, script: 0x5b, flags: 0x0},\n\t71: {region: 0x24, script: 0x5, flags: 0x4},\n\t72: {region: 0x53, script: 0x20, flags: 0x4},\n\t73: {region: 0x24, script: 0x5, flags: 0x2},\n\t74: {region: 0x8e, script: 0x3c, flags: 0x0},\n\t75: {region: 0x53, script: 0x3b, flags: 0x4},\n\t76: {region: 0x53, script: 0x3b, flags: 0x2},\n\t77: {region: 0x53, script: 0x3b, flags: 0x0},\n\t78: {region: 0x2f, script: 0x3c, flags: 0x4},\n\t79: {region: 0x3e, script: 0x3c, flags: 0x4},\n\t80: {region: 0x7c, script: 0x3c, flags: 0x4},\n\t81: {region: 0x7f, script: 0x3c, flags: 0x4},\n\t82: {region: 0x8e, script: 0x3c, flags: 0x4},\n\t83: {region: 0x96, script: 0x3c, flags: 0x4},\n\t84: {region: 0xc7, script: 0x3c, flags: 0x4},\n\t85: {region: 0xd1, script: 0x3c, flags: 0x4},\n\t86: {region: 0xe3, script: 0x3c, flags: 0x4},\n\t87: {region: 0xe6, script: 0x3c, flags: 0x4},\n\t88: {region: 0xe8, script: 0x3c, flags: 0x4},\n\t89: {region: 0x117, script: 0x3c, flags: 0x4},\n\t90: {region: 0x124, script: 0x3c, flags: 0x4},\n\t91: {region: 0x12f, script: 0x3c, flags: 0x4},\n\t92: {region: 0x136, script: 0x3c, flags: 0x4},\n\t93: {region: 0x13f, script: 0x3c, flags: 0x4},\n\t94: {region: 0x12f, script: 0x11, flags: 0x2},\n\t95: {region: 0x12f, script: 0x37, flags: 0x2},\n\t96: {region: 0x12f, script: 0x3c, flags: 0x2},\n}\n\ntype likelyLangScript struct {\n\tlang   uint16\n\tscript uint16\n\tflags  uint8\n}\n\n// likelyRegion is a lookup table, indexed by regionID, for the most likely\n// languages and scripts given incomplete information. If more entries exist\n// for a given regionID, lang and script are the index and size respectively\n// of the list in likelyRegionList.\n// TODO: exclude containers and user-definable regions from the list.\n// Size: 2154 bytes, 359 elements\nvar likelyRegion = [359]likelyLangScript{\n\t34:  {lang: 0xd7, script: 0x5b, flags: 0x0},\n\t35:  {lang: 0x3a, script: 0x5, flags: 0x0},\n\t36:  {lang: 0x0, script: 0x2, flags: 0x1},\n\t39:  {lang: 0x2, script: 0x2, flags: 0x1},\n\t40:  {lang: 0x4, script: 0x2, flags: 0x1},\n\t42:  {lang: 0x3c0, script: 0x5b, flags: 0x0},\n\t43:  {lang: 0x0, script: 0x5b, flags: 0x0},\n\t44:  {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t45:  {lang: 0x41b, script: 0x5b, flags: 0x0},\n\t46:  {lang: 0x10d, script: 0x5b, flags: 0x0},\n\t48:  {lang: 0x367, script: 0x5b, flags: 0x0},\n\t49:  {lang: 0x444, script: 0x5b, flags: 0x0},\n\t50:  {lang: 0x58, script: 0x5b, flags: 0x0},\n\t51:  {lang: 0x6, script: 0x2, flags: 0x1},\n\t53:  {lang: 0xa5, script: 0xe, flags: 0x0},\n\t54:  {lang: 0x367, script: 0x5b, flags: 0x0},\n\t55:  {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t56:  {lang: 0x7e, script: 0x20, flags: 0x0},\n\t57:  {lang: 0x3a, script: 0x5, flags: 0x0},\n\t58:  {lang: 0x3d9, script: 0x5b, flags: 0x0},\n\t59:  {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t60:  {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t62:  {lang: 0x31f, script: 0x5b, flags: 0x0},\n\t63:  {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t64:  {lang: 0x3a1, script: 0x5b, flags: 0x0},\n\t65:  {lang: 0x3c0, script: 0x5b, flags: 0x0},\n\t67:  {lang: 0x8, script: 0x2, flags: 0x1},\n\t69:  {lang: 0x0, script: 0x5b, flags: 0x0},\n\t71:  {lang: 0x71, script: 0x20, flags: 0x0},\n\t73:  {lang: 0x512, script: 0x3e, flags: 0x2},\n\t74:  {lang: 0x31f, script: 0x5, flags: 0x2},\n\t75:  {lang: 0x445, script: 0x5b, flags: 0x0},\n\t76:  {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t77:  {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t78:  {lang: 0x10d, script: 0x5b, flags: 0x0},\n\t79:  {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t81:  {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t82:  {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t83:  {lang: 0xa, script: 0x4, flags: 0x1},\n\t84:  {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t85:  {lang: 0x0, script: 0x5b, flags: 0x0},\n\t87:  {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t90:  {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t91:  {lang: 0x3c0, script: 0x5b, flags: 0x0},\n\t92:  {lang: 0x3a1, script: 0x5b, flags: 0x0},\n\t94:  {lang: 0xe, script: 0x2, flags: 0x1},\n\t95:  {lang: 0xfa, script: 0x5b, flags: 0x0},\n\t97:  {lang: 0x10d, script: 0x5b, flags: 0x0},\n\t99:  {lang: 0x1, script: 0x5b, flags: 0x0},\n\t100: {lang: 0x101, script: 0x5b, flags: 0x0},\n\t102: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t104: {lang: 0x10, script: 0x2, flags: 0x1},\n\t105: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t106: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t107: {lang: 0x140, script: 0x5b, flags: 0x0},\n\t108: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t109: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t110: {lang: 0x46f, script: 0x2c, flags: 0x0},\n\t111: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t112: {lang: 0x12, script: 0x2, flags: 0x1},\n\t114: {lang: 0x10d, script: 0x5b, flags: 0x0},\n\t115: {lang: 0x151, script: 0x5b, flags: 0x0},\n\t116: {lang: 0x1c0, script: 0x22, flags: 0x2},\n\t119: {lang: 0x158, script: 0x5b, flags: 0x0},\n\t121: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t123: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t124: {lang: 0x14, script: 0x2, flags: 0x1},\n\t126: {lang: 0x16, script: 0x3, flags: 0x1},\n\t127: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t129: {lang: 0x21, script: 0x5b, flags: 0x0},\n\t131: {lang: 0x245, script: 0x5b, flags: 0x0},\n\t133: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t134: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t135: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t136: {lang: 0x19, script: 0x2, flags: 0x1},\n\t137: {lang: 0x0, script: 0x5b, flags: 0x0},\n\t138: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t140: {lang: 0x3c0, script: 0x5b, flags: 0x0},\n\t142: {lang: 0x529, script: 0x3c, flags: 0x0},\n\t143: {lang: 0x0, script: 0x5b, flags: 0x0},\n\t144: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t145: {lang: 0x1d1, script: 0x5b, flags: 0x0},\n\t146: {lang: 0x1d4, script: 0x5b, flags: 0x0},\n\t147: {lang: 0x1d5, script: 0x5b, flags: 0x0},\n\t149: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t150: {lang: 0x1b, script: 0x2, flags: 0x1},\n\t152: {lang: 0x1bc, script: 0x3e, flags: 0x0},\n\t154: {lang: 0x1d, script: 0x3, flags: 0x1},\n\t156: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t157: {lang: 0x20, script: 0x2, flags: 0x1},\n\t158: {lang: 0x1f8, script: 0x5b, flags: 0x0},\n\t159: {lang: 0x1f9, script: 0x5b, flags: 0x0},\n\t162: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t163: {lang: 0x200, script: 0x49, flags: 0x0},\n\t165: {lang: 0x445, script: 0x5b, flags: 0x0},\n\t166: {lang: 0x28a, script: 0x20, flags: 0x0},\n\t167: {lang: 0x22, script: 0x3, flags: 0x1},\n\t169: {lang: 0x25, script: 0x2, flags: 0x1},\n\t171: {lang: 0x254, script: 0x54, flags: 0x0},\n\t172: {lang: 0x254, script: 0x54, flags: 0x0},\n\t173: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t175: {lang: 0x3e2, script: 0x20, flags: 0x0},\n\t176: {lang: 0x27, script: 0x2, flags: 0x1},\n\t177: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t179: {lang: 0x10d, script: 0x5b, flags: 0x0},\n\t180: {lang: 0x40c, script: 0xd6, flags: 0x0},\n\t182: {lang: 0x43b, script: 0x5b, flags: 0x0},\n\t183: {lang: 0x2c0, script: 0x5b, flags: 0x0},\n\t184: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t185: {lang: 0x2c7, script: 0x5b, flags: 0x0},\n\t186: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t187: {lang: 0x29, script: 0x2, flags: 0x1},\n\t188: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t189: {lang: 0x2b, script: 0x2, flags: 0x1},\n\t190: {lang: 0x432, script: 0x5b, flags: 0x0},\n\t191: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t192: {lang: 0x2f1, script: 0x5b, flags: 0x0},\n\t195: {lang: 0x2d, script: 0x2, flags: 0x1},\n\t196: {lang: 0xa0, script: 0x5b, flags: 0x0},\n\t197: {lang: 0x2f, script: 0x2, flags: 0x1},\n\t198: {lang: 0x31, script: 0x2, flags: 0x1},\n\t199: {lang: 0x33, script: 0x2, flags: 0x1},\n\t201: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t202: {lang: 0x35, script: 0x2, flags: 0x1},\n\t204: {lang: 0x320, script: 0x5b, flags: 0x0},\n\t205: {lang: 0x37, script: 0x3, flags: 0x1},\n\t206: {lang: 0x128, script: 0xed, flags: 0x0},\n\t208: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t209: {lang: 0x31f, script: 0x5b, flags: 0x0},\n\t210: {lang: 0x3c0, script: 0x5b, flags: 0x0},\n\t211: {lang: 0x16, script: 0x5b, flags: 0x0},\n\t212: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t213: {lang: 0x1b4, script: 0x5b, flags: 0x0},\n\t215: {lang: 0x1b4, script: 0x5, flags: 0x2},\n\t217: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t218: {lang: 0x367, script: 0x5b, flags: 0x0},\n\t219: {lang: 0x347, script: 0x5b, flags: 0x0},\n\t220: {lang: 0x351, script: 0x22, flags: 0x0},\n\t226: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t227: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t229: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t230: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t231: {lang: 0x486, script: 0x5b, flags: 0x0},\n\t232: {lang: 0x153, script: 0x5b, flags: 0x0},\n\t233: {lang: 0x3a, script: 0x3, flags: 0x1},\n\t234: {lang: 0x3b3, script: 0x5b, flags: 0x0},\n\t235: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t237: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t238: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t239: {lang: 0x3c0, script: 0x5b, flags: 0x0},\n\t241: {lang: 0x3a2, script: 0x5b, flags: 0x0},\n\t242: {lang: 0x194, script: 0x5b, flags: 0x0},\n\t244: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t259: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t261: {lang: 0x3d, script: 0x2, flags: 0x1},\n\t262: {lang: 0x432, script: 0x20, flags: 0x0},\n\t263: {lang: 0x3f, script: 0x2, flags: 0x1},\n\t264: {lang: 0x3e5, script: 0x5b, flags: 0x0},\n\t265: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t267: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t268: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t269: {lang: 0x41, script: 0x2, flags: 0x1},\n\t272: {lang: 0x416, script: 0x5b, flags: 0x0},\n\t273: {lang: 0x347, script: 0x5b, flags: 0x0},\n\t274: {lang: 0x43, script: 0x2, flags: 0x1},\n\t276: {lang: 0x1f9, script: 0x5b, flags: 0x0},\n\t277: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t278: {lang: 0x429, script: 0x5b, flags: 0x0},\n\t279: {lang: 0x367, script: 0x5b, flags: 0x0},\n\t281: {lang: 0x3c0, script: 0x5b, flags: 0x0},\n\t283: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t285: {lang: 0x45, script: 0x2, flags: 0x1},\n\t289: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t290: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t291: {lang: 0x47, script: 0x2, flags: 0x1},\n\t292: {lang: 0x49, script: 0x3, flags: 0x1},\n\t293: {lang: 0x4c, script: 0x2, flags: 0x1},\n\t294: {lang: 0x477, script: 0x5b, flags: 0x0},\n\t295: {lang: 0x3c0, script: 0x5b, flags: 0x0},\n\t296: {lang: 0x476, script: 0x5b, flags: 0x0},\n\t297: {lang: 0x4e, script: 0x2, flags: 0x1},\n\t298: {lang: 0x482, script: 0x5b, flags: 0x0},\n\t300: {lang: 0x50, script: 0x4, flags: 0x1},\n\t302: {lang: 0x4a0, script: 0x5b, flags: 0x0},\n\t303: {lang: 0x54, script: 0x2, flags: 0x1},\n\t304: {lang: 0x445, script: 0x5b, flags: 0x0},\n\t305: {lang: 0x56, script: 0x3, flags: 0x1},\n\t306: {lang: 0x445, script: 0x5b, flags: 0x0},\n\t310: {lang: 0x512, script: 0x3e, flags: 0x2},\n\t311: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t312: {lang: 0x4bc, script: 0x5b, flags: 0x0},\n\t313: {lang: 0x1f9, script: 0x5b, flags: 0x0},\n\t316: {lang: 0x13e, script: 0x5b, flags: 0x0},\n\t319: {lang: 0x4c3, script: 0x5b, flags: 0x0},\n\t320: {lang: 0x8a, script: 0x5b, flags: 0x0},\n\t321: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t323: {lang: 0x41b, script: 0x5b, flags: 0x0},\n\t334: {lang: 0x59, script: 0x2, flags: 0x1},\n\t351: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t352: {lang: 0x5b, script: 0x2, flags: 0x1},\n\t357: {lang: 0x423, script: 0x5b, flags: 0x0},\n}\n\n// likelyRegionList holds lists info associated with likelyRegion.\n// Size: 558 bytes, 93 elements\nvar likelyRegionList = [93]likelyLangScript{\n\t0:  {lang: 0x148, script: 0x5, flags: 0x0},\n\t1:  {lang: 0x476, script: 0x5b, flags: 0x0},\n\t2:  {lang: 0x431, script: 0x5b, flags: 0x0},\n\t3:  {lang: 0x2ff, script: 0x20, flags: 0x0},\n\t4:  {lang: 0x1d7, script: 0x8, flags: 0x0},\n\t5:  {lang: 0x274, script: 0x5b, flags: 0x0},\n\t6:  {lang: 0xb7, script: 0x5b, flags: 0x0},\n\t7:  {lang: 0x432, script: 0x20, flags: 0x0},\n\t8:  {lang: 0x12d, script: 0xef, flags: 0x0},\n\t9:  {lang: 0x351, script: 0x22, flags: 0x0},\n\t10: {lang: 0x529, script: 0x3b, flags: 0x0},\n\t11: {lang: 0x4ac, script: 0x5, flags: 0x0},\n\t12: {lang: 0x523, script: 0x5b, flags: 0x0},\n\t13: {lang: 0x29a, script: 0xee, flags: 0x0},\n\t14: {lang: 0x136, script: 0x34, flags: 0x0},\n\t15: {lang: 0x48a, script: 0x5b, flags: 0x0},\n\t16: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t17: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t18: {lang: 0x27, script: 0x2c, flags: 0x0},\n\t19: {lang: 0x139, script: 0x5b, flags: 0x0},\n\t20: {lang: 0x26a, script: 0x5, flags: 0x2},\n\t21: {lang: 0x512, script: 0x3e, flags: 0x2},\n\t22: {lang: 0x210, script: 0x2e, flags: 0x0},\n\t23: {lang: 0x5, script: 0x20, flags: 0x0},\n\t24: {lang: 0x274, script: 0x5b, flags: 0x0},\n\t25: {lang: 0x136, script: 0x34, flags: 0x0},\n\t26: {lang: 0x2ff, script: 0x20, flags: 0x0},\n\t27: {lang: 0x1e1, script: 0x5b, flags: 0x0},\n\t28: {lang: 0x31f, script: 0x5, flags: 0x0},\n\t29: {lang: 0x1be, script: 0x22, flags: 0x0},\n\t30: {lang: 0x4b4, script: 0x5, flags: 0x0},\n\t31: {lang: 0x236, script: 0x76, flags: 0x0},\n\t32: {lang: 0x148, script: 0x5, flags: 0x0},\n\t33: {lang: 0x476, script: 0x5b, flags: 0x0},\n\t34: {lang: 0x24a, script: 0x4f, flags: 0x0},\n\t35: {lang: 0xe6, script: 0x5, flags: 0x0},\n\t36: {lang: 0x226, script: 0xee, flags: 0x0},\n\t37: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t38: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t39: {lang: 0x2b8, script: 0x58, flags: 0x0},\n\t40: {lang: 0x226, script: 0xee, flags: 0x0},\n\t41: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t42: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t43: {lang: 0x3dc, script: 0x5b, flags: 0x0},\n\t44: {lang: 0x4ae, script: 0x20, flags: 0x0},\n\t45: {lang: 0x2ff, script: 0x20, flags: 0x0},\n\t46: {lang: 0x431, script: 0x5b, flags: 0x0},\n\t47: {lang: 0x331, script: 0x76, flags: 0x0},\n\t48: {lang: 0x213, script: 0x5b, flags: 0x0},\n\t49: {lang: 0x30b, script: 0x20, flags: 0x0},\n\t50: {lang: 0x242, script: 0x5, flags: 0x0},\n\t51: {lang: 0x529, script: 0x3c, flags: 0x0},\n\t52: {lang: 0x3c0, script: 0x5b, flags: 0x0},\n\t53: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t54: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t55: {lang: 0x2ed, script: 0x5b, flags: 0x0},\n\t56: {lang: 0x4b4, script: 0x5, flags: 0x0},\n\t57: {lang: 0x88, script: 0x22, flags: 0x0},\n\t58: {lang: 0x4b4, script: 0x5, flags: 0x0},\n\t59: {lang: 0x4b4, script: 0x5, flags: 0x0},\n\t60: {lang: 0xbe, script: 0x22, flags: 0x0},\n\t61: {lang: 0x3dc, script: 0x5b, flags: 0x0},\n\t62: {lang: 0x7e, script: 0x20, flags: 0x0},\n\t63: {lang: 0x3e2, script: 0x20, flags: 0x0},\n\t64: {lang: 0x267, script: 0x5b, flags: 0x0},\n\t65: {lang: 0x444, script: 0x5b, flags: 0x0},\n\t66: {lang: 0x512, script: 0x3e, flags: 0x0},\n\t67: {lang: 0x412, script: 0x5b, flags: 0x0},\n\t68: {lang: 0x4ae, script: 0x20, flags: 0x0},\n\t69: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t70: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t71: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t72: {lang: 0x35, script: 0x5, flags: 0x0},\n\t73: {lang: 0x46b, script: 0xee, flags: 0x0},\n\t74: {lang: 0x2ec, script: 0x5, flags: 0x0},\n\t75: {lang: 0x30f, script: 0x76, flags: 0x0},\n\t76: {lang: 0x467, script: 0x20, flags: 0x0},\n\t77: {lang: 0x148, script: 0x5, flags: 0x0},\n\t78: {lang: 0x3a, script: 0x5, flags: 0x0},\n\t79: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t80: {lang: 0x48a, script: 0x5b, flags: 0x0},\n\t81: {lang: 0x58, script: 0x5, flags: 0x0},\n\t82: {lang: 0x219, script: 0x20, flags: 0x0},\n\t83: {lang: 0x81, script: 0x34, flags: 0x0},\n\t84: {lang: 0x529, script: 0x3c, flags: 0x0},\n\t85: {lang: 0x48c, script: 0x5b, flags: 0x0},\n\t86: {lang: 0x4ae, script: 0x20, flags: 0x0},\n\t87: {lang: 0x512, script: 0x3e, flags: 0x0},\n\t88: {lang: 0x3b3, script: 0x5b, flags: 0x0},\n\t89: {lang: 0x431, script: 0x5b, flags: 0x0},\n\t90: {lang: 0x432, script: 0x20, flags: 0x0},\n\t91: {lang: 0x15e, script: 0x5b, flags: 0x0},\n\t92: {lang: 0x446, script: 0x5, flags: 0x0},\n}\n\ntype likelyTag struct {\n\tlang   uint16\n\tregion uint16\n\tscript uint16\n}\n\n// Size: 198 bytes, 33 elements\nvar likelyRegionGroup = [33]likelyTag{\n\t1:  {lang: 0x139, region: 0xd7, script: 0x5b},\n\t2:  {lang: 0x139, region: 0x136, script: 0x5b},\n\t3:  {lang: 0x3c0, region: 0x41, script: 0x5b},\n\t4:  {lang: 0x139, region: 0x2f, script: 0x5b},\n\t5:  {lang: 0x139, region: 0xd7, script: 0x5b},\n\t6:  {lang: 0x13e, region: 0xd0, script: 0x5b},\n\t7:  {lang: 0x445, region: 0x130, script: 0x5b},\n\t8:  {lang: 0x3a, region: 0x6c, script: 0x5},\n\t9:  {lang: 0x445, region: 0x4b, script: 0x5b},\n\t10: {lang: 0x139, region: 0x162, script: 0x5b},\n\t11: {lang: 0x139, region: 0x136, script: 0x5b},\n\t12: {lang: 0x139, region: 0x136, script: 0x5b},\n\t13: {lang: 0x13e, region: 0x5a, script: 0x5b},\n\t14: {lang: 0x529, region: 0x53, script: 0x3b},\n\t15: {lang: 0x1be, region: 0x9a, script: 0x22},\n\t16: {lang: 0x1e1, region: 0x96, script: 0x5b},\n\t17: {lang: 0x1f9, region: 0x9f, script: 0x5b},\n\t18: {lang: 0x139, region: 0x2f, script: 0x5b},\n\t19: {lang: 0x139, region: 0xe7, script: 0x5b},\n\t20: {lang: 0x139, region: 0x8b, script: 0x5b},\n\t21: {lang: 0x41b, region: 0x143, script: 0x5b},\n\t22: {lang: 0x529, region: 0x53, script: 0x3b},\n\t23: {lang: 0x4bc, region: 0x138, script: 0x5b},\n\t24: {lang: 0x3a, region: 0x109, script: 0x5},\n\t25: {lang: 0x3e2, region: 0x107, script: 0x20},\n\t26: {lang: 0x3e2, region: 0x107, script: 0x20},\n\t27: {lang: 0x139, region: 0x7c, script: 0x5b},\n\t28: {lang: 0x10d, region: 0x61, script: 0x5b},\n\t29: {lang: 0x139, region: 0xd7, script: 0x5b},\n\t30: {lang: 0x13e, region: 0x1f, script: 0x5b},\n\t31: {lang: 0x139, region: 0x9b, script: 0x5b},\n\t32: {lang: 0x139, region: 0x7c, script: 0x5b},\n}\n\n// Size: 264 bytes, 33 elements\nvar regionContainment = [33]uint64{\n\t// Entry 0 - 1F\n\t0x00000001ffffffff, 0x00000000200007a2, 0x0000000000003044, 0x0000000000000008,\n\t0x00000000803c0010, 0x0000000000000020, 0x0000000000000040, 0x0000000000000080,\n\t0x0000000000000100, 0x0000000000000200, 0x0000000000000400, 0x000000004000384c,\n\t0x0000000000001000, 0x0000000000002000, 0x0000000000004000, 0x0000000000008000,\n\t0x0000000000010000, 0x0000000000020000, 0x0000000000040000, 0x0000000000080000,\n\t0x0000000000100000, 0x0000000000200000, 0x0000000001c1c000, 0x0000000000800000,\n\t0x0000000001000000, 0x000000001e020000, 0x0000000004000000, 0x0000000008000000,\n\t0x0000000010000000, 0x00000000200006a0, 0x0000000040002048, 0x0000000080000000,\n\t// Entry 20 - 3F\n\t0x0000000100000000,\n}\n\n// regionInclusion maps region identifiers to sets of regions in regionInclusionBits,\n// where each set holds all groupings that are directly connected in a region\n// containment graph.\n// Size: 359 bytes, 359 elements\nvar regionInclusion = [359]uint8{\n\t// Entry 0 - 3F\n\t0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,\n\t0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e,\n\t0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,\n\t0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e,\n\t0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x26, 0x23,\n\t0x24, 0x26, 0x27, 0x22, 0x28, 0x29, 0x2a, 0x2b,\n\t0x26, 0x2c, 0x24, 0x23, 0x26, 0x25, 0x2a, 0x2d,\n\t0x2e, 0x24, 0x2f, 0x2d, 0x26, 0x30, 0x31, 0x28,\n\t// Entry 40 - 7F\n\t0x26, 0x28, 0x26, 0x25, 0x31, 0x22, 0x32, 0x33,\n\t0x34, 0x30, 0x22, 0x27, 0x27, 0x27, 0x35, 0x2d,\n\t0x29, 0x28, 0x27, 0x36, 0x28, 0x22, 0x21, 0x34,\n\t0x23, 0x21, 0x26, 0x2d, 0x26, 0x22, 0x37, 0x2e,\n\t0x35, 0x2a, 0x22, 0x2f, 0x38, 0x26, 0x26, 0x21,\n\t0x39, 0x39, 0x28, 0x38, 0x39, 0x39, 0x2f, 0x3a,\n\t0x2f, 0x20, 0x21, 0x38, 0x3b, 0x28, 0x3c, 0x2c,\n\t0x21, 0x2a, 0x35, 0x27, 0x38, 0x26, 0x24, 0x28,\n\t// Entry 80 - BF\n\t0x2c, 0x2d, 0x23, 0x30, 0x2d, 0x2d, 0x26, 0x27,\n\t0x3a, 0x22, 0x34, 0x3c, 0x2d, 0x28, 0x36, 0x22,\n\t0x34, 0x3a, 0x26, 0x2e, 0x21, 0x39, 0x31, 0x38,\n\t0x24, 0x2c, 0x25, 0x22, 0x24, 0x25, 0x2c, 0x3a,\n\t0x2c, 0x26, 0x24, 0x36, 0x21, 0x2f, 0x3d, 0x31,\n\t0x3c, 0x2f, 0x26, 0x36, 0x36, 0x24, 0x26, 0x3d,\n\t0x31, 0x24, 0x26, 0x35, 0x25, 0x2d, 0x32, 0x38,\n\t0x2a, 0x38, 0x39, 0x39, 0x35, 0x33, 0x23, 0x26,\n\t// Entry C0 - FF\n\t0x2f, 0x3c, 0x21, 0x23, 0x2d, 0x31, 0x36, 0x36,\n\t0x3c, 0x26, 0x2d, 0x26, 0x3a, 0x2f, 0x25, 0x2f,\n\t0x34, 0x31, 0x2f, 0x32, 0x3b, 0x2d, 0x2b, 0x2d,\n\t0x21, 0x34, 0x2a, 0x2c, 0x25, 0x21, 0x3c, 0x24,\n\t0x29, 0x2b, 0x24, 0x34, 0x21, 0x28, 0x29, 0x3b,\n\t0x31, 0x25, 0x2e, 0x30, 0x29, 0x26, 0x24, 0x3a,\n\t0x21, 0x3c, 0x28, 0x21, 0x24, 0x21, 0x21, 0x1f,\n\t0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,\n\t// Entry 100 - 13F\n\t0x21, 0x21, 0x21, 0x2f, 0x21, 0x2e, 0x23, 0x33,\n\t0x2f, 0x24, 0x3b, 0x2f, 0x39, 0x38, 0x31, 0x2d,\n\t0x3a, 0x2c, 0x2e, 0x2d, 0x23, 0x2d, 0x2f, 0x28,\n\t0x2f, 0x27, 0x33, 0x34, 0x26, 0x24, 0x32, 0x22,\n\t0x26, 0x27, 0x22, 0x2d, 0x31, 0x3d, 0x29, 0x31,\n\t0x3d, 0x39, 0x29, 0x31, 0x24, 0x26, 0x29, 0x36,\n\t0x2f, 0x33, 0x2f, 0x21, 0x22, 0x21, 0x30, 0x28,\n\t0x3d, 0x23, 0x26, 0x21, 0x28, 0x26, 0x26, 0x31,\n\t// Entry 140 - 17F\n\t0x3b, 0x29, 0x21, 0x29, 0x21, 0x21, 0x21, 0x21,\n\t0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x23, 0x21,\n\t0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21,\n\t0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x24, 0x24,\n\t0x2f, 0x23, 0x32, 0x2f, 0x27, 0x2f, 0x21,\n}\n\n// regionInclusionBits is an array of bit vectors where every vector represents\n// a set of region groupings.  These sets are used to compute the distance\n// between two regions for the purpose of language matching.\n// Size: 584 bytes, 73 elements\nvar regionInclusionBits = [73]uint64{\n\t// Entry 0 - 1F\n\t0x0000000102400813, 0x00000000200007a3, 0x0000000000003844, 0x0000000040000808,\n\t0x00000000803c0011, 0x0000000020000022, 0x0000000040000844, 0x0000000020000082,\n\t0x0000000000000102, 0x0000000020000202, 0x0000000020000402, 0x000000004000384d,\n\t0x0000000000001804, 0x0000000040002804, 0x0000000000404000, 0x0000000000408000,\n\t0x0000000000410000, 0x0000000002020000, 0x0000000000040010, 0x0000000000080010,\n\t0x0000000000100010, 0x0000000000200010, 0x0000000001c1c001, 0x0000000000c00000,\n\t0x0000000001400000, 0x000000001e020001, 0x0000000006000000, 0x000000000a000000,\n\t0x0000000012000000, 0x00000000200006a2, 0x0000000040002848, 0x0000000080000010,\n\t// Entry 20 - 3F\n\t0x0000000100000001, 0x0000000000000001, 0x0000000080000000, 0x0000000000020000,\n\t0x0000000001000000, 0x0000000000008000, 0x0000000000002000, 0x0000000000000200,\n\t0x0000000000000008, 0x0000000000200000, 0x0000000110000000, 0x0000000000040000,\n\t0x0000000008000000, 0x0000000000000020, 0x0000000104000000, 0x0000000000000080,\n\t0x0000000000001000, 0x0000000000010000, 0x0000000000000400, 0x0000000004000000,\n\t0x0000000000000040, 0x0000000010000000, 0x0000000000004000, 0x0000000101000000,\n\t0x0000000108000000, 0x0000000000000100, 0x0000000100020000, 0x0000000000080000,\n\t0x0000000000100000, 0x0000000000800000, 0x00000001ffffffff, 0x0000000122400fb3,\n\t// Entry 40 - 5F\n\t0x00000001827c0813, 0x000000014240385f, 0x0000000103c1c813, 0x000000011e420813,\n\t0x0000000112000001, 0x0000000106000001, 0x0000000101400001, 0x000000010a000001,\n\t0x0000000102020001,\n}\n\n// regionInclusionNext marks, for each entry in regionInclusionBits, the set of\n// all groups that are reachable from the groups set in the respective entry.\n// Size: 73 bytes, 73 elements\nvar regionInclusionNext = [73]uint8{\n\t// Entry 0 - 3F\n\t0x3e, 0x3f, 0x0b, 0x0b, 0x40, 0x01, 0x0b, 0x01,\n\t0x01, 0x01, 0x01, 0x41, 0x0b, 0x0b, 0x16, 0x16,\n\t0x16, 0x19, 0x04, 0x04, 0x04, 0x04, 0x42, 0x16,\n\t0x16, 0x43, 0x19, 0x19, 0x19, 0x01, 0x0b, 0x04,\n\t0x00, 0x00, 0x1f, 0x11, 0x18, 0x0f, 0x0d, 0x09,\n\t0x03, 0x15, 0x44, 0x12, 0x1b, 0x05, 0x45, 0x07,\n\t0x0c, 0x10, 0x0a, 0x1a, 0x06, 0x1c, 0x0e, 0x46,\n\t0x47, 0x08, 0x48, 0x13, 0x14, 0x17, 0x3e, 0x3e,\n\t// Entry 40 - 7F\n\t0x3e, 0x3e, 0x3e, 0x3e, 0x43, 0x43, 0x42, 0x43,\n\t0x43,\n}\n\ntype parentRel struct {\n\tlang       uint16\n\tscript     uint16\n\tmaxScript  uint16\n\ttoRegion   uint16\n\tfromRegion []uint16\n}\n\n// Size: 414 bytes, 5 elements\nvar parents = [5]parentRel{\n\t0: {lang: 0x139, script: 0x0, maxScript: 0x5b, toRegion: 0x1, fromRegion: []uint16{0x1a, 0x25, 0x26, 0x2f, 0x34, 0x36, 0x3d, 0x42, 0x46, 0x48, 0x49, 0x4a, 0x50, 0x52, 0x5d, 0x5e, 0x62, 0x65, 0x6e, 0x74, 0x75, 0x76, 0x7c, 0x7d, 0x80, 0x81, 0x82, 0x84, 0x8d, 0x8e, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0xa0, 0xa1, 0xa5, 0xa8, 0xaa, 0xae, 0xb2, 0xb5, 0xb6, 0xc0, 0xc7, 0xcb, 0xcc, 0xcd, 0xcf, 0xd1, 0xd3, 0xd6, 0xd7, 0xde, 0xe0, 0xe1, 0xe7, 0xe8, 0xe9, 0xec, 0xf1, 0x108, 0x10a, 0x10b, 0x10c, 0x10e, 0x10f, 0x113, 0x118, 0x11c, 0x11e, 0x120, 0x126, 0x12a, 0x12d, 0x12e, 0x130, 0x132, 0x13a, 0x13d, 0x140, 0x143, 0x162, 0x163, 0x165}},\n\t1: {lang: 0x139, script: 0x0, maxScript: 0x5b, toRegion: 0x1a, fromRegion: []uint16{0x2e, 0x4e, 0x61, 0x64, 0x73, 0xda, 0x10d, 0x110}},\n\t2: {lang: 0x13e, script: 0x0, maxScript: 0x5b, toRegion: 0x1f, fromRegion: []uint16{0x2c, 0x3f, 0x41, 0x48, 0x51, 0x54, 0x57, 0x5a, 0x66, 0x6a, 0x8a, 0x90, 0xd0, 0xd9, 0xe3, 0xe5, 0xed, 0xf2, 0x11b, 0x136, 0x137, 0x13c}},\n\t3: {lang: 0x3c0, script: 0x0, maxScript: 0x5b, toRegion: 0xef, fromRegion: []uint16{0x2a, 0x4e, 0x5b, 0x87, 0x8c, 0xb8, 0xc7, 0xd2, 0x119, 0x127}},\n\t4: {lang: 0x529, script: 0x3c, maxScript: 0x3c, toRegion: 0x8e, fromRegion: []uint16{0xc7}},\n}\n\n// Total table size 30466 bytes (29KiB); checksum: 7544152B\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/language/tags.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 language\n\n// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed.\n// It simplifies safe initialization of Tag values.\nfunc MustParse(s string) Tag {\n\tt, err := Parse(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn t\n}\n\n// MustParseBase is like ParseBase, but panics if the given base cannot be parsed.\n// It simplifies safe initialization of Base values.\nfunc MustParseBase(s string) Language {\n\tb, err := ParseBase(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn b\n}\n\n// MustParseScript is like ParseScript, but panics if the given script cannot be\n// parsed. It simplifies safe initialization of Script values.\nfunc MustParseScript(s string) Script {\n\tscr, err := ParseScript(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn scr\n}\n\n// MustParseRegion is like ParseRegion, but panics if the given region cannot be\n// parsed. It simplifies safe initialization of Region values.\nfunc MustParseRegion(s string) Region {\n\tr, err := ParseRegion(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn r\n}\n\n// Und is the root language.\nvar Und Tag\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/match.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 internal\n\n// This file contains matchers that implement CLDR inheritance.\n//\n//     See https://unicode.org/reports/tr35/#Locale_Inheritance.\n//\n// Some of the inheritance described in this document is already handled by\n// the cldr package.\n\nimport (\n\t\"golang.org/x/text/language\"\n)\n\n// TODO: consider if (some of the) matching algorithm needs to be public after\n// getting some feel about what is generic and what is specific.\n\n// NewInheritanceMatcher returns a matcher that matches based on the inheritance\n// chain.\n//\n// The matcher uses canonicalization and the parent relationship to find a\n// match. The resulting match will always be either Und or a language with the\n// same language and script as the requested language. It will not match\n// languages for which there is understood to be mutual or one-directional\n// intelligibility.\n//\n// A Match will indicate an Exact match if the language matches after\n// canonicalization and High if the matched tag is a parent.\nfunc NewInheritanceMatcher(t []language.Tag) *InheritanceMatcher {\n\ttags := &InheritanceMatcher{make(map[language.Tag]int)}\n\tfor i, tag := range t {\n\t\tct, err := language.All.Canonicalize(tag)\n\t\tif err != nil {\n\t\t\tct = tag\n\t\t}\n\t\ttags.index[ct] = i\n\t}\n\treturn tags\n}\n\ntype InheritanceMatcher struct {\n\tindex map[language.Tag]int\n}\n\nfunc (m InheritanceMatcher) Match(want ...language.Tag) (language.Tag, int, language.Confidence) {\n\tfor _, t := range want {\n\t\tct, err := language.All.Canonicalize(t)\n\t\tif err != nil {\n\t\t\tct = t\n\t\t}\n\t\tconf := language.Exact\n\t\tfor {\n\t\t\tif index, ok := m.index[ct]; ok {\n\t\t\t\treturn ct, index, conf\n\t\t\t}\n\t\t\tif ct == language.Und {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tct = ct.Parent()\n\t\t\tconf = language.High\n\t\t}\n\t}\n\treturn language.Und, 0, language.No\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/number/common.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage number\n\nimport (\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/internal/language/compact\"\n)\n\n// A system identifies a CLDR numbering system.\ntype system byte\n\ntype systemData struct {\n\tid        system\n\tdigitSize byte              // number of UTF-8 bytes per digit\n\tzero      [utf8.UTFMax]byte // UTF-8 sequence of zero digit.\n}\n\n// A SymbolType identifies a symbol of a specific kind.\ntype SymbolType int\n\nconst (\n\tSymDecimal SymbolType = iota\n\tSymGroup\n\tSymList\n\tSymPercentSign\n\tSymPlusSign\n\tSymMinusSign\n\tSymExponential\n\tSymSuperscriptingExponent\n\tSymPerMille\n\tSymInfinity\n\tSymNan\n\tSymTimeSeparator\n\n\tNumSymbolTypes\n)\n\nconst hasNonLatnMask = 0x8000\n\n// symOffset is an offset into altSymData if the bit indicated by hasNonLatnMask\n// is not 0 (with this bit masked out), and an offset into symIndex otherwise.\n//\n// TODO: this type can be a byte again if we use an indirection into altsymData\n// and introduce an alt -> offset slice (the length of this will be number of\n// alternatives plus 1). This also allows getting rid of the compactTag field\n// in altSymData. In total this will save about 1K.\ntype symOffset uint16\n\ntype altSymData struct {\n\tcompactTag compact.ID\n\tsymIndex   symOffset\n\tsystem     system\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/number/decimal.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:generate stringer -type RoundingMode\n\npackage number\n\nimport (\n\t\"math\"\n\t\"strconv\"\n)\n\n// RoundingMode determines how a number is rounded to the desired precision.\ntype RoundingMode byte\n\nconst (\n\tToNearestEven RoundingMode = iota // towards the nearest integer, or towards an even number if equidistant.\n\tToNearestZero                     // towards the nearest integer, or towards zero if equidistant.\n\tToNearestAway                     // towards the nearest integer, or away from zero if equidistant.\n\tToPositiveInf                     // towards infinity\n\tToNegativeInf                     // towards negative infinity\n\tToZero                            // towards zero\n\tAwayFromZero                      // away from zero\n\tnumModes\n)\n\nconst maxIntDigits = 20\n\n// A Decimal represents a floating point number in decimal format.\n// Digits represents a number [0, 1.0), and the absolute value represented by\n// Decimal is Digits * 10^Exp. Leading and trailing zeros may be omitted and Exp\n// may point outside a valid position in Digits.\n//\n// Examples:\n//\n//\tNumber     Decimal\n//\t12345      Digits: [1, 2, 3, 4, 5], Exp: 5\n//\t12.345     Digits: [1, 2, 3, 4, 5], Exp: 2\n//\t12000      Digits: [1, 2],          Exp: 5\n//\t12000.00   Digits: [1, 2],          Exp: 5\n//\t0.00123    Digits: [1, 2, 3],       Exp: -2\n//\t0          Digits: [],              Exp: 0\ntype Decimal struct {\n\tdigits\n\n\tbuf [maxIntDigits]byte\n}\n\ntype digits struct {\n\tDigits []byte // mantissa digits, big-endian\n\tExp    int32  // exponent\n\tNeg    bool\n\tInf    bool // Takes precedence over Digits and Exp.\n\tNaN    bool // Takes precedence over Inf.\n}\n\n// Digits represents a floating point number represented in digits of the\n// base in which a number is to be displayed. It is similar to Decimal, but\n// keeps track of trailing fraction zeros and the comma placement for\n// engineering notation. Digits must have at least one digit.\n//\n// Examples:\n//\n//\t  Number     Decimal\n//\tdecimal\n//\t  12345      Digits: [1, 2, 3, 4, 5], Exp: 5  End: 5\n//\t  12.345     Digits: [1, 2, 3, 4, 5], Exp: 2  End: 5\n//\t  12000      Digits: [1, 2],          Exp: 5  End: 5\n//\t  12000.00   Digits: [1, 2],          Exp: 5  End: 7\n//\t  0.00123    Digits: [1, 2, 3],       Exp: -2 End: 3\n//\t  0          Digits: [],              Exp: 0  End: 1\n//\tscientific (actual exp is Exp - Comma)\n//\t  0e0        Digits: [0],             Exp: 1, End: 1, Comma: 1\n//\t  .0e0       Digits: [0],             Exp: 0, End: 1, Comma: 0\n//\t  0.0e0      Digits: [0],             Exp: 1, End: 2, Comma: 1\n//\t  1.23e4     Digits: [1, 2, 3],       Exp: 5, End: 3, Comma: 1\n//\t  .123e5     Digits: [1, 2, 3],       Exp: 5, End: 3, Comma: 0\n//\tengineering\n//\t  12.3e3     Digits: [1, 2, 3],       Exp: 5, End: 3, Comma: 2\ntype Digits struct {\n\tdigits\n\t// End indicates the end position of the number.\n\tEnd int32 // For decimals Exp <= End. For scientific len(Digits) <= End.\n\t// Comma is used for the comma position for scientific (always 0 or 1) and\n\t// engineering notation (always 0, 1, 2, or 3).\n\tComma uint8\n\t// IsScientific indicates whether this number is to be rendered as a\n\t// scientific number.\n\tIsScientific bool\n}\n\nfunc (d *Digits) NumFracDigits() int {\n\tif d.Exp >= d.End {\n\t\treturn 0\n\t}\n\treturn int(d.End - d.Exp)\n}\n\n// normalize returns a new Decimal with leading and trailing zeros removed.\nfunc (d *Decimal) normalize() (n Decimal) {\n\tn = *d\n\tb := n.Digits\n\t// Strip leading zeros. Resulting number of digits is significant digits.\n\tfor len(b) > 0 && b[0] == 0 {\n\t\tb = b[1:]\n\t\tn.Exp--\n\t}\n\t// Strip trailing zeros\n\tfor len(b) > 0 && b[len(b)-1] == 0 {\n\t\tb = b[:len(b)-1]\n\t}\n\tif len(b) == 0 {\n\t\tn.Exp = 0\n\t}\n\tn.Digits = b\n\treturn n\n}\n\nfunc (d *Decimal) clear() {\n\tb := d.Digits\n\tif b == nil {\n\t\tb = d.buf[:0]\n\t}\n\t*d = Decimal{}\n\td.Digits = b[:0]\n}\n\nfunc (x *Decimal) String() string {\n\tif x.NaN {\n\t\treturn \"NaN\"\n\t}\n\tvar buf []byte\n\tif x.Neg {\n\t\tbuf = append(buf, '-')\n\t}\n\tif x.Inf {\n\t\tbuf = append(buf, \"Inf\"...)\n\t\treturn string(buf)\n\t}\n\tswitch {\n\tcase len(x.Digits) == 0:\n\t\tbuf = append(buf, '0')\n\tcase x.Exp <= 0:\n\t\t// 0.00ddd\n\t\tbuf = append(buf, \"0.\"...)\n\t\tbuf = appendZeros(buf, -int(x.Exp))\n\t\tbuf = appendDigits(buf, x.Digits)\n\n\tcase /* 0 < */ int(x.Exp) < len(x.Digits):\n\t\t// dd.ddd\n\t\tbuf = appendDigits(buf, x.Digits[:x.Exp])\n\t\tbuf = append(buf, '.')\n\t\tbuf = appendDigits(buf, x.Digits[x.Exp:])\n\n\tdefault: // len(x.Digits) <= x.Exp\n\t\t// ddd00\n\t\tbuf = appendDigits(buf, x.Digits)\n\t\tbuf = appendZeros(buf, int(x.Exp)-len(x.Digits))\n\t}\n\treturn string(buf)\n}\n\nfunc appendDigits(buf []byte, digits []byte) []byte {\n\tfor _, c := range digits {\n\t\tbuf = append(buf, c+'0')\n\t}\n\treturn buf\n}\n\n// appendZeros appends n 0 digits to buf and returns buf.\nfunc appendZeros(buf []byte, n int) []byte {\n\tfor ; n > 0; n-- {\n\t\tbuf = append(buf, '0')\n\t}\n\treturn buf\n}\n\nfunc (d *digits) round(mode RoundingMode, n int) {\n\tif n >= len(d.Digits) {\n\t\treturn\n\t}\n\t// Make rounding decision: The result mantissa is truncated (\"rounded down\")\n\t// by default. Decide if we need to increment, or \"round up\", the (unsigned)\n\t// mantissa.\n\tinc := false\n\tswitch mode {\n\tcase ToNegativeInf:\n\t\tinc = d.Neg\n\tcase ToPositiveInf:\n\t\tinc = !d.Neg\n\tcase ToZero:\n\t\t// nothing to do\n\tcase AwayFromZero:\n\t\tinc = true\n\tcase ToNearestEven:\n\t\tinc = d.Digits[n] > 5 || d.Digits[n] == 5 &&\n\t\t\t(len(d.Digits) > n+1 || n == 0 || d.Digits[n-1]&1 != 0)\n\tcase ToNearestAway:\n\t\tinc = d.Digits[n] >= 5\n\tcase ToNearestZero:\n\t\tinc = d.Digits[n] > 5 || d.Digits[n] == 5 && len(d.Digits) > n+1\n\tdefault:\n\t\tpanic(\"unreachable\")\n\t}\n\tif inc {\n\t\td.roundUp(n)\n\t} else {\n\t\td.roundDown(n)\n\t}\n}\n\n// roundFloat rounds a floating point number.\nfunc (r RoundingMode) roundFloat(x float64) float64 {\n\t// Make rounding decision: The result mantissa is truncated (\"rounded down\")\n\t// by default. Decide if we need to increment, or \"round up\", the (unsigned)\n\t// mantissa.\n\tabs := x\n\tif x < 0 {\n\t\tabs = -x\n\t}\n\ti, f := math.Modf(abs)\n\tif f == 0.0 {\n\t\treturn x\n\t}\n\tinc := false\n\tswitch r {\n\tcase ToNegativeInf:\n\t\tinc = x < 0\n\tcase ToPositiveInf:\n\t\tinc = x >= 0\n\tcase ToZero:\n\t\t// nothing to do\n\tcase AwayFromZero:\n\t\tinc = true\n\tcase ToNearestEven:\n\t\t// TODO: check overflow\n\t\tinc = f > 0.5 || f == 0.5 && int64(i)&1 != 0\n\tcase ToNearestAway:\n\t\tinc = f >= 0.5\n\tcase ToNearestZero:\n\t\tinc = f > 0.5\n\tdefault:\n\t\tpanic(\"unreachable\")\n\t}\n\tif inc {\n\t\ti += 1\n\t}\n\tif abs != x {\n\t\ti = -i\n\t}\n\treturn i\n}\n\nfunc (x *digits) roundUp(n int) {\n\tif n < 0 || n >= len(x.Digits) {\n\t\treturn // nothing to do\n\t}\n\t// find first digit < 9\n\tfor n > 0 && x.Digits[n-1] >= 9 {\n\t\tn--\n\t}\n\n\tif n == 0 {\n\t\t// all digits are 9s => round up to 1 and update exponent\n\t\tx.Digits[0] = 1 // ok since len(x.Digits) > n\n\t\tx.Digits = x.Digits[:1]\n\t\tx.Exp++\n\t\treturn\n\t}\n\tx.Digits[n-1]++\n\tx.Digits = x.Digits[:n]\n\t// x already trimmed\n}\n\nfunc (x *digits) roundDown(n int) {\n\tif n < 0 || n >= len(x.Digits) {\n\t\treturn // nothing to do\n\t}\n\tx.Digits = x.Digits[:n]\n\ttrim(x)\n}\n\n// trim cuts off any trailing zeros from x's mantissa;\n// they are meaningless for the value of x.\nfunc trim(x *digits) {\n\ti := len(x.Digits)\n\tfor i > 0 && x.Digits[i-1] == 0 {\n\t\ti--\n\t}\n\tx.Digits = x.Digits[:i]\n\tif i == 0 {\n\t\tx.Exp = 0\n\t}\n}\n\n// A Converter converts a number into decimals according to the given rounding\n// criteria.\ntype Converter interface {\n\tConvert(d *Decimal, r RoundingContext)\n}\n\nconst (\n\tsigned   = true\n\tunsigned = false\n)\n\n// Convert converts the given number to the decimal representation using the\n// supplied RoundingContext.\nfunc (d *Decimal) Convert(r RoundingContext, number interface{}) {\n\tswitch f := number.(type) {\n\tcase Converter:\n\t\td.clear()\n\t\tf.Convert(d, r)\n\tcase float32:\n\t\td.ConvertFloat(r, float64(f), 32)\n\tcase float64:\n\t\td.ConvertFloat(r, f, 64)\n\tcase int:\n\t\td.ConvertInt(r, signed, uint64(f))\n\tcase int8:\n\t\td.ConvertInt(r, signed, uint64(f))\n\tcase int16:\n\t\td.ConvertInt(r, signed, uint64(f))\n\tcase int32:\n\t\td.ConvertInt(r, signed, uint64(f))\n\tcase int64:\n\t\td.ConvertInt(r, signed, uint64(f))\n\tcase uint:\n\t\td.ConvertInt(r, unsigned, uint64(f))\n\tcase uint8:\n\t\td.ConvertInt(r, unsigned, uint64(f))\n\tcase uint16:\n\t\td.ConvertInt(r, unsigned, uint64(f))\n\tcase uint32:\n\t\td.ConvertInt(r, unsigned, uint64(f))\n\tcase uint64:\n\t\td.ConvertInt(r, unsigned, f)\n\n\tdefault:\n\t\td.NaN = true\n\t\t// TODO:\n\t\t// case string: if produced by strconv, allows for easy arbitrary pos.\n\t\t// case reflect.Value:\n\t\t// case big.Float\n\t\t// case big.Int\n\t\t// case big.Rat?\n\t\t// catch underlyings using reflect or will this already be done by the\n\t\t//    message package?\n\t}\n}\n\n// ConvertInt converts an integer to decimals.\nfunc (d *Decimal) ConvertInt(r RoundingContext, signed bool, x uint64) {\n\tif r.Increment > 0 {\n\t\t// TODO: if uint64 is too large, fall back to float64\n\t\tif signed {\n\t\t\td.ConvertFloat(r, float64(int64(x)), 64)\n\t\t} else {\n\t\t\td.ConvertFloat(r, float64(x), 64)\n\t\t}\n\t\treturn\n\t}\n\td.clear()\n\tif signed && int64(x) < 0 {\n\t\tx = uint64(-int64(x))\n\t\td.Neg = true\n\t}\n\td.fillIntDigits(x)\n\td.Exp = int32(len(d.Digits))\n}\n\n// ConvertFloat converts a floating point number to decimals.\nfunc (d *Decimal) ConvertFloat(r RoundingContext, x float64, size int) {\n\td.clear()\n\tif math.IsNaN(x) {\n\t\td.NaN = true\n\t\treturn\n\t}\n\t// Simple case: decimal notation\n\tif r.Increment > 0 {\n\t\tscale := int(r.IncrementScale)\n\t\tmult := 1.0\n\t\tif scale >= len(scales) {\n\t\t\tmult = math.Pow(10, float64(scale))\n\t\t} else {\n\t\t\tmult = scales[scale]\n\t\t}\n\t\t// We multiply x instead of dividing inc as it gives less rounding\n\t\t// issues.\n\t\tx *= mult\n\t\tx /= float64(r.Increment)\n\t\tx = r.Mode.roundFloat(x)\n\t\tx *= float64(r.Increment)\n\t\tx /= mult\n\t}\n\n\tabs := x\n\tif x < 0 {\n\t\td.Neg = true\n\t\tabs = -x\n\t}\n\tif math.IsInf(abs, 1) {\n\t\td.Inf = true\n\t\treturn\n\t}\n\n\t// By default we get the exact decimal representation.\n\tverb := byte('g')\n\tprec := -1\n\t// As the strconv API does not return the rounding accuracy, we can only\n\t// round using ToNearestEven.\n\tif r.Mode == ToNearestEven {\n\t\tif n := r.RoundSignificantDigits(); n >= 0 {\n\t\t\tprec = n\n\t\t} else if n = r.RoundFractionDigits(); n >= 0 {\n\t\t\tprec = n\n\t\t\tverb = 'f'\n\t\t}\n\t} else {\n\t\t// TODO: At this point strconv's rounding is imprecise to the point that\n\t\t// it is not usable for this purpose.\n\t\t// See https://github.com/golang/go/issues/21714\n\t\t// If rounding is requested, we ask for a large number of digits and\n\t\t// round from there to simulate rounding only once.\n\t\t// Ideally we would have strconv export an AppendDigits that would take\n\t\t// a rounding mode and/or return an accuracy. Something like this would\n\t\t// work:\n\t\t// AppendDigits(dst []byte, x float64, base, size, prec int) (digits []byte, exp, accuracy int)\n\t\thasPrec := r.RoundSignificantDigits() >= 0\n\t\thasScale := r.RoundFractionDigits() >= 0\n\t\tif hasPrec || hasScale {\n\t\t\t// prec is the number of mantissa bits plus some extra for safety.\n\t\t\t// We need at least the number of mantissa bits as decimals to\n\t\t\t// accurately represent the floating point without rounding, as each\n\t\t\t// bit requires one more decimal to represent: 0.5, 0.25, 0.125, ...\n\t\t\tprec = 60\n\t\t}\n\t}\n\n\tb := strconv.AppendFloat(d.Digits[:0], abs, verb, prec, size)\n\ti := 0\n\tk := 0\n\tbeforeDot := 1\n\tfor i < len(b) {\n\t\tif c := b[i]; '0' <= c && c <= '9' {\n\t\t\tb[k] = c - '0'\n\t\t\tk++\n\t\t\td.Exp += int32(beforeDot)\n\t\t} else if c == '.' {\n\t\t\tbeforeDot = 0\n\t\t\td.Exp = int32(k)\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t\ti++\n\t}\n\td.Digits = b[:k]\n\tif i != len(b) {\n\t\ti += len(\"e\")\n\t\tpSign := i\n\t\texp := 0\n\t\tfor i++; i < len(b); i++ {\n\t\t\texp *= 10\n\t\t\texp += int(b[i] - '0')\n\t\t}\n\t\tif b[pSign] == '-' {\n\t\t\texp = -exp\n\t\t}\n\t\td.Exp = int32(exp) + 1\n\t}\n}\n\nfunc (d *Decimal) fillIntDigits(x uint64) {\n\tif cap(d.Digits) < maxIntDigits {\n\t\td.Digits = d.buf[:]\n\t} else {\n\t\td.Digits = d.buf[:maxIntDigits]\n\t}\n\ti := 0\n\tfor ; x > 0; x /= 10 {\n\t\td.Digits[i] = byte(x % 10)\n\t\ti++\n\t}\n\td.Digits = d.Digits[:i]\n\tfor p := 0; p < i; p++ {\n\t\ti--\n\t\td.Digits[p], d.Digits[i] = d.Digits[i], d.Digits[p]\n\t}\n}\n\nvar scales [70]float64\n\nfunc init() {\n\tx := 1.0\n\tfor i := range scales {\n\t\tscales[i] = x\n\t\tx *= 10\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/number/format.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 number\n\nimport (\n\t\"strconv\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/language\"\n)\n\n// TODO:\n// - grouping of fractions\n// - allow user-defined superscript notation (such as <sup>4</sup>)\n// - same for non-breaking spaces, like &nbsp;\n\n// A VisibleDigits computes digits, comma placement and trailing zeros as they\n// will be shown to the user.\ntype VisibleDigits interface {\n\tDigits(buf []byte, t language.Tag, scale int) Digits\n\t// TODO: Do we also need to add the verb or pass a format.State?\n}\n\n// Formatting proceeds along the following lines:\n// 0) Compose rounding information from format and context.\n// 1) Convert a number into a Decimal.\n// 2) Sanitize Decimal by adding trailing zeros, removing leading digits, and\n//    (non-increment) rounding. The Decimal that results from this is suitable\n//    for determining the plural form.\n// 3) Render the Decimal in the localized form.\n\n// Formatter contains all the information needed to render a number.\ntype Formatter struct {\n\tPattern\n\tInfo\n}\n\nfunc (f *Formatter) init(t language.Tag, index []uint8) {\n\tf.Info = InfoFromTag(t)\n\tf.Pattern = formats[index[tagToID(t)]]\n}\n\n// InitPattern initializes a Formatter for the given Pattern.\nfunc (f *Formatter) InitPattern(t language.Tag, pat *Pattern) {\n\tf.Info = InfoFromTag(t)\n\tf.Pattern = *pat\n}\n\n// InitDecimal initializes a Formatter using the default Pattern for the given\n// language.\nfunc (f *Formatter) InitDecimal(t language.Tag) {\n\tf.init(t, tagToDecimal)\n}\n\n// InitScientific initializes a Formatter using the default Pattern for the\n// given language.\nfunc (f *Formatter) InitScientific(t language.Tag) {\n\tf.init(t, tagToScientific)\n\tf.Pattern.MinFractionDigits = 0\n\tf.Pattern.MaxFractionDigits = -1\n}\n\n// InitEngineering initializes a Formatter using the default Pattern for the\n// given language.\nfunc (f *Formatter) InitEngineering(t language.Tag) {\n\tf.init(t, tagToScientific)\n\tf.Pattern.MinFractionDigits = 0\n\tf.Pattern.MaxFractionDigits = -1\n\tf.Pattern.MaxIntegerDigits = 3\n\tf.Pattern.MinIntegerDigits = 1\n}\n\n// InitPercent initializes a Formatter using the default Pattern for the given\n// language.\nfunc (f *Formatter) InitPercent(t language.Tag) {\n\tf.init(t, tagToPercent)\n}\n\n// InitPerMille initializes a Formatter using the default Pattern for the given\n// language.\nfunc (f *Formatter) InitPerMille(t language.Tag) {\n\tf.init(t, tagToPercent)\n\tf.Pattern.DigitShift = 3\n}\n\nfunc (f *Formatter) Append(dst []byte, x interface{}) []byte {\n\tvar d Decimal\n\tr := f.RoundingContext\n\td.Convert(r, x)\n\treturn f.Render(dst, FormatDigits(&d, r))\n}\n\nfunc FormatDigits(d *Decimal, r RoundingContext) Digits {\n\tif r.isScientific() {\n\t\treturn scientificVisibleDigits(r, d)\n\t}\n\treturn decimalVisibleDigits(r, d)\n}\n\nfunc (f *Formatter) Format(dst []byte, d *Decimal) []byte {\n\treturn f.Render(dst, FormatDigits(d, f.RoundingContext))\n}\n\nfunc (f *Formatter) Render(dst []byte, d Digits) []byte {\n\tvar result []byte\n\tvar postPrefix, preSuffix int\n\tif d.IsScientific {\n\t\tresult, postPrefix, preSuffix = appendScientific(dst, f, &d)\n\t} else {\n\t\tresult, postPrefix, preSuffix = appendDecimal(dst, f, &d)\n\t}\n\tif f.PadRune == 0 {\n\t\treturn result\n\t}\n\twidth := int(f.FormatWidth)\n\tif count := utf8.RuneCount(result); count < width {\n\t\tinsertPos := 0\n\t\tswitch f.Flags & PadMask {\n\t\tcase PadAfterPrefix:\n\t\t\tinsertPos = postPrefix\n\t\tcase PadBeforeSuffix:\n\t\t\tinsertPos = preSuffix\n\t\tcase PadAfterSuffix:\n\t\t\tinsertPos = len(result)\n\t\t}\n\t\tnum := width - count\n\t\tpad := [utf8.UTFMax]byte{' '}\n\t\tsz := 1\n\t\tif r := f.PadRune; r != 0 {\n\t\t\tsz = utf8.EncodeRune(pad[:], r)\n\t\t}\n\t\textra := sz * num\n\t\tif n := len(result) + extra; n < cap(result) {\n\t\t\tresult = result[:n]\n\t\t\tcopy(result[insertPos+extra:], result[insertPos:])\n\t\t} else {\n\t\t\tbuf := make([]byte, n)\n\t\t\tcopy(buf, result[:insertPos])\n\t\t\tcopy(buf[insertPos+extra:], result[insertPos:])\n\t\t\tresult = buf\n\t\t}\n\t\tfor ; num > 0; num-- {\n\t\t\tinsertPos += copy(result[insertPos:], pad[:sz])\n\t\t}\n\t}\n\treturn result\n}\n\n// decimalVisibleDigits converts d according to the RoundingContext. Note that\n// the exponent may change as a result of this operation.\nfunc decimalVisibleDigits(r RoundingContext, d *Decimal) Digits {\n\tif d.NaN || d.Inf {\n\t\treturn Digits{digits: digits{Neg: d.Neg, NaN: d.NaN, Inf: d.Inf}}\n\t}\n\tn := Digits{digits: d.normalize().digits}\n\n\texp := n.Exp\n\texp += int32(r.DigitShift)\n\n\t// Cap integer digits. Remove *most-significant* digits.\n\tif r.MaxIntegerDigits > 0 {\n\t\tif p := int(exp) - int(r.MaxIntegerDigits); p > 0 {\n\t\t\tif p > len(n.Digits) {\n\t\t\t\tp = len(n.Digits)\n\t\t\t}\n\t\t\tif n.Digits = n.Digits[p:]; len(n.Digits) == 0 {\n\t\t\t\texp = 0\n\t\t\t} else {\n\t\t\t\texp -= int32(p)\n\t\t\t}\n\t\t\t// Strip leading zeros.\n\t\t\tfor len(n.Digits) > 0 && n.Digits[0] == 0 {\n\t\t\t\tn.Digits = n.Digits[1:]\n\t\t\t\texp--\n\t\t\t}\n\t\t}\n\t}\n\n\t// Rounding if not already done by Convert.\n\tp := len(n.Digits)\n\tif maxSig := int(r.MaxSignificantDigits); maxSig > 0 {\n\t\tp = maxSig\n\t}\n\tif maxFrac := int(r.MaxFractionDigits); maxFrac >= 0 {\n\t\tif cap := int(exp) + maxFrac; cap < p {\n\t\t\tp = int(exp) + maxFrac\n\t\t}\n\t\tif p < 0 {\n\t\t\tp = 0\n\t\t}\n\t}\n\tn.round(r.Mode, p)\n\n\t// set End (trailing zeros)\n\tn.End = int32(len(n.Digits))\n\tif n.End == 0 {\n\t\texp = 0\n\t\tif r.MinFractionDigits > 0 {\n\t\t\tn.End = int32(r.MinFractionDigits)\n\t\t}\n\t\tif p := int32(r.MinSignificantDigits) - 1; p > n.End {\n\t\t\tn.End = p\n\t\t}\n\t} else {\n\t\tif end := exp + int32(r.MinFractionDigits); end > n.End {\n\t\t\tn.End = end\n\t\t}\n\t\tif n.End < int32(r.MinSignificantDigits) {\n\t\t\tn.End = int32(r.MinSignificantDigits)\n\t\t}\n\t}\n\tn.Exp = exp\n\treturn n\n}\n\n// appendDecimal appends a formatted number to dst. It returns two possible\n// insertion points for padding.\nfunc appendDecimal(dst []byte, f *Formatter, n *Digits) (b []byte, postPre, preSuf int) {\n\tif dst, ok := f.renderSpecial(dst, n); ok {\n\t\treturn dst, 0, len(dst)\n\t}\n\tdigits := n.Digits\n\texp := n.Exp\n\n\t// Split in integer and fraction part.\n\tvar intDigits, fracDigits []byte\n\tnumInt := 0\n\tnumFrac := int(n.End - n.Exp)\n\tif exp > 0 {\n\t\tnumInt = int(exp)\n\t\tif int(exp) >= len(digits) { // ddddd | ddddd00\n\t\t\tintDigits = digits\n\t\t} else { // ddd.dd\n\t\t\tintDigits = digits[:exp]\n\t\t\tfracDigits = digits[exp:]\n\t\t}\n\t} else {\n\t\tfracDigits = digits\n\t}\n\n\tneg := n.Neg\n\taffix, suffix := f.getAffixes(neg)\n\tdst = appendAffix(dst, f, affix, neg)\n\tsavedLen := len(dst)\n\n\tminInt := int(f.MinIntegerDigits)\n\tif minInt == 0 && f.MinSignificantDigits > 0 {\n\t\tminInt = 1\n\t}\n\t// add leading zeros\n\tfor i := minInt; i > numInt; i-- {\n\t\tdst = f.AppendDigit(dst, 0)\n\t\tif f.needsSep(i) {\n\t\t\tdst = append(dst, f.Symbol(SymGroup)...)\n\t\t}\n\t}\n\ti := 0\n\tfor ; i < len(intDigits); i++ {\n\t\tdst = f.AppendDigit(dst, intDigits[i])\n\t\tif f.needsSep(numInt - i) {\n\t\t\tdst = append(dst, f.Symbol(SymGroup)...)\n\t\t}\n\t}\n\tfor ; i < numInt; i++ {\n\t\tdst = f.AppendDigit(dst, 0)\n\t\tif f.needsSep(numInt - i) {\n\t\t\tdst = append(dst, f.Symbol(SymGroup)...)\n\t\t}\n\t}\n\n\tif numFrac > 0 || f.Flags&AlwaysDecimalSeparator != 0 {\n\t\tdst = append(dst, f.Symbol(SymDecimal)...)\n\t}\n\t// Add trailing zeros\n\ti = 0\n\tfor n := -int(n.Exp); i < n; i++ {\n\t\tdst = f.AppendDigit(dst, 0)\n\t}\n\tfor _, d := range fracDigits {\n\t\ti++\n\t\tdst = f.AppendDigit(dst, d)\n\t}\n\tfor ; i < numFrac; i++ {\n\t\tdst = f.AppendDigit(dst, 0)\n\t}\n\treturn appendAffix(dst, f, suffix, neg), savedLen, len(dst)\n}\n\nfunc scientificVisibleDigits(r RoundingContext, d *Decimal) Digits {\n\tif d.NaN || d.Inf {\n\t\treturn Digits{digits: digits{Neg: d.Neg, NaN: d.NaN, Inf: d.Inf}}\n\t}\n\tn := Digits{digits: d.normalize().digits, IsScientific: true}\n\n\t// Normalize to have at least one digit. This simplifies engineering\n\t// notation.\n\tif len(n.Digits) == 0 {\n\t\tn.Digits = append(n.Digits, 0)\n\t\tn.Exp = 1\n\t}\n\n\t// Significant digits are transformed by the parser for scientific notation\n\t// and do not need to be handled here.\n\tmaxInt, numInt := int(r.MaxIntegerDigits), int(r.MinIntegerDigits)\n\tif numInt == 0 {\n\t\tnumInt = 1\n\t}\n\n\t// If a maximum number of integers is specified, the minimum must be 1\n\t// and the exponent is grouped by this number (e.g. for engineering)\n\tif maxInt > numInt {\n\t\t// Correct the exponent to reflect a single integer digit.\n\t\tnumInt = 1\n\t\t// engineering\n\t\t// 0.01234 ([12345]e-1) -> 1.2345e-2  12.345e-3\n\t\t// 12345   ([12345]e+5) -> 1.2345e4  12.345e3\n\t\td := int(n.Exp-1) % maxInt\n\t\tif d < 0 {\n\t\t\td += maxInt\n\t\t}\n\t\tnumInt += d\n\t}\n\n\tp := len(n.Digits)\n\tif maxSig := int(r.MaxSignificantDigits); maxSig > 0 {\n\t\tp = maxSig\n\t}\n\tif maxFrac := int(r.MaxFractionDigits); maxFrac >= 0 && numInt+maxFrac < p {\n\t\tp = numInt + maxFrac\n\t}\n\tn.round(r.Mode, p)\n\n\tn.Comma = uint8(numInt)\n\tn.End = int32(len(n.Digits))\n\tif minSig := int32(r.MinFractionDigits) + int32(numInt); n.End < minSig {\n\t\tn.End = minSig\n\t}\n\treturn n\n}\n\n// appendScientific appends a formatted number to dst. It returns two possible\n// insertion points for padding.\nfunc appendScientific(dst []byte, f *Formatter, n *Digits) (b []byte, postPre, preSuf int) {\n\tif dst, ok := f.renderSpecial(dst, n); ok {\n\t\treturn dst, 0, 0\n\t}\n\tdigits := n.Digits\n\tnumInt := int(n.Comma)\n\tnumFrac := int(n.End) - int(n.Comma)\n\n\tvar intDigits, fracDigits []byte\n\tif numInt <= len(digits) {\n\t\tintDigits = digits[:numInt]\n\t\tfracDigits = digits[numInt:]\n\t} else {\n\t\tintDigits = digits\n\t}\n\tneg := n.Neg\n\taffix, suffix := f.getAffixes(neg)\n\tdst = appendAffix(dst, f, affix, neg)\n\tsavedLen := len(dst)\n\n\ti := 0\n\tfor ; i < len(intDigits); i++ {\n\t\tdst = f.AppendDigit(dst, intDigits[i])\n\t\tif f.needsSep(numInt - i) {\n\t\t\tdst = append(dst, f.Symbol(SymGroup)...)\n\t\t}\n\t}\n\tfor ; i < numInt; i++ {\n\t\tdst = f.AppendDigit(dst, 0)\n\t\tif f.needsSep(numInt - i) {\n\t\t\tdst = append(dst, f.Symbol(SymGroup)...)\n\t\t}\n\t}\n\n\tif numFrac > 0 || f.Flags&AlwaysDecimalSeparator != 0 {\n\t\tdst = append(dst, f.Symbol(SymDecimal)...)\n\t}\n\ti = 0\n\tfor ; i < len(fracDigits); i++ {\n\t\tdst = f.AppendDigit(dst, fracDigits[i])\n\t}\n\tfor ; i < numFrac; i++ {\n\t\tdst = f.AppendDigit(dst, 0)\n\t}\n\n\t// exp\n\tbuf := [12]byte{}\n\t// TODO: use exponential if superscripting is not available (no Latin\n\t// numbers or no tags) and use exponential in all other cases.\n\texp := n.Exp - int32(n.Comma)\n\texponential := f.Symbol(SymExponential)\n\tif exponential == \"E\" {\n\t\tdst = append(dst, f.Symbol(SymSuperscriptingExponent)...)\n\t\tdst = f.AppendDigit(dst, 1)\n\t\tdst = f.AppendDigit(dst, 0)\n\t\tswitch {\n\t\tcase exp < 0:\n\t\t\tdst = append(dst, superMinus...)\n\t\t\texp = -exp\n\t\tcase f.Flags&AlwaysExpSign != 0:\n\t\t\tdst = append(dst, superPlus...)\n\t\t}\n\t\tb = strconv.AppendUint(buf[:0], uint64(exp), 10)\n\t\tfor i := len(b); i < int(f.MinExponentDigits); i++ {\n\t\t\tdst = append(dst, superDigits[0]...)\n\t\t}\n\t\tfor _, c := range b {\n\t\t\tdst = append(dst, superDigits[c-'0']...)\n\t\t}\n\t} else {\n\t\tdst = append(dst, exponential...)\n\t\tswitch {\n\t\tcase exp < 0:\n\t\t\tdst = append(dst, f.Symbol(SymMinusSign)...)\n\t\t\texp = -exp\n\t\tcase f.Flags&AlwaysExpSign != 0:\n\t\t\tdst = append(dst, f.Symbol(SymPlusSign)...)\n\t\t}\n\t\tb = strconv.AppendUint(buf[:0], uint64(exp), 10)\n\t\tfor i := len(b); i < int(f.MinExponentDigits); i++ {\n\t\t\tdst = f.AppendDigit(dst, 0)\n\t\t}\n\t\tfor _, c := range b {\n\t\t\tdst = f.AppendDigit(dst, c-'0')\n\t\t}\n\t}\n\treturn appendAffix(dst, f, suffix, neg), savedLen, len(dst)\n}\n\nconst (\n\tsuperMinus = \"\\u207B\" // SUPERSCRIPT HYPHEN-MINUS\n\tsuperPlus  = \"\\u207A\" // SUPERSCRIPT PLUS SIGN\n)\n\nvar (\n\t// Note: the digits are not sequential!!!\n\tsuperDigits = []string{\n\t\t\"\\u2070\", // SUPERSCRIPT DIGIT ZERO\n\t\t\"\\u00B9\", // SUPERSCRIPT DIGIT ONE\n\t\t\"\\u00B2\", // SUPERSCRIPT DIGIT TWO\n\t\t\"\\u00B3\", // SUPERSCRIPT DIGIT THREE\n\t\t\"\\u2074\", // SUPERSCRIPT DIGIT FOUR\n\t\t\"\\u2075\", // SUPERSCRIPT DIGIT FIVE\n\t\t\"\\u2076\", // SUPERSCRIPT DIGIT SIX\n\t\t\"\\u2077\", // SUPERSCRIPT DIGIT SEVEN\n\t\t\"\\u2078\", // SUPERSCRIPT DIGIT EIGHT\n\t\t\"\\u2079\", // SUPERSCRIPT DIGIT NINE\n\t}\n)\n\nfunc (f *Formatter) getAffixes(neg bool) (affix, suffix string) {\n\tstr := f.Affix\n\tif str != \"\" {\n\t\tif f.NegOffset > 0 {\n\t\t\tif neg {\n\t\t\t\tstr = str[f.NegOffset:]\n\t\t\t} else {\n\t\t\t\tstr = str[:f.NegOffset]\n\t\t\t}\n\t\t}\n\t\tsufStart := 1 + str[0]\n\t\taffix = str[1:sufStart]\n\t\tsuffix = str[sufStart+1:]\n\t}\n\t// TODO: introduce a NeedNeg sign to indicate if the left pattern already\n\t// has a sign marked?\n\tif f.NegOffset == 0 && (neg || f.Flags&AlwaysSign != 0) {\n\t\taffix = \"-\" + affix\n\t}\n\treturn affix, suffix\n}\n\nfunc (f *Formatter) renderSpecial(dst []byte, d *Digits) (b []byte, ok bool) {\n\tif d.NaN {\n\t\treturn fmtNaN(dst, f), true\n\t}\n\tif d.Inf {\n\t\treturn fmtInfinite(dst, f, d), true\n\t}\n\treturn dst, false\n}\n\nfunc fmtNaN(dst []byte, f *Formatter) []byte {\n\treturn append(dst, f.Symbol(SymNan)...)\n}\n\nfunc fmtInfinite(dst []byte, f *Formatter, d *Digits) []byte {\n\taffix, suffix := f.getAffixes(d.Neg)\n\tdst = appendAffix(dst, f, affix, d.Neg)\n\tdst = append(dst, f.Symbol(SymInfinity)...)\n\tdst = appendAffix(dst, f, suffix, d.Neg)\n\treturn dst\n}\n\nfunc appendAffix(dst []byte, f *Formatter, affix string, neg bool) []byte {\n\tquoting := false\n\tescaping := false\n\tfor _, r := range affix {\n\t\tswitch {\n\t\tcase escaping:\n\t\t\t// escaping occurs both inside and outside of quotes\n\t\t\tdst = append(dst, string(r)...)\n\t\t\tescaping = false\n\t\tcase r == '\\\\':\n\t\t\tescaping = true\n\t\tcase r == '\\'':\n\t\t\tquoting = !quoting\n\t\tcase quoting:\n\t\t\tdst = append(dst, string(r)...)\n\t\tcase r == '%':\n\t\t\tif f.DigitShift == 3 {\n\t\t\t\tdst = append(dst, f.Symbol(SymPerMille)...)\n\t\t\t} else {\n\t\t\t\tdst = append(dst, f.Symbol(SymPercentSign)...)\n\t\t\t}\n\t\tcase r == '-' || r == '+':\n\t\t\tif neg {\n\t\t\t\tdst = append(dst, f.Symbol(SymMinusSign)...)\n\t\t\t} else if f.Flags&ElideSign == 0 {\n\t\t\t\tdst = append(dst, f.Symbol(SymPlusSign)...)\n\t\t\t} else {\n\t\t\t\tdst = append(dst, ' ')\n\t\t\t}\n\t\tdefault:\n\t\t\tdst = append(dst, string(r)...)\n\t\t}\n\t}\n\treturn dst\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/number/number.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:generate go run gen.go gen_common.go\n\n// Package number contains tools and data for formatting numbers.\npackage number\n\nimport (\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/internal/language/compact\"\n\t\"golang.org/x/text/language\"\n)\n\n// Info holds number formatting configuration data.\ntype Info struct {\n\tsystem   systemData // numbering system information\n\tsymIndex symOffset  // index to symbols\n}\n\n// InfoFromLangID returns a Info for the given compact language identifier and\n// numbering system identifier. If system is the empty string, the default\n// numbering system will be taken for that language.\nfunc InfoFromLangID(compactIndex compact.ID, numberSystem string) Info {\n\tp := langToDefaults[compactIndex]\n\t// Lookup the entry for the language.\n\tpSymIndex := symOffset(0) // Default: Latin, default symbols\n\tsystem, ok := systemMap[numberSystem]\n\tif !ok {\n\t\t// Take the value for the default numbering system. This is by far the\n\t\t// most common case as an alternative numbering system is hardly used.\n\t\tif p&hasNonLatnMask == 0 { // Latn digits.\n\t\t\tpSymIndex = p\n\t\t} else { // Non-Latn or multiple numbering systems.\n\t\t\t// Take the first entry from the alternatives list.\n\t\t\tdata := langToAlt[p&^hasNonLatnMask]\n\t\t\tpSymIndex = data.symIndex\n\t\t\tsystem = data.system\n\t\t}\n\t} else {\n\t\tlangIndex := compactIndex\n\t\tns := system\n\touterLoop:\n\t\tfor ; ; p = langToDefaults[langIndex] {\n\t\t\tif p&hasNonLatnMask == 0 {\n\t\t\t\tif ns == 0 {\n\t\t\t\t\t// The index directly points to the symbol data.\n\t\t\t\t\tpSymIndex = p\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// Move to the parent and retry.\n\t\t\t\tlangIndex = langIndex.Parent()\n\t\t\t} else {\n\t\t\t\t// The index points to a list of symbol data indexes.\n\t\t\t\tfor _, e := range langToAlt[p&^hasNonLatnMask:] {\n\t\t\t\t\tif e.compactTag != langIndex {\n\t\t\t\t\t\tif langIndex == 0 {\n\t\t\t\t\t\t\t// The CLDR root defines full symbol information for\n\t\t\t\t\t\t\t// all numbering systems (even though mostly by\n\t\t\t\t\t\t\t// means of aliases). Fall back to the default entry\n\t\t\t\t\t\t\t// for Latn if there is no data for the numbering\n\t\t\t\t\t\t\t// system of this language.\n\t\t\t\t\t\t\tif ns == 0 {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Fall back to Latin and start from the original\n\t\t\t\t\t\t\t// language. See\n\t\t\t\t\t\t\t// https://unicode.org/reports/tr35/#Locale_Inheritance.\n\t\t\t\t\t\t\tns = numLatn\n\t\t\t\t\t\t\tlangIndex = compactIndex\n\t\t\t\t\t\t\tcontinue outerLoop\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Fall back to parent.\n\t\t\t\t\t\tlangIndex = langIndex.Parent()\n\t\t\t\t\t} else if e.system == ns {\n\t\t\t\t\t\tpSymIndex = e.symIndex\n\t\t\t\t\t\tbreak outerLoop\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif int(system) >= len(numSysData) { // algorithmic\n\t\t// Will generate ASCII digits in case the user inadvertently calls\n\t\t// WriteDigit or Digit on it.\n\t\td := numSysData[0]\n\t\td.id = system\n\t\treturn Info{\n\t\t\tsystem:   d,\n\t\t\tsymIndex: pSymIndex,\n\t\t}\n\t}\n\treturn Info{\n\t\tsystem:   numSysData[system],\n\t\tsymIndex: pSymIndex,\n\t}\n}\n\n// InfoFromTag returns a Info for the given language tag.\nfunc InfoFromTag(t language.Tag) Info {\n\treturn InfoFromLangID(tagToID(t), t.TypeForKey(\"nu\"))\n}\n\n// IsDecimal reports if the numbering system can convert decimal to native\n// symbols one-to-one.\nfunc (n Info) IsDecimal() bool {\n\treturn int(n.system.id) < len(numSysData)\n}\n\n// WriteDigit writes the UTF-8 sequence for n corresponding to the given ASCII\n// digit to dst and reports the number of bytes written. dst must be large\n// enough to hold the rune (can be up to utf8.UTFMax bytes).\nfunc (n Info) WriteDigit(dst []byte, asciiDigit rune) int {\n\tcopy(dst, n.system.zero[:n.system.digitSize])\n\tdst[n.system.digitSize-1] += byte(asciiDigit - '0')\n\treturn int(n.system.digitSize)\n}\n\n// AppendDigit appends the UTF-8 sequence for n corresponding to the given digit\n// to dst and reports the number of bytes written. dst must be large enough to\n// hold the rune (can be up to utf8.UTFMax bytes).\nfunc (n Info) AppendDigit(dst []byte, digit byte) []byte {\n\tdst = append(dst, n.system.zero[:n.system.digitSize]...)\n\tdst[len(dst)-1] += digit\n\treturn dst\n}\n\n// Digit returns the digit for the numbering system for the corresponding ASCII\n// value. For example, ni.Digit('3') could return '三'. Note that the argument\n// is the rune constant '3', which equals 51, not the integer constant 3.\nfunc (n Info) Digit(asciiDigit rune) rune {\n\tvar x [utf8.UTFMax]byte\n\tn.WriteDigit(x[:], asciiDigit)\n\tr, _ := utf8.DecodeRune(x[:])\n\treturn r\n}\n\n// Symbol returns the string for the given symbol type.\nfunc (n Info) Symbol(t SymbolType) string {\n\treturn symData.Elem(int(symIndex[n.symIndex][t]))\n}\n\nfunc formatForLang(t language.Tag, index []byte) *Pattern {\n\treturn &formats[index[tagToID(t)]]\n}\n\nfunc tagToID(t language.Tag) compact.ID {\n\tid, _ := compact.RegionalID(compact.Tag(t))\n\treturn id\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/number/pattern.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 number\n\nimport (\n\t\"errors\"\n\t\"unicode/utf8\"\n)\n\n// This file contains a parser for the CLDR number patterns as described in\n// https://unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns.\n//\n// The following BNF is derived from this standard.\n//\n// pattern    := subpattern (';' subpattern)?\n// subpattern := affix? number exponent? affix?\n// number     := decimal | sigDigits\n// decimal    := '#'* '0'* ('.' fraction)? | '#' | '0'\n// fraction   := '0'* '#'*\n// sigDigits  := '#'* '@' '@'* '#'*\n// exponent   := 'E' '+'? '0'* '0'\n// padSpec    := '*' \\L\n//\n// Notes:\n// - An affix pattern may contain any runes, but runes with special meaning\n//   should be escaped.\n// - Sequences of digits, '#', and '@' in decimal and sigDigits may have\n//   interstitial commas.\n\n// TODO: replace special characters in affixes (-, +, ¤) with control codes.\n\n// Pattern holds information for formatting numbers. It is designed to hold\n// information from CLDR number patterns.\n//\n// This pattern is precompiled  for all patterns for all languages. Even though\n// the number of patterns is not very large, we want to keep this small.\n//\n// This type is only intended for internal use.\ntype Pattern struct {\n\tRoundingContext\n\n\tAffix       string // includes prefix and suffix. First byte is prefix length.\n\tOffset      uint16 // Offset into Affix for prefix and suffix\n\tNegOffset   uint16 // Offset into Affix for negative prefix and suffix or 0.\n\tPadRune     rune\n\tFormatWidth uint16\n\n\tGroupingSize [2]uint8\n\tFlags        PatternFlag\n}\n\n// A RoundingContext indicates how a number should be converted to digits.\n// It contains all information needed to determine the \"visible digits\" as\n// required by the pluralization rules.\ntype RoundingContext struct {\n\t// TODO: unify these two fields so that there is a more unambiguous meaning\n\t// of how precision is handled.\n\tMaxSignificantDigits int16 // -1 is unlimited\n\tMaxFractionDigits    int16 // -1 is unlimited\n\n\tIncrement      uint32\n\tIncrementScale uint8 // May differ from printed scale.\n\n\tMode RoundingMode\n\n\tDigitShift uint8 // Number of decimals to shift. Used for % and ‰.\n\n\t// Number of digits.\n\tMinIntegerDigits uint8\n\n\tMaxIntegerDigits     uint8\n\tMinFractionDigits    uint8\n\tMinSignificantDigits uint8\n\n\tMinExponentDigits uint8\n}\n\n// RoundSignificantDigits returns the number of significant digits an\n// implementation of Convert may round to or n < 0 if there is no maximum or\n// a maximum is not recommended.\nfunc (r *RoundingContext) RoundSignificantDigits() (n int) {\n\tif r.MaxFractionDigits == 0 && r.MaxSignificantDigits > 0 {\n\t\treturn int(r.MaxSignificantDigits)\n\t} else if r.isScientific() && r.MaxIntegerDigits == 1 {\n\t\tif r.MaxSignificantDigits == 0 ||\n\t\t\tint(r.MaxFractionDigits+1) == int(r.MaxSignificantDigits) {\n\t\t\t// Note: don't add DigitShift: it is only used for decimals.\n\t\t\treturn int(r.MaxFractionDigits) + 1\n\t\t}\n\t}\n\treturn -1\n}\n\n// RoundFractionDigits returns the number of fraction digits an implementation\n// of Convert may round to or n < 0 if there is no maximum or a maximum is not\n// recommended.\nfunc (r *RoundingContext) RoundFractionDigits() (n int) {\n\tif r.MinExponentDigits == 0 &&\n\t\tr.MaxSignificantDigits == 0 &&\n\t\tr.MaxFractionDigits >= 0 {\n\t\treturn int(r.MaxFractionDigits) + int(r.DigitShift)\n\t}\n\treturn -1\n}\n\n// SetScale fixes the RoundingContext to a fixed number of fraction digits.\nfunc (r *RoundingContext) SetScale(scale int) {\n\tr.MinFractionDigits = uint8(scale)\n\tr.MaxFractionDigits = int16(scale)\n}\n\nfunc (r *RoundingContext) SetPrecision(prec int) {\n\tr.MaxSignificantDigits = int16(prec)\n}\n\nfunc (r *RoundingContext) isScientific() bool {\n\treturn r.MinExponentDigits > 0\n}\n\nfunc (f *Pattern) needsSep(pos int) bool {\n\tp := pos - 1\n\tsize := int(f.GroupingSize[0])\n\tif size == 0 || p == 0 {\n\t\treturn false\n\t}\n\tif p == size {\n\t\treturn true\n\t}\n\tif p -= size; p < 0 {\n\t\treturn false\n\t}\n\t// TODO: make second groupingsize the same as first if 0 so that we can\n\t// avoid this check.\n\tif x := int(f.GroupingSize[1]); x != 0 {\n\t\tsize = x\n\t}\n\treturn p%size == 0\n}\n\n// A PatternFlag is a bit mask for the flag field of a Pattern.\ntype PatternFlag uint8\n\nconst (\n\tAlwaysSign PatternFlag = 1 << iota\n\tElideSign              // Use space instead of plus sign. AlwaysSign must be true.\n\tAlwaysExpSign\n\tAlwaysDecimalSeparator\n\tParenthesisForNegative // Common pattern. Saves space.\n\n\tPadAfterNumber\n\tPadAfterAffix\n\n\tPadBeforePrefix = 0 // Default\n\tPadAfterPrefix  = PadAfterAffix\n\tPadBeforeSuffix = PadAfterNumber\n\tPadAfterSuffix  = PadAfterNumber | PadAfterAffix\n\tPadMask         = PadAfterNumber | PadAfterAffix\n)\n\ntype parser struct {\n\t*Pattern\n\n\tleadingSharps int\n\n\tpos            int\n\terr            error\n\tdoNotTerminate bool\n\tgroupingCount  uint\n\thasGroup       bool\n\tbuf            []byte\n}\n\nfunc (p *parser) setError(err error) {\n\tif p.err == nil {\n\t\tp.err = err\n\t}\n}\n\nfunc (p *parser) updateGrouping() {\n\tif p.hasGroup &&\n\t\t0 < p.groupingCount && p.groupingCount < 255 {\n\t\tp.GroupingSize[1] = p.GroupingSize[0]\n\t\tp.GroupingSize[0] = uint8(p.groupingCount)\n\t}\n\tp.groupingCount = 0\n\tp.hasGroup = true\n}\n\nvar (\n\t// TODO: more sensible and localizeable error messages.\n\terrMultiplePadSpecifiers = errors.New(\"format: pattern has multiple pad specifiers\")\n\terrInvalidPadSpecifier   = errors.New(\"format: invalid pad specifier\")\n\terrInvalidQuote          = errors.New(\"format: invalid quote\")\n\terrAffixTooLarge         = errors.New(\"format: prefix or suffix exceeds maximum UTF-8 length of 256 bytes\")\n\terrDuplicatePercentSign  = errors.New(\"format: duplicate percent sign\")\n\terrDuplicatePermilleSign = errors.New(\"format: duplicate permille sign\")\n\terrUnexpectedEnd         = errors.New(\"format: unexpected end of pattern\")\n)\n\n// ParsePattern extracts formatting information from a CLDR number pattern.\n//\n// See https://unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns.\nfunc ParsePattern(s string) (f *Pattern, err error) {\n\tp := parser{Pattern: &Pattern{}}\n\n\ts = p.parseSubPattern(s)\n\n\tif s != \"\" {\n\t\t// Parse negative sub pattern.\n\t\tif s[0] != ';' {\n\t\t\tp.setError(errors.New(\"format: error parsing first sub pattern\"))\n\t\t\treturn nil, p.err\n\t\t}\n\t\tneg := parser{Pattern: &Pattern{}} // just for extracting the affixes.\n\t\ts = neg.parseSubPattern(s[len(\";\"):])\n\t\tp.NegOffset = uint16(len(p.buf))\n\t\tp.buf = append(p.buf, neg.buf...)\n\t}\n\tif s != \"\" {\n\t\tp.setError(errors.New(\"format: spurious characters at end of pattern\"))\n\t}\n\tif p.err != nil {\n\t\treturn nil, p.err\n\t}\n\tif affix := string(p.buf); affix == \"\\x00\\x00\" || affix == \"\\x00\\x00\\x00\\x00\" {\n\t\t// No prefix or suffixes.\n\t\tp.NegOffset = 0\n\t} else {\n\t\tp.Affix = affix\n\t}\n\tif p.Increment == 0 {\n\t\tp.IncrementScale = 0\n\t}\n\treturn p.Pattern, nil\n}\n\nfunc (p *parser) parseSubPattern(s string) string {\n\ts = p.parsePad(s, PadBeforePrefix)\n\ts = p.parseAffix(s)\n\ts = p.parsePad(s, PadAfterPrefix)\n\n\ts = p.parse(p.number, s)\n\tp.updateGrouping()\n\n\ts = p.parsePad(s, PadBeforeSuffix)\n\ts = p.parseAffix(s)\n\ts = p.parsePad(s, PadAfterSuffix)\n\treturn s\n}\n\nfunc (p *parser) parsePad(s string, f PatternFlag) (tail string) {\n\tif len(s) >= 2 && s[0] == '*' {\n\t\tr, sz := utf8.DecodeRuneInString(s[1:])\n\t\tif p.PadRune != 0 {\n\t\t\tp.err = errMultiplePadSpecifiers\n\t\t} else {\n\t\t\tp.Flags |= f\n\t\t\tp.PadRune = r\n\t\t}\n\t\treturn s[1+sz:]\n\t}\n\treturn s\n}\n\nfunc (p *parser) parseAffix(s string) string {\n\tx := len(p.buf)\n\tp.buf = append(p.buf, 0) // placeholder for affix length\n\n\ts = p.parse(p.affix, s)\n\n\tn := len(p.buf) - x - 1\n\tif n > 0xFF {\n\t\tp.setError(errAffixTooLarge)\n\t}\n\tp.buf[x] = uint8(n)\n\treturn s\n}\n\n// state implements a state transition. It returns the new state. A state\n// function may set an error on the parser or may simply return on an incorrect\n// token and let the next phase fail.\ntype state func(r rune) state\n\n// parse repeatedly applies a state function on the given string until a\n// termination condition is reached.\nfunc (p *parser) parse(fn state, s string) (tail string) {\n\tfor i, r := range s {\n\t\tp.doNotTerminate = false\n\t\tif fn = fn(r); fn == nil || p.err != nil {\n\t\t\treturn s[i:]\n\t\t}\n\t\tp.FormatWidth++\n\t}\n\tif p.doNotTerminate {\n\t\tp.setError(errUnexpectedEnd)\n\t}\n\treturn \"\"\n}\n\nfunc (p *parser) affix(r rune) state {\n\tswitch r {\n\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n\t\t'#', '@', '.', '*', ',', ';':\n\t\treturn nil\n\tcase '\\'':\n\t\tp.FormatWidth--\n\t\treturn p.escapeFirst\n\tcase '%':\n\t\tif p.DigitShift != 0 {\n\t\t\tp.setError(errDuplicatePercentSign)\n\t\t}\n\t\tp.DigitShift = 2\n\tcase '\\u2030': // ‰ Per mille\n\t\tif p.DigitShift != 0 {\n\t\t\tp.setError(errDuplicatePermilleSign)\n\t\t}\n\t\tp.DigitShift = 3\n\t\t// TODO: handle currency somehow: ¤, ¤¤, ¤¤¤, ¤¤¤¤\n\t}\n\tp.buf = append(p.buf, string(r)...)\n\treturn p.affix\n}\n\nfunc (p *parser) escapeFirst(r rune) state {\n\tswitch r {\n\tcase '\\'':\n\t\tp.buf = append(p.buf, \"\\\\'\"...)\n\t\treturn p.affix\n\tdefault:\n\t\tp.buf = append(p.buf, '\\'')\n\t\tp.buf = append(p.buf, string(r)...)\n\t}\n\treturn p.escape\n}\n\nfunc (p *parser) escape(r rune) state {\n\tswitch r {\n\tcase '\\'':\n\t\tp.FormatWidth--\n\t\tp.buf = append(p.buf, '\\'')\n\t\treturn p.affix\n\tdefault:\n\t\tp.buf = append(p.buf, string(r)...)\n\t}\n\treturn p.escape\n}\n\n// number parses a number. The BNF says the integer part should always have\n// a '0', but that does not appear to be the case according to the rest of the\n// documentation. We will allow having only '#' numbers.\nfunc (p *parser) number(r rune) state {\n\tswitch r {\n\tcase '#':\n\t\tp.groupingCount++\n\t\tp.leadingSharps++\n\tcase '@':\n\t\tp.groupingCount++\n\t\tp.leadingSharps = 0\n\t\tp.MaxFractionDigits = -1\n\t\treturn p.sigDigits(r)\n\tcase ',':\n\t\tif p.leadingSharps == 0 { // no leading commas\n\t\t\treturn nil\n\t\t}\n\t\tp.updateGrouping()\n\tcase 'E':\n\t\tp.MaxIntegerDigits = uint8(p.leadingSharps)\n\t\treturn p.exponent\n\tcase '.': // allow \".##\" etc.\n\t\tp.updateGrouping()\n\t\treturn p.fraction\n\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\treturn p.integer(r)\n\tdefault:\n\t\treturn nil\n\t}\n\treturn p.number\n}\n\nfunc (p *parser) integer(r rune) state {\n\tif !('0' <= r && r <= '9') {\n\t\tvar next state\n\t\tswitch r {\n\t\tcase 'E':\n\t\t\tif p.leadingSharps > 0 {\n\t\t\t\tp.MaxIntegerDigits = uint8(p.leadingSharps) + p.MinIntegerDigits\n\t\t\t}\n\t\t\tnext = p.exponent\n\t\tcase '.':\n\t\t\tnext = p.fraction\n\t\tcase ',':\n\t\t\tnext = p.integer\n\t\t}\n\t\tp.updateGrouping()\n\t\treturn next\n\t}\n\tp.Increment = p.Increment*10 + uint32(r-'0')\n\tp.groupingCount++\n\tp.MinIntegerDigits++\n\treturn p.integer\n}\n\nfunc (p *parser) sigDigits(r rune) state {\n\tswitch r {\n\tcase '@':\n\t\tp.groupingCount++\n\t\tp.MaxSignificantDigits++\n\t\tp.MinSignificantDigits++\n\tcase '#':\n\t\treturn p.sigDigitsFinal(r)\n\tcase 'E':\n\t\tp.updateGrouping()\n\t\treturn p.normalizeSigDigitsWithExponent()\n\tdefault:\n\t\tp.updateGrouping()\n\t\treturn nil\n\t}\n\treturn p.sigDigits\n}\n\nfunc (p *parser) sigDigitsFinal(r rune) state {\n\tswitch r {\n\tcase '#':\n\t\tp.groupingCount++\n\t\tp.MaxSignificantDigits++\n\tcase 'E':\n\t\tp.updateGrouping()\n\t\treturn p.normalizeSigDigitsWithExponent()\n\tdefault:\n\t\tp.updateGrouping()\n\t\treturn nil\n\t}\n\treturn p.sigDigitsFinal\n}\n\nfunc (p *parser) normalizeSigDigitsWithExponent() state {\n\tp.MinIntegerDigits, p.MaxIntegerDigits = 1, 1\n\tp.MinFractionDigits = p.MinSignificantDigits - 1\n\tp.MaxFractionDigits = p.MaxSignificantDigits - 1\n\tp.MinSignificantDigits, p.MaxSignificantDigits = 0, 0\n\treturn p.exponent\n}\n\nfunc (p *parser) fraction(r rune) state {\n\tswitch r {\n\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\tp.Increment = p.Increment*10 + uint32(r-'0')\n\t\tp.IncrementScale++\n\t\tp.MinFractionDigits++\n\t\tp.MaxFractionDigits++\n\tcase '#':\n\t\tp.MaxFractionDigits++\n\tcase 'E':\n\t\tif p.leadingSharps > 0 {\n\t\t\tp.MaxIntegerDigits = uint8(p.leadingSharps) + p.MinIntegerDigits\n\t\t}\n\t\treturn p.exponent\n\tdefault:\n\t\treturn nil\n\t}\n\treturn p.fraction\n}\n\nfunc (p *parser) exponent(r rune) state {\n\tswitch r {\n\tcase '+':\n\t\t// Set mode and check it wasn't already set.\n\t\tif p.Flags&AlwaysExpSign != 0 || p.MinExponentDigits > 0 {\n\t\t\tbreak\n\t\t}\n\t\tp.Flags |= AlwaysExpSign\n\t\tp.doNotTerminate = true\n\t\treturn p.exponent\n\tcase '0':\n\t\tp.MinExponentDigits++\n\t\treturn p.exponent\n\t}\n\t// termination condition\n\tif p.MinExponentDigits == 0 {\n\t\tp.setError(errors.New(\"format: need at least one digit\"))\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/number/roundingmode_string.go",
    "content": "// Code generated by \"stringer -type RoundingMode\"; DO NOT EDIT.\n\npackage number\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[ToNearestEven-0]\n\t_ = x[ToNearestZero-1]\n\t_ = x[ToNearestAway-2]\n\t_ = x[ToPositiveInf-3]\n\t_ = x[ToNegativeInf-4]\n\t_ = x[ToZero-5]\n\t_ = x[AwayFromZero-6]\n\t_ = x[numModes-7]\n}\n\nconst _RoundingMode_name = \"ToNearestEvenToNearestZeroToNearestAwayToPositiveInfToNegativeInfToZeroAwayFromZeronumModes\"\n\nvar _RoundingMode_index = [...]uint8{0, 13, 26, 39, 52, 65, 71, 83, 91}\n\nfunc (i RoundingMode) String() string {\n\tif i >= RoundingMode(len(_RoundingMode_index)-1) {\n\t\treturn \"RoundingMode(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _RoundingMode_name[_RoundingMode_index[i]:_RoundingMode_index[i+1]]\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/number/tables.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage number\n\nimport \"golang.org/x/text/internal/stringset\"\n\n// CLDRVersion is the CLDR version from which the tables in this package are derived.\nconst CLDRVersion = \"32\"\n\nvar numSysData = []systemData{ // 59 elements\n\t0:  {id: 0x0, digitSize: 0x1, zero: [4]uint8{0x30, 0x0, 0x0, 0x0}},\n\t1:  {id: 0x1, digitSize: 0x4, zero: [4]uint8{0xf0, 0x9e, 0xa5, 0x90}},\n\t2:  {id: 0x2, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x9c, 0xb0}},\n\t3:  {id: 0x3, digitSize: 0x2, zero: [4]uint8{0xd9, 0xa0, 0x0, 0x0}},\n\t4:  {id: 0x4, digitSize: 0x2, zero: [4]uint8{0xdb, 0xb0, 0x0, 0x0}},\n\t5:  {id: 0x5, digitSize: 0x3, zero: [4]uint8{0xe1, 0xad, 0x90, 0x0}},\n\t6:  {id: 0x6, digitSize: 0x3, zero: [4]uint8{0xe0, 0xa7, 0xa6, 0x0}},\n\t7:  {id: 0x7, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0xb1, 0x90}},\n\t8:  {id: 0x8, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x81, 0xa6}},\n\t9:  {id: 0x9, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x84, 0xb6}},\n\t10: {id: 0xa, digitSize: 0x3, zero: [4]uint8{0xea, 0xa9, 0x90, 0x0}},\n\t11: {id: 0xb, digitSize: 0x3, zero: [4]uint8{0xe0, 0xa5, 0xa6, 0x0}},\n\t12: {id: 0xc, digitSize: 0x3, zero: [4]uint8{0xef, 0xbc, 0x90, 0x0}},\n\t13: {id: 0xd, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0xb5, 0x90}},\n\t14: {id: 0xe, digitSize: 0x3, zero: [4]uint8{0xe0, 0xab, 0xa6, 0x0}},\n\t15: {id: 0xf, digitSize: 0x3, zero: [4]uint8{0xe0, 0xa9, 0xa6, 0x0}},\n\t16: {id: 0x10, digitSize: 0x4, zero: [4]uint8{0xf0, 0x96, 0xad, 0x90}},\n\t17: {id: 0x11, digitSize: 0x3, zero: [4]uint8{0xea, 0xa7, 0x90, 0x0}},\n\t18: {id: 0x12, digitSize: 0x3, zero: [4]uint8{0xea, 0xa4, 0x80, 0x0}},\n\t19: {id: 0x13, digitSize: 0x3, zero: [4]uint8{0xe1, 0x9f, 0xa0, 0x0}},\n\t20: {id: 0x14, digitSize: 0x3, zero: [4]uint8{0xe0, 0xb3, 0xa6, 0x0}},\n\t21: {id: 0x15, digitSize: 0x3, zero: [4]uint8{0xe1, 0xaa, 0x80, 0x0}},\n\t22: {id: 0x16, digitSize: 0x3, zero: [4]uint8{0xe1, 0xaa, 0x90, 0x0}},\n\t23: {id: 0x17, digitSize: 0x3, zero: [4]uint8{0xe0, 0xbb, 0x90, 0x0}},\n\t24: {id: 0x18, digitSize: 0x3, zero: [4]uint8{0xe1, 0xb1, 0x80, 0x0}},\n\t25: {id: 0x19, digitSize: 0x3, zero: [4]uint8{0xe1, 0xa5, 0x86, 0x0}},\n\t26: {id: 0x1a, digitSize: 0x4, zero: [4]uint8{0xf0, 0x9d, 0x9f, 0x8e}},\n\t27: {id: 0x1b, digitSize: 0x4, zero: [4]uint8{0xf0, 0x9d, 0x9f, 0x98}},\n\t28: {id: 0x1c, digitSize: 0x4, zero: [4]uint8{0xf0, 0x9d, 0x9f, 0xb6}},\n\t29: {id: 0x1d, digitSize: 0x4, zero: [4]uint8{0xf0, 0x9d, 0x9f, 0xac}},\n\t30: {id: 0x1e, digitSize: 0x4, zero: [4]uint8{0xf0, 0x9d, 0x9f, 0xa2}},\n\t31: {id: 0x1f, digitSize: 0x3, zero: [4]uint8{0xe0, 0xb5, 0xa6, 0x0}},\n\t32: {id: 0x20, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x99, 0x90}},\n\t33: {id: 0x21, digitSize: 0x3, zero: [4]uint8{0xe1, 0xa0, 0x90, 0x0}},\n\t34: {id: 0x22, digitSize: 0x4, zero: [4]uint8{0xf0, 0x96, 0xa9, 0xa0}},\n\t35: {id: 0x23, digitSize: 0x3, zero: [4]uint8{0xea, 0xaf, 0xb0, 0x0}},\n\t36: {id: 0x24, digitSize: 0x3, zero: [4]uint8{0xe1, 0x81, 0x80, 0x0}},\n\t37: {id: 0x25, digitSize: 0x3, zero: [4]uint8{0xe1, 0x82, 0x90, 0x0}},\n\t38: {id: 0x26, digitSize: 0x3, zero: [4]uint8{0xea, 0xa7, 0xb0, 0x0}},\n\t39: {id: 0x27, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x91, 0x90}},\n\t40: {id: 0x28, digitSize: 0x2, zero: [4]uint8{0xdf, 0x80, 0x0, 0x0}},\n\t41: {id: 0x29, digitSize: 0x3, zero: [4]uint8{0xe1, 0xb1, 0x90, 0x0}},\n\t42: {id: 0x2a, digitSize: 0x3, zero: [4]uint8{0xe0, 0xad, 0xa6, 0x0}},\n\t43: {id: 0x2b, digitSize: 0x4, zero: [4]uint8{0xf0, 0x90, 0x92, 0xa0}},\n\t44: {id: 0x2c, digitSize: 0x3, zero: [4]uint8{0xea, 0xa3, 0x90, 0x0}},\n\t45: {id: 0x2d, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x87, 0x90}},\n\t46: {id: 0x2e, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x8b, 0xb0}},\n\t47: {id: 0x2f, digitSize: 0x3, zero: [4]uint8{0xe0, 0xb7, 0xa6, 0x0}},\n\t48: {id: 0x30, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x83, 0xb0}},\n\t49: {id: 0x31, digitSize: 0x3, zero: [4]uint8{0xe1, 0xae, 0xb0, 0x0}},\n\t50: {id: 0x32, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x9b, 0x80}},\n\t51: {id: 0x33, digitSize: 0x3, zero: [4]uint8{0xe1, 0xa7, 0x90, 0x0}},\n\t52: {id: 0x34, digitSize: 0x3, zero: [4]uint8{0xe0, 0xaf, 0xa6, 0x0}},\n\t53: {id: 0x35, digitSize: 0x3, zero: [4]uint8{0xe0, 0xb1, 0xa6, 0x0}},\n\t54: {id: 0x36, digitSize: 0x3, zero: [4]uint8{0xe0, 0xb9, 0x90, 0x0}},\n\t55: {id: 0x37, digitSize: 0x3, zero: [4]uint8{0xe0, 0xbc, 0xa0, 0x0}},\n\t56: {id: 0x38, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x93, 0x90}},\n\t57: {id: 0x39, digitSize: 0x3, zero: [4]uint8{0xea, 0x98, 0xa0, 0x0}},\n\t58: {id: 0x3a, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0xa3, 0xa0}},\n} // Size: 378 bytes\n\nconst (\n\tnumAdlm     = 0x1\n\tnumAhom     = 0x2\n\tnumArab     = 0x3\n\tnumArabext  = 0x4\n\tnumArmn     = 0x3b\n\tnumArmnlow  = 0x3c\n\tnumBali     = 0x5\n\tnumBeng     = 0x6\n\tnumBhks     = 0x7\n\tnumBrah     = 0x8\n\tnumCakm     = 0x9\n\tnumCham     = 0xa\n\tnumCyrl     = 0x3d\n\tnumDeva     = 0xb\n\tnumEthi     = 0x3e\n\tnumFullwide = 0xc\n\tnumGeor     = 0x3f\n\tnumGonm     = 0xd\n\tnumGrek     = 0x40\n\tnumGreklow  = 0x41\n\tnumGujr     = 0xe\n\tnumGuru     = 0xf\n\tnumHanidays = 0x42\n\tnumHanidec  = 0x43\n\tnumHans     = 0x44\n\tnumHansfin  = 0x45\n\tnumHant     = 0x46\n\tnumHantfin  = 0x47\n\tnumHebr     = 0x48\n\tnumHmng     = 0x10\n\tnumJava     = 0x11\n\tnumJpan     = 0x49\n\tnumJpanfin  = 0x4a\n\tnumKali     = 0x12\n\tnumKhmr     = 0x13\n\tnumKnda     = 0x14\n\tnumLana     = 0x15\n\tnumLanatham = 0x16\n\tnumLaoo     = 0x17\n\tnumLatn     = 0x0\n\tnumLepc     = 0x18\n\tnumLimb     = 0x19\n\tnumMathbold = 0x1a\n\tnumMathdbl  = 0x1b\n\tnumMathmono = 0x1c\n\tnumMathsanb = 0x1d\n\tnumMathsans = 0x1e\n\tnumMlym     = 0x1f\n\tnumModi     = 0x20\n\tnumMong     = 0x21\n\tnumMroo     = 0x22\n\tnumMtei     = 0x23\n\tnumMymr     = 0x24\n\tnumMymrshan = 0x25\n\tnumMymrtlng = 0x26\n\tnumNewa     = 0x27\n\tnumNkoo     = 0x28\n\tnumOlck     = 0x29\n\tnumOrya     = 0x2a\n\tnumOsma     = 0x2b\n\tnumRoman    = 0x4b\n\tnumRomanlow = 0x4c\n\tnumSaur     = 0x2c\n\tnumShrd     = 0x2d\n\tnumSind     = 0x2e\n\tnumSinh     = 0x2f\n\tnumSora     = 0x30\n\tnumSund     = 0x31\n\tnumTakr     = 0x32\n\tnumTalu     = 0x33\n\tnumTaml     = 0x4d\n\tnumTamldec  = 0x34\n\tnumTelu     = 0x35\n\tnumThai     = 0x36\n\tnumTibt     = 0x37\n\tnumTirh     = 0x38\n\tnumVaii     = 0x39\n\tnumWara     = 0x3a\n\tnumNumberSystems\n)\n\nvar systemMap = map[string]system{\n\t\"adlm\":     numAdlm,\n\t\"ahom\":     numAhom,\n\t\"arab\":     numArab,\n\t\"arabext\":  numArabext,\n\t\"armn\":     numArmn,\n\t\"armnlow\":  numArmnlow,\n\t\"bali\":     numBali,\n\t\"beng\":     numBeng,\n\t\"bhks\":     numBhks,\n\t\"brah\":     numBrah,\n\t\"cakm\":     numCakm,\n\t\"cham\":     numCham,\n\t\"cyrl\":     numCyrl,\n\t\"deva\":     numDeva,\n\t\"ethi\":     numEthi,\n\t\"fullwide\": numFullwide,\n\t\"geor\":     numGeor,\n\t\"gonm\":     numGonm,\n\t\"grek\":     numGrek,\n\t\"greklow\":  numGreklow,\n\t\"gujr\":     numGujr,\n\t\"guru\":     numGuru,\n\t\"hanidays\": numHanidays,\n\t\"hanidec\":  numHanidec,\n\t\"hans\":     numHans,\n\t\"hansfin\":  numHansfin,\n\t\"hant\":     numHant,\n\t\"hantfin\":  numHantfin,\n\t\"hebr\":     numHebr,\n\t\"hmng\":     numHmng,\n\t\"java\":     numJava,\n\t\"jpan\":     numJpan,\n\t\"jpanfin\":  numJpanfin,\n\t\"kali\":     numKali,\n\t\"khmr\":     numKhmr,\n\t\"knda\":     numKnda,\n\t\"lana\":     numLana,\n\t\"lanatham\": numLanatham,\n\t\"laoo\":     numLaoo,\n\t\"latn\":     numLatn,\n\t\"lepc\":     numLepc,\n\t\"limb\":     numLimb,\n\t\"mathbold\": numMathbold,\n\t\"mathdbl\":  numMathdbl,\n\t\"mathmono\": numMathmono,\n\t\"mathsanb\": numMathsanb,\n\t\"mathsans\": numMathsans,\n\t\"mlym\":     numMlym,\n\t\"modi\":     numModi,\n\t\"mong\":     numMong,\n\t\"mroo\":     numMroo,\n\t\"mtei\":     numMtei,\n\t\"mymr\":     numMymr,\n\t\"mymrshan\": numMymrshan,\n\t\"mymrtlng\": numMymrtlng,\n\t\"newa\":     numNewa,\n\t\"nkoo\":     numNkoo,\n\t\"olck\":     numOlck,\n\t\"orya\":     numOrya,\n\t\"osma\":     numOsma,\n\t\"roman\":    numRoman,\n\t\"romanlow\": numRomanlow,\n\t\"saur\":     numSaur,\n\t\"shrd\":     numShrd,\n\t\"sind\":     numSind,\n\t\"sinh\":     numSinh,\n\t\"sora\":     numSora,\n\t\"sund\":     numSund,\n\t\"takr\":     numTakr,\n\t\"talu\":     numTalu,\n\t\"taml\":     numTaml,\n\t\"tamldec\":  numTamldec,\n\t\"telu\":     numTelu,\n\t\"thai\":     numThai,\n\t\"tibt\":     numTibt,\n\t\"tirh\":     numTirh,\n\t\"vaii\":     numVaii,\n\t\"wara\":     numWara,\n}\n\nvar symIndex = [][12]uint8{ // 81 elements\n\t0:  [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t1:  [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t2:  [12]uint8{0x0, 0x1, 0x2, 0xd, 0xe, 0xf, 0x6, 0x7, 0x8, 0x9, 0x10, 0xb},\n\t3:  [12]uint8{0x1, 0x0, 0x2, 0xd, 0xe, 0xf, 0x6, 0x7, 0x8, 0x9, 0x10, 0xb},\n\t4:  [12]uint8{0x0, 0x1, 0x2, 0x11, 0xe, 0xf, 0x6, 0x7, 0x8, 0x9, 0x10, 0xb},\n\t5:  [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x12, 0xb},\n\t6:  [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t7:  [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x13, 0xb},\n\t8:  [12]uint8{0x0, 0x1, 0x2, 0x3, 0xe, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t9:  [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0x0},\n\t10: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x6, 0x14, 0x8, 0x9, 0xa, 0xb},\n\t11: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x14, 0x8, 0x9, 0xa, 0xb},\n\t12: [12]uint8{0x0, 0x15, 0x2, 0x3, 0x4, 0x5, 0x6, 0x14, 0x8, 0x9, 0xa, 0xb},\n\t13: [12]uint8{0x0, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t14: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x16, 0xb},\n\t15: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x17, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t16: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x17, 0x7, 0x8, 0x9, 0xa, 0x0},\n\t17: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x17, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t18: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0x0},\n\t19: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x18, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t20: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x19, 0x1a, 0xa, 0xb},\n\t21: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x1b, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t22: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x1b, 0x18, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t23: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x1b, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t24: [12]uint8{0x0, 0x1, 0x2, 0x3, 0xe, 0x1c, 0x6, 0x7, 0x8, 0x9, 0x1d, 0xb},\n\t25: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x1b, 0x6, 0x7, 0x8, 0x9, 0x1e, 0x0},\n\t26: [12]uint8{0x0, 0x15, 0x2, 0x3, 0x4, 0x1b, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t27: [12]uint8{0x0, 0x1, 0x2, 0x3, 0xe, 0xf, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t28: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x1f, 0xb},\n\t29: [12]uint8{0x0, 0x15, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t30: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x20, 0xb},\n\t31: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x21, 0x7, 0x8, 0x9, 0x22, 0xb},\n\t32: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x23, 0xb},\n\t33: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x1b, 0x18, 0x14, 0x8, 0x9, 0x24, 0xb},\n\t34: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x1b, 0x18, 0x7, 0x8, 0x9, 0x24, 0xb},\n\t35: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x25, 0xb},\n\t36: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x26, 0xb},\n\t37: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x27, 0xb},\n\t38: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x28, 0xb},\n\t39: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x29, 0xb},\n\t40: [12]uint8{0x1, 0x0, 0x2, 0x3, 0xe, 0x1c, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t41: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x2a, 0xb},\n\t42: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x2b, 0xb},\n\t43: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x1b, 0x2c, 0x14, 0x8, 0x9, 0x24, 0xb},\n\t44: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0x0},\n\t45: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x17, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t46: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x1b, 0x17, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t47: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x2d, 0x0},\n\t48: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x2e, 0xb},\n\t49: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x2f, 0xb},\n\t50: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x30, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t51: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x31, 0xb},\n\t52: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x32, 0xb},\n\t53: [12]uint8{0x1, 0x15, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb},\n\t54: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x33, 0xb},\n\t55: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x34, 0xb},\n\t56: [12]uint8{0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x7, 0x3c, 0x9, 0xa, 0xb},\n\t57: [12]uint8{0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x7, 0x3c, 0x9, 0x3d, 0xb},\n\t58: [12]uint8{0x35, 0x36, 0x37, 0x11, 0x3e, 0x3f, 0x3b, 0x7, 0x3c, 0x9, 0xa, 0xb},\n\t59: [12]uint8{0x35, 0x36, 0x37, 0x11, 0x39, 0x3a, 0x3b, 0x7, 0x3c, 0x9, 0xa, 0xb},\n\t60: [12]uint8{0x35, 0x36, 0x37, 0x11, 0x39, 0x40, 0x3b, 0x7, 0x3c, 0x9, 0xa, 0xb},\n\t61: [12]uint8{0x35, 0x36, 0x37, 0x41, 0x3e, 0x3f, 0x3b, 0x7, 0x3c, 0x9, 0xa, 0xb},\n\t62: [12]uint8{0x35, 0x36, 0x37, 0x38, 0x3e, 0x3f, 0x3b, 0x7, 0x3c, 0x9, 0xa, 0xb},\n\t63: [12]uint8{0x35, 0xc, 0x37, 0x38, 0x39, 0x42, 0x3b, 0x7, 0x3c, 0x9, 0xa, 0x0},\n\t64: [12]uint8{0x35, 0xc, 0x37, 0x38, 0x39, 0x42, 0x43, 0x7, 0x44, 0x9, 0x24, 0xb},\n\t65: [12]uint8{0x35, 0x36, 0x37, 0x38, 0x39, 0x5, 0x3b, 0x7, 0x3c, 0x9, 0x33, 0xb},\n\t66: [12]uint8{0x35, 0x36, 0x37, 0x11, 0x45, 0x46, 0x43, 0x7, 0x3c, 0x9, 0xa, 0x35},\n\t67: [12]uint8{0x35, 0x36, 0x37, 0x11, 0xe, 0x1c, 0x43, 0x7, 0x3c, 0x9, 0x1d, 0xb},\n\t68: [12]uint8{0x35, 0x36, 0x37, 0x11, 0xe, 0x1c, 0x43, 0x7, 0x3c, 0x9, 0xa, 0x35},\n\t69: [12]uint8{0x35, 0x36, 0x37, 0x11, 0x45, 0x5, 0x43, 0x7, 0x3c, 0x9, 0xa, 0x35},\n\t70: [12]uint8{0x1, 0xc, 0x37, 0x11, 0x45, 0x47, 0x43, 0x7, 0x3c, 0x9, 0xa, 0x0},\n\t71: [12]uint8{0x35, 0x1, 0x37, 0x11, 0x4, 0x5, 0x43, 0x7, 0x3c, 0x9, 0xa, 0x35},\n\t72: [12]uint8{0x1, 0xc, 0x37, 0x11, 0x45, 0x47, 0x43, 0x7, 0x3c, 0x9, 0x24, 0xb},\n\t73: [12]uint8{0x35, 0x36, 0x2, 0x3, 0x45, 0x46, 0x43, 0x7, 0x8, 0x9, 0xa, 0x35},\n\t74: [12]uint8{0x35, 0x36, 0x37, 0x11, 0x4, 0x5, 0x43, 0x7, 0x3c, 0x9, 0x31, 0x35},\n\t75: [12]uint8{0x35, 0x36, 0x37, 0x11, 0x4, 0x5, 0x43, 0x7, 0x3c, 0x9, 0x32, 0x35},\n\t76: [12]uint8{0x35, 0x36, 0x37, 0x11, 0x48, 0x46, 0x43, 0x7, 0x3c, 0x9, 0x33, 0x35},\n\t77: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0x49},\n\t78: [12]uint8{0x0, 0x1, 0x4a, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x28, 0xb},\n\t79: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x4b, 0xb},\n\t80: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x4c, 0x4d, 0xb},\n} // Size: 996 bytes\n\nvar symData = stringset.Set{\n\tData: \"\" + // Size: 599 bytes\n\t\t\".,;%+-E×‰∞NaN:\\u00a0\\u200e%\\u200e\\u200e+\\u200e-ليس\\u00a0رقمًا٪NDТерхьаш\" +\n\t\t\"\\u00a0дац·’mnne×10^0/00INF−\\u200e−ناعددepälukuՈչԹარ\\u00a0არის\\u00a0რიცხვ\" +\n\t\t\"იZMdMсан\\u00a0емес¤¤¤сан\\u00a0эмесບໍ່\\u200bແມ່ນ\\u200bໂຕ\\u200bເລກNSဂဏန်\" +\n\t\t\"းမဟုတ်သောННне\\u00a0числочыыһыла\\u00a0буотах·10^epilohosan\\u00a0dälTFЕs\" +\n\t\t\"on\\u00a0emasҳақиқий\\u00a0сон\\u00a0эмас非數值非数值٫٬؛٪\\u061c\\u061c+\\u061c-اس؉ل\" +\n\t\t\"يس\\u00a0رقم\\u200f+\\u200f-\\u200f−٪\\u200f\\u061c−×۱۰^؉\\u200f\\u200e+\\u200e\" +\n\t\t\"\\u200e-\\u200e\\u200e−\\u200e+\\u200e：၊ཨང་མེན་གྲངས་མེདཨང་མད\",\n\tIndex: []uint16{ // 79 elements\n\t\t// Entry 0 - 3F\n\t\t0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\n\t\t0x0009, 0x000c, 0x000f, 0x0012, 0x0013, 0x0015, 0x001c, 0x0020,\n\t\t0x0024, 0x0036, 0x0038, 0x003a, 0x0050, 0x0052, 0x0055, 0x0058,\n\t\t0x0059, 0x005e, 0x0062, 0x0065, 0x0068, 0x006e, 0x0078, 0x0080,\n\t\t0x0086, 0x00ae, 0x00af, 0x00b2, 0x00c2, 0x00c8, 0x00d8, 0x0105,\n\t\t0x0107, 0x012e, 0x0132, 0x0142, 0x015e, 0x0163, 0x016a, 0x0173,\n\t\t0x0175, 0x0177, 0x0180, 0x01a0, 0x01a9, 0x01b2, 0x01b4, 0x01b6,\n\t\t0x01b8, 0x01bc, 0x01bf, 0x01c2, 0x01c6, 0x01c8, 0x01d6, 0x01da,\n\t\t// Entry 40 - 7F\n\t\t0x01de, 0x01e4, 0x01e9, 0x01ee, 0x01f5, 0x01fa, 0x0201, 0x0208,\n\t\t0x0211, 0x0215, 0x0218, 0x021b, 0x0230, 0x0248, 0x0257,\n\t},\n} // Size: 797 bytes\n\n// langToDefaults maps a compact language index to the default numbering system\n// and default symbol set\nvar langToDefaults = [775]symOffset{\n\t// Entry 0 - 3F\n\t0x8000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x8003, 0x0002, 0x0002, 0x0002, 0x0002, 0x0003,\n\t0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,\n\t0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0002, 0x0002, 0x0004,\n\t0x0002, 0x0004, 0x0002, 0x0002, 0x0002, 0x0003, 0x0002, 0x0000,\n\t0x8005, 0x0000, 0x0000, 0x0000, 0x8006, 0x0005, 0x0006, 0x0006,\n\t0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,\n\t// Entry 40 - 7F\n\t0x8009, 0x0000, 0x0000, 0x800a, 0x0000, 0x0000, 0x800c, 0x0001,\n\t0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,\n\t0x0006, 0x0006, 0x0006, 0x0006, 0x800e, 0x0000, 0x0000, 0x0007,\n\t0x0007, 0x0000, 0x0000, 0x0000, 0x0000, 0x800f, 0x0008, 0x0008,\n\t0x8011, 0x0001, 0x0001, 0x0001, 0x803c, 0x0000, 0x0009, 0x0009,\n\t0x0009, 0x0000, 0x0000, 0x000a, 0x000b, 0x000a, 0x000c, 0x000a,\n\t0x000a, 0x000c, 0x000a, 0x000d, 0x000d, 0x000a, 0x000a, 0x0001,\n\t0x0001, 0x0000, 0x0001, 0x0001, 0x803f, 0x0000, 0x0000, 0x0000,\n\t// Entry 80 - BF\n\t0x000e, 0x000e, 0x000e, 0x000f, 0x000f, 0x000f, 0x0000, 0x0000,\n\t0x0006, 0x0000, 0x0000, 0x0000, 0x000a, 0x0010, 0x0000, 0x0006,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0011, 0x0000, 0x000a,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0000, 0x0009, 0x0000,\n\t0x0000, 0x0012, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t// Entry C0 - FF\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0013, 0x0000,\n\t0x0000, 0x000f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0015,\n\t0x0015, 0x0006, 0x0000, 0x0006, 0x0006, 0x0000, 0x0000, 0x0006,\n\t0x0006, 0x0001, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006,\n\t// Entry 100 - 13F\n\t0x0000, 0x0000, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006,\n\t0x0000, 0x0006, 0x0000, 0x0000, 0x0006, 0x0006, 0x0016, 0x0016,\n\t0x0017, 0x0017, 0x0001, 0x0001, 0x8041, 0x0018, 0x0018, 0x0001,\n\t0x0001, 0x0001, 0x0001, 0x0001, 0x0019, 0x0019, 0x0000, 0x0000,\n\t0x0017, 0x0017, 0x0017, 0x8044, 0x0001, 0x0001, 0x0001, 0x0001,\n\t0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,\n\t0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,\n\t0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,\n\t// Entry 140 - 17F\n\t0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,\n\t0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,\n\t0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000,\n\t0x8047, 0x0000, 0x0006, 0x0006, 0x001a, 0x001a, 0x001a, 0x001a,\n\t0x804a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x804c, 0x001b, 0x0000,\n\t0x0000, 0x0006, 0x0006, 0x0006, 0x000a, 0x000a, 0x0001, 0x0001,\n\t0x001c, 0x001c, 0x0009, 0x0009, 0x804f, 0x0000, 0x0000, 0x0000,\n\t// Entry 180 - 1BF\n\t0x0000, 0x0000, 0x8052, 0x0006, 0x0006, 0x001d, 0x0006, 0x0006,\n\t0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001e, 0x001e, 0x001f,\n\t0x001f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,\n\t0x0001, 0x000d, 0x000d, 0x0000, 0x0000, 0x0020, 0x0020, 0x0006,\n\t0x0006, 0x0021, 0x0021, 0x0000, 0x0000, 0x0006, 0x0006, 0x0000,\n\t0x0000, 0x8054, 0x0000, 0x0000, 0x0000, 0x0000, 0x8056, 0x001b,\n\t0x0000, 0x0000, 0x0001, 0x0001, 0x0022, 0x0022, 0x0000, 0x0000,\n\t// Entry 1C0 - 1FF\n\t0x0000, 0x0023, 0x0023, 0x0000, 0x0000, 0x0006, 0x0006, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,\n\t0x0024, 0x0024, 0x8058, 0x0000, 0x0000, 0x0016, 0x0016, 0x0006,\n\t0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0025, 0x0025, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x000d, 0x000d, 0x0000, 0x0000,\n\t0x0006, 0x0006, 0x0000, 0x0000, 0x0006, 0x0006, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x805a, 0x0000, 0x0000, 0x0006, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x805b, 0x0026, 0x805d,\n\t// Entry 200 - 23F\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x805e, 0x0015, 0x0015, 0x0000,\n\t0x0000, 0x0006, 0x0006, 0x0006, 0x8061, 0x0000, 0x0000, 0x8062,\n\t0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,\n\t0x0001, 0x0015, 0x0015, 0x0006, 0x0006, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0027, 0x0027, 0x0027, 0x8065, 0x8067,\n\t0x001b, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,\n\t0x8069, 0x0028, 0x0006, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001,\n\t// Entry 240 - 27F\n\t0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,\n\t0x0006, 0x0000, 0x0000, 0x001a, 0x001a, 0x0006, 0x0006, 0x0006,\n\t0x0006, 0x0006, 0x0000, 0x0000, 0x0029, 0x0029, 0x0029, 0x0029,\n\t0x0029, 0x0029, 0x0029, 0x0006, 0x0006, 0x0000, 0x0000, 0x002a,\n\t0x002a, 0x0000, 0x0000, 0x0000, 0x0000, 0x806b, 0x0000, 0x0000,\n\t0x002b, 0x002b, 0x002b, 0x002b, 0x0006, 0x0006, 0x000d, 0x000d,\n\t0x0006, 0x0006, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,\n\t0x002c, 0x002c, 0x002d, 0x002d, 0x002e, 0x002e, 0x0000, 0x0000,\n\t// Entry 280 - 2BF\n\t0x0000, 0x002f, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,\n\t0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,\n\t0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x806d, 0x0022, 0x0022,\n\t0x0022, 0x0000, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0030, 0x0030, 0x0000, 0x0000, 0x8071, 0x0031, 0x0006,\n\t// Entry 2C0 - 2FF\n\t0x0006, 0x0006, 0x0000, 0x0001, 0x0001, 0x000d, 0x000d, 0x0001,\n\t0x0001, 0x0000, 0x0000, 0x0032, 0x0032, 0x8074, 0x8076, 0x001b,\n\t0x8077, 0x8079, 0x0028, 0x807b, 0x0034, 0x0033, 0x0033, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0000,\n\t0x0000, 0x0000, 0x0000, 0x0000, 0x0035, 0x0035, 0x0006, 0x0006,\n\t0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,\n\t0x0000, 0x0000, 0x0036, 0x0037, 0x0037, 0x0036, 0x0036, 0x0001,\n\t0x0001, 0x807d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8080,\n\t// Entry 300 - 33F\n\t0x0036, 0x0036, 0x0036, 0x0000, 0x0000, 0x0006, 0x0014,\n} // Size: 1550 bytes\n\n// langToAlt is a list of numbering system and symbol set pairs, sorted and\n// marked by compact language index.\nvar langToAlt = []altSymData{ // 131 elements\n\t1:   {compactTag: 0x0, symIndex: 0x38, system: 0x3},\n\t2:   {compactTag: 0x0, symIndex: 0x42, system: 0x4},\n\t3:   {compactTag: 0xa, symIndex: 0x39, system: 0x3},\n\t4:   {compactTag: 0xa, symIndex: 0x2, system: 0x0},\n\t5:   {compactTag: 0x28, symIndex: 0x0, system: 0x6},\n\t6:   {compactTag: 0x2c, symIndex: 0x5, system: 0x0},\n\t7:   {compactTag: 0x2c, symIndex: 0x3a, system: 0x3},\n\t8:   {compactTag: 0x2c, symIndex: 0x42, system: 0x4},\n\t9:   {compactTag: 0x40, symIndex: 0x0, system: 0x6},\n\t10:  {compactTag: 0x43, symIndex: 0x0, system: 0x0},\n\t11:  {compactTag: 0x43, symIndex: 0x4f, system: 0x37},\n\t12:  {compactTag: 0x46, symIndex: 0x1, system: 0x0},\n\t13:  {compactTag: 0x46, symIndex: 0x38, system: 0x3},\n\t14:  {compactTag: 0x54, symIndex: 0x0, system: 0x9},\n\t15:  {compactTag: 0x5d, symIndex: 0x3a, system: 0x3},\n\t16:  {compactTag: 0x5d, symIndex: 0x8, system: 0x0},\n\t17:  {compactTag: 0x60, symIndex: 0x1, system: 0x0},\n\t18:  {compactTag: 0x60, symIndex: 0x38, system: 0x3},\n\t19:  {compactTag: 0x60, symIndex: 0x42, system: 0x4},\n\t20:  {compactTag: 0x60, symIndex: 0x0, system: 0x5},\n\t21:  {compactTag: 0x60, symIndex: 0x0, system: 0x6},\n\t22:  {compactTag: 0x60, symIndex: 0x0, system: 0x8},\n\t23:  {compactTag: 0x60, symIndex: 0x0, system: 0x9},\n\t24:  {compactTag: 0x60, symIndex: 0x0, system: 0xa},\n\t25:  {compactTag: 0x60, symIndex: 0x0, system: 0xb},\n\t26:  {compactTag: 0x60, symIndex: 0x0, system: 0xc},\n\t27:  {compactTag: 0x60, symIndex: 0x0, system: 0xd},\n\t28:  {compactTag: 0x60, symIndex: 0x0, system: 0xe},\n\t29:  {compactTag: 0x60, symIndex: 0x0, system: 0xf},\n\t30:  {compactTag: 0x60, symIndex: 0x0, system: 0x11},\n\t31:  {compactTag: 0x60, symIndex: 0x0, system: 0x12},\n\t32:  {compactTag: 0x60, symIndex: 0x0, system: 0x13},\n\t33:  {compactTag: 0x60, symIndex: 0x0, system: 0x14},\n\t34:  {compactTag: 0x60, symIndex: 0x0, system: 0x15},\n\t35:  {compactTag: 0x60, symIndex: 0x0, system: 0x16},\n\t36:  {compactTag: 0x60, symIndex: 0x0, system: 0x17},\n\t37:  {compactTag: 0x60, symIndex: 0x0, system: 0x18},\n\t38:  {compactTag: 0x60, symIndex: 0x0, system: 0x19},\n\t39:  {compactTag: 0x60, symIndex: 0x0, system: 0x1f},\n\t40:  {compactTag: 0x60, symIndex: 0x0, system: 0x21},\n\t41:  {compactTag: 0x60, symIndex: 0x0, system: 0x23},\n\t42:  {compactTag: 0x60, symIndex: 0x0, system: 0x24},\n\t43:  {compactTag: 0x60, symIndex: 0x0, system: 0x25},\n\t44:  {compactTag: 0x60, symIndex: 0x0, system: 0x28},\n\t45:  {compactTag: 0x60, symIndex: 0x0, system: 0x29},\n\t46:  {compactTag: 0x60, symIndex: 0x0, system: 0x2a},\n\t47:  {compactTag: 0x60, symIndex: 0x0, system: 0x2b},\n\t48:  {compactTag: 0x60, symIndex: 0x0, system: 0x2c},\n\t49:  {compactTag: 0x60, symIndex: 0x0, system: 0x2d},\n\t50:  {compactTag: 0x60, symIndex: 0x0, system: 0x30},\n\t51:  {compactTag: 0x60, symIndex: 0x0, system: 0x31},\n\t52:  {compactTag: 0x60, symIndex: 0x0, system: 0x32},\n\t53:  {compactTag: 0x60, symIndex: 0x0, system: 0x33},\n\t54:  {compactTag: 0x60, symIndex: 0x0, system: 0x34},\n\t55:  {compactTag: 0x60, symIndex: 0x0, system: 0x35},\n\t56:  {compactTag: 0x60, symIndex: 0x0, system: 0x36},\n\t57:  {compactTag: 0x60, symIndex: 0x0, system: 0x37},\n\t58:  {compactTag: 0x60, symIndex: 0x0, system: 0x39},\n\t59:  {compactTag: 0x60, symIndex: 0x0, system: 0x43},\n\t60:  {compactTag: 0x64, symIndex: 0x0, system: 0x0},\n\t61:  {compactTag: 0x64, symIndex: 0x38, system: 0x3},\n\t62:  {compactTag: 0x64, symIndex: 0x42, system: 0x4},\n\t63:  {compactTag: 0x7c, symIndex: 0x50, system: 0x37},\n\t64:  {compactTag: 0x7c, symIndex: 0x0, system: 0x0},\n\t65:  {compactTag: 0x114, symIndex: 0x43, system: 0x4},\n\t66:  {compactTag: 0x114, symIndex: 0x18, system: 0x0},\n\t67:  {compactTag: 0x114, symIndex: 0x3b, system: 0x3},\n\t68:  {compactTag: 0x123, symIndex: 0x1, system: 0x0},\n\t69:  {compactTag: 0x123, symIndex: 0x3c, system: 0x3},\n\t70:  {compactTag: 0x123, symIndex: 0x44, system: 0x4},\n\t71:  {compactTag: 0x158, symIndex: 0x0, system: 0x0},\n\t72:  {compactTag: 0x158, symIndex: 0x3b, system: 0x3},\n\t73:  {compactTag: 0x158, symIndex: 0x45, system: 0x4},\n\t74:  {compactTag: 0x160, symIndex: 0x0, system: 0x0},\n\t75:  {compactTag: 0x160, symIndex: 0x38, system: 0x3},\n\t76:  {compactTag: 0x16d, symIndex: 0x1b, system: 0x0},\n\t77:  {compactTag: 0x16d, symIndex: 0x0, system: 0x9},\n\t78:  {compactTag: 0x16d, symIndex: 0x0, system: 0xa},\n\t79:  {compactTag: 0x17c, symIndex: 0x0, system: 0x0},\n\t80:  {compactTag: 0x17c, symIndex: 0x3d, system: 0x3},\n\t81:  {compactTag: 0x17c, symIndex: 0x42, system: 0x4},\n\t82:  {compactTag: 0x182, symIndex: 0x6, system: 0x0},\n\t83:  {compactTag: 0x182, symIndex: 0x38, system: 0x3},\n\t84:  {compactTag: 0x1b1, symIndex: 0x0, system: 0x0},\n\t85:  {compactTag: 0x1b1, symIndex: 0x3e, system: 0x3},\n\t86:  {compactTag: 0x1b6, symIndex: 0x42, system: 0x4},\n\t87:  {compactTag: 0x1b6, symIndex: 0x1b, system: 0x0},\n\t88:  {compactTag: 0x1d2, symIndex: 0x42, system: 0x4},\n\t89:  {compactTag: 0x1d2, symIndex: 0x0, system: 0x0},\n\t90:  {compactTag: 0x1f3, symIndex: 0x0, system: 0xb},\n\t91:  {compactTag: 0x1fd, symIndex: 0x4e, system: 0x24},\n\t92:  {compactTag: 0x1fd, symIndex: 0x26, system: 0x0},\n\t93:  {compactTag: 0x1ff, symIndex: 0x42, system: 0x4},\n\t94:  {compactTag: 0x204, symIndex: 0x15, system: 0x0},\n\t95:  {compactTag: 0x204, symIndex: 0x3f, system: 0x3},\n\t96:  {compactTag: 0x204, symIndex: 0x46, system: 0x4},\n\t97:  {compactTag: 0x20c, symIndex: 0x0, system: 0xb},\n\t98:  {compactTag: 0x20f, symIndex: 0x6, system: 0x0},\n\t99:  {compactTag: 0x20f, symIndex: 0x38, system: 0x3},\n\t100: {compactTag: 0x20f, symIndex: 0x42, system: 0x4},\n\t101: {compactTag: 0x22e, symIndex: 0x0, system: 0x0},\n\t102: {compactTag: 0x22e, symIndex: 0x47, system: 0x4},\n\t103: {compactTag: 0x22f, symIndex: 0x42, system: 0x4},\n\t104: {compactTag: 0x22f, symIndex: 0x1b, system: 0x0},\n\t105: {compactTag: 0x238, symIndex: 0x42, system: 0x4},\n\t106: {compactTag: 0x238, symIndex: 0x28, system: 0x0},\n\t107: {compactTag: 0x265, symIndex: 0x38, system: 0x3},\n\t108: {compactTag: 0x265, symIndex: 0x0, system: 0x0},\n\t109: {compactTag: 0x29d, symIndex: 0x22, system: 0x0},\n\t110: {compactTag: 0x29d, symIndex: 0x40, system: 0x3},\n\t111: {compactTag: 0x29d, symIndex: 0x48, system: 0x4},\n\t112: {compactTag: 0x29d, symIndex: 0x4d, system: 0xc},\n\t113: {compactTag: 0x2bd, symIndex: 0x31, system: 0x0},\n\t114: {compactTag: 0x2bd, symIndex: 0x3e, system: 0x3},\n\t115: {compactTag: 0x2bd, symIndex: 0x42, system: 0x4},\n\t116: {compactTag: 0x2cd, symIndex: 0x1b, system: 0x0},\n\t117: {compactTag: 0x2cd, symIndex: 0x49, system: 0x4},\n\t118: {compactTag: 0x2ce, symIndex: 0x49, system: 0x4},\n\t119: {compactTag: 0x2d0, symIndex: 0x33, system: 0x0},\n\t120: {compactTag: 0x2d0, symIndex: 0x4a, system: 0x4},\n\t121: {compactTag: 0x2d1, symIndex: 0x42, system: 0x4},\n\t122: {compactTag: 0x2d1, symIndex: 0x28, system: 0x0},\n\t123: {compactTag: 0x2d3, symIndex: 0x34, system: 0x0},\n\t124: {compactTag: 0x2d3, symIndex: 0x4b, system: 0x4},\n\t125: {compactTag: 0x2f9, symIndex: 0x0, system: 0x0},\n\t126: {compactTag: 0x2f9, symIndex: 0x38, system: 0x3},\n\t127: {compactTag: 0x2f9, symIndex: 0x42, system: 0x4},\n\t128: {compactTag: 0x2ff, symIndex: 0x36, system: 0x0},\n\t129: {compactTag: 0x2ff, symIndex: 0x41, system: 0x3},\n\t130: {compactTag: 0x2ff, symIndex: 0x4c, system: 0x4},\n} // Size: 810 bytes\n\nvar tagToDecimal = []uint8{ // 775 elements\n\t// Entry 0 - 3F\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x05, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t// Entry 40 - 7F\n\t0x05, 0x05, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x05, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x05, 0x05, 0x05, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x05, 0x05, 0x01, 0x01,\n\t// Entry 80 - BF\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t// Entry C0 - FF\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t// Entry 100 - 13F\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t// Entry 140 - 17F\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x05, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x05,\n\t0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t// Entry 180 - 1BF\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x05, 0x05, 0x05, 0x05,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t// Entry 1C0 - 1FF\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x05, 0x05,\n\t0x01, 0x01, 0x01, 0x05, 0x05, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t// Entry 200 - 23F\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x05, 0x05, 0x01, 0x01, 0x01, 0x05, 0x01,\n\t0x01, 0x05, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t// Entry 240 - 27F\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t// Entry 280 - 2BF\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x05,\n\t0x05, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t// Entry 2C0 - 2FF\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n\t// Entry 300 - 33F\n\t0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x08,\n} // Size: 799 bytes\n\nvar tagToScientific = []uint8{ // 775 elements\n\t// Entry 0 - 3F\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 40 - 7F\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 80 - BF\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry C0 - FF\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 100 - 13F\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 140 - 17F\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x0c, 0x0c, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x0c,\n\t0x0c, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 180 - 1BF\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 1C0 - 1FF\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x0d, 0x0d, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x0c, 0x0c, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 200 - 23F\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x0c, 0x02,\n\t0x02, 0x0c, 0x0c, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 240 - 27F\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x0d, 0x0d, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 280 - 2BF\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 2C0 - 2FF\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,\n\t// Entry 300 - 33F\n\t0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x09,\n} // Size: 799 bytes\n\nvar tagToPercent = []uint8{ // 775 elements\n\t// Entry 0 - 3F\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x06, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x03, 0x03, 0x03, 0x03, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t// Entry 40 - 7F\n\t0x06, 0x06, 0x06, 0x04, 0x04, 0x04, 0x03, 0x03,\n\t0x06, 0x06, 0x03, 0x04, 0x04, 0x03, 0x03, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x06, 0x06, 0x06, 0x03,\n\t0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x03, 0x03,\n\t0x03, 0x04, 0x04, 0x03, 0x03, 0x03, 0x04, 0x03,\n\t0x03, 0x04, 0x03, 0x04, 0x04, 0x03, 0x03, 0x03,\n\t0x03, 0x04, 0x04, 0x04, 0x07, 0x07, 0x04, 0x04,\n\t// Entry 80 - BF\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x03, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x03, 0x04, 0x03, 0x04,\n\t0x04, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t// Entry C0 - FF\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,\n\t0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,\n\t// Entry 100 - 13F\n\t0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,\n\t0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04,\n\t0x0b, 0x0b, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x03, 0x03, 0x04, 0x04,\n\t0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,\n\t0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03,\n\t0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,\n\t0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,\n\t// Entry 140 - 17F\n\t0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,\n\t0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,\n\t0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,\n\t0x06, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x06,\n\t0x06, 0x04, 0x04, 0x04, 0x03, 0x03, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t// Entry 180 - 1BF\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x06, 0x06, 0x06, 0x06,\n\t0x04, 0x04, 0x04, 0x04, 0x03, 0x03, 0x04, 0x04,\n\t// Entry 1C0 - 1FF\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0x03, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0x03, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t// Entry 200 - 23F\n\t0x04, 0x04, 0x04, 0x04, 0x03, 0x03, 0x03, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x06, 0x06, 0x04, 0x04, 0x04, 0x06, 0x04,\n\t0x04, 0x06, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t// Entry 240 - 27F\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03,\n\t0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,\n\t0x03, 0x03, 0x04, 0x04, 0x03, 0x03, 0x03, 0x03,\n\t0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04,\n\t// Entry 280 - 2BF\n\t0x04, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0x03, 0x03,\n\t0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x06,\n\t0x06, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x0e,\n\t// Entry 2C0 - 2FF\n\t0x0e, 0x0e, 0x04, 0x03, 0x03, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03,\n\t0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,\n\t// Entry 300 - 33F\n\t0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0a,\n} // Size: 799 bytes\n\nvar formats = []Pattern{Pattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\tMaxFractionDigits:    0,\n\tIncrement:            0x0,\n\tIncrementScale:       0x0,\n\tMode:                 0x0,\n\tDigitShift:           0x0,\n\tMinIntegerDigits:     0x0,\n\tMaxIntegerDigits:     0x0,\n\tMinFractionDigits:    0x0,\n\tMinSignificantDigits: 0x0,\n\tMinExponentDigits:    0x0},\n\tAffix:       \"\",\n\tOffset:      0x0,\n\tNegOffset:   0x0,\n\tPadRune:     0,\n\tFormatWidth: 0x0,\n\tGroupingSize: [2]uint8{0x0,\n\t\t0x0},\n\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    3,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x0,\n\t\tMinIntegerDigits:     0x1,\n\t\tMaxIntegerDigits:     0x0,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x0},\n\t\tAffix:       \"\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0x9,\n\t\tGroupingSize: [2]uint8{0x3,\n\t\t\t0x0},\n\t\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    0,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x0,\n\t\tMinIntegerDigits:     0x0,\n\t\tMaxIntegerDigits:     0x1,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x1},\n\t\tAffix:       \"\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0x3,\n\t\tGroupingSize: [2]uint8{0x0,\n\t\t\t0x0},\n\t\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    0,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x2,\n\t\tMinIntegerDigits:     0x1,\n\t\tMaxIntegerDigits:     0x0,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x0},\n\t\tAffix:       \"\\x00\\x03\\u00a0%\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0x7,\n\t\tGroupingSize: [2]uint8{0x3,\n\t\t\t0x0},\n\t\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    0,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x2,\n\t\tMinIntegerDigits:     0x1,\n\t\tMaxIntegerDigits:     0x0,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x0},\n\t\tAffix:       \"\\x00\\x01%\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0x6,\n\t\tGroupingSize: [2]uint8{0x3,\n\t\t\t0x0},\n\t\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    3,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x0,\n\t\tMinIntegerDigits:     0x1,\n\t\tMaxIntegerDigits:     0x0,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x0},\n\t\tAffix:       \"\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0xc,\n\t\tGroupingSize: [2]uint8{0x3,\n\t\t\t0x2},\n\t\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    0,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x2,\n\t\tMinIntegerDigits:     0x1,\n\t\tMaxIntegerDigits:     0x0,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x0},\n\t\tAffix:       \"\\x00\\x01%\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0x9,\n\t\tGroupingSize: [2]uint8{0x3,\n\t\t\t0x2},\n\t\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    0,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x2,\n\t\tMinIntegerDigits:     0x1,\n\t\tMaxIntegerDigits:     0x0,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x0},\n\t\tAffix:       \"\\x00\\x03\\u00a0%\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0xa,\n\t\tGroupingSize: [2]uint8{0x3,\n\t\t\t0x2},\n\t\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    6,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x0,\n\t\tMinIntegerDigits:     0x1,\n\t\tMaxIntegerDigits:     0x0,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x0},\n\t\tAffix:       \"\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0x8,\n\t\tGroupingSize: [2]uint8{0x0,\n\t\t\t0x0},\n\t\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    6,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x0,\n\t\tMinIntegerDigits:     0x1,\n\t\tMaxIntegerDigits:     0x0,\n\t\tMinFractionDigits:    0x6,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x3},\n\t\tAffix:       \"\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0xd,\n\t\tGroupingSize: [2]uint8{0x0,\n\t\t\t0x0},\n\t\tFlags: 0x4},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    0,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x2,\n\t\tMinIntegerDigits:     0x1,\n\t\tMaxIntegerDigits:     0x0,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x0},\n\t\tAffix:       \"\\x00\\x01%\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0x2,\n\t\tGroupingSize: [2]uint8{0x0,\n\t\t\t0x0},\n\t\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    0,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x2,\n\t\tMinIntegerDigits:     0x1,\n\t\tMaxIntegerDigits:     0x0,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x0},\n\t\tAffix:       \"\\x03%\\u00a0\\x00\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0x7,\n\t\tGroupingSize: [2]uint8{0x3,\n\t\t\t0x0},\n\t\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    0,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x0,\n\t\tMinIntegerDigits:     0x0,\n\t\tMaxIntegerDigits:     0x1,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x1},\n\t\tAffix:       \"\\x01[\\x01]\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0x5,\n\t\tGroupingSize: [2]uint8{0x0,\n\t\t\t0x0},\n\t\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    0,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x0,\n\t\tMinIntegerDigits:     0x0,\n\t\tMaxIntegerDigits:     0x0,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x0},\n\t\tAffix:       \"\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0x1,\n\t\tGroupingSize: [2]uint8{0x0,\n\t\t\t0x0},\n\t\tFlags: 0x0},\n\tPattern{RoundingContext: RoundingContext{MaxSignificantDigits: 0,\n\t\tMaxFractionDigits:    0,\n\t\tIncrement:            0x0,\n\t\tIncrementScale:       0x0,\n\t\tMode:                 0x0,\n\t\tDigitShift:           0x2,\n\t\tMinIntegerDigits:     0x1,\n\t\tMaxIntegerDigits:     0x0,\n\t\tMinFractionDigits:    0x0,\n\t\tMinSignificantDigits: 0x0,\n\t\tMinExponentDigits:    0x0},\n\t\tAffix:       \"\\x01%\\x00\",\n\t\tOffset:      0x0,\n\t\tNegOffset:   0x0,\n\t\tPadRune:     0,\n\t\tFormatWidth: 0x6,\n\t\tGroupingSize: [2]uint8{0x3,\n\t\t\t0x0},\n\t\tFlags: 0x0}}\n\n// Total table size 8634 bytes (8KiB); checksum: 8F23386D\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/stringset/set.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 stringset provides a way to represent a collection of strings\n// compactly.\npackage stringset\n\nimport \"sort\"\n\n// A Set holds a collection of strings that can be looked up by an index number.\ntype Set struct {\n\t// These fields are exported to allow for code generation.\n\n\tData  string\n\tIndex []uint16\n}\n\n// Elem returns the string with index i. It panics if i is out of range.\nfunc (s *Set) Elem(i int) string {\n\treturn s.Data[s.Index[i]:s.Index[i+1]]\n}\n\n// Len returns the number of strings in the set.\nfunc (s *Set) Len() int {\n\treturn len(s.Index) - 1\n}\n\n// Search returns the index of the given string or -1 if it is not in the set.\n// The Set must have been created with strings in sorted order.\nfunc Search(s *Set, str string) int {\n\t// TODO: optimize this if it gets used a lot.\n\tn := len(s.Index) - 1\n\tp := sort.Search(n, func(i int) bool {\n\t\treturn s.Elem(i) >= str\n\t})\n\tif p == n || str != s.Elem(p) {\n\t\treturn -1\n\t}\n\treturn p\n}\n\n// A Builder constructs Sets.\ntype Builder struct {\n\tset   Set\n\tindex map[string]int\n}\n\n// NewBuilder returns a new and initialized Builder.\nfunc NewBuilder() *Builder {\n\treturn &Builder{\n\t\tset: Set{\n\t\t\tIndex: []uint16{0},\n\t\t},\n\t\tindex: map[string]int{},\n\t}\n}\n\n// Set creates the set created so far.\nfunc (b *Builder) Set() Set {\n\treturn b.set\n}\n\n// Index returns the index for the given string, which must have been added\n// before.\nfunc (b *Builder) Index(s string) int {\n\treturn b.index[s]\n}\n\n// Add adds a string to the index. Strings that are added by a single Add will\n// be stored together, unless they match an existing string.\nfunc (b *Builder) Add(ss ...string) {\n\t// First check if the string already exists.\n\tfor _, s := range ss {\n\t\tif _, ok := b.index[s]; ok {\n\t\t\tcontinue\n\t\t}\n\t\tb.index[s] = len(b.set.Index) - 1\n\t\tb.set.Data += s\n\t\tx := len(b.set.Data)\n\t\tif x > 0xFFFF {\n\t\t\tpanic(\"Index too > 0xFFFF\")\n\t\t}\n\t\tb.set.Index = append(b.set.Index, uint16(x))\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/internal/tag/tag.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// Package tag contains functionality handling tags and related data.\npackage tag // import \"golang.org/x/text/internal/tag\"\n\nimport \"sort\"\n\n// An Index converts tags to a compact numeric value.\n//\n// All elements are of size 4. Tags may be up to 4 bytes long. Excess bytes can\n// be used to store additional information about the tag.\ntype Index string\n\n// Elem returns the element data at the given index.\nfunc (s Index) Elem(x int) string {\n\treturn string(s[x*4 : x*4+4])\n}\n\n// Index reports the index of the given key or -1 if it could not be found.\n// Only the first len(key) bytes from the start of the 4-byte entries will be\n// considered for the search and the first match in Index will be returned.\nfunc (s Index) Index(key []byte) int {\n\tn := len(key)\n\t// search the index of the first entry with an equal or higher value than\n\t// key in s.\n\tindex := sort.Search(len(s)/4, func(i int) bool {\n\t\treturn cmp(s[i*4:i*4+n], key) != -1\n\t})\n\ti := index * 4\n\tif cmp(s[i:i+len(key)], key) != 0 {\n\t\treturn -1\n\t}\n\treturn index\n}\n\n// Next finds the next occurrence of key after index x, which must have been\n// obtained from a call to Index using the same key. It returns x+1 or -1.\nfunc (s Index) Next(key []byte, x int) int {\n\tif x++; x*4 < len(s) && cmp(s[x*4:x*4+len(key)], key) == 0 {\n\t\treturn x\n\t}\n\treturn -1\n}\n\n// cmp returns an integer comparing a and b lexicographically.\nfunc cmp(a Index, b []byte) int {\n\tn := len(a)\n\tif len(b) < n {\n\t\tn = len(b)\n\t}\n\tfor i, c := range b[:n] {\n\t\tswitch {\n\t\tcase a[i] > c:\n\t\t\treturn 1\n\t\tcase a[i] < c:\n\t\t\treturn -1\n\t\t}\n\t}\n\tswitch {\n\tcase len(a) < len(b):\n\t\treturn -1\n\tcase len(a) > len(b):\n\t\treturn 1\n\t}\n\treturn 0\n}\n\n// Compare returns an integer comparing a and b lexicographically.\nfunc Compare(a string, b []byte) int {\n\treturn cmp(Index(a), b)\n}\n\n// FixCase reformats b to the same pattern of cases as form.\n// If returns false if string b is malformed.\nfunc FixCase(form string, b []byte) bool {\n\tif len(form) != len(b) {\n\t\treturn false\n\t}\n\tfor i, c := range b {\n\t\tif form[i] <= 'Z' {\n\t\t\tif c >= 'a' {\n\t\t\t\tc -= 'z' - 'Z'\n\t\t\t}\n\t\t\tif c < 'A' || 'Z' < c {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\tif c <= 'Z' {\n\t\t\t\tc += 'z' - 'Z'\n\t\t\t}\n\t\t\tif c < 'a' || 'z' < c {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tb[i] = c\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/language/coverage.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 language\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\n\t\"golang.org/x/text/internal/language\"\n)\n\n// The Coverage interface is used to define the level of coverage of an\n// internationalization service. Note that not all types are supported by all\n// services. As lists may be generated on the fly, it is recommended that users\n// of a Coverage cache the results.\ntype Coverage interface {\n\t// Tags returns the list of supported tags.\n\tTags() []Tag\n\n\t// BaseLanguages returns the list of supported base languages.\n\tBaseLanguages() []Base\n\n\t// Scripts returns the list of supported scripts.\n\tScripts() []Script\n\n\t// Regions returns the list of supported regions.\n\tRegions() []Region\n}\n\nvar (\n\t// Supported defines a Coverage that lists all supported subtags. Tags\n\t// always returns nil.\n\tSupported Coverage = allSubtags{}\n)\n\n// TODO:\n// - Support Variants, numbering systems.\n// - CLDR coverage levels.\n// - Set of common tags defined in this package.\n\ntype allSubtags struct{}\n\n// Regions returns the list of supported regions. As all regions are in a\n// consecutive range, it simply returns a slice of numbers in increasing order.\n// The \"undefined\" region is not returned.\nfunc (s allSubtags) Regions() []Region {\n\treg := make([]Region, language.NumRegions)\n\tfor i := range reg {\n\t\treg[i] = Region{language.Region(i + 1)}\n\t}\n\treturn reg\n}\n\n// Scripts returns the list of supported scripts. As all scripts are in a\n// consecutive range, it simply returns a slice of numbers in increasing order.\n// The \"undefined\" script is not returned.\nfunc (s allSubtags) Scripts() []Script {\n\tscr := make([]Script, language.NumScripts)\n\tfor i := range scr {\n\t\tscr[i] = Script{language.Script(i + 1)}\n\t}\n\treturn scr\n}\n\n// BaseLanguages returns the list of all supported base languages. It generates\n// the list by traversing the internal structures.\nfunc (s allSubtags) BaseLanguages() []Base {\n\tbs := language.BaseLanguages()\n\tbase := make([]Base, len(bs))\n\tfor i, b := range bs {\n\t\tbase[i] = Base{b}\n\t}\n\treturn base\n}\n\n// Tags always returns nil.\nfunc (s allSubtags) Tags() []Tag {\n\treturn nil\n}\n\n// coverage is used by NewCoverage which is used as a convenient way for\n// creating Coverage implementations for partially defined data. Very often a\n// package will only need to define a subset of slices. coverage provides a\n// convenient way to do this. Moreover, packages using NewCoverage, instead of\n// their own implementation, will not break if later new slice types are added.\ntype coverage struct {\n\ttags    func() []Tag\n\tbases   func() []Base\n\tscripts func() []Script\n\tregions func() []Region\n}\n\nfunc (s *coverage) Tags() []Tag {\n\tif s.tags == nil {\n\t\treturn nil\n\t}\n\treturn s.tags()\n}\n\n// bases implements sort.Interface and is used to sort base languages.\ntype bases []Base\n\nfunc (b bases) Len() int {\n\treturn len(b)\n}\n\nfunc (b bases) Swap(i, j int) {\n\tb[i], b[j] = b[j], b[i]\n}\n\nfunc (b bases) Less(i, j int) bool {\n\treturn b[i].langID < b[j].langID\n}\n\n// BaseLanguages returns the result from calling s.bases if it is specified or\n// otherwise derives the set of supported base languages from tags.\nfunc (s *coverage) BaseLanguages() []Base {\n\tif s.bases == nil {\n\t\ttags := s.Tags()\n\t\tif len(tags) == 0 {\n\t\t\treturn nil\n\t\t}\n\t\ta := make([]Base, len(tags))\n\t\tfor i, t := range tags {\n\t\t\ta[i] = Base{language.Language(t.lang())}\n\t\t}\n\t\tsort.Sort(bases(a))\n\t\tk := 0\n\t\tfor i := 1; i < len(a); i++ {\n\t\t\tif a[k] != a[i] {\n\t\t\t\tk++\n\t\t\t\ta[k] = a[i]\n\t\t\t}\n\t\t}\n\t\treturn a[:k+1]\n\t}\n\treturn s.bases()\n}\n\nfunc (s *coverage) Scripts() []Script {\n\tif s.scripts == nil {\n\t\treturn nil\n\t}\n\treturn s.scripts()\n}\n\nfunc (s *coverage) Regions() []Region {\n\tif s.regions == nil {\n\t\treturn nil\n\t}\n\treturn s.regions()\n}\n\n// NewCoverage returns a Coverage for the given lists. It is typically used by\n// packages providing internationalization services to define their level of\n// coverage. A list may be of type []T or func() []T, where T is either Tag,\n// Base, Script or Region. The returned Coverage derives the value for Bases\n// from Tags if no func or slice for []Base is specified. For other unspecified\n// types the returned Coverage will return nil for the respective methods.\nfunc NewCoverage(list ...interface{}) Coverage {\n\ts := &coverage{}\n\tfor _, x := range list {\n\t\tswitch v := x.(type) {\n\t\tcase func() []Base:\n\t\t\ts.bases = v\n\t\tcase func() []Script:\n\t\t\ts.scripts = v\n\t\tcase func() []Region:\n\t\t\ts.regions = v\n\t\tcase func() []Tag:\n\t\t\ts.tags = v\n\t\tcase []Base:\n\t\t\ts.bases = func() []Base { return v }\n\t\tcase []Script:\n\t\t\ts.scripts = func() []Script { return v }\n\t\tcase []Region:\n\t\t\ts.regions = func() []Region { return v }\n\t\tcase []Tag:\n\t\t\ts.tags = func() []Tag { return v }\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"language: unsupported set type %T\", v))\n\t\t}\n\t}\n\treturn s\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/language/doc.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// Package language implements BCP 47 language tags and related functionality.\n//\n// The most important function of package language is to match a list of\n// user-preferred languages to a list of supported languages.\n// It alleviates the developer of dealing with the complexity of this process\n// and provides the user with the best experience\n// (see https://blog.golang.org/matchlang).\n//\n// # Matching preferred against supported languages\n//\n// A Matcher for an application that supports English, Australian English,\n// Danish, and standard Mandarin can be created as follows:\n//\n//\tvar matcher = language.NewMatcher([]language.Tag{\n//\t    language.English,   // The first language is used as fallback.\n//\t    language.MustParse(\"en-AU\"),\n//\t    language.Danish,\n//\t    language.Chinese,\n//\t})\n//\n// This list of supported languages is typically implied by the languages for\n// which there exists translations of the user interface.\n//\n// User-preferred languages usually come as a comma-separated list of BCP 47\n// language tags.\n// The MatchString finds best matches for such strings:\n//\n//\thandler(w http.ResponseWriter, r *http.Request) {\n//\t    lang, _ := r.Cookie(\"lang\")\n//\t    accept := r.Header.Get(\"Accept-Language\")\n//\t    tag, _ := language.MatchStrings(matcher, lang.String(), accept)\n//\n//\t    // tag should now be used for the initialization of any\n//\t    // locale-specific service.\n//\t}\n//\n// The Matcher's Match method can be used to match Tags directly.\n//\n// Matchers are aware of the intricacies of equivalence between languages, such\n// as deprecated subtags, legacy tags, macro languages, mutual\n// intelligibility between scripts and languages, and transparently passing\n// BCP 47 user configuration.\n// For instance, it will know that a reader of Bokmål Danish can read Norwegian\n// and will know that Cantonese (\"yue\") is a good match for \"zh-HK\".\n//\n// # Using match results\n//\n// To guarantee a consistent user experience to the user it is important to\n// use the same language tag for the selection of any locale-specific services.\n// For example, it is utterly confusing to substitute spelled-out numbers\n// or dates in one language in text of another language.\n// More subtly confusing is using the wrong sorting order or casing\n// algorithm for a certain language.\n//\n// All the packages in x/text that provide locale-specific services\n// (e.g. collate, cases) should be initialized with the tag that was\n// obtained at the start of an interaction with the user.\n//\n// Note that Tag that is returned by Match and MatchString may differ from any\n// of the supported languages, as it may contain carried over settings from\n// the user tags.\n// This may be inconvenient when your application has some additional\n// locale-specific data for your supported languages.\n// Match and MatchString both return the index of the matched supported tag\n// to simplify associating such data with the matched tag.\n//\n// # Canonicalization\n//\n// If one uses the Matcher to compare languages one does not need to\n// worry about canonicalization.\n//\n// The meaning of a Tag varies per application. The language package\n// therefore delays canonicalization and preserves information as much\n// as possible. The Matcher, however, will always take into account that\n// two different tags may represent the same language.\n//\n// By default, only legacy and deprecated tags are converted into their\n// canonical equivalent. All other information is preserved. This approach makes\n// the confidence scores more accurate and allows matchers to distinguish\n// between variants that are otherwise lost.\n//\n// As a consequence, two tags that should be treated as identical according to\n// BCP 47 or CLDR, like \"en-Latn\" and \"en\", will be represented differently. The\n// Matcher handles such distinctions, though, and is aware of the\n// equivalence relations. The CanonType type can be used to alter the\n// canonicalization form.\n//\n// # References\n//\n// BCP 47 - Tags for Identifying Languages http://tools.ietf.org/html/bcp47\npackage language // import \"golang.org/x/text/language\"\n\n// TODO: explanation on how to match languages for your own locale-specific\n// service.\n"
  },
  {
    "path": "vendor/golang.org/x/text/language/language.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:generate go run gen.go -output tables.go\n\npackage language\n\n// TODO: Remove above NOTE after:\n// - verifying that tables are dropped correctly (most notably matcher tables).\n\nimport (\n\t\"strings\"\n\n\t\"golang.org/x/text/internal/language\"\n\t\"golang.org/x/text/internal/language/compact\"\n)\n\n// Tag represents a BCP 47 language tag. It is used to specify an instance of a\n// specific language or locale. All language tag values are guaranteed to be\n// well-formed.\ntype Tag compact.Tag\n\nfunc makeTag(t language.Tag) (tag Tag) {\n\treturn Tag(compact.Make(t))\n}\n\nfunc (t *Tag) tag() language.Tag {\n\treturn (*compact.Tag)(t).Tag()\n}\n\nfunc (t *Tag) isCompact() bool {\n\treturn (*compact.Tag)(t).IsCompact()\n}\n\n// TODO: improve performance.\nfunc (t *Tag) lang() language.Language { return t.tag().LangID }\nfunc (t *Tag) region() language.Region { return t.tag().RegionID }\nfunc (t *Tag) script() language.Script { return t.tag().ScriptID }\n\n// Make is a convenience wrapper for Parse that omits the error.\n// In case of an error, a sensible default is returned.\nfunc Make(s string) Tag {\n\treturn Default.Make(s)\n}\n\n// Make is a convenience wrapper for c.Parse that omits the error.\n// In case of an error, a sensible default is returned.\nfunc (c CanonType) Make(s string) Tag {\n\tt, _ := c.Parse(s)\n\treturn t\n}\n\n// Raw returns the raw base language, script and region, without making an\n// attempt to infer their values.\nfunc (t Tag) Raw() (b Base, s Script, r Region) {\n\ttt := t.tag()\n\treturn Base{tt.LangID}, Script{tt.ScriptID}, Region{tt.RegionID}\n}\n\n// IsRoot returns true if t is equal to language \"und\".\nfunc (t Tag) IsRoot() bool {\n\treturn compact.Tag(t).IsRoot()\n}\n\n// CanonType can be used to enable or disable various types of canonicalization.\ntype CanonType int\n\nconst (\n\t// Replace deprecated base languages with their preferred replacements.\n\tDeprecatedBase CanonType = 1 << iota\n\t// Replace deprecated scripts with their preferred replacements.\n\tDeprecatedScript\n\t// Replace deprecated regions with their preferred replacements.\n\tDeprecatedRegion\n\t// Remove redundant scripts.\n\tSuppressScript\n\t// Normalize legacy encodings. This includes legacy languages defined in\n\t// CLDR as well as bibliographic codes defined in ISO-639.\n\tLegacy\n\t// Map the dominant language of a macro language group to the macro language\n\t// subtag. For example cmn -> zh.\n\tMacro\n\t// The CLDR flag should be used if full compatibility with CLDR is required.\n\t// There are a few cases where language.Tag may differ from CLDR. To follow all\n\t// of CLDR's suggestions, use All|CLDR.\n\tCLDR\n\n\t// Raw can be used to Compose or Parse without Canonicalization.\n\tRaw CanonType = 0\n\n\t// Replace all deprecated tags with their preferred replacements.\n\tDeprecated = DeprecatedBase | DeprecatedScript | DeprecatedRegion\n\n\t// All canonicalizations recommended by BCP 47.\n\tBCP47 = Deprecated | SuppressScript\n\n\t// All canonicalizations.\n\tAll = BCP47 | Legacy | Macro\n\n\t// Default is the canonicalization used by Parse, Make and Compose. To\n\t// preserve as much information as possible, canonicalizations that remove\n\t// potentially valuable information are not included. The Matcher is\n\t// designed to recognize similar tags that would be the same if\n\t// they were canonicalized using All.\n\tDefault = Deprecated | Legacy\n\n\tcanonLang = DeprecatedBase | Legacy | Macro\n\n\t// TODO: LikelyScript, LikelyRegion: suppress similar to ICU.\n)\n\n// canonicalize returns the canonicalized equivalent of the tag and\n// whether there was any change.\nfunc canonicalize(c CanonType, t language.Tag) (language.Tag, bool) {\n\tif c == Raw {\n\t\treturn t, false\n\t}\n\tchanged := false\n\tif c&SuppressScript != 0 {\n\t\tif t.LangID.SuppressScript() == t.ScriptID {\n\t\t\tt.ScriptID = 0\n\t\t\tchanged = true\n\t\t}\n\t}\n\tif c&canonLang != 0 {\n\t\tfor {\n\t\t\tif l, aliasType := t.LangID.Canonicalize(); l != t.LangID {\n\t\t\t\tswitch aliasType {\n\t\t\t\tcase language.Legacy:\n\t\t\t\t\tif c&Legacy != 0 {\n\t\t\t\t\t\tif t.LangID == _sh && t.ScriptID == 0 {\n\t\t\t\t\t\t\tt.ScriptID = _Latn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tt.LangID = l\n\t\t\t\t\t\tchanged = true\n\t\t\t\t\t}\n\t\t\t\tcase language.Macro:\n\t\t\t\t\tif c&Macro != 0 {\n\t\t\t\t\t\t// We deviate here from CLDR. The mapping \"nb\" -> \"no\"\n\t\t\t\t\t\t// qualifies as a typical Macro language mapping.  However,\n\t\t\t\t\t\t// for legacy reasons, CLDR maps \"no\", the macro language\n\t\t\t\t\t\t// code for Norwegian, to the dominant variant \"nb\". This\n\t\t\t\t\t\t// change is currently under consideration for CLDR as well.\n\t\t\t\t\t\t// See https://unicode.org/cldr/trac/ticket/2698 and also\n\t\t\t\t\t\t// https://unicode.org/cldr/trac/ticket/1790 for some of the\n\t\t\t\t\t\t// practical implications. TODO: this check could be removed\n\t\t\t\t\t\t// if CLDR adopts this change.\n\t\t\t\t\t\tif c&CLDR == 0 || t.LangID != _nb {\n\t\t\t\t\t\t\tchanged = true\n\t\t\t\t\t\t\tt.LangID = l\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tcase language.Deprecated:\n\t\t\t\t\tif c&DeprecatedBase != 0 {\n\t\t\t\t\t\tif t.LangID == _mo && t.RegionID == 0 {\n\t\t\t\t\t\t\tt.RegionID = _MD\n\t\t\t\t\t\t}\n\t\t\t\t\t\tt.LangID = l\n\t\t\t\t\t\tchanged = true\n\t\t\t\t\t\t// Other canonicalization types may still apply.\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if c&Legacy != 0 && t.LangID == _no && c&CLDR != 0 {\n\t\t\t\tt.LangID = _nb\n\t\t\t\tchanged = true\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\tif c&DeprecatedScript != 0 {\n\t\tif t.ScriptID == _Qaai {\n\t\t\tchanged = true\n\t\t\tt.ScriptID = _Zinh\n\t\t}\n\t}\n\tif c&DeprecatedRegion != 0 {\n\t\tif r := t.RegionID.Canonicalize(); r != t.RegionID {\n\t\t\tchanged = true\n\t\t\tt.RegionID = r\n\t\t}\n\t}\n\treturn t, changed\n}\n\n// Canonicalize returns the canonicalized equivalent of the tag.\nfunc (c CanonType) Canonicalize(t Tag) (Tag, error) {\n\t// First try fast path.\n\tif t.isCompact() {\n\t\tif _, changed := canonicalize(c, compact.Tag(t).Tag()); !changed {\n\t\t\treturn t, nil\n\t\t}\n\t}\n\t// It is unlikely that one will canonicalize a tag after matching. So do\n\t// a slow but simple approach here.\n\tif tag, changed := canonicalize(c, t.tag()); changed {\n\t\ttag.RemakeString()\n\t\treturn makeTag(tag), nil\n\t}\n\treturn t, nil\n\n}\n\n// Confidence indicates the level of certainty for a given return value.\n// For example, Serbian may be written in Cyrillic or Latin script.\n// The confidence level indicates whether a value was explicitly specified,\n// whether it is typically the only possible value, or whether there is\n// an ambiguity.\ntype Confidence int\n\nconst (\n\tNo    Confidence = iota // full confidence that there was no match\n\tLow                     // most likely value picked out of a set of alternatives\n\tHigh                    // value is generally assumed to be the correct match\n\tExact                   // exact match or explicitly specified value\n)\n\nvar confName = []string{\"No\", \"Low\", \"High\", \"Exact\"}\n\nfunc (c Confidence) String() string {\n\treturn confName[c]\n}\n\n// String returns the canonical string representation of the language tag.\nfunc (t Tag) String() string {\n\treturn t.tag().String()\n}\n\n// MarshalText implements encoding.TextMarshaler.\nfunc (t Tag) MarshalText() (text []byte, err error) {\n\treturn t.tag().MarshalText()\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler.\nfunc (t *Tag) UnmarshalText(text []byte) error {\n\tvar tag language.Tag\n\terr := tag.UnmarshalText(text)\n\t*t = makeTag(tag)\n\treturn err\n}\n\n// Base returns the base language of the language tag. If the base language is\n// unspecified, an attempt will be made to infer it from the context.\n// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change.\nfunc (t Tag) Base() (Base, Confidence) {\n\tif b := t.lang(); b != 0 {\n\t\treturn Base{b}, Exact\n\t}\n\ttt := t.tag()\n\tc := High\n\tif tt.ScriptID == 0 && !tt.RegionID.IsCountry() {\n\t\tc = Low\n\t}\n\tif tag, err := tt.Maximize(); err == nil && tag.LangID != 0 {\n\t\treturn Base{tag.LangID}, c\n\t}\n\treturn Base{0}, No\n}\n\n// Script infers the script for the language tag. If it was not explicitly given, it will infer\n// a most likely candidate.\n// If more than one script is commonly used for a language, the most likely one\n// is returned with a low confidence indication. For example, it returns (Cyrl, Low)\n// for Serbian.\n// If a script cannot be inferred (Zzzz, No) is returned. We do not use Zyyy (undetermined)\n// as one would suspect from the IANA registry for BCP 47. In a Unicode context Zyyy marks\n// common characters (like 1, 2, 3, '.', etc.) and is therefore more like multiple scripts.\n// See https://www.unicode.org/reports/tr24/#Values for more details. Zzzz is also used for\n// unknown value in CLDR.  (Zzzz, Exact) is returned if Zzzz was explicitly specified.\n// Note that an inferred script is never guaranteed to be the correct one. Latin is\n// almost exclusively used for Afrikaans, but Arabic has been used for some texts\n// in the past.  Also, the script that is commonly used may change over time.\n// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change.\nfunc (t Tag) Script() (Script, Confidence) {\n\tif scr := t.script(); scr != 0 {\n\t\treturn Script{scr}, Exact\n\t}\n\ttt := t.tag()\n\tsc, c := language.Script(_Zzzz), No\n\tif scr := tt.LangID.SuppressScript(); scr != 0 {\n\t\t// Note: it is not always the case that a language with a suppress\n\t\t// script value is only written in one script (e.g. kk, ms, pa).\n\t\tif tt.RegionID == 0 {\n\t\t\treturn Script{scr}, High\n\t\t}\n\t\tsc, c = scr, High\n\t}\n\tif tag, err := tt.Maximize(); err == nil {\n\t\tif tag.ScriptID != sc {\n\t\t\tsc, c = tag.ScriptID, Low\n\t\t}\n\t} else {\n\t\ttt, _ = canonicalize(Deprecated|Macro, tt)\n\t\tif tag, err := tt.Maximize(); err == nil && tag.ScriptID != sc {\n\t\t\tsc, c = tag.ScriptID, Low\n\t\t}\n\t}\n\treturn Script{sc}, c\n}\n\n// Region returns the region for the language tag. If it was not explicitly given, it will\n// infer a most likely candidate from the context.\n// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change.\nfunc (t Tag) Region() (Region, Confidence) {\n\tif r := t.region(); r != 0 {\n\t\treturn Region{r}, Exact\n\t}\n\ttt := t.tag()\n\tif tt, err := tt.Maximize(); err == nil {\n\t\treturn Region{tt.RegionID}, Low // TODO: differentiate between high and low.\n\t}\n\ttt, _ = canonicalize(Deprecated|Macro, tt)\n\tif tag, err := tt.Maximize(); err == nil {\n\t\treturn Region{tag.RegionID}, Low\n\t}\n\treturn Region{_ZZ}, No // TODO: return world instead of undetermined?\n}\n\n// Variants returns the variants specified explicitly for this language tag.\n// or nil if no variant was specified.\nfunc (t Tag) Variants() []Variant {\n\tif !compact.Tag(t).MayHaveVariants() {\n\t\treturn nil\n\t}\n\tv := []Variant{}\n\tx, str := \"\", t.tag().Variants()\n\tfor str != \"\" {\n\t\tx, str = nextToken(str)\n\t\tv = append(v, Variant{x})\n\t}\n\treturn v\n}\n\n// Parent returns the CLDR parent of t. In CLDR, missing fields in data for a\n// specific language are substituted with fields from the parent language.\n// The parent for a language may change for newer versions of CLDR.\n//\n// Parent returns a tag for a less specific language that is mutually\n// intelligible or Und if there is no such language. This may not be the same as\n// simply stripping the last BCP 47 subtag. For instance, the parent of \"zh-TW\"\n// is \"zh-Hant\", and the parent of \"zh-Hant\" is \"und\".\nfunc (t Tag) Parent() Tag {\n\treturn Tag(compact.Tag(t).Parent())\n}\n\n// nextToken returns token t and the rest of the string.\nfunc nextToken(s string) (t, tail string) {\n\tp := strings.Index(s[1:], \"-\")\n\tif p == -1 {\n\t\treturn s[1:], \"\"\n\t}\n\tp++\n\treturn s[1:p], s[p:]\n}\n\n// Extension is a single BCP 47 extension.\ntype Extension struct {\n\ts string\n}\n\n// String returns the string representation of the extension, including the\n// type tag.\nfunc (e Extension) String() string {\n\treturn e.s\n}\n\n// ParseExtension parses s as an extension and returns it on success.\nfunc ParseExtension(s string) (e Extension, err error) {\n\text, err := language.ParseExtension(s)\n\treturn Extension{ext}, err\n}\n\n// Type returns the one-byte extension type of e. It returns 0 for the zero\n// exception.\nfunc (e Extension) Type() byte {\n\tif e.s == \"\" {\n\t\treturn 0\n\t}\n\treturn e.s[0]\n}\n\n// Tokens returns the list of tokens of e.\nfunc (e Extension) Tokens() []string {\n\treturn strings.Split(e.s, \"-\")\n}\n\n// Extension returns the extension of type x for tag t. It will return\n// false for ok if t does not have the requested extension. The returned\n// extension will be invalid in this case.\nfunc (t Tag) Extension(x byte) (ext Extension, ok bool) {\n\tif !compact.Tag(t).MayHaveExtensions() {\n\t\treturn Extension{}, false\n\t}\n\te, ok := t.tag().Extension(x)\n\treturn Extension{e}, ok\n}\n\n// Extensions returns all extensions of t.\nfunc (t Tag) Extensions() []Extension {\n\tif !compact.Tag(t).MayHaveExtensions() {\n\t\treturn nil\n\t}\n\te := []Extension{}\n\tfor _, ext := range t.tag().Extensions() {\n\t\te = append(e, Extension{ext})\n\t}\n\treturn e\n}\n\n// TypeForKey returns the type associated with the given key, where key and type\n// are of the allowed values defined for the Unicode locale extension ('u') in\n// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.\n// TypeForKey will traverse the inheritance chain to get the correct value.\n//\n// If there are multiple types associated with a key, only the first will be\n// returned. If there is no type associated with a key, it returns the empty\n// string.\nfunc (t Tag) TypeForKey(key string) string {\n\tif !compact.Tag(t).MayHaveExtensions() {\n\t\tif key != \"rg\" && key != \"va\" {\n\t\t\treturn \"\"\n\t\t}\n\t}\n\treturn t.tag().TypeForKey(key)\n}\n\n// SetTypeForKey returns a new Tag with the key set to type, where key and type\n// are of the allowed values defined for the Unicode locale extension ('u') in\n// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.\n// An empty value removes an existing pair with the same key.\nfunc (t Tag) SetTypeForKey(key, value string) (Tag, error) {\n\ttt, err := t.tag().SetTypeForKey(key, value)\n\treturn makeTag(tt), err\n}\n\n// NumCompactTags is the number of compact tags. The maximum tag is\n// NumCompactTags-1.\nconst NumCompactTags = compact.NumCompactTags\n\n// CompactIndex returns an index, where 0 <= index < NumCompactTags, for tags\n// for which data exists in the text repository.The index will change over time\n// and should not be stored in persistent storage. If t does not match a compact\n// index, exact will be false and the compact index will be returned for the\n// first match after repeatedly taking the Parent of t.\nfunc CompactIndex(t Tag) (index int, exact bool) {\n\tid, exact := compact.LanguageID(compact.Tag(t))\n\treturn int(id), exact\n}\n\nvar root = language.Tag{}\n\n// Base is an ISO 639 language code, used for encoding the base language\n// of a language tag.\ntype Base struct {\n\tlangID language.Language\n}\n\n// ParseBase parses a 2- or 3-letter ISO 639 code.\n// It returns a ValueError if s is a well-formed but unknown language identifier\n// or another error if another error occurred.\nfunc ParseBase(s string) (Base, error) {\n\tl, err := language.ParseBase(s)\n\treturn Base{l}, err\n}\n\n// String returns the BCP 47 representation of the base language.\nfunc (b Base) String() string {\n\treturn b.langID.String()\n}\n\n// ISO3 returns the ISO 639-3 language code.\nfunc (b Base) ISO3() string {\n\treturn b.langID.ISO3()\n}\n\n// IsPrivateUse reports whether this language code is reserved for private use.\nfunc (b Base) IsPrivateUse() bool {\n\treturn b.langID.IsPrivateUse()\n}\n\n// Script is a 4-letter ISO 15924 code for representing scripts.\n// It is idiomatically represented in title case.\ntype Script struct {\n\tscriptID language.Script\n}\n\n// ParseScript parses a 4-letter ISO 15924 code.\n// It returns a ValueError if s is a well-formed but unknown script identifier\n// or another error if another error occurred.\nfunc ParseScript(s string) (Script, error) {\n\tsc, err := language.ParseScript(s)\n\treturn Script{sc}, err\n}\n\n// String returns the script code in title case.\n// It returns \"Zzzz\" for an unspecified script.\nfunc (s Script) String() string {\n\treturn s.scriptID.String()\n}\n\n// IsPrivateUse reports whether this script code is reserved for private use.\nfunc (s Script) IsPrivateUse() bool {\n\treturn s.scriptID.IsPrivateUse()\n}\n\n// Region is an ISO 3166-1 or UN M.49 code for representing countries and regions.\ntype Region struct {\n\tregionID language.Region\n}\n\n// EncodeM49 returns the Region for the given UN M.49 code.\n// It returns an error if r is not a valid code.\nfunc EncodeM49(r int) (Region, error) {\n\trid, err := language.EncodeM49(r)\n\treturn Region{rid}, err\n}\n\n// ParseRegion parses a 2- or 3-letter ISO 3166-1 or a UN M.49 code.\n// It returns a ValueError if s is a well-formed but unknown region identifier\n// or another error if another error occurred.\nfunc ParseRegion(s string) (Region, error) {\n\tr, err := language.ParseRegion(s)\n\treturn Region{r}, err\n}\n\n// String returns the BCP 47 representation for the region.\n// It returns \"ZZ\" for an unspecified region.\nfunc (r Region) String() string {\n\treturn r.regionID.String()\n}\n\n// ISO3 returns the 3-letter ISO code of r.\n// Note that not all regions have a 3-letter ISO code.\n// In such cases this method returns \"ZZZ\".\nfunc (r Region) ISO3() string {\n\treturn r.regionID.ISO3()\n}\n\n// M49 returns the UN M.49 encoding of r, or 0 if this encoding\n// is not defined for r.\nfunc (r Region) M49() int {\n\treturn r.regionID.M49()\n}\n\n// IsPrivateUse reports whether r has the ISO 3166 User-assigned status. This\n// may include private-use tags that are assigned by CLDR and used in this\n// implementation. So IsPrivateUse and IsCountry can be simultaneously true.\nfunc (r Region) IsPrivateUse() bool {\n\treturn r.regionID.IsPrivateUse()\n}\n\n// IsCountry returns whether this region is a country or autonomous area. This\n// includes non-standard definitions from CLDR.\nfunc (r Region) IsCountry() bool {\n\treturn r.regionID.IsCountry()\n}\n\n// IsGroup returns whether this region defines a collection of regions. This\n// includes non-standard definitions from CLDR.\nfunc (r Region) IsGroup() bool {\n\treturn r.regionID.IsGroup()\n}\n\n// Contains returns whether Region c is contained by Region r. It returns true\n// if c == r.\nfunc (r Region) Contains(c Region) bool {\n\treturn r.regionID.Contains(c.regionID)\n}\n\n// TLD returns the country code top-level domain (ccTLD). UK is returned for GB.\n// In all other cases it returns either the region itself or an error.\n//\n// This method may return an error for a region for which there exists a\n// canonical form with a ccTLD. To get that ccTLD canonicalize r first. The\n// region will already be canonicalized it was obtained from a Tag that was\n// obtained using any of the default methods.\nfunc (r Region) TLD() (Region, error) {\n\ttld, err := r.regionID.TLD()\n\treturn Region{tld}, err\n}\n\n// Canonicalize returns the region or a possible replacement if the region is\n// deprecated. It will not return a replacement for deprecated regions that\n// are split into multiple regions.\nfunc (r Region) Canonicalize() Region {\n\treturn Region{r.regionID.Canonicalize()}\n}\n\n// Variant represents a registered variant of a language as defined by BCP 47.\ntype Variant struct {\n\tvariant string\n}\n\n// ParseVariant parses and returns a Variant. An error is returned if s is not\n// a valid variant.\nfunc ParseVariant(s string) (Variant, error) {\n\tv, err := language.ParseVariant(s)\n\treturn Variant{v.String()}, err\n}\n\n// String returns the string representation of the variant.\nfunc (v Variant) String() string {\n\treturn v.variant\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/language/match.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 language\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\n\t\"golang.org/x/text/internal/language\"\n)\n\n// A MatchOption configures a Matcher.\ntype MatchOption func(*matcher)\n\n// PreferSameScript will, in the absence of a match, result in the first\n// preferred tag with the same script as a supported tag to match this supported\n// tag. The default is currently true, but this may change in the future.\nfunc PreferSameScript(preferSame bool) MatchOption {\n\treturn func(m *matcher) { m.preferSameScript = preferSame }\n}\n\n// TODO(v1.0.0): consider making Matcher a concrete type, instead of interface.\n// There doesn't seem to be too much need for multiple types.\n// Making it a concrete type allows MatchStrings to be a method, which will\n// improve its discoverability.\n\n// MatchStrings parses and matches the given strings until one of them matches\n// the language in the Matcher. A string may be an Accept-Language header as\n// handled by ParseAcceptLanguage. The default language is returned if no\n// other language matched.\nfunc MatchStrings(m Matcher, lang ...string) (tag Tag, index int) {\n\tfor _, accept := range lang {\n\t\tdesired, _, err := ParseAcceptLanguage(accept)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tif tag, index, conf := m.Match(desired...); conf != No {\n\t\t\treturn tag, index\n\t\t}\n\t}\n\ttag, index, _ = m.Match()\n\treturn\n}\n\n// Matcher is the interface that wraps the Match method.\n//\n// Match returns the best match for any of the given tags, along with\n// a unique index associated with the returned tag and a confidence\n// score.\ntype Matcher interface {\n\tMatch(t ...Tag) (tag Tag, index int, c Confidence)\n}\n\n// Comprehends reports the confidence score for a speaker of a given language\n// to being able to comprehend the written form of an alternative language.\nfunc Comprehends(speaker, alternative Tag) Confidence {\n\t_, _, c := NewMatcher([]Tag{alternative}).Match(speaker)\n\treturn c\n}\n\n// NewMatcher returns a Matcher that matches an ordered list of preferred tags\n// against a list of supported tags based on written intelligibility, closeness\n// of dialect, equivalence of subtags and various other rules. It is initialized\n// with the list of supported tags. The first element is used as the default\n// value in case no match is found.\n//\n// Its Match method matches the first of the given Tags to reach a certain\n// confidence threshold. The tags passed to Match should therefore be specified\n// in order of preference. Extensions are ignored for matching.\n//\n// The index returned by the Match method corresponds to the index of the\n// matched tag in t, but is augmented with the Unicode extension ('u')of the\n// corresponding preferred tag. This allows user locale options to be passed\n// transparently.\nfunc NewMatcher(t []Tag, options ...MatchOption) Matcher {\n\treturn newMatcher(t, options)\n}\n\nfunc (m *matcher) Match(want ...Tag) (t Tag, index int, c Confidence) {\n\tvar tt language.Tag\n\tmatch, w, c := m.getBest(want...)\n\tif match != nil {\n\t\ttt, index = match.tag, match.index\n\t} else {\n\t\t// TODO: this should be an option\n\t\ttt = m.default_.tag\n\t\tif m.preferSameScript {\n\t\touter:\n\t\t\tfor _, w := range want {\n\t\t\t\tscript, _ := w.Script()\n\t\t\t\tif script.scriptID == 0 {\n\t\t\t\t\t// Don't do anything if there is no script, such as with\n\t\t\t\t\t// private subtags.\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tfor i, h := range m.supported {\n\t\t\t\t\tif script.scriptID == h.maxScript {\n\t\t\t\t\t\ttt, index = h.tag, i\n\t\t\t\t\t\tbreak outer\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// TODO: select first language tag based on script.\n\t}\n\tif w.RegionID != tt.RegionID && w.RegionID != 0 {\n\t\tif w.RegionID != 0 && tt.RegionID != 0 && tt.RegionID.Contains(w.RegionID) {\n\t\t\ttt.RegionID = w.RegionID\n\t\t\ttt.RemakeString()\n\t\t} else if r := w.RegionID.String(); len(r) == 2 {\n\t\t\t// TODO: also filter macro and deprecated.\n\t\t\ttt, _ = tt.SetTypeForKey(\"rg\", strings.ToLower(r)+\"zzzz\")\n\t\t}\n\t}\n\t// Copy options from the user-provided tag into the result tag. This is hard\n\t// to do after the fact, so we do it here.\n\t// TODO: add in alternative variants to -u-va-.\n\t// TODO: add preferred region to -u-rg-.\n\tif e := w.Extensions(); len(e) > 0 {\n\t\tb := language.Builder{}\n\t\tb.SetTag(tt)\n\t\tfor _, e := range e {\n\t\t\tb.AddExt(e)\n\t\t}\n\t\ttt = b.Make()\n\t}\n\treturn makeTag(tt), index, c\n}\n\n// ErrMissingLikelyTagsData indicates no information was available\n// to compute likely values of missing tags.\nvar ErrMissingLikelyTagsData = errors.New(\"missing likely tags data\")\n\n// func (t *Tag) setTagsFrom(id Tag) {\n// \tt.LangID = id.LangID\n// \tt.ScriptID = id.ScriptID\n// \tt.RegionID = id.RegionID\n// }\n\n// Tag Matching\n// CLDR defines an algorithm for finding the best match between two sets of language\n// tags. The basic algorithm defines how to score a possible match and then find\n// the match with the best score\n// (see https://www.unicode.org/reports/tr35/#LanguageMatching).\n// Using scoring has several disadvantages. The scoring obfuscates the importance of\n// the various factors considered, making the algorithm harder to understand. Using\n// scoring also requires the full score to be computed for each pair of tags.\n//\n// We will use a different algorithm which aims to have the following properties:\n// - clarity on the precedence of the various selection factors, and\n// - improved performance by allowing early termination of a comparison.\n//\n// Matching algorithm (overview)\n// Input:\n//   - supported: a set of supported tags\n//   - default:   the default tag to return in case there is no match\n//   - desired:   list of desired tags, ordered by preference, starting with\n//                the most-preferred.\n//\n// Algorithm:\n//   1) Set the best match to the lowest confidence level\n//   2) For each tag in \"desired\":\n//     a) For each tag in \"supported\":\n//        1) compute the match between the two tags.\n//        2) if the match is better than the previous best match, replace it\n//           with the new match. (see next section)\n//     b) if the current best match is Exact and pin is true the result will be\n//        frozen to the language found thusfar, although better matches may\n//        still be found for the same language.\n//   3) If the best match so far is below a certain threshold, return \"default\".\n//\n// Ranking:\n// We use two phases to determine whether one pair of tags are a better match\n// than another pair of tags. First, we determine a rough confidence level. If the\n// levels are different, the one with the highest confidence wins.\n// Second, if the rough confidence levels are identical, we use a set of tie-breaker\n// rules.\n//\n// The confidence level of matching a pair of tags is determined by finding the\n// lowest confidence level of any matches of the corresponding subtags (the\n// result is deemed as good as its weakest link).\n// We define the following levels:\n//   Exact    - An exact match of a subtag, before adding likely subtags.\n//   MaxExact - An exact match of a subtag, after adding likely subtags.\n//              [See Note 2].\n//   High     - High level of mutual intelligibility between different subtag\n//              variants.\n//   Low      - Low level of mutual intelligibility between different subtag\n//              variants.\n//   No       - No mutual intelligibility.\n//\n// The following levels can occur for each type of subtag:\n//   Base:    Exact, MaxExact, High, Low, No\n//   Script:  Exact, MaxExact [see Note 3], Low, No\n//   Region:  Exact, MaxExact, High\n//   Variant: Exact, High\n//   Private: Exact, No\n//\n// Any result with a confidence level of Low or higher is deemed a possible match.\n// Once a desired tag matches any of the supported tags with a level of MaxExact\n// or higher, the next desired tag is not considered (see Step 2.b).\n// Note that CLDR provides languageMatching data that defines close equivalence\n// classes for base languages, scripts and regions.\n//\n// Tie-breaking\n// If we get the same confidence level for two matches, we apply a sequence of\n// tie-breaking rules. The first that succeeds defines the result. The rules are\n// applied in the following order.\n//   1) Original language was defined and was identical.\n//   2) Original region was defined and was identical.\n//   3) Distance between two maximized regions was the smallest.\n//   4) Original script was defined and was identical.\n//   5) Distance from want tag to have tag using the parent relation [see Note 5.]\n// If there is still no winner after these rules are applied, the first match\n// found wins.\n//\n// Notes:\n// [2] In practice, as matching of Exact is done in a separate phase from\n//     matching the other levels, we reuse the Exact level to mean MaxExact in\n//     the second phase. As a consequence, we only need the levels defined by\n//     the Confidence type. The MaxExact confidence level is mapped to High in\n//     the public API.\n// [3] We do not differentiate between maximized script values that were derived\n//     from suppressScript versus most likely tag data. We determined that in\n//     ranking the two, one ranks just after the other. Moreover, the two cannot\n//     occur concurrently. As a consequence, they are identical for practical\n//     purposes.\n// [4] In case of deprecated, macro-equivalents and legacy mappings, we assign\n//     the MaxExact level to allow iw vs he to still be a closer match than\n//     en-AU vs en-US, for example.\n// [5] In CLDR a locale inherits fields that are unspecified for this locale\n//     from its parent. Therefore, if a locale is a parent of another locale,\n//     it is a strong measure for closeness, especially when no other tie\n//     breaker rule applies. One could also argue it is inconsistent, for\n//     example, when pt-AO matches pt (which CLDR equates with pt-BR), even\n//     though its parent is pt-PT according to the inheritance rules.\n//\n// Implementation Details:\n// There are several performance considerations worth pointing out. Most notably,\n// we preprocess as much as possible (within reason) at the time of creation of a\n// matcher. This includes:\n//   - creating a per-language map, which includes data for the raw base language\n//     and its canonicalized variant (if applicable),\n//   - expanding entries for the equivalence classes defined in CLDR's\n//     languageMatch data.\n// The per-language map ensures that typically only a very small number of tags\n// need to be considered. The pre-expansion of canonicalized subtags and\n// equivalence classes reduces the amount of map lookups that need to be done at\n// runtime.\n\n// matcher keeps a set of supported language tags, indexed by language.\ntype matcher struct {\n\tdefault_         *haveTag\n\tsupported        []*haveTag\n\tindex            map[language.Language]*matchHeader\n\tpassSettings     bool\n\tpreferSameScript bool\n}\n\n// matchHeader has the lists of tags for exact matches and matches based on\n// maximized and canonicalized tags for a given language.\ntype matchHeader struct {\n\thaveTags []*haveTag\n\toriginal bool\n}\n\n// haveTag holds a supported Tag and its maximized script and region. The maximized\n// or canonicalized language is not stored as it is not needed during matching.\ntype haveTag struct {\n\ttag language.Tag\n\n\t// index of this tag in the original list of supported tags.\n\tindex int\n\n\t// conf is the maximum confidence that can result from matching this haveTag.\n\t// When conf < Exact this means it was inserted after applying a CLDR equivalence rule.\n\tconf Confidence\n\n\t// Maximized region and script.\n\tmaxRegion language.Region\n\tmaxScript language.Script\n\n\t// altScript may be checked as an alternative match to maxScript. If altScript\n\t// matches, the confidence level for this match is Low. Theoretically there\n\t// could be multiple alternative scripts. This does not occur in practice.\n\taltScript language.Script\n\n\t// nextMax is the index of the next haveTag with the same maximized tags.\n\tnextMax uint16\n}\n\nfunc makeHaveTag(tag language.Tag, index int) (haveTag, language.Language) {\n\tmax := tag\n\tif tag.LangID != 0 || tag.RegionID != 0 || tag.ScriptID != 0 {\n\t\tmax, _ = canonicalize(All, max)\n\t\tmax, _ = max.Maximize()\n\t\tmax.RemakeString()\n\t}\n\treturn haveTag{tag, index, Exact, max.RegionID, max.ScriptID, altScript(max.LangID, max.ScriptID), 0}, max.LangID\n}\n\n// altScript returns an alternative script that may match the given script with\n// a low confidence.  At the moment, the langMatch data allows for at most one\n// script to map to another and we rely on this to keep the code simple.\nfunc altScript(l language.Language, s language.Script) language.Script {\n\tfor _, alt := range matchScript {\n\t\t// TODO: also match cases where language is not the same.\n\t\tif (language.Language(alt.wantLang) == l || language.Language(alt.haveLang) == l) &&\n\t\t\tlanguage.Script(alt.haveScript) == s {\n\t\t\treturn language.Script(alt.wantScript)\n\t\t}\n\t}\n\treturn 0\n}\n\n// addIfNew adds a haveTag to the list of tags only if it is a unique tag.\n// Tags that have the same maximized values are linked by index.\nfunc (h *matchHeader) addIfNew(n haveTag, exact bool) {\n\th.original = h.original || exact\n\t// Don't add new exact matches.\n\tfor _, v := range h.haveTags {\n\t\tif equalsRest(v.tag, n.tag) {\n\t\t\treturn\n\t\t}\n\t}\n\t// Allow duplicate maximized tags, but create a linked list to allow quickly\n\t// comparing the equivalents and bail out.\n\tfor i, v := range h.haveTags {\n\t\tif v.maxScript == n.maxScript &&\n\t\t\tv.maxRegion == n.maxRegion &&\n\t\t\tv.tag.VariantOrPrivateUseTags() == n.tag.VariantOrPrivateUseTags() {\n\t\t\tfor h.haveTags[i].nextMax != 0 {\n\t\t\t\ti = int(h.haveTags[i].nextMax)\n\t\t\t}\n\t\t\th.haveTags[i].nextMax = uint16(len(h.haveTags))\n\t\t\tbreak\n\t\t}\n\t}\n\th.haveTags = append(h.haveTags, &n)\n}\n\n// header returns the matchHeader for the given language. It creates one if\n// it doesn't already exist.\nfunc (m *matcher) header(l language.Language) *matchHeader {\n\tif h := m.index[l]; h != nil {\n\t\treturn h\n\t}\n\th := &matchHeader{}\n\tm.index[l] = h\n\treturn h\n}\n\nfunc toConf(d uint8) Confidence {\n\tif d <= 10 {\n\t\treturn High\n\t}\n\tif d < 30 {\n\t\treturn Low\n\t}\n\treturn No\n}\n\n// newMatcher builds an index for the given supported tags and returns it as\n// a matcher. It also expands the index by considering various equivalence classes\n// for a given tag.\nfunc newMatcher(supported []Tag, options []MatchOption) *matcher {\n\tm := &matcher{\n\t\tindex:            make(map[language.Language]*matchHeader),\n\t\tpreferSameScript: true,\n\t}\n\tfor _, o := range options {\n\t\to(m)\n\t}\n\tif len(supported) == 0 {\n\t\tm.default_ = &haveTag{}\n\t\treturn m\n\t}\n\t// Add supported languages to the index. Add exact matches first to give\n\t// them precedence.\n\tfor i, tag := range supported {\n\t\ttt := tag.tag()\n\t\tpair, _ := makeHaveTag(tt, i)\n\t\tm.header(tt.LangID).addIfNew(pair, true)\n\t\tm.supported = append(m.supported, &pair)\n\t}\n\tm.default_ = m.header(supported[0].lang()).haveTags[0]\n\t// Keep these in two different loops to support the case that two equivalent\n\t// languages are distinguished, such as iw and he.\n\tfor i, tag := range supported {\n\t\ttt := tag.tag()\n\t\tpair, max := makeHaveTag(tt, i)\n\t\tif max != tt.LangID {\n\t\t\tm.header(max).addIfNew(pair, true)\n\t\t}\n\t}\n\n\t// update is used to add indexes in the map for equivalent languages.\n\t// update will only add entries to original indexes, thus not computing any\n\t// transitive relations.\n\tupdate := func(want, have uint16, conf Confidence) {\n\t\tif hh := m.index[language.Language(have)]; hh != nil {\n\t\t\tif !hh.original {\n\t\t\t\treturn\n\t\t\t}\n\t\t\thw := m.header(language.Language(want))\n\t\t\tfor _, ht := range hh.haveTags {\n\t\t\t\tv := *ht\n\t\t\t\tif conf < v.conf {\n\t\t\t\t\tv.conf = conf\n\t\t\t\t}\n\t\t\t\tv.nextMax = 0 // this value needs to be recomputed\n\t\t\t\tif v.altScript != 0 {\n\t\t\t\t\tv.altScript = altScript(language.Language(want), v.maxScript)\n\t\t\t\t}\n\t\t\t\thw.addIfNew(v, conf == Exact && hh.original)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Add entries for languages with mutual intelligibility as defined by CLDR's\n\t// languageMatch data.\n\tfor _, ml := range matchLang {\n\t\tupdate(ml.want, ml.have, toConf(ml.distance))\n\t\tif !ml.oneway {\n\t\t\tupdate(ml.have, ml.want, toConf(ml.distance))\n\t\t}\n\t}\n\n\t// Add entries for possible canonicalizations. This is an optimization to\n\t// ensure that only one map lookup needs to be done at runtime per desired tag.\n\t// First we match deprecated equivalents. If they are perfect equivalents\n\t// (their canonicalization simply substitutes a different language code, but\n\t// nothing else), the match confidence is Exact, otherwise it is High.\n\tfor i, lm := range language.AliasMap {\n\t\t// If deprecated codes match and there is no fiddling with the script\n\t\t// or region, we consider it an exact match.\n\t\tconf := Exact\n\t\tif language.AliasTypes[i] != language.Macro {\n\t\t\tif !isExactEquivalent(language.Language(lm.From)) {\n\t\t\t\tconf = High\n\t\t\t}\n\t\t\tupdate(lm.To, lm.From, conf)\n\t\t}\n\t\tupdate(lm.From, lm.To, conf)\n\t}\n\treturn m\n}\n\n// getBest gets the best matching tag in m for any of the given tags, taking into\n// account the order of preference of the given tags.\nfunc (m *matcher) getBest(want ...Tag) (got *haveTag, orig language.Tag, c Confidence) {\n\tbest := bestMatch{}\n\tfor i, ww := range want {\n\t\tw := ww.tag()\n\t\tvar max language.Tag\n\t\t// Check for exact match first.\n\t\th := m.index[w.LangID]\n\t\tif w.LangID != 0 {\n\t\t\tif h == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// Base language is defined.\n\t\t\tmax, _ = canonicalize(Legacy|Deprecated|Macro, w)\n\t\t\t// A region that is added through canonicalization is stronger than\n\t\t\t// a maximized region: set it in the original (e.g. mo -> ro-MD).\n\t\t\tif w.RegionID != max.RegionID {\n\t\t\t\tw.RegionID = max.RegionID\n\t\t\t}\n\t\t\t// TODO: should we do the same for scripts?\n\t\t\t// See test case: en, sr, nl ; sh ; sr\n\t\t\tmax, _ = max.Maximize()\n\t\t} else {\n\t\t\t// Base language is not defined.\n\t\t\tif h != nil {\n\t\t\t\tfor i := range h.haveTags {\n\t\t\t\t\thave := h.haveTags[i]\n\t\t\t\t\tif equalsRest(have.tag, w) {\n\t\t\t\t\t\treturn have, w, Exact\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif w.ScriptID == 0 && w.RegionID == 0 {\n\t\t\t\t// We skip all tags matching und for approximate matching, including\n\t\t\t\t// private tags.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmax, _ = w.Maximize()\n\t\t\tif h = m.index[max.LangID]; h == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tpin := true\n\t\tfor _, t := range want[i+1:] {\n\t\t\tif w.LangID == t.lang() {\n\t\t\t\tpin = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Check for match based on maximized tag.\n\t\tfor i := range h.haveTags {\n\t\t\thave := h.haveTags[i]\n\t\t\tbest.update(have, w, max.ScriptID, max.RegionID, pin)\n\t\t\tif best.conf == Exact {\n\t\t\t\tfor have.nextMax != 0 {\n\t\t\t\t\thave = h.haveTags[have.nextMax]\n\t\t\t\t\tbest.update(have, w, max.ScriptID, max.RegionID, pin)\n\t\t\t\t}\n\t\t\t\treturn best.have, best.want, best.conf\n\t\t\t}\n\t\t}\n\t}\n\tif best.conf <= No {\n\t\tif len(want) != 0 {\n\t\t\treturn nil, want[0].tag(), No\n\t\t}\n\t\treturn nil, language.Tag{}, No\n\t}\n\treturn best.have, best.want, best.conf\n}\n\n// bestMatch accumulates the best match so far.\ntype bestMatch struct {\n\thave            *haveTag\n\twant            language.Tag\n\tconf            Confidence\n\tpinnedRegion    language.Region\n\tpinLanguage     bool\n\tsameRegionGroup bool\n\t// Cached results from applying tie-breaking rules.\n\torigLang     bool\n\torigReg      bool\n\tparadigmReg  bool\n\tregGroupDist uint8\n\torigScript   bool\n}\n\n// update updates the existing best match if the new pair is considered to be a\n// better match. To determine if the given pair is a better match, it first\n// computes the rough confidence level. If this surpasses the current match, it\n// will replace it and update the tie-breaker rule cache. If there is a tie, it\n// proceeds with applying a series of tie-breaker rules. If there is no\n// conclusive winner after applying the tie-breaker rules, it leaves the current\n// match as the preferred match.\n//\n// If pin is true and have and tag are a strong match, it will henceforth only\n// consider matches for this language. This corresponds to the idea that most\n// users have a strong preference for the first defined language. A user can\n// still prefer a second language over a dialect of the preferred language by\n// explicitly specifying dialects, e.g. \"en, nl, en-GB\". In this case pin should\n// be false.\nfunc (m *bestMatch) update(have *haveTag, tag language.Tag, maxScript language.Script, maxRegion language.Region, pin bool) {\n\t// Bail if the maximum attainable confidence is below that of the current best match.\n\tc := have.conf\n\tif c < m.conf {\n\t\treturn\n\t}\n\t// Don't change the language once we already have found an exact match.\n\tif m.pinLanguage && tag.LangID != m.want.LangID {\n\t\treturn\n\t}\n\t// Pin the region group if we are comparing tags for the same language.\n\tif tag.LangID == m.want.LangID && m.sameRegionGroup {\n\t\t_, sameGroup := regionGroupDist(m.pinnedRegion, have.maxRegion, have.maxScript, m.want.LangID)\n\t\tif !sameGroup {\n\t\t\treturn\n\t\t}\n\t}\n\tif c == Exact && have.maxScript == maxScript {\n\t\t// If there is another language and then another entry of this language,\n\t\t// don't pin anything, otherwise pin the language.\n\t\tm.pinLanguage = pin\n\t}\n\tif equalsRest(have.tag, tag) {\n\t} else if have.maxScript != maxScript {\n\t\t// There is usually very little comprehension between different scripts.\n\t\t// In a few cases there may still be Low comprehension. This possibility\n\t\t// is pre-computed and stored in have.altScript.\n\t\tif Low < m.conf || have.altScript != maxScript {\n\t\t\treturn\n\t\t}\n\t\tc = Low\n\t} else if have.maxRegion != maxRegion {\n\t\tif High < c {\n\t\t\t// There is usually a small difference between languages across regions.\n\t\t\tc = High\n\t\t}\n\t}\n\n\t// We store the results of the computations of the tie-breaker rules along\n\t// with the best match. There is no need to do the checks once we determine\n\t// we have a winner, but we do still need to do the tie-breaker computations.\n\t// We use \"beaten\" to keep track if we still need to do the checks.\n\tbeaten := false // true if the new pair defeats the current one.\n\tif c != m.conf {\n\t\tif c < m.conf {\n\t\t\treturn\n\t\t}\n\t\tbeaten = true\n\t}\n\n\t// Tie-breaker rules:\n\t// We prefer if the pre-maximized language was specified and identical.\n\torigLang := have.tag.LangID == tag.LangID && tag.LangID != 0\n\tif !beaten && m.origLang != origLang {\n\t\tif m.origLang {\n\t\t\treturn\n\t\t}\n\t\tbeaten = true\n\t}\n\n\t// We prefer if the pre-maximized region was specified and identical.\n\torigReg := have.tag.RegionID == tag.RegionID && tag.RegionID != 0\n\tif !beaten && m.origReg != origReg {\n\t\tif m.origReg {\n\t\t\treturn\n\t\t}\n\t\tbeaten = true\n\t}\n\n\tregGroupDist, sameGroup := regionGroupDist(have.maxRegion, maxRegion, maxScript, tag.LangID)\n\tif !beaten && m.regGroupDist != regGroupDist {\n\t\tif regGroupDist > m.regGroupDist {\n\t\t\treturn\n\t\t}\n\t\tbeaten = true\n\t}\n\n\tparadigmReg := isParadigmLocale(tag.LangID, have.maxRegion)\n\tif !beaten && m.paradigmReg != paradigmReg {\n\t\tif !paradigmReg {\n\t\t\treturn\n\t\t}\n\t\tbeaten = true\n\t}\n\n\t// Next we prefer if the pre-maximized script was specified and identical.\n\torigScript := have.tag.ScriptID == tag.ScriptID && tag.ScriptID != 0\n\tif !beaten && m.origScript != origScript {\n\t\tif m.origScript {\n\t\t\treturn\n\t\t}\n\t\tbeaten = true\n\t}\n\n\t// Update m to the newly found best match.\n\tif beaten {\n\t\tm.have = have\n\t\tm.want = tag\n\t\tm.conf = c\n\t\tm.pinnedRegion = maxRegion\n\t\tm.sameRegionGroup = sameGroup\n\t\tm.origLang = origLang\n\t\tm.origReg = origReg\n\t\tm.paradigmReg = paradigmReg\n\t\tm.origScript = origScript\n\t\tm.regGroupDist = regGroupDist\n\t}\n}\n\nfunc isParadigmLocale(lang language.Language, r language.Region) bool {\n\tfor _, e := range paradigmLocales {\n\t\tif language.Language(e[0]) == lang && (r == language.Region(e[1]) || r == language.Region(e[2])) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// regionGroupDist computes the distance between two regions based on their\n// CLDR grouping.\nfunc regionGroupDist(a, b language.Region, script language.Script, lang language.Language) (dist uint8, same bool) {\n\tconst defaultDistance = 4\n\n\taGroup := uint(regionToGroups[a]) << 1\n\tbGroup := uint(regionToGroups[b]) << 1\n\tfor _, ri := range matchRegion {\n\t\tif language.Language(ri.lang) == lang && (ri.script == 0 || language.Script(ri.script) == script) {\n\t\t\tgroup := uint(1 << (ri.group &^ 0x80))\n\t\t\tif 0x80&ri.group == 0 {\n\t\t\t\tif aGroup&bGroup&group != 0 { // Both regions are in the group.\n\t\t\t\t\treturn ri.distance, ri.distance == defaultDistance\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (aGroup|bGroup)&group == 0 { // Both regions are not in the group.\n\t\t\t\t\treturn ri.distance, ri.distance == defaultDistance\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn defaultDistance, true\n}\n\n// equalsRest compares everything except the language.\nfunc equalsRest(a, b language.Tag) bool {\n\t// TODO: don't include extensions in this comparison. To do this efficiently,\n\t// though, we should handle private tags separately.\n\treturn a.ScriptID == b.ScriptID && a.RegionID == b.RegionID && a.VariantOrPrivateUseTags() == b.VariantOrPrivateUseTags()\n}\n\n// isExactEquivalent returns true if canonicalizing the language will not alter\n// the script or region of a tag.\nfunc isExactEquivalent(l language.Language) bool {\n\tfor _, o := range notEquivalent {\n\t\tif o == l {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nvar notEquivalent []language.Language\n\nfunc init() {\n\t// Create a list of all languages for which canonicalization may alter the\n\t// script or region.\n\tfor _, lm := range language.AliasMap {\n\t\ttag := language.Tag{LangID: language.Language(lm.From)}\n\t\tif tag, _ = canonicalize(All, tag); tag.ScriptID != 0 || tag.RegionID != 0 {\n\t\t\tnotEquivalent = append(notEquivalent, language.Language(lm.From))\n\t\t}\n\t}\n\t// Maximize undefined regions of paradigm locales.\n\tfor i, v := range paradigmLocales {\n\t\tt := language.Tag{LangID: language.Language(v[0])}\n\t\tmax, _ := t.Maximize()\n\t\tif v[1] == 0 {\n\t\t\tparadigmLocales[i][1] = uint16(max.RegionID)\n\t\t}\n\t\tif v[2] == 0 {\n\t\t\tparadigmLocales[i][2] = uint16(max.RegionID)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/language/parse.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 language\n\nimport (\n\t\"errors\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"golang.org/x/text/internal/language\"\n)\n\n// ValueError is returned by any of the parsing functions when the\n// input is well-formed but the respective subtag is not recognized\n// as a valid value.\ntype ValueError interface {\n\terror\n\n\t// Subtag returns the subtag for which the error occurred.\n\tSubtag() string\n}\n\n// Parse parses the given BCP 47 string and returns a valid Tag. If parsing\n// failed it returns an error and any part of the tag that could be parsed.\n// If parsing succeeded but an unknown value was found, it returns\n// ValueError. The Tag returned in this case is just stripped of the unknown\n// value. All other values are preserved. It accepts tags in the BCP 47 format\n// and extensions to this standard defined in\n// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.\n// The resulting tag is canonicalized using the default canonicalization type.\nfunc Parse(s string) (t Tag, err error) {\n\treturn Default.Parse(s)\n}\n\n// Parse parses the given BCP 47 string and returns a valid Tag. If parsing\n// failed it returns an error and any part of the tag that could be parsed.\n// If parsing succeeded but an unknown value was found, it returns\n// ValueError. The Tag returned in this case is just stripped of the unknown\n// value. All other values are preserved. It accepts tags in the BCP 47 format\n// and extensions to this standard defined in\n// https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.\n// The resulting tag is canonicalized using the canonicalization type c.\nfunc (c CanonType) Parse(s string) (t Tag, err error) {\n\tdefer func() {\n\t\tif recover() != nil {\n\t\t\tt = Tag{}\n\t\t\terr = language.ErrSyntax\n\t\t}\n\t}()\n\n\ttt, err := language.Parse(s)\n\tif err != nil {\n\t\treturn makeTag(tt), err\n\t}\n\ttt, changed := canonicalize(c, tt)\n\tif changed {\n\t\ttt.RemakeString()\n\t}\n\treturn makeTag(tt), nil\n}\n\n// Compose creates a Tag from individual parts, which may be of type Tag, Base,\n// Script, Region, Variant, []Variant, Extension, []Extension or error. If a\n// Base, Script or Region or slice of type Variant or Extension is passed more\n// than once, the latter will overwrite the former. Variants and Extensions are\n// accumulated, but if two extensions of the same type are passed, the latter\n// will replace the former. For -u extensions, though, the key-type pairs are\n// added, where later values overwrite older ones. A Tag overwrites all former\n// values and typically only makes sense as the first argument. The resulting\n// tag is returned after canonicalizing using the Default CanonType. If one or\n// more errors are encountered, one of the errors is returned.\nfunc Compose(part ...interface{}) (t Tag, err error) {\n\treturn Default.Compose(part...)\n}\n\n// Compose creates a Tag from individual parts, which may be of type Tag, Base,\n// Script, Region, Variant, []Variant, Extension, []Extension or error. If a\n// Base, Script or Region or slice of type Variant or Extension is passed more\n// than once, the latter will overwrite the former. Variants and Extensions are\n// accumulated, but if two extensions of the same type are passed, the latter\n// will replace the former. For -u extensions, though, the key-type pairs are\n// added, where later values overwrite older ones. A Tag overwrites all former\n// values and typically only makes sense as the first argument. The resulting\n// tag is returned after canonicalizing using CanonType c. If one or more errors\n// are encountered, one of the errors is returned.\nfunc (c CanonType) Compose(part ...interface{}) (t Tag, err error) {\n\tdefer func() {\n\t\tif recover() != nil {\n\t\t\tt = Tag{}\n\t\t\terr = language.ErrSyntax\n\t\t}\n\t}()\n\n\tvar b language.Builder\n\tif err = update(&b, part...); err != nil {\n\t\treturn und, err\n\t}\n\tb.Tag, _ = canonicalize(c, b.Tag)\n\treturn makeTag(b.Make()), err\n}\n\nvar errInvalidArgument = errors.New(\"invalid Extension or Variant\")\n\nfunc update(b *language.Builder, part ...interface{}) (err error) {\n\tfor _, x := range part {\n\t\tswitch v := x.(type) {\n\t\tcase Tag:\n\t\t\tb.SetTag(v.tag())\n\t\tcase Base:\n\t\t\tb.Tag.LangID = v.langID\n\t\tcase Script:\n\t\t\tb.Tag.ScriptID = v.scriptID\n\t\tcase Region:\n\t\t\tb.Tag.RegionID = v.regionID\n\t\tcase Variant:\n\t\t\tif v.variant == \"\" {\n\t\t\t\terr = errInvalidArgument\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tb.AddVariant(v.variant)\n\t\tcase Extension:\n\t\t\tif v.s == \"\" {\n\t\t\t\terr = errInvalidArgument\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tb.SetExt(v.s)\n\t\tcase []Variant:\n\t\t\tb.ClearVariants()\n\t\t\tfor _, v := range v {\n\t\t\t\tb.AddVariant(v.variant)\n\t\t\t}\n\t\tcase []Extension:\n\t\t\tb.ClearExtensions()\n\t\t\tfor _, e := range v {\n\t\t\t\tb.SetExt(e.s)\n\t\t\t}\n\t\t// TODO: support parsing of raw strings based on morphology or just extensions?\n\t\tcase error:\n\t\t\tif v != nil {\n\t\t\t\terr = v\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\nvar errInvalidWeight = errors.New(\"ParseAcceptLanguage: invalid weight\")\nvar errTagListTooLarge = errors.New(\"tag list exceeds max length\")\n\n// ParseAcceptLanguage parses the contents of an Accept-Language header as\n// defined in http://www.ietf.org/rfc/rfc2616.txt and returns a list of Tags and\n// a list of corresponding quality weights. It is more permissive than RFC 2616\n// and may return non-nil slices even if the input is not valid.\n// The Tags will be sorted by highest weight first and then by first occurrence.\n// Tags with a weight of zero will be dropped. An error will be returned if the\n// input could not be parsed.\nfunc ParseAcceptLanguage(s string) (tag []Tag, q []float32, err error) {\n\tdefer func() {\n\t\tif recover() != nil {\n\t\t\ttag = nil\n\t\t\tq = nil\n\t\t\terr = language.ErrSyntax\n\t\t}\n\t}()\n\n\tif strings.Count(s, \"-\") > 1000 {\n\t\treturn nil, nil, errTagListTooLarge\n\t}\n\n\tvar entry string\n\tfor s != \"\" {\n\t\tif entry, s = split(s, ','); entry == \"\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tentry, weight := split(entry, ';')\n\n\t\t// Scan the language.\n\t\tt, err := Parse(entry)\n\t\tif err != nil {\n\t\t\tid, ok := acceptFallback[entry]\n\t\t\tif !ok {\n\t\t\t\treturn nil, nil, err\n\t\t\t}\n\t\t\tt = makeTag(language.Tag{LangID: id})\n\t\t}\n\n\t\t// Scan the optional weight.\n\t\tw := 1.0\n\t\tif weight != \"\" {\n\t\t\tweight = consume(weight, 'q')\n\t\t\tweight = consume(weight, '=')\n\t\t\t// consume returns the empty string when a token could not be\n\t\t\t// consumed, resulting in an error for ParseFloat.\n\t\t\tif w, err = strconv.ParseFloat(weight, 32); err != nil {\n\t\t\t\treturn nil, nil, errInvalidWeight\n\t\t\t}\n\t\t\t// Drop tags with a quality weight of 0.\n\t\t\tif w <= 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\ttag = append(tag, t)\n\t\tq = append(q, float32(w))\n\t}\n\tsort.Stable(&tagSort{tag, q})\n\treturn tag, q, nil\n}\n\n// consume removes a leading token c from s and returns the result or the empty\n// string if there is no such token.\nfunc consume(s string, c byte) string {\n\tif s == \"\" || s[0] != c {\n\t\treturn \"\"\n\t}\n\treturn strings.TrimSpace(s[1:])\n}\n\nfunc split(s string, c byte) (head, tail string) {\n\tif i := strings.IndexByte(s, c); i >= 0 {\n\t\treturn strings.TrimSpace(s[:i]), strings.TrimSpace(s[i+1:])\n\t}\n\treturn strings.TrimSpace(s), \"\"\n}\n\n// Add hack mapping to deal with a small number of cases that occur\n// in Accept-Language (with reasonable frequency).\nvar acceptFallback = map[string]language.Language{\n\t\"english\": _en,\n\t\"deutsch\": _de,\n\t\"italian\": _it,\n\t\"french\":  _fr,\n\t\"*\":       _mul, // defined in the spec to match all languages.\n}\n\ntype tagSort struct {\n\ttag []Tag\n\tq   []float32\n}\n\nfunc (s *tagSort) Len() int {\n\treturn len(s.q)\n}\n\nfunc (s *tagSort) Less(i, j int) bool {\n\treturn s.q[i] > s.q[j]\n}\n\nfunc (s *tagSort) Swap(i, j int) {\n\ts.tag[i], s.tag[j] = s.tag[j], s.tag[i]\n\ts.q[i], s.q[j] = s.q[j], s.q[i]\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/language/tables.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage language\n\n// CLDRVersion is the CLDR version from which the tables in this package are derived.\nconst CLDRVersion = \"32\"\n\nconst (\n\t_de  = 269\n\t_en  = 313\n\t_fr  = 350\n\t_it  = 505\n\t_mo  = 784\n\t_no  = 879\n\t_nb  = 839\n\t_pt  = 960\n\t_sh  = 1031\n\t_mul = 806\n\t_und = 0\n)\nconst (\n\t_001 = 1\n\t_419 = 31\n\t_BR  = 65\n\t_CA  = 73\n\t_ES  = 111\n\t_GB  = 124\n\t_MD  = 189\n\t_PT  = 239\n\t_UK  = 307\n\t_US  = 310\n\t_ZZ  = 358\n\t_XA  = 324\n\t_XC  = 326\n\t_XK  = 334\n)\nconst (\n\t_Latn = 91\n\t_Hani = 57\n\t_Hans = 59\n\t_Hant = 60\n\t_Qaaa = 149\n\t_Qaai = 157\n\t_Qabx = 198\n\t_Zinh = 255\n\t_Zyyy = 260\n\t_Zzzz = 261\n)\n\nvar regionToGroups = []uint8{ // 359 elements\n\t// Entry 0 - 3F\n\t0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x04,\n\t0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00,\n\t0x00, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00,\n\t0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x04,\n\t// Entry 40 - 7F\n\t0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04,\n\t0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00,\n\t0x08, 0x00, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04,\n\t// Entry 80 - BF\n\t0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00,\n\t0x00, 0x00, 0x04, 0x01, 0x00, 0x04, 0x02, 0x00,\n\t0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00,\n\t0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x04,\n\t// Entry C0 - FF\n\t0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,\n\t0x01, 0x04, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00,\n\t0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00,\n\t0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t// Entry 100 - 13F\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,\n\t0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00,\n\t0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x04,\n\t0x00, 0x00, 0x04, 0x00, 0x04, 0x04, 0x05, 0x00,\n\t// Entry 140 - 17F\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n} // Size: 383 bytes\n\nvar paradigmLocales = [][3]uint16{ // 3 elements\n\t0: [3]uint16{0x139, 0x0, 0x7c},\n\t1: [3]uint16{0x13e, 0x0, 0x1f},\n\t2: [3]uint16{0x3c0, 0x41, 0xef},\n} // Size: 42 bytes\n\ntype mutualIntelligibility struct {\n\twant     uint16\n\thave     uint16\n\tdistance uint8\n\toneway   bool\n}\ntype scriptIntelligibility struct {\n\twantLang   uint16\n\thaveLang   uint16\n\twantScript uint8\n\thaveScript uint8\n\tdistance   uint8\n}\ntype regionIntelligibility struct {\n\tlang     uint16\n\tscript   uint8\n\tgroup    uint8\n\tdistance uint8\n}\n\n// matchLang holds pairs of langIDs of base languages that are typically\n// mutually intelligible. Each pair is associated with a confidence and\n// whether the intelligibility goes one or both ways.\nvar matchLang = []mutualIntelligibility{ // 113 elements\n\t0:   {want: 0x1d1, have: 0xb7, distance: 0x4, oneway: false},\n\t1:   {want: 0x407, have: 0xb7, distance: 0x4, oneway: false},\n\t2:   {want: 0x407, have: 0x1d1, distance: 0x4, oneway: false},\n\t3:   {want: 0x407, have: 0x432, distance: 0x4, oneway: false},\n\t4:   {want: 0x43a, have: 0x1, distance: 0x4, oneway: false},\n\t5:   {want: 0x1a3, have: 0x10d, distance: 0x4, oneway: true},\n\t6:   {want: 0x295, have: 0x10d, distance: 0x4, oneway: true},\n\t7:   {want: 0x101, have: 0x36f, distance: 0x8, oneway: false},\n\t8:   {want: 0x101, have: 0x347, distance: 0x8, oneway: false},\n\t9:   {want: 0x5, have: 0x3e2, distance: 0xa, oneway: true},\n\t10:  {want: 0xd, have: 0x139, distance: 0xa, oneway: true},\n\t11:  {want: 0x16, have: 0x367, distance: 0xa, oneway: true},\n\t12:  {want: 0x21, have: 0x139, distance: 0xa, oneway: true},\n\t13:  {want: 0x56, have: 0x13e, distance: 0xa, oneway: true},\n\t14:  {want: 0x58, have: 0x3e2, distance: 0xa, oneway: true},\n\t15:  {want: 0x71, have: 0x3e2, distance: 0xa, oneway: true},\n\t16:  {want: 0x75, have: 0x139, distance: 0xa, oneway: true},\n\t17:  {want: 0x82, have: 0x1be, distance: 0xa, oneway: true},\n\t18:  {want: 0xa5, have: 0x139, distance: 0xa, oneway: true},\n\t19:  {want: 0xb2, have: 0x15e, distance: 0xa, oneway: true},\n\t20:  {want: 0xdd, have: 0x153, distance: 0xa, oneway: true},\n\t21:  {want: 0xe5, have: 0x139, distance: 0xa, oneway: true},\n\t22:  {want: 0xe9, have: 0x3a, distance: 0xa, oneway: true},\n\t23:  {want: 0xf0, have: 0x15e, distance: 0xa, oneway: true},\n\t24:  {want: 0xf9, have: 0x15e, distance: 0xa, oneway: true},\n\t25:  {want: 0x100, have: 0x139, distance: 0xa, oneway: true},\n\t26:  {want: 0x130, have: 0x139, distance: 0xa, oneway: true},\n\t27:  {want: 0x13c, have: 0x139, distance: 0xa, oneway: true},\n\t28:  {want: 0x140, have: 0x151, distance: 0xa, oneway: true},\n\t29:  {want: 0x145, have: 0x13e, distance: 0xa, oneway: true},\n\t30:  {want: 0x158, have: 0x101, distance: 0xa, oneway: true},\n\t31:  {want: 0x16d, have: 0x367, distance: 0xa, oneway: true},\n\t32:  {want: 0x16e, have: 0x139, distance: 0xa, oneway: true},\n\t33:  {want: 0x16f, have: 0x139, distance: 0xa, oneway: true},\n\t34:  {want: 0x17e, have: 0x139, distance: 0xa, oneway: true},\n\t35:  {want: 0x190, have: 0x13e, distance: 0xa, oneway: true},\n\t36:  {want: 0x194, have: 0x13e, distance: 0xa, oneway: true},\n\t37:  {want: 0x1a4, have: 0x1be, distance: 0xa, oneway: true},\n\t38:  {want: 0x1b4, have: 0x139, distance: 0xa, oneway: true},\n\t39:  {want: 0x1b8, have: 0x139, distance: 0xa, oneway: true},\n\t40:  {want: 0x1d4, have: 0x15e, distance: 0xa, oneway: true},\n\t41:  {want: 0x1d7, have: 0x3e2, distance: 0xa, oneway: true},\n\t42:  {want: 0x1d9, have: 0x139, distance: 0xa, oneway: true},\n\t43:  {want: 0x1e7, have: 0x139, distance: 0xa, oneway: true},\n\t44:  {want: 0x1f8, have: 0x139, distance: 0xa, oneway: true},\n\t45:  {want: 0x20e, have: 0x1e1, distance: 0xa, oneway: true},\n\t46:  {want: 0x210, have: 0x139, distance: 0xa, oneway: true},\n\t47:  {want: 0x22d, have: 0x15e, distance: 0xa, oneway: true},\n\t48:  {want: 0x242, have: 0x3e2, distance: 0xa, oneway: true},\n\t49:  {want: 0x24a, have: 0x139, distance: 0xa, oneway: true},\n\t50:  {want: 0x251, have: 0x139, distance: 0xa, oneway: true},\n\t51:  {want: 0x265, have: 0x139, distance: 0xa, oneway: true},\n\t52:  {want: 0x274, have: 0x48a, distance: 0xa, oneway: true},\n\t53:  {want: 0x28a, have: 0x3e2, distance: 0xa, oneway: true},\n\t54:  {want: 0x28e, have: 0x1f9, distance: 0xa, oneway: true},\n\t55:  {want: 0x2a3, have: 0x139, distance: 0xa, oneway: true},\n\t56:  {want: 0x2b5, have: 0x15e, distance: 0xa, oneway: true},\n\t57:  {want: 0x2b8, have: 0x139, distance: 0xa, oneway: true},\n\t58:  {want: 0x2be, have: 0x139, distance: 0xa, oneway: true},\n\t59:  {want: 0x2c3, have: 0x15e, distance: 0xa, oneway: true},\n\t60:  {want: 0x2ed, have: 0x139, distance: 0xa, oneway: true},\n\t61:  {want: 0x2f1, have: 0x15e, distance: 0xa, oneway: true},\n\t62:  {want: 0x2fa, have: 0x139, distance: 0xa, oneway: true},\n\t63:  {want: 0x2ff, have: 0x7e, distance: 0xa, oneway: true},\n\t64:  {want: 0x304, have: 0x139, distance: 0xa, oneway: true},\n\t65:  {want: 0x30b, have: 0x3e2, distance: 0xa, oneway: true},\n\t66:  {want: 0x31b, have: 0x1be, distance: 0xa, oneway: true},\n\t67:  {want: 0x31f, have: 0x1e1, distance: 0xa, oneway: true},\n\t68:  {want: 0x320, have: 0x139, distance: 0xa, oneway: true},\n\t69:  {want: 0x331, have: 0x139, distance: 0xa, oneway: true},\n\t70:  {want: 0x351, have: 0x139, distance: 0xa, oneway: true},\n\t71:  {want: 0x36a, have: 0x347, distance: 0xa, oneway: false},\n\t72:  {want: 0x36a, have: 0x36f, distance: 0xa, oneway: true},\n\t73:  {want: 0x37a, have: 0x139, distance: 0xa, oneway: true},\n\t74:  {want: 0x387, have: 0x139, distance: 0xa, oneway: true},\n\t75:  {want: 0x389, have: 0x139, distance: 0xa, oneway: true},\n\t76:  {want: 0x38b, have: 0x15e, distance: 0xa, oneway: true},\n\t77:  {want: 0x390, have: 0x139, distance: 0xa, oneway: true},\n\t78:  {want: 0x395, have: 0x139, distance: 0xa, oneway: true},\n\t79:  {want: 0x39d, have: 0x139, distance: 0xa, oneway: true},\n\t80:  {want: 0x3a5, have: 0x139, distance: 0xa, oneway: true},\n\t81:  {want: 0x3be, have: 0x139, distance: 0xa, oneway: true},\n\t82:  {want: 0x3c4, have: 0x13e, distance: 0xa, oneway: true},\n\t83:  {want: 0x3d4, have: 0x10d, distance: 0xa, oneway: true},\n\t84:  {want: 0x3d9, have: 0x139, distance: 0xa, oneway: true},\n\t85:  {want: 0x3e5, have: 0x15e, distance: 0xa, oneway: true},\n\t86:  {want: 0x3e9, have: 0x1be, distance: 0xa, oneway: true},\n\t87:  {want: 0x3fa, have: 0x139, distance: 0xa, oneway: true},\n\t88:  {want: 0x40c, have: 0x139, distance: 0xa, oneway: true},\n\t89:  {want: 0x423, have: 0x139, distance: 0xa, oneway: true},\n\t90:  {want: 0x429, have: 0x139, distance: 0xa, oneway: true},\n\t91:  {want: 0x431, have: 0x139, distance: 0xa, oneway: true},\n\t92:  {want: 0x43b, have: 0x139, distance: 0xa, oneway: true},\n\t93:  {want: 0x43e, have: 0x1e1, distance: 0xa, oneway: true},\n\t94:  {want: 0x445, have: 0x139, distance: 0xa, oneway: true},\n\t95:  {want: 0x450, have: 0x139, distance: 0xa, oneway: true},\n\t96:  {want: 0x461, have: 0x139, distance: 0xa, oneway: true},\n\t97:  {want: 0x467, have: 0x3e2, distance: 0xa, oneway: true},\n\t98:  {want: 0x46f, have: 0x139, distance: 0xa, oneway: true},\n\t99:  {want: 0x476, have: 0x3e2, distance: 0xa, oneway: true},\n\t100: {want: 0x3883, have: 0x139, distance: 0xa, oneway: true},\n\t101: {want: 0x480, have: 0x139, distance: 0xa, oneway: true},\n\t102: {want: 0x482, have: 0x139, distance: 0xa, oneway: true},\n\t103: {want: 0x494, have: 0x3e2, distance: 0xa, oneway: true},\n\t104: {want: 0x49d, have: 0x139, distance: 0xa, oneway: true},\n\t105: {want: 0x4ac, have: 0x529, distance: 0xa, oneway: true},\n\t106: {want: 0x4b4, have: 0x139, distance: 0xa, oneway: true},\n\t107: {want: 0x4bc, have: 0x3e2, distance: 0xa, oneway: true},\n\t108: {want: 0x4e5, have: 0x15e, distance: 0xa, oneway: true},\n\t109: {want: 0x4f2, have: 0x139, distance: 0xa, oneway: true},\n\t110: {want: 0x512, have: 0x139, distance: 0xa, oneway: true},\n\t111: {want: 0x518, have: 0x139, distance: 0xa, oneway: true},\n\t112: {want: 0x52f, have: 0x139, distance: 0xa, oneway: true},\n} // Size: 702 bytes\n\n// matchScript holds pairs of scriptIDs where readers of one script\n// can typically also read the other. Each is associated with a confidence.\nvar matchScript = []scriptIntelligibility{ // 26 elements\n\t0:  {wantLang: 0x432, haveLang: 0x432, wantScript: 0x5b, haveScript: 0x20, distance: 0x5},\n\t1:  {wantLang: 0x432, haveLang: 0x432, wantScript: 0x20, haveScript: 0x5b, distance: 0x5},\n\t2:  {wantLang: 0x58, haveLang: 0x3e2, wantScript: 0x5b, haveScript: 0x20, distance: 0xa},\n\t3:  {wantLang: 0xa5, haveLang: 0x139, wantScript: 0xe, haveScript: 0x5b, distance: 0xa},\n\t4:  {wantLang: 0x1d7, haveLang: 0x3e2, wantScript: 0x8, haveScript: 0x20, distance: 0xa},\n\t5:  {wantLang: 0x210, haveLang: 0x139, wantScript: 0x2e, haveScript: 0x5b, distance: 0xa},\n\t6:  {wantLang: 0x24a, haveLang: 0x139, wantScript: 0x4f, haveScript: 0x5b, distance: 0xa},\n\t7:  {wantLang: 0x251, haveLang: 0x139, wantScript: 0x53, haveScript: 0x5b, distance: 0xa},\n\t8:  {wantLang: 0x2b8, haveLang: 0x139, wantScript: 0x58, haveScript: 0x5b, distance: 0xa},\n\t9:  {wantLang: 0x304, haveLang: 0x139, wantScript: 0x6f, haveScript: 0x5b, distance: 0xa},\n\t10: {wantLang: 0x331, haveLang: 0x139, wantScript: 0x76, haveScript: 0x5b, distance: 0xa},\n\t11: {wantLang: 0x351, haveLang: 0x139, wantScript: 0x22, haveScript: 0x5b, distance: 0xa},\n\t12: {wantLang: 0x395, haveLang: 0x139, wantScript: 0x83, haveScript: 0x5b, distance: 0xa},\n\t13: {wantLang: 0x39d, haveLang: 0x139, wantScript: 0x36, haveScript: 0x5b, distance: 0xa},\n\t14: {wantLang: 0x3be, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5b, distance: 0xa},\n\t15: {wantLang: 0x3fa, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5b, distance: 0xa},\n\t16: {wantLang: 0x40c, haveLang: 0x139, wantScript: 0xd6, haveScript: 0x5b, distance: 0xa},\n\t17: {wantLang: 0x450, haveLang: 0x139, wantScript: 0xe6, haveScript: 0x5b, distance: 0xa},\n\t18: {wantLang: 0x461, haveLang: 0x139, wantScript: 0xe9, haveScript: 0x5b, distance: 0xa},\n\t19: {wantLang: 0x46f, haveLang: 0x139, wantScript: 0x2c, haveScript: 0x5b, distance: 0xa},\n\t20: {wantLang: 0x476, haveLang: 0x3e2, wantScript: 0x5b, haveScript: 0x20, distance: 0xa},\n\t21: {wantLang: 0x4b4, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5b, distance: 0xa},\n\t22: {wantLang: 0x4bc, haveLang: 0x3e2, wantScript: 0x5b, haveScript: 0x20, distance: 0xa},\n\t23: {wantLang: 0x512, haveLang: 0x139, wantScript: 0x3e, haveScript: 0x5b, distance: 0xa},\n\t24: {wantLang: 0x529, haveLang: 0x529, wantScript: 0x3b, haveScript: 0x3c, distance: 0xf},\n\t25: {wantLang: 0x529, haveLang: 0x529, wantScript: 0x3c, haveScript: 0x3b, distance: 0x13},\n} // Size: 232 bytes\n\nvar matchRegion = []regionIntelligibility{ // 15 elements\n\t0:  {lang: 0x3a, script: 0x0, group: 0x4, distance: 0x4},\n\t1:  {lang: 0x3a, script: 0x0, group: 0x84, distance: 0x4},\n\t2:  {lang: 0x139, script: 0x0, group: 0x1, distance: 0x4},\n\t3:  {lang: 0x139, script: 0x0, group: 0x81, distance: 0x4},\n\t4:  {lang: 0x13e, script: 0x0, group: 0x3, distance: 0x4},\n\t5:  {lang: 0x13e, script: 0x0, group: 0x83, distance: 0x4},\n\t6:  {lang: 0x3c0, script: 0x0, group: 0x3, distance: 0x4},\n\t7:  {lang: 0x3c0, script: 0x0, group: 0x83, distance: 0x4},\n\t8:  {lang: 0x529, script: 0x3c, group: 0x2, distance: 0x4},\n\t9:  {lang: 0x529, script: 0x3c, group: 0x82, distance: 0x4},\n\t10: {lang: 0x3a, script: 0x0, group: 0x80, distance: 0x5},\n\t11: {lang: 0x139, script: 0x0, group: 0x80, distance: 0x5},\n\t12: {lang: 0x13e, script: 0x0, group: 0x80, distance: 0x5},\n\t13: {lang: 0x3c0, script: 0x0, group: 0x80, distance: 0x5},\n\t14: {lang: 0x529, script: 0x3c, group: 0x80, distance: 0x5},\n} // Size: 114 bytes\n\n// Total table size 1473 bytes (1KiB); checksum: 7BB90B5C\n"
  },
  {
    "path": "vendor/golang.org/x/text/language/tags.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 language\n\nimport \"golang.org/x/text/internal/language/compact\"\n\n// TODO: Various sets of commonly use tags and regions.\n\n// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed.\n// It simplifies safe initialization of Tag values.\nfunc MustParse(s string) Tag {\n\tt, err := Parse(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn t\n}\n\n// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed.\n// It simplifies safe initialization of Tag values.\nfunc (c CanonType) MustParse(s string) Tag {\n\tt, err := c.Parse(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn t\n}\n\n// MustParseBase is like ParseBase, but panics if the given base cannot be parsed.\n// It simplifies safe initialization of Base values.\nfunc MustParseBase(s string) Base {\n\tb, err := ParseBase(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn b\n}\n\n// MustParseScript is like ParseScript, but panics if the given script cannot be\n// parsed. It simplifies safe initialization of Script values.\nfunc MustParseScript(s string) Script {\n\tscr, err := ParseScript(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn scr\n}\n\n// MustParseRegion is like ParseRegion, but panics if the given region cannot be\n// parsed. It simplifies safe initialization of Region values.\nfunc MustParseRegion(s string) Region {\n\tr, err := ParseRegion(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn r\n}\n\nvar (\n\tund = Tag{}\n\n\tUnd Tag = Tag{}\n\n\tAfrikaans            Tag = Tag(compact.Afrikaans)\n\tAmharic              Tag = Tag(compact.Amharic)\n\tArabic               Tag = Tag(compact.Arabic)\n\tModernStandardArabic Tag = Tag(compact.ModernStandardArabic)\n\tAzerbaijani          Tag = Tag(compact.Azerbaijani)\n\tBulgarian            Tag = Tag(compact.Bulgarian)\n\tBengali              Tag = Tag(compact.Bengali)\n\tCatalan              Tag = Tag(compact.Catalan)\n\tCzech                Tag = Tag(compact.Czech)\n\tDanish               Tag = Tag(compact.Danish)\n\tGerman               Tag = Tag(compact.German)\n\tGreek                Tag = Tag(compact.Greek)\n\tEnglish              Tag = Tag(compact.English)\n\tAmericanEnglish      Tag = Tag(compact.AmericanEnglish)\n\tBritishEnglish       Tag = Tag(compact.BritishEnglish)\n\tSpanish              Tag = Tag(compact.Spanish)\n\tEuropeanSpanish      Tag = Tag(compact.EuropeanSpanish)\n\tLatinAmericanSpanish Tag = Tag(compact.LatinAmericanSpanish)\n\tEstonian             Tag = Tag(compact.Estonian)\n\tPersian              Tag = Tag(compact.Persian)\n\tFinnish              Tag = Tag(compact.Finnish)\n\tFilipino             Tag = Tag(compact.Filipino)\n\tFrench               Tag = Tag(compact.French)\n\tCanadianFrench       Tag = Tag(compact.CanadianFrench)\n\tGujarati             Tag = Tag(compact.Gujarati)\n\tHebrew               Tag = Tag(compact.Hebrew)\n\tHindi                Tag = Tag(compact.Hindi)\n\tCroatian             Tag = Tag(compact.Croatian)\n\tHungarian            Tag = Tag(compact.Hungarian)\n\tArmenian             Tag = Tag(compact.Armenian)\n\tIndonesian           Tag = Tag(compact.Indonesian)\n\tIcelandic            Tag = Tag(compact.Icelandic)\n\tItalian              Tag = Tag(compact.Italian)\n\tJapanese             Tag = Tag(compact.Japanese)\n\tGeorgian             Tag = Tag(compact.Georgian)\n\tKazakh               Tag = Tag(compact.Kazakh)\n\tKhmer                Tag = Tag(compact.Khmer)\n\tKannada              Tag = Tag(compact.Kannada)\n\tKorean               Tag = Tag(compact.Korean)\n\tKirghiz              Tag = Tag(compact.Kirghiz)\n\tLao                  Tag = Tag(compact.Lao)\n\tLithuanian           Tag = Tag(compact.Lithuanian)\n\tLatvian              Tag = Tag(compact.Latvian)\n\tMacedonian           Tag = Tag(compact.Macedonian)\n\tMalayalam            Tag = Tag(compact.Malayalam)\n\tMongolian            Tag = Tag(compact.Mongolian)\n\tMarathi              Tag = Tag(compact.Marathi)\n\tMalay                Tag = Tag(compact.Malay)\n\tBurmese              Tag = Tag(compact.Burmese)\n\tNepali               Tag = Tag(compact.Nepali)\n\tDutch                Tag = Tag(compact.Dutch)\n\tNorwegian            Tag = Tag(compact.Norwegian)\n\tPunjabi              Tag = Tag(compact.Punjabi)\n\tPolish               Tag = Tag(compact.Polish)\n\tPortuguese           Tag = Tag(compact.Portuguese)\n\tBrazilianPortuguese  Tag = Tag(compact.BrazilianPortuguese)\n\tEuropeanPortuguese   Tag = Tag(compact.EuropeanPortuguese)\n\tRomanian             Tag = Tag(compact.Romanian)\n\tRussian              Tag = Tag(compact.Russian)\n\tSinhala              Tag = Tag(compact.Sinhala)\n\tSlovak               Tag = Tag(compact.Slovak)\n\tSlovenian            Tag = Tag(compact.Slovenian)\n\tAlbanian             Tag = Tag(compact.Albanian)\n\tSerbian              Tag = Tag(compact.Serbian)\n\tSerbianLatin         Tag = Tag(compact.SerbianLatin)\n\tSwedish              Tag = Tag(compact.Swedish)\n\tSwahili              Tag = Tag(compact.Swahili)\n\tTamil                Tag = Tag(compact.Tamil)\n\tTelugu               Tag = Tag(compact.Telugu)\n\tThai                 Tag = Tag(compact.Thai)\n\tTurkish              Tag = Tag(compact.Turkish)\n\tUkrainian            Tag = Tag(compact.Ukrainian)\n\tUrdu                 Tag = Tag(compact.Urdu)\n\tUzbek                Tag = Tag(compact.Uzbek)\n\tVietnamese           Tag = Tag(compact.Vietnamese)\n\tChinese              Tag = Tag(compact.Chinese)\n\tSimplifiedChinese    Tag = Tag(compact.SimplifiedChinese)\n\tTraditionalChinese   Tag = Tag(compact.TraditionalChinese)\n\tZulu                 Tag = Tag(compact.Zulu)\n)\n"
  },
  {
    "path": "vendor/golang.org/x/text/message/catalog/catalog.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// Package catalog defines collections of translated format strings.\n//\n// This package mostly defines types for populating catalogs with messages. The\n// catmsg package contains further definitions for creating custom message and\n// dictionary types as well as packages that use Catalogs.\n//\n// Package catalog defines various interfaces: Dictionary, Loader, and Message.\n// A Dictionary maintains a set of translations of format strings for a single\n// language. The Loader interface defines a source of dictionaries. A\n// translation of a format string is represented by a Message.\n//\n// # Catalogs\n//\n// A Catalog defines a programmatic interface for setting message translations.\n// It maintains a set of per-language dictionaries with translations for a set\n// of keys. For message translation to function properly, a translation should\n// be defined for each key for each supported language. A dictionary may be\n// underspecified, though, if there is a parent language that already defines\n// the key. For example, a Dictionary for \"en-GB\" could leave out entries that\n// are identical to those in a dictionary for \"en\".\n//\n// # Messages\n//\n// A Message is a format string which varies on the value of substitution\n// variables. For instance, to indicate the number of results one could want \"no\n// results\" if there are none, \"1 result\" if there is 1, and \"%d results\" for\n// any other number. Catalog is agnostic to the kind of format strings that are\n// used: for instance, messages can follow either the printf-style substitution\n// from package fmt or use templates.\n//\n// A Message does not substitute arguments in the format string. This job is\n// reserved for packages that render strings, such as message, that use Catalogs\n// to selected string. This separation of concerns allows Catalog to be used to\n// store any kind of formatting strings.\n//\n// # Selecting messages based on linguistic features of substitution arguments\n//\n// Messages may vary based on any linguistic features of the argument values.\n// The most common one is plural form, but others exist.\n//\n// Selection messages are provided in packages that provide support for a\n// specific linguistic feature. The following snippet uses plural.Selectf:\n//\n//\tcatalog.Set(language.English, \"You are %d minute(s) late.\",\n//\t\tplural.Selectf(1, \"\",\n//\t\t\tplural.One, \"You are 1 minute late.\",\n//\t\t\tplural.Other, \"You are %d minutes late.\"))\n//\n// In this example, a message is stored in the Catalog where one of two messages\n// is selected based on the first argument, a number. The first message is\n// selected if the argument is singular (identified by the selector \"one\") and\n// the second message is selected in all other cases. The selectors are defined\n// by the plural rules defined in CLDR. The selector \"other\" is special and will\n// always match. Each language always defines one of the linguistic categories\n// to be \"other.\" For English, singular is \"one\" and plural is \"other\".\n//\n// Selects can be nested. This allows selecting sentences based on features of\n// multiple arguments or multiple linguistic properties of a single argument.\n//\n// # String interpolation\n//\n// There is often a lot of commonality between the possible variants of a\n// message. For instance, in the example above the word \"minute\" varies based on\n// the plural catogory of the argument, but the rest of the sentence is\n// identical. Using interpolation the above message can be rewritten as:\n//\n//\tcatalog.Set(language.English, \"You are %d minute(s) late.\",\n//\t\tcatalog.Var(\"minutes\",\n//\t\t\tplural.Selectf(1, \"\", plural.One, \"minute\", plural.Other, \"minutes\")),\n//\t\tcatalog.String(\"You are %[1]d ${minutes} late.\"))\n//\n// Var is defined to return the variable name if the message does not yield a\n// match. This allows us to further simplify this snippet to\n//\n//\tcatalog.Set(language.English, \"You are %d minute(s) late.\",\n//\t\tcatalog.Var(\"minutes\", plural.Selectf(1, \"\", plural.One, \"minute\")),\n//\t\tcatalog.String(\"You are %d ${minutes} late.\"))\n//\n// Overall this is still only a minor improvement, but things can get a lot more\n// unwieldy if more than one linguistic feature is used to determine a message\n// variant. Consider the following example:\n//\n//\t// argument 1: list of hosts, argument 2: list of guests\n//\tcatalog.Set(language.English, \"%[1]v invite(s) %[2]v to their party.\",\n//\t\tcatalog.Var(\"their\",\n//\t\t\tplural.Selectf(1, \"\"\n//\t\t\t\tplural.One, gender.Select(1, \"female\", \"her\", \"other\", \"his\"))),\n//\t\tcatalog.Var(\"invites\", plural.Selectf(1, \"\", plural.One, \"invite\"))\n//\t\tcatalog.String(\"%[1]v ${invites} %[2]v to ${their} party.\")),\n//\n// Without variable substitution, this would have to be written as\n//\n//\t// argument 1: list of hosts, argument 2: list of guests\n//\tcatalog.Set(language.English, \"%[1]v invite(s) %[2]v to their party.\",\n//\t\tplural.Selectf(1, \"\",\n//\t\t\tplural.One, gender.Select(1,\n//\t\t\t\t\"female\", \"%[1]v invites %[2]v to her party.\"\n//\t\t\t\t\"other\", \"%[1]v invites %[2]v to his party.\"),\n//\t\t\tplural.Other, \"%[1]v invites %[2]v to their party.\"))\n//\n// Not necessarily shorter, but using variables there is less duplication and\n// the messages are more maintenance friendly. Moreover, languages may have up\n// to six plural forms. This makes the use of variables more welcome.\n//\n// Different messages using the same inflections can reuse variables by moving\n// them to macros. Using macros we can rewrite the message as:\n//\n//\t// argument 1: list of hosts, argument 2: list of guests\n//\tcatalog.SetString(language.English, \"%[1]v invite(s) %[2]v to their party.\",\n//\t\t\"%[1]v ${invites(1)} %[2]v to ${their(1)} party.\")\n//\n// Where the following macros were defined separately.\n//\n//\tcatalog.SetMacro(language.English, \"invites\", plural.Selectf(1, \"\",\n//\t\tplural.One, \"invite\"))\n//\tcatalog.SetMacro(language.English, \"their\", plural.Selectf(1, \"\",\n//\t\tplural.One, gender.Select(1, \"female\", \"her\", \"other\", \"his\"))),\n//\n// Placeholders use parentheses and the arguments to invoke a macro.\n//\n// # Looking up messages\n//\n// Message lookup using Catalogs is typically only done by specialized packages\n// and is not something the user should be concerned with. For instance, to\n// express the tardiness of a user using the related message we defined earlier,\n// the user may use the package message like so:\n//\n//\tp := message.NewPrinter(language.English)\n//\tp.Printf(\"You are %d minute(s) late.\", 5)\n//\n// Which would print:\n//\n//\tYou are 5 minutes late.\n//\n// This package is UNDER CONSTRUCTION and its API may change.\npackage catalog // import \"golang.org/x/text/message/catalog\"\n\n// TODO:\n// Some way to freeze a catalog.\n// - Locking on each lockup turns out to be about 50% of the total running time\n//   for some of the benchmarks in the message package.\n// Consider these:\n// - Sequence type to support sequences in user-defined messages.\n// - Garbage collection: Remove dictionaries that can no longer be reached\n//   as other dictionaries have been added that cover all possible keys.\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"golang.org/x/text/internal\"\n\n\t\"golang.org/x/text/internal/catmsg\"\n\t\"golang.org/x/text/language\"\n)\n\n// A Catalog allows lookup of translated messages.\ntype Catalog interface {\n\t// Languages returns all languages for which the Catalog contains variants.\n\tLanguages() []language.Tag\n\n\t// Matcher returns a Matcher for languages from this Catalog.\n\tMatcher() language.Matcher\n\n\t// A Context is used for evaluating Messages.\n\tContext(tag language.Tag, r catmsg.Renderer) *Context\n\n\t// This method also makes Catalog a private interface.\n\tlookup(tag language.Tag, key string) (data string, ok bool)\n}\n\n// NewFromMap creates a Catalog from the given map. If a Dictionary is\n// underspecified the entry is retrieved from a parent language.\nfunc NewFromMap(dictionaries map[string]Dictionary, opts ...Option) (Catalog, error) {\n\toptions := options{}\n\tfor _, o := range opts {\n\t\to(&options)\n\t}\n\tc := &catalog{\n\t\tdicts: map[language.Tag]Dictionary{},\n\t}\n\t_, hasFallback := dictionaries[options.fallback.String()]\n\tif hasFallback {\n\t\t// TODO: Should it be okay to not have a fallback language?\n\t\t// Catalog generators could enforce there is always a fallback.\n\t\tc.langs = append(c.langs, options.fallback)\n\t}\n\tfor lang, dict := range dictionaries {\n\t\ttag, err := language.Parse(lang)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"catalog: invalid language tag %q\", lang)\n\t\t}\n\t\tif _, ok := c.dicts[tag]; ok {\n\t\t\treturn nil, fmt.Errorf(\"catalog: duplicate entry for tag %q after normalization\", tag)\n\t\t}\n\t\tc.dicts[tag] = dict\n\t\tif !hasFallback || tag != options.fallback {\n\t\t\tc.langs = append(c.langs, tag)\n\t\t}\n\t}\n\tif hasFallback {\n\t\tinternal.SortTags(c.langs[1:])\n\t} else {\n\t\tinternal.SortTags(c.langs)\n\t}\n\tc.matcher = language.NewMatcher(c.langs)\n\treturn c, nil\n}\n\n// A Dictionary is a source of translations for a single language.\ntype Dictionary interface {\n\t// Lookup returns a message compiled with catmsg.Compile for the given key.\n\t// It returns false for ok if such a message could not be found.\n\tLookup(key string) (data string, ok bool)\n}\n\ntype catalog struct {\n\tlangs   []language.Tag\n\tdicts   map[language.Tag]Dictionary\n\tmacros  store\n\tmatcher language.Matcher\n}\n\nfunc (c *catalog) Languages() []language.Tag { return c.langs }\nfunc (c *catalog) Matcher() language.Matcher { return c.matcher }\n\nfunc (c *catalog) lookup(tag language.Tag, key string) (data string, ok bool) {\n\tfor ; ; tag = tag.Parent() {\n\t\tif dict, ok := c.dicts[tag]; ok {\n\t\t\tif data, ok := dict.Lookup(key); ok {\n\t\t\t\treturn data, true\n\t\t\t}\n\t\t}\n\t\tif tag == language.Und {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn \"\", false\n}\n\n// Context returns a Context for formatting messages.\n// Only one Message may be formatted per context at any given time.\nfunc (c *catalog) Context(tag language.Tag, r catmsg.Renderer) *Context {\n\treturn &Context{\n\t\tcat: c,\n\t\ttag: tag,\n\t\tdec: catmsg.NewDecoder(tag, r, &dict{&c.macros, tag}),\n\t}\n}\n\n// A Builder allows building a Catalog programmatically.\ntype Builder struct {\n\toptions\n\tmatcher language.Matcher\n\n\tindex  store\n\tmacros store\n}\n\ntype options struct {\n\tfallback language.Tag\n}\n\n// An Option configures Catalog behavior.\ntype Option func(*options)\n\n// Fallback specifies the default fallback language. The default is Und.\nfunc Fallback(tag language.Tag) Option {\n\treturn func(o *options) { o.fallback = tag }\n}\n\n// TODO:\n// // Catalogs specifies one or more sources for a Catalog.\n// // Lookups are in order.\n// // This can be changed inserting a Catalog used for setting, which implements\n// // Loader, used for setting in the chain.\n// func Catalogs(d ...Loader) Option {\n// \treturn nil\n// }\n//\n// func Delims(start, end string) Option {}\n//\n// func Dict(tag language.Tag, d ...Dictionary) Option\n\n// NewBuilder returns an empty mutable Catalog.\nfunc NewBuilder(opts ...Option) *Builder {\n\tc := &Builder{}\n\tfor _, o := range opts {\n\t\to(&c.options)\n\t}\n\treturn c\n}\n\n// SetString is shorthand for Set(tag, key, String(msg)).\nfunc (c *Builder) SetString(tag language.Tag, key string, msg string) error {\n\treturn c.set(tag, key, &c.index, String(msg))\n}\n\n// Set sets the translation for the given language and key.\n//\n// When evaluation this message, the first Message in the sequence to msgs to\n// evaluate to a string will be the message returned.\nfunc (c *Builder) Set(tag language.Tag, key string, msg ...Message) error {\n\treturn c.set(tag, key, &c.index, msg...)\n}\n\n// SetMacro defines a Message that may be substituted in another message.\n// The arguments to a macro Message are passed as arguments in the\n// placeholder the form \"${foo(arg1, arg2)}\".\nfunc (c *Builder) SetMacro(tag language.Tag, name string, msg ...Message) error {\n\treturn c.set(tag, name, &c.macros, msg...)\n}\n\n// ErrNotFound indicates there was no message for the given key.\nvar ErrNotFound = errors.New(\"catalog: message not found\")\n\n// String specifies a plain message string. It can be used as fallback if no\n// other strings match or as a simple standalone message.\n//\n// It is an error to pass more than one String in a message sequence.\nfunc String(name string) Message {\n\treturn catmsg.String(name)\n}\n\n// Var sets a variable that may be substituted in formatting patterns using\n// named substitution of the form \"${name}\". The name argument is used as a\n// fallback if the statements do not produce a match. The statement sequence may\n// not contain any Var calls.\n//\n// The name passed to a Var must be unique within message sequence.\nfunc Var(name string, msg ...Message) Message {\n\treturn &catmsg.Var{Name: name, Message: firstInSequence(msg)}\n}\n\n// Context returns a Context for formatting messages.\n// Only one Message may be formatted per context at any given time.\nfunc (b *Builder) Context(tag language.Tag, r catmsg.Renderer) *Context {\n\treturn &Context{\n\t\tcat: b,\n\t\ttag: tag,\n\t\tdec: catmsg.NewDecoder(tag, r, &dict{&b.macros, tag}),\n\t}\n}\n\n// A Context is used for evaluating Messages.\n// Only one Message may be formatted per context at any given time.\ntype Context struct {\n\tcat Catalog\n\ttag language.Tag // TODO: use compact index.\n\tdec *catmsg.Decoder\n}\n\n// Execute looks up and executes the message with the given key.\n// It returns ErrNotFound if no message could be found in the index.\nfunc (c *Context) Execute(key string) error {\n\tdata, ok := c.cat.lookup(c.tag, key)\n\tif !ok {\n\t\treturn ErrNotFound\n\t}\n\treturn c.dec.Execute(data)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/message/catalog/dict.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 catalog\n\nimport (\n\t\"sync\"\n\n\t\"golang.org/x/text/internal\"\n\t\"golang.org/x/text/internal/catmsg\"\n\t\"golang.org/x/text/language\"\n)\n\n// TODO:\n// Dictionary returns a Dictionary that returns the first Message, using the\n// given language tag, that matches:\n//   1. the last one registered by one of the Set methods\n//   2. returned by one of the Loaders\n//   3. repeat from 1. using the parent language\n// This approach allows messages to be underspecified.\n// func (c *Catalog) Dictionary(tag language.Tag) (Dictionary, error) {\n// \t// TODO: verify dictionary exists.\n// \treturn &dict{&c.index, tag}, nil\n// }\n\ntype dict struct {\n\ts   *store\n\ttag language.Tag // TODO: make compact tag.\n}\n\nfunc (d *dict) Lookup(key string) (data string, ok bool) {\n\treturn d.s.lookup(d.tag, key)\n}\n\nfunc (b *Builder) lookup(tag language.Tag, key string) (data string, ok bool) {\n\treturn b.index.lookup(tag, key)\n}\n\nfunc (c *Builder) set(tag language.Tag, key string, s *store, msg ...Message) error {\n\tdata, err := catmsg.Compile(tag, &dict{&c.macros, tag}, firstInSequence(msg))\n\n\ts.mutex.Lock()\n\tdefer s.mutex.Unlock()\n\n\tm := s.index[tag]\n\tif m == nil {\n\t\tm = msgMap{}\n\t\tif s.index == nil {\n\t\t\ts.index = map[language.Tag]msgMap{}\n\t\t}\n\t\tc.matcher = nil\n\t\ts.index[tag] = m\n\t}\n\n\tm[key] = data\n\treturn err\n}\n\nfunc (c *Builder) Matcher() language.Matcher {\n\tc.index.mutex.RLock()\n\tm := c.matcher\n\tc.index.mutex.RUnlock()\n\tif m != nil {\n\t\treturn m\n\t}\n\n\tc.index.mutex.Lock()\n\tif c.matcher == nil {\n\t\tc.matcher = language.NewMatcher(c.unlockedLanguages())\n\t}\n\tm = c.matcher\n\tc.index.mutex.Unlock()\n\treturn m\n}\n\ntype store struct {\n\tmutex sync.RWMutex\n\tindex map[language.Tag]msgMap\n}\n\ntype msgMap map[string]string\n\nfunc (s *store) lookup(tag language.Tag, key string) (data string, ok bool) {\n\ts.mutex.RLock()\n\tdefer s.mutex.RUnlock()\n\n\tfor ; ; tag = tag.Parent() {\n\t\tif msgs, ok := s.index[tag]; ok {\n\t\t\tif msg, ok := msgs[key]; ok {\n\t\t\t\treturn msg, true\n\t\t\t}\n\t\t}\n\t\tif tag == language.Und {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn \"\", false\n}\n\n// Languages returns all languages for which the Catalog contains variants.\nfunc (b *Builder) Languages() []language.Tag {\n\ts := &b.index\n\ts.mutex.RLock()\n\tdefer s.mutex.RUnlock()\n\n\treturn b.unlockedLanguages()\n}\n\nfunc (b *Builder) unlockedLanguages() []language.Tag {\n\ts := &b.index\n\tif len(s.index) == 0 {\n\t\treturn nil\n\t}\n\ttags := make([]language.Tag, 0, len(s.index))\n\t_, hasFallback := s.index[b.options.fallback]\n\toffset := 0\n\tif hasFallback {\n\t\ttags = append(tags, b.options.fallback)\n\t\toffset = 1\n\t}\n\tfor t := range s.index {\n\t\tif t != b.options.fallback {\n\t\t\ttags = append(tags, t)\n\t\t}\n\t}\n\tinternal.SortTags(tags[offset:])\n\treturn tags\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/message/catalog/go19.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 go1.9\n\npackage catalog\n\nimport \"golang.org/x/text/internal/catmsg\"\n\n// A Message holds a collection of translations for the same phrase that may\n// vary based on the values of substitution arguments.\ntype Message = catmsg.Message\n\ntype firstInSequence = catmsg.FirstOf\n"
  },
  {
    "path": "vendor/golang.org/x/text/message/catalog/gopre19.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 !go1.9\n\npackage catalog\n\nimport \"golang.org/x/text/internal/catmsg\"\n\n// A Message holds a collection of translations for the same phrase that may\n// vary based on the values of substitution arguments.\ntype Message interface {\n\tcatmsg.Message\n}\n\nfunc firstInSequence(m []Message) catmsg.Message {\n\ta := []catmsg.Message{}\n\tfor _, m := range m {\n\t\ta = append(a, m)\n\t}\n\treturn catmsg.FirstOf(a)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/message/catalog.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 message\n\n// TODO: some types in this file will need to be made public at some time.\n// Documentation and method names will reflect this by using the exported name.\n\nimport (\n\t\"golang.org/x/text/language\"\n\t\"golang.org/x/text/message/catalog\"\n)\n\n// MatchLanguage reports the matched tag obtained from language.MatchStrings for\n// the Matcher of the DefaultCatalog.\nfunc MatchLanguage(preferred ...string) language.Tag {\n\tc := DefaultCatalog\n\ttag, _ := language.MatchStrings(c.Matcher(), preferred...)\n\treturn tag\n}\n\n// DefaultCatalog is used by SetString.\nvar DefaultCatalog catalog.Catalog = defaultCatalog\n\nvar defaultCatalog = catalog.NewBuilder()\n\n// SetString calls SetString on the initial default Catalog.\nfunc SetString(tag language.Tag, key string, msg string) error {\n\treturn defaultCatalog.SetString(tag, key, msg)\n}\n\n// Set calls Set on the initial default Catalog.\nfunc Set(tag language.Tag, key string, msg ...catalog.Message) error {\n\treturn defaultCatalog.Set(tag, key, msg...)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/message/doc.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// Package message implements formatted I/O for localized strings with functions\n// analogous to the fmt's print functions. It is a drop-in replacement for fmt.\n//\n// # Localized Formatting\n//\n// A format string can be localized by replacing any of the print functions of\n// fmt with an equivalent call to a Printer.\n//\n//\tp := message.NewPrinter(message.MatchLanguage(\"en\"))\n//\tp.Println(123456.78) // Prints 123,456.78\n//\n//\tp.Printf(\"%d ducks in a row\", 4331) // Prints 4,331 ducks in a row\n//\n//\tp := message.NewPrinter(message.MatchLanguage(\"nl\"))\n//\tp.Printf(\"Hoogte: %.1f meter\", 1244.9) // Prints Hoogte: 1,244.9 meter\n//\n//\tp := message.NewPrinter(message.MatchLanguage(\"bn\"))\n//\tp.Println(123456.78) // Prints ১,২৩,৪৫৬.৭৮\n//\n// Printer currently supports numbers and specialized types for which packages\n// exist in x/text. Other builtin types such as time.Time and slices are\n// planned.\n//\n// Format strings largely have the same meaning as with fmt with the following\n// notable exceptions:\n//   - flag # always resorts to fmt for printing\n//   - verb 'f', 'e', 'g', 'd' use localized formatting unless the '#' flag is\n//     specified.\n//   - verb 'm' inserts a translation of a string argument.\n//\n// See package fmt for more options.\n//\n// # Translation\n//\n// The format strings that are passed to Printf, Sprintf, Fprintf, or Errorf\n// are used as keys to look up translations for the specified languages.\n// More on how these need to be specified below.\n//\n// One can use arbitrary keys to distinguish between otherwise ambiguous\n// strings:\n//\n//\tp := message.NewPrinter(language.English)\n//\tp.Printf(\"archive(noun)\")  // Prints \"archive\"\n//\tp.Printf(\"archive(verb)\")  // Prints \"archive\"\n//\n//\tp := message.NewPrinter(language.German)\n//\tp.Printf(\"archive(noun)\")  // Prints \"Archiv\"\n//\tp.Printf(\"archive(verb)\")  // Prints \"archivieren\"\n//\n// To retain the fallback functionality, use Key:\n//\n//\tp.Printf(message.Key(\"archive(noun)\", \"archive\"))\n//\tp.Printf(message.Key(\"archive(verb)\", \"archive\"))\n//\n// # Translation Pipeline\n//\n// Format strings that contain text need to be translated to support different\n// locales. The first step is to extract strings that need to be translated.\n//\n// 1. Install gotext\n//\n//\tgo get -u golang.org/x/text/cmd/gotext\n//\tgotext -help\n//\n// 2. Mark strings in your source to be translated by using message.Printer,\n// instead of the functions of the fmt package.\n//\n// 3. Extract the strings from your source\n//\n//\tgotext extract\n//\n// The output will be written to the textdata directory.\n//\n// 4. Send the files for translation\n//\n// It is planned to support multiple formats, but for now one will have to\n// rewrite the JSON output to the desired format.\n//\n// 5. Inject translations into program\n//\n// 6. Repeat from 2\n//\n// Right now this has to be done programmatically with calls to Set or\n// SetString. These functions as well as the methods defined in\n// see also package golang.org/x/text/message/catalog can be used to implement\n// either dynamic or static loading of messages.\n//\n// # Plural and Gender Forms\n//\n// Translated messages can vary based on the plural and gender forms of\n// substitution values. In general, it is up to the translators to provide\n// alternative translations for such forms. See the packages in\n// golang.org/x/text/feature and golang.org/x/text/message/catalog for more\n// information.\npackage message\n"
  },
  {
    "path": "vendor/golang.org/x/text/message/format.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 message\n\nimport (\n\t\"bytes\"\n\t\"strconv\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/internal/format\"\n)\n\nconst (\n\tldigits = \"0123456789abcdefx\"\n\tudigits = \"0123456789ABCDEFX\"\n)\n\nconst (\n\tsigned   = true\n\tunsigned = false\n)\n\n// A formatInfo is the raw formatter used by Printf etc.\n// It prints into a buffer that must be set up separately.\ntype formatInfo struct {\n\tbuf *bytes.Buffer\n\n\tformat.Parser\n\n\t// intbuf is large enough to store %b of an int64 with a sign and\n\t// avoids padding at the end of the struct on 32 bit architectures.\n\tintbuf [68]byte\n}\n\nfunc (f *formatInfo) init(buf *bytes.Buffer) {\n\tf.ClearFlags()\n\tf.buf = buf\n}\n\n// writePadding generates n bytes of padding.\nfunc (f *formatInfo) writePadding(n int) {\n\tif n <= 0 { // No padding bytes needed.\n\t\treturn\n\t}\n\tf.buf.Grow(n)\n\t// Decide which byte the padding should be filled with.\n\tpadByte := byte(' ')\n\tif f.Zero {\n\t\tpadByte = byte('0')\n\t}\n\t// Fill padding with padByte.\n\tfor i := 0; i < n; i++ {\n\t\tf.buf.WriteByte(padByte) // TODO: make more efficient.\n\t}\n}\n\n// pad appends b to f.buf, padded on left (!f.minus) or right (f.minus).\nfunc (f *formatInfo) pad(b []byte) {\n\tif !f.WidthPresent || f.Width == 0 {\n\t\tf.buf.Write(b)\n\t\treturn\n\t}\n\twidth := f.Width - utf8.RuneCount(b)\n\tif !f.Minus {\n\t\t// left padding\n\t\tf.writePadding(width)\n\t\tf.buf.Write(b)\n\t} else {\n\t\t// right padding\n\t\tf.buf.Write(b)\n\t\tf.writePadding(width)\n\t}\n}\n\n// padString appends s to f.buf, padded on left (!f.minus) or right (f.minus).\nfunc (f *formatInfo) padString(s string) {\n\tif !f.WidthPresent || f.Width == 0 {\n\t\tf.buf.WriteString(s)\n\t\treturn\n\t}\n\twidth := f.Width - utf8.RuneCountInString(s)\n\tif !f.Minus {\n\t\t// left padding\n\t\tf.writePadding(width)\n\t\tf.buf.WriteString(s)\n\t} else {\n\t\t// right padding\n\t\tf.buf.WriteString(s)\n\t\tf.writePadding(width)\n\t}\n}\n\n// fmt_boolean formats a boolean.\nfunc (f *formatInfo) fmt_boolean(v bool) {\n\tif v {\n\t\tf.padString(\"true\")\n\t} else {\n\t\tf.padString(\"false\")\n\t}\n}\n\n// fmt_unicode formats a uint64 as \"U+0078\" or with f.sharp set as \"U+0078 'x'\".\nfunc (f *formatInfo) fmt_unicode(u uint64) {\n\tbuf := f.intbuf[0:]\n\n\t// With default precision set the maximum needed buf length is 18\n\t// for formatting -1 with %#U (\"U+FFFFFFFFFFFFFFFF\") which fits\n\t// into the already allocated intbuf with a capacity of 68 bytes.\n\tprec := 4\n\tif f.PrecPresent && f.Prec > 4 {\n\t\tprec = f.Prec\n\t\t// Compute space needed for \"U+\" , number, \" '\", character, \"'\".\n\t\twidth := 2 + prec + 2 + utf8.UTFMax + 1\n\t\tif width > len(buf) {\n\t\t\tbuf = make([]byte, width)\n\t\t}\n\t}\n\n\t// Format into buf, ending at buf[i]. Formatting numbers is easier right-to-left.\n\ti := len(buf)\n\n\t// For %#U we want to add a space and a quoted character at the end of the buffer.\n\tif f.Sharp && u <= utf8.MaxRune && strconv.IsPrint(rune(u)) {\n\t\ti--\n\t\tbuf[i] = '\\''\n\t\ti -= utf8.RuneLen(rune(u))\n\t\tutf8.EncodeRune(buf[i:], rune(u))\n\t\ti--\n\t\tbuf[i] = '\\''\n\t\ti--\n\t\tbuf[i] = ' '\n\t}\n\t// Format the Unicode code point u as a hexadecimal number.\n\tfor u >= 16 {\n\t\ti--\n\t\tbuf[i] = udigits[u&0xF]\n\t\tprec--\n\t\tu >>= 4\n\t}\n\ti--\n\tbuf[i] = udigits[u]\n\tprec--\n\t// Add zeros in front of the number until requested precision is reached.\n\tfor prec > 0 {\n\t\ti--\n\t\tbuf[i] = '0'\n\t\tprec--\n\t}\n\t// Add a leading \"U+\".\n\ti--\n\tbuf[i] = '+'\n\ti--\n\tbuf[i] = 'U'\n\n\toldZero := f.Zero\n\tf.Zero = false\n\tf.pad(buf[i:])\n\tf.Zero = oldZero\n}\n\n// fmt_integer formats signed and unsigned integers.\nfunc (f *formatInfo) fmt_integer(u uint64, base int, isSigned bool, digits string) {\n\tnegative := isSigned && int64(u) < 0\n\tif negative {\n\t\tu = -u\n\t}\n\n\tbuf := f.intbuf[0:]\n\t// The already allocated f.intbuf with a capacity of 68 bytes\n\t// is large enough for integer formatting when no precision or width is set.\n\tif f.WidthPresent || f.PrecPresent {\n\t\t// Account 3 extra bytes for possible addition of a sign and \"0x\".\n\t\twidth := 3 + f.Width + f.Prec // wid and prec are always positive.\n\t\tif width > len(buf) {\n\t\t\t// We're going to need a bigger boat.\n\t\t\tbuf = make([]byte, width)\n\t\t}\n\t}\n\n\t// Two ways to ask for extra leading zero digits: %.3d or %03d.\n\t// If both are specified the f.zero flag is ignored and\n\t// padding with spaces is used instead.\n\tprec := 0\n\tif f.PrecPresent {\n\t\tprec = f.Prec\n\t\t// Precision of 0 and value of 0 means \"print nothing\" but padding.\n\t\tif prec == 0 && u == 0 {\n\t\t\toldZero := f.Zero\n\t\t\tf.Zero = false\n\t\t\tf.writePadding(f.Width)\n\t\t\tf.Zero = oldZero\n\t\t\treturn\n\t\t}\n\t} else if f.Zero && f.WidthPresent {\n\t\tprec = f.Width\n\t\tif negative || f.Plus || f.Space {\n\t\t\tprec-- // leave room for sign\n\t\t}\n\t}\n\n\t// Because printing is easier right-to-left: format u into buf, ending at buf[i].\n\t// We could make things marginally faster by splitting the 32-bit case out\n\t// into a separate block but it's not worth the duplication, so u has 64 bits.\n\ti := len(buf)\n\t// Use constants for the division and modulo for more efficient code.\n\t// Switch cases ordered by popularity.\n\tswitch base {\n\tcase 10:\n\t\tfor u >= 10 {\n\t\t\ti--\n\t\t\tnext := u / 10\n\t\t\tbuf[i] = byte('0' + u - next*10)\n\t\t\tu = next\n\t\t}\n\tcase 16:\n\t\tfor u >= 16 {\n\t\t\ti--\n\t\t\tbuf[i] = digits[u&0xF]\n\t\t\tu >>= 4\n\t\t}\n\tcase 8:\n\t\tfor u >= 8 {\n\t\t\ti--\n\t\t\tbuf[i] = byte('0' + u&7)\n\t\t\tu >>= 3\n\t\t}\n\tcase 2:\n\t\tfor u >= 2 {\n\t\t\ti--\n\t\t\tbuf[i] = byte('0' + u&1)\n\t\t\tu >>= 1\n\t\t}\n\tdefault:\n\t\tpanic(\"fmt: unknown base; can't happen\")\n\t}\n\ti--\n\tbuf[i] = digits[u]\n\tfor i > 0 && prec > len(buf)-i {\n\t\ti--\n\t\tbuf[i] = '0'\n\t}\n\n\t// Various prefixes: 0x, -, etc.\n\tif f.Sharp {\n\t\tswitch base {\n\t\tcase 8:\n\t\t\tif buf[i] != '0' {\n\t\t\t\ti--\n\t\t\t\tbuf[i] = '0'\n\t\t\t}\n\t\tcase 16:\n\t\t\t// Add a leading 0x or 0X.\n\t\t\ti--\n\t\t\tbuf[i] = digits[16]\n\t\t\ti--\n\t\t\tbuf[i] = '0'\n\t\t}\n\t}\n\n\tif negative {\n\t\ti--\n\t\tbuf[i] = '-'\n\t} else if f.Plus {\n\t\ti--\n\t\tbuf[i] = '+'\n\t} else if f.Space {\n\t\ti--\n\t\tbuf[i] = ' '\n\t}\n\n\t// Left padding with zeros has already been handled like precision earlier\n\t// or the f.zero flag is ignored due to an explicitly set precision.\n\toldZero := f.Zero\n\tf.Zero = false\n\tf.pad(buf[i:])\n\tf.Zero = oldZero\n}\n\n// truncate truncates the string to the specified precision, if present.\nfunc (f *formatInfo) truncate(s string) string {\n\tif f.PrecPresent {\n\t\tn := f.Prec\n\t\tfor i := range s {\n\t\t\tn--\n\t\t\tif n < 0 {\n\t\t\t\treturn s[:i]\n\t\t\t}\n\t\t}\n\t}\n\treturn s\n}\n\n// fmt_s formats a string.\nfunc (f *formatInfo) fmt_s(s string) {\n\ts = f.truncate(s)\n\tf.padString(s)\n}\n\n// fmt_sbx formats a string or byte slice as a hexadecimal encoding of its bytes.\nfunc (f *formatInfo) fmt_sbx(s string, b []byte, digits string) {\n\tlength := len(b)\n\tif b == nil {\n\t\t// No byte slice present. Assume string s should be encoded.\n\t\tlength = len(s)\n\t}\n\t// Set length to not process more bytes than the precision demands.\n\tif f.PrecPresent && f.Prec < length {\n\t\tlength = f.Prec\n\t}\n\t// Compute width of the encoding taking into account the f.sharp and f.space flag.\n\twidth := 2 * length\n\tif width > 0 {\n\t\tif f.Space {\n\t\t\t// Each element encoded by two hexadecimals will get a leading 0x or 0X.\n\t\t\tif f.Sharp {\n\t\t\t\twidth *= 2\n\t\t\t}\n\t\t\t// Elements will be separated by a space.\n\t\t\twidth += length - 1\n\t\t} else if f.Sharp {\n\t\t\t// Only a leading 0x or 0X will be added for the whole string.\n\t\t\twidth += 2\n\t\t}\n\t} else { // The byte slice or string that should be encoded is empty.\n\t\tif f.WidthPresent {\n\t\t\tf.writePadding(f.Width)\n\t\t}\n\t\treturn\n\t}\n\t// Handle padding to the left.\n\tif f.WidthPresent && f.Width > width && !f.Minus {\n\t\tf.writePadding(f.Width - width)\n\t}\n\t// Write the encoding directly into the output buffer.\n\tbuf := f.buf\n\tif f.Sharp {\n\t\t// Add leading 0x or 0X.\n\t\tbuf.WriteByte('0')\n\t\tbuf.WriteByte(digits[16])\n\t}\n\tvar c byte\n\tfor i := 0; i < length; i++ {\n\t\tif f.Space && i > 0 {\n\t\t\t// Separate elements with a space.\n\t\t\tbuf.WriteByte(' ')\n\t\t\tif f.Sharp {\n\t\t\t\t// Add leading 0x or 0X for each element.\n\t\t\t\tbuf.WriteByte('0')\n\t\t\t\tbuf.WriteByte(digits[16])\n\t\t\t}\n\t\t}\n\t\tif b != nil {\n\t\t\tc = b[i] // Take a byte from the input byte slice.\n\t\t} else {\n\t\t\tc = s[i] // Take a byte from the input string.\n\t\t}\n\t\t// Encode each byte as two hexadecimal digits.\n\t\tbuf.WriteByte(digits[c>>4])\n\t\tbuf.WriteByte(digits[c&0xF])\n\t}\n\t// Handle padding to the right.\n\tif f.WidthPresent && f.Width > width && f.Minus {\n\t\tf.writePadding(f.Width - width)\n\t}\n}\n\n// fmt_sx formats a string as a hexadecimal encoding of its bytes.\nfunc (f *formatInfo) fmt_sx(s, digits string) {\n\tf.fmt_sbx(s, nil, digits)\n}\n\n// fmt_bx formats a byte slice as a hexadecimal encoding of its bytes.\nfunc (f *formatInfo) fmt_bx(b []byte, digits string) {\n\tf.fmt_sbx(\"\", b, digits)\n}\n\n// fmt_q formats a string as a double-quoted, escaped Go string constant.\n// If f.sharp is set a raw (backquoted) string may be returned instead\n// if the string does not contain any control characters other than tab.\nfunc (f *formatInfo) fmt_q(s string) {\n\ts = f.truncate(s)\n\tif f.Sharp && strconv.CanBackquote(s) {\n\t\tf.padString(\"`\" + s + \"`\")\n\t\treturn\n\t}\n\tbuf := f.intbuf[:0]\n\tif f.Plus {\n\t\tf.pad(strconv.AppendQuoteToASCII(buf, s))\n\t} else {\n\t\tf.pad(strconv.AppendQuote(buf, s))\n\t}\n}\n\n// fmt_c formats an integer as a Unicode character.\n// If the character is not valid Unicode, it will print '\\ufffd'.\nfunc (f *formatInfo) fmt_c(c uint64) {\n\tr := rune(c)\n\tif c > utf8.MaxRune {\n\t\tr = utf8.RuneError\n\t}\n\tbuf := f.intbuf[:0]\n\tw := utf8.EncodeRune(buf[:utf8.UTFMax], r)\n\tf.pad(buf[:w])\n}\n\n// fmt_qc formats an integer as a single-quoted, escaped Go character constant.\n// If the character is not valid Unicode, it will print '\\ufffd'.\nfunc (f *formatInfo) fmt_qc(c uint64) {\n\tr := rune(c)\n\tif c > utf8.MaxRune {\n\t\tr = utf8.RuneError\n\t}\n\tbuf := f.intbuf[:0]\n\tif f.Plus {\n\t\tf.pad(strconv.AppendQuoteRuneToASCII(buf, r))\n\t} else {\n\t\tf.pad(strconv.AppendQuoteRune(buf, r))\n\t}\n}\n\n// fmt_float formats a float64. It assumes that verb is a valid format specifier\n// for strconv.AppendFloat and therefore fits into a byte.\nfunc (f *formatInfo) fmt_float(v float64, size int, verb rune, prec int) {\n\t// Explicit precision in format specifier overrules default precision.\n\tif f.PrecPresent {\n\t\tprec = f.Prec\n\t}\n\t// Format number, reserving space for leading + sign if needed.\n\tnum := strconv.AppendFloat(f.intbuf[:1], v, byte(verb), prec, size)\n\tif num[1] == '-' || num[1] == '+' {\n\t\tnum = num[1:]\n\t} else {\n\t\tnum[0] = '+'\n\t}\n\t// f.space means to add a leading space instead of a \"+\" sign unless\n\t// the sign is explicitly asked for by f.plus.\n\tif f.Space && num[0] == '+' && !f.Plus {\n\t\tnum[0] = ' '\n\t}\n\t// Special handling for infinities and NaN,\n\t// which don't look like a number so shouldn't be padded with zeros.\n\tif num[1] == 'I' || num[1] == 'N' {\n\t\toldZero := f.Zero\n\t\tf.Zero = false\n\t\t// Remove sign before NaN if not asked for.\n\t\tif num[1] == 'N' && !f.Space && !f.Plus {\n\t\t\tnum = num[1:]\n\t\t}\n\t\tf.pad(num)\n\t\tf.Zero = oldZero\n\t\treturn\n\t}\n\t// The sharp flag forces printing a decimal point for non-binary formats\n\t// and retains trailing zeros, which we may need to restore.\n\tif f.Sharp && verb != 'b' {\n\t\tdigits := 0\n\t\tswitch verb {\n\t\tcase 'v', 'g', 'G':\n\t\t\tdigits = prec\n\t\t\t// If no precision is set explicitly use a precision of 6.\n\t\t\tif digits == -1 {\n\t\t\t\tdigits = 6\n\t\t\t}\n\t\t}\n\n\t\t// Buffer pre-allocated with enough room for\n\t\t// exponent notations of the form \"e+123\".\n\t\tvar tailBuf [5]byte\n\t\ttail := tailBuf[:0]\n\n\t\thasDecimalPoint := false\n\t\t// Starting from i = 1 to skip sign at num[0].\n\t\tfor i := 1; i < len(num); i++ {\n\t\t\tswitch num[i] {\n\t\t\tcase '.':\n\t\t\t\thasDecimalPoint = true\n\t\t\tcase 'e', 'E':\n\t\t\t\ttail = append(tail, num[i:]...)\n\t\t\t\tnum = num[:i]\n\t\t\tdefault:\n\t\t\t\tdigits--\n\t\t\t}\n\t\t}\n\t\tif !hasDecimalPoint {\n\t\t\tnum = append(num, '.')\n\t\t}\n\t\tfor digits > 0 {\n\t\t\tnum = append(num, '0')\n\t\t\tdigits--\n\t\t}\n\t\tnum = append(num, tail...)\n\t}\n\t// We want a sign if asked for and if the sign is not positive.\n\tif f.Plus || num[0] != '+' {\n\t\t// If we're zero padding to the left we want the sign before the leading zeros.\n\t\t// Achieve this by writing the sign out and then padding the unsigned number.\n\t\tif f.Zero && f.WidthPresent && f.Width > len(num) {\n\t\t\tf.buf.WriteByte(num[0])\n\t\t\tf.writePadding(f.Width - len(num))\n\t\t\tf.buf.Write(num[1:])\n\t\t\treturn\n\t\t}\n\t\tf.pad(num)\n\t\treturn\n\t}\n\t// No sign to show and the number is positive; just print the unsigned number.\n\tf.pad(num[1:])\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/message/message.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 message // import \"golang.org/x/text/message\"\n\nimport (\n\t\"io\"\n\t\"os\"\n\n\t// Include features to facilitate generated catalogs.\n\t_ \"golang.org/x/text/feature/plural\"\n\n\t\"golang.org/x/text/internal/number\"\n\t\"golang.org/x/text/language\"\n\t\"golang.org/x/text/message/catalog\"\n)\n\n// A Printer implements language-specific formatted I/O analogous to the fmt\n// package.\ntype Printer struct {\n\t// the language\n\ttag language.Tag\n\n\ttoDecimal    number.Formatter\n\ttoScientific number.Formatter\n\n\tcat catalog.Catalog\n}\n\ntype options struct {\n\tcat catalog.Catalog\n\t// TODO:\n\t// - allow %s to print integers in written form (tables are likely too large\n\t//   to enable this by default).\n\t// - list behavior\n\t//\n}\n\n// An Option defines an option of a Printer.\ntype Option func(o *options)\n\n// Catalog defines the catalog to be used.\nfunc Catalog(c catalog.Catalog) Option {\n\treturn func(o *options) { o.cat = c }\n}\n\n// NewPrinter returns a Printer that formats messages tailored to language t.\nfunc NewPrinter(t language.Tag, opts ...Option) *Printer {\n\toptions := &options{\n\t\tcat: DefaultCatalog,\n\t}\n\tfor _, o := range opts {\n\t\to(options)\n\t}\n\tp := &Printer{\n\t\ttag: t,\n\t\tcat: options.cat,\n\t}\n\tp.toDecimal.InitDecimal(t)\n\tp.toScientific.InitScientific(t)\n\treturn p\n}\n\n// Sprint is like fmt.Sprint, but using language-specific formatting.\nfunc (p *Printer) Sprint(a ...interface{}) string {\n\tpp := newPrinter(p)\n\tpp.doPrint(a)\n\ts := pp.String()\n\tpp.free()\n\treturn s\n}\n\n// Fprint is like fmt.Fprint, but using language-specific formatting.\nfunc (p *Printer) Fprint(w io.Writer, a ...interface{}) (n int, err error) {\n\tpp := newPrinter(p)\n\tpp.doPrint(a)\n\tn64, err := io.Copy(w, &pp.Buffer)\n\tpp.free()\n\treturn int(n64), err\n}\n\n// Print is like fmt.Print, but using language-specific formatting.\nfunc (p *Printer) Print(a ...interface{}) (n int, err error) {\n\treturn p.Fprint(os.Stdout, a...)\n}\n\n// Sprintln is like fmt.Sprintln, but using language-specific formatting.\nfunc (p *Printer) Sprintln(a ...interface{}) string {\n\tpp := newPrinter(p)\n\tpp.doPrintln(a)\n\ts := pp.String()\n\tpp.free()\n\treturn s\n}\n\n// Fprintln is like fmt.Fprintln, but using language-specific formatting.\nfunc (p *Printer) Fprintln(w io.Writer, a ...interface{}) (n int, err error) {\n\tpp := newPrinter(p)\n\tpp.doPrintln(a)\n\tn64, err := io.Copy(w, &pp.Buffer)\n\tpp.free()\n\treturn int(n64), err\n}\n\n// Println is like fmt.Println, but using language-specific formatting.\nfunc (p *Printer) Println(a ...interface{}) (n int, err error) {\n\treturn p.Fprintln(os.Stdout, a...)\n}\n\n// Sprintf is like fmt.Sprintf, but using language-specific formatting.\nfunc (p *Printer) Sprintf(key Reference, a ...interface{}) string {\n\tpp := newPrinter(p)\n\tlookupAndFormat(pp, key, a)\n\ts := pp.String()\n\tpp.free()\n\treturn s\n}\n\n// Fprintf is like fmt.Fprintf, but using language-specific formatting.\nfunc (p *Printer) Fprintf(w io.Writer, key Reference, a ...interface{}) (n int, err error) {\n\tpp := newPrinter(p)\n\tlookupAndFormat(pp, key, a)\n\tn, err = w.Write(pp.Bytes())\n\tpp.free()\n\treturn n, err\n\n}\n\n// Printf is like fmt.Printf, but using language-specific formatting.\nfunc (p *Printer) Printf(key Reference, a ...interface{}) (n int, err error) {\n\tpp := newPrinter(p)\n\tlookupAndFormat(pp, key, a)\n\tn, err = os.Stdout.Write(pp.Bytes())\n\tpp.free()\n\treturn n, err\n}\n\nfunc lookupAndFormat(p *printer, r Reference, a []interface{}) {\n\tp.fmt.Reset(a)\n\tswitch v := r.(type) {\n\tcase string:\n\t\tif p.catContext.Execute(v) == catalog.ErrNotFound {\n\t\t\tp.Render(v)\n\t\t\treturn\n\t\t}\n\tcase key:\n\t\tif p.catContext.Execute(v.id) == catalog.ErrNotFound &&\n\t\t\tp.catContext.Execute(v.fallback) == catalog.ErrNotFound {\n\t\t\tp.Render(v.fallback)\n\t\t\treturn\n\t\t}\n\tdefault:\n\t\tpanic(\"key argument is not a Reference\")\n\t}\n}\n\ntype rawPrinter struct {\n\tp *printer\n}\n\nfunc (p rawPrinter) Render(msg string)     { p.p.WriteString(msg) }\nfunc (p rawPrinter) Arg(i int) interface{} { return nil }\n\n// Arg implements catmsg.Renderer.\nfunc (p *printer) Arg(i int) interface{} { // TODO, also return \"ok\" bool\n\ti--\n\tif uint(i) < uint(len(p.fmt.Args)) {\n\t\treturn p.fmt.Args[i]\n\t}\n\treturn nil\n}\n\n// Render implements catmsg.Renderer.\nfunc (p *printer) Render(msg string) {\n\tp.doPrintf(msg)\n}\n\n// A Reference is a string or a message reference.\ntype Reference interface {\n\t// TODO: also allow []string\n}\n\n// Key creates a message Reference for a message where the given id is used for\n// message lookup and the fallback is returned when no matches are found.\nfunc Key(id string, fallback string) Reference {\n\treturn key{id, fallback}\n}\n\ntype key struct {\n\tid, fallback string\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/message/print.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 message\n\nimport (\n\t\"bytes\"\n\t\"fmt\" // TODO: consider copying interfaces from package fmt to avoid dependency.\n\t\"math\"\n\t\"reflect\"\n\t\"sync\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/internal/format\"\n\t\"golang.org/x/text/internal/number\"\n\t\"golang.org/x/text/language\"\n\t\"golang.org/x/text/message/catalog\"\n)\n\n// Strings for use with buffer.WriteString.\n// This is less overhead than using buffer.Write with byte arrays.\nconst (\n\tcommaSpaceString  = \", \"\n\tnilAngleString    = \"<nil>\"\n\tnilParenString    = \"(nil)\"\n\tnilString         = \"nil\"\n\tmapString         = \"map[\"\n\tpercentBangString = \"%!\"\n\tmissingString     = \"(MISSING)\"\n\tbadIndexString    = \"(BADINDEX)\"\n\tpanicString       = \"(PANIC=\"\n\textraString       = \"%!(EXTRA \"\n\tbadWidthString    = \"%!(BADWIDTH)\"\n\tbadPrecString     = \"%!(BADPREC)\"\n\tnoVerbString      = \"%!(NOVERB)\"\n\n\tinvReflectString = \"<invalid reflect.Value>\"\n)\n\nvar printerPool = sync.Pool{\n\tNew: func() interface{} { return new(printer) },\n}\n\n// newPrinter allocates a new printer struct or grabs a cached one.\nfunc newPrinter(pp *Printer) *printer {\n\tp := printerPool.Get().(*printer)\n\tp.Printer = *pp\n\t// TODO: cache most of the following call.\n\tp.catContext = pp.cat.Context(pp.tag, p)\n\n\tp.panicking = false\n\tp.erroring = false\n\tp.fmt.init(&p.Buffer)\n\treturn p\n}\n\n// free saves used printer structs in printerFree; avoids an allocation per invocation.\nfunc (p *printer) free() {\n\tp.Buffer.Reset()\n\tp.arg = nil\n\tp.value = reflect.Value{}\n\tprinterPool.Put(p)\n}\n\n// printer is used to store a printer's state.\n// It implements \"golang.org/x/text/internal/format\".State.\ntype printer struct {\n\tPrinter\n\n\t// the context for looking up message translations\n\tcatContext *catalog.Context\n\n\t// buffer for accumulating output.\n\tbytes.Buffer\n\n\t// arg holds the current item, as an interface{}.\n\targ interface{}\n\t// value is used instead of arg for reflect values.\n\tvalue reflect.Value\n\n\t// fmt is used to format basic items such as integers or strings.\n\tfmt formatInfo\n\n\t// panicking is set by catchPanic to avoid infinite panic, recover, panic, ... recursion.\n\tpanicking bool\n\t// erroring is set when printing an error string to guard against calling handleMethods.\n\terroring bool\n}\n\n// Language implements \"golang.org/x/text/internal/format\".State.\nfunc (p *printer) Language() language.Tag { return p.tag }\n\nfunc (p *printer) Width() (wid int, ok bool) { return p.fmt.Width, p.fmt.WidthPresent }\n\nfunc (p *printer) Precision() (prec int, ok bool) { return p.fmt.Prec, p.fmt.PrecPresent }\n\nfunc (p *printer) Flag(b int) bool {\n\tswitch b {\n\tcase '-':\n\t\treturn p.fmt.Minus\n\tcase '+':\n\t\treturn p.fmt.Plus || p.fmt.PlusV\n\tcase '#':\n\t\treturn p.fmt.Sharp || p.fmt.SharpV\n\tcase ' ':\n\t\treturn p.fmt.Space\n\tcase '0':\n\t\treturn p.fmt.Zero\n\t}\n\treturn false\n}\n\n// getField gets the i'th field of the struct value.\n// If the field is itself is an interface, return a value for\n// the thing inside the interface, not the interface itself.\nfunc getField(v reflect.Value, i int) reflect.Value {\n\tval := v.Field(i)\n\tif val.Kind() == reflect.Interface && !val.IsNil() {\n\t\tval = val.Elem()\n\t}\n\treturn val\n}\n\nfunc (p *printer) unknownType(v reflect.Value) {\n\tif !v.IsValid() {\n\t\tp.WriteString(nilAngleString)\n\t\treturn\n\t}\n\tp.WriteByte('?')\n\tp.WriteString(v.Type().String())\n\tp.WriteByte('?')\n}\n\nfunc (p *printer) badVerb(verb rune) {\n\tp.erroring = true\n\tp.WriteString(percentBangString)\n\tp.WriteRune(verb)\n\tp.WriteByte('(')\n\tswitch {\n\tcase p.arg != nil:\n\t\tp.WriteString(reflect.TypeOf(p.arg).String())\n\t\tp.WriteByte('=')\n\t\tp.printArg(p.arg, 'v')\n\tcase p.value.IsValid():\n\t\tp.WriteString(p.value.Type().String())\n\t\tp.WriteByte('=')\n\t\tp.printValue(p.value, 'v', 0)\n\tdefault:\n\t\tp.WriteString(nilAngleString)\n\t}\n\tp.WriteByte(')')\n\tp.erroring = false\n}\n\nfunc (p *printer) fmtBool(v bool, verb rune) {\n\tswitch verb {\n\tcase 't', 'v':\n\t\tp.fmt.fmt_boolean(v)\n\tdefault:\n\t\tp.badVerb(verb)\n\t}\n}\n\n// fmt0x64 formats a uint64 in hexadecimal and prefixes it with 0x or\n// not, as requested, by temporarily setting the sharp flag.\nfunc (p *printer) fmt0x64(v uint64, leading0x bool) {\n\tsharp := p.fmt.Sharp\n\tp.fmt.Sharp = leading0x\n\tp.fmt.fmt_integer(v, 16, unsigned, ldigits)\n\tp.fmt.Sharp = sharp\n}\n\n// fmtInteger formats a signed or unsigned integer.\nfunc (p *printer) fmtInteger(v uint64, isSigned bool, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif p.fmt.SharpV && !isSigned {\n\t\t\tp.fmt0x64(v, true)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 'd':\n\t\tif p.fmt.Sharp || p.fmt.SharpV {\n\t\t\tp.fmt.fmt_integer(v, 10, isSigned, ldigits)\n\t\t} else {\n\t\t\tp.fmtDecimalInt(v, isSigned)\n\t\t}\n\tcase 'b':\n\t\tp.fmt.fmt_integer(v, 2, isSigned, ldigits)\n\tcase 'o':\n\t\tp.fmt.fmt_integer(v, 8, isSigned, ldigits)\n\tcase 'x':\n\t\tp.fmt.fmt_integer(v, 16, isSigned, ldigits)\n\tcase 'X':\n\t\tp.fmt.fmt_integer(v, 16, isSigned, udigits)\n\tcase 'c':\n\t\tp.fmt.fmt_c(v)\n\tcase 'q':\n\t\tif v <= utf8.MaxRune {\n\t\t\tp.fmt.fmt_qc(v)\n\t\t} else {\n\t\t\tp.badVerb(verb)\n\t\t}\n\tcase 'U':\n\t\tp.fmt.fmt_unicode(v)\n\tdefault:\n\t\tp.badVerb(verb)\n\t}\n}\n\n// fmtFloat formats a float. The default precision for each verb\n// is specified as last argument in the call to fmt_float.\nfunc (p *printer) fmtFloat(v float64, size int, verb rune) {\n\tswitch verb {\n\tcase 'b':\n\t\tp.fmt.fmt_float(v, size, verb, -1)\n\tcase 'v':\n\t\tverb = 'g'\n\t\tfallthrough\n\tcase 'g', 'G':\n\t\tif p.fmt.Sharp || p.fmt.SharpV {\n\t\t\tp.fmt.fmt_float(v, size, verb, -1)\n\t\t} else {\n\t\t\tp.fmtVariableFloat(v, size)\n\t\t}\n\tcase 'e', 'E':\n\t\tif p.fmt.Sharp || p.fmt.SharpV {\n\t\t\tp.fmt.fmt_float(v, size, verb, 6)\n\t\t} else {\n\t\t\tp.fmtScientific(v, size, 6)\n\t\t}\n\tcase 'f', 'F':\n\t\tif p.fmt.Sharp || p.fmt.SharpV {\n\t\t\tp.fmt.fmt_float(v, size, verb, 6)\n\t\t} else {\n\t\t\tp.fmtDecimalFloat(v, size, 6)\n\t\t}\n\tdefault:\n\t\tp.badVerb(verb)\n\t}\n}\n\nfunc (p *printer) setFlags(f *number.Formatter) {\n\tf.Flags &^= number.ElideSign\n\tif p.fmt.Plus || p.fmt.Space {\n\t\tf.Flags |= number.AlwaysSign\n\t\tif !p.fmt.Plus {\n\t\t\tf.Flags |= number.ElideSign\n\t\t}\n\t} else {\n\t\tf.Flags &^= number.AlwaysSign\n\t}\n}\n\nfunc (p *printer) updatePadding(f *number.Formatter) {\n\tf.Flags &^= number.PadMask\n\tif p.fmt.Minus {\n\t\tf.Flags |= number.PadAfterSuffix\n\t} else {\n\t\tf.Flags |= number.PadBeforePrefix\n\t}\n\tf.PadRune = ' '\n\tf.FormatWidth = uint16(p.fmt.Width)\n}\n\nfunc (p *printer) initDecimal(minFrac, maxFrac int) {\n\tf := &p.toDecimal\n\tf.MinIntegerDigits = 1\n\tf.MaxIntegerDigits = 0\n\tf.MinFractionDigits = uint8(minFrac)\n\tf.MaxFractionDigits = int16(maxFrac)\n\tp.setFlags(f)\n\tf.PadRune = 0\n\tif p.fmt.WidthPresent {\n\t\tif p.fmt.Zero {\n\t\t\twid := p.fmt.Width\n\t\t\t// Use significant integers for this.\n\t\t\t// TODO: this is not the same as width, but so be it.\n\t\t\tif f.MinFractionDigits > 0 {\n\t\t\t\twid -= 1 + int(f.MinFractionDigits)\n\t\t\t}\n\t\t\tif p.fmt.Plus || p.fmt.Space {\n\t\t\t\twid--\n\t\t\t}\n\t\t\tif wid > 0 && wid > int(f.MinIntegerDigits) {\n\t\t\t\tf.MinIntegerDigits = uint8(wid)\n\t\t\t}\n\t\t}\n\t\tp.updatePadding(f)\n\t}\n}\n\nfunc (p *printer) initScientific(minFrac, maxFrac int) {\n\tf := &p.toScientific\n\tif maxFrac < 0 {\n\t\tf.SetPrecision(maxFrac)\n\t} else {\n\t\tf.SetPrecision(maxFrac + 1)\n\t\tf.MinFractionDigits = uint8(minFrac)\n\t\tf.MaxFractionDigits = int16(maxFrac)\n\t}\n\tf.MinExponentDigits = 2\n\tp.setFlags(f)\n\tf.PadRune = 0\n\tif p.fmt.WidthPresent {\n\t\tf.Flags &^= number.PadMask\n\t\tif p.fmt.Zero {\n\t\t\tf.PadRune = f.Digit(0)\n\t\t\tf.Flags |= number.PadAfterPrefix\n\t\t} else {\n\t\t\tf.PadRune = ' '\n\t\t\tf.Flags |= number.PadBeforePrefix\n\t\t}\n\t\tp.updatePadding(f)\n\t}\n}\n\nfunc (p *printer) fmtDecimalInt(v uint64, isSigned bool) {\n\tvar d number.Decimal\n\n\tf := &p.toDecimal\n\tif p.fmt.PrecPresent {\n\t\tp.setFlags(f)\n\t\tf.MinIntegerDigits = uint8(p.fmt.Prec)\n\t\tf.MaxIntegerDigits = 0\n\t\tf.MinFractionDigits = 0\n\t\tf.MaxFractionDigits = 0\n\t\tif p.fmt.WidthPresent {\n\t\t\tp.updatePadding(f)\n\t\t}\n\t} else {\n\t\tp.initDecimal(0, 0)\n\t}\n\td.ConvertInt(p.toDecimal.RoundingContext, isSigned, v)\n\n\tout := p.toDecimal.Format([]byte(nil), &d)\n\tp.Buffer.Write(out)\n}\n\nfunc (p *printer) fmtDecimalFloat(v float64, size, prec int) {\n\tvar d number.Decimal\n\tif p.fmt.PrecPresent {\n\t\tprec = p.fmt.Prec\n\t}\n\tp.initDecimal(prec, prec)\n\td.ConvertFloat(p.toDecimal.RoundingContext, v, size)\n\n\tout := p.toDecimal.Format([]byte(nil), &d)\n\tp.Buffer.Write(out)\n}\n\nfunc (p *printer) fmtVariableFloat(v float64, size int) {\n\tprec := -1\n\tif p.fmt.PrecPresent {\n\t\tprec = p.fmt.Prec\n\t}\n\tvar d number.Decimal\n\tp.initScientific(0, prec)\n\td.ConvertFloat(p.toScientific.RoundingContext, v, size)\n\n\t// Copy logic of 'g' formatting from strconv. It is simplified a bit as\n\t// we don't have to mind having prec > len(d.Digits).\n\tshortest := prec < 0\n\tePrec := prec\n\tif shortest {\n\t\tprec = len(d.Digits)\n\t\tePrec = 6\n\t} else if prec == 0 {\n\t\tprec = 1\n\t\tePrec = 1\n\t}\n\texp := int(d.Exp) - 1\n\tif exp < -4 || exp >= ePrec {\n\t\tp.initScientific(0, prec)\n\n\t\tout := p.toScientific.Format([]byte(nil), &d)\n\t\tp.Buffer.Write(out)\n\t} else {\n\t\tif prec > int(d.Exp) {\n\t\t\tprec = len(d.Digits)\n\t\t}\n\t\tif prec -= int(d.Exp); prec < 0 {\n\t\t\tprec = 0\n\t\t}\n\t\tp.initDecimal(0, prec)\n\n\t\tout := p.toDecimal.Format([]byte(nil), &d)\n\t\tp.Buffer.Write(out)\n\t}\n}\n\nfunc (p *printer) fmtScientific(v float64, size, prec int) {\n\tvar d number.Decimal\n\tif p.fmt.PrecPresent {\n\t\tprec = p.fmt.Prec\n\t}\n\tp.initScientific(prec, prec)\n\trc := p.toScientific.RoundingContext\n\td.ConvertFloat(rc, v, size)\n\n\tout := p.toScientific.Format([]byte(nil), &d)\n\tp.Buffer.Write(out)\n\n}\n\n// fmtComplex formats a complex number v with\n// r = real(v) and j = imag(v) as (r+ji) using\n// fmtFloat for r and j formatting.\nfunc (p *printer) fmtComplex(v complex128, size int, verb rune) {\n\t// Make sure any unsupported verbs are found before the\n\t// calls to fmtFloat to not generate an incorrect error string.\n\tswitch verb {\n\tcase 'v', 'b', 'g', 'G', 'f', 'F', 'e', 'E':\n\t\tp.WriteByte('(')\n\t\tp.fmtFloat(real(v), size/2, verb)\n\t\t// Imaginary part always has a sign.\n\t\tif math.IsNaN(imag(v)) {\n\t\t\t// By CLDR's rules, NaNs do not use patterns or signs. As this code\n\t\t\t// relies on AlwaysSign working for imaginary parts, we need to\n\t\t\t// manually handle NaNs.\n\t\t\tf := &p.toScientific\n\t\t\tp.setFlags(f)\n\t\t\tp.updatePadding(f)\n\t\t\tp.setFlags(f)\n\t\t\tnan := f.Symbol(number.SymNan)\n\t\t\textra := 0\n\t\t\tif w, ok := p.Width(); ok {\n\t\t\t\textra = w - utf8.RuneCountInString(nan) - 1\n\t\t\t}\n\t\t\tif f.Flags&number.PadAfterNumber == 0 {\n\t\t\t\tfor ; extra > 0; extra-- {\n\t\t\t\t\tp.WriteRune(f.PadRune)\n\t\t\t\t}\n\t\t\t}\n\t\t\tp.WriteString(f.Symbol(number.SymPlusSign))\n\t\t\tp.WriteString(nan)\n\t\t\tfor ; extra > 0; extra-- {\n\t\t\t\tp.WriteRune(f.PadRune)\n\t\t\t}\n\t\t\tp.WriteString(\"i)\")\n\t\t\treturn\n\t\t}\n\t\toldPlus := p.fmt.Plus\n\t\tp.fmt.Plus = true\n\t\tp.fmtFloat(imag(v), size/2, verb)\n\t\tp.WriteString(\"i)\") // TODO: use symbol?\n\t\tp.fmt.Plus = oldPlus\n\tdefault:\n\t\tp.badVerb(verb)\n\t}\n}\n\nfunc (p *printer) fmtString(v string, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif p.fmt.SharpV {\n\t\t\tp.fmt.fmt_q(v)\n\t\t} else {\n\t\t\tp.fmt.fmt_s(v)\n\t\t}\n\tcase 's':\n\t\tp.fmt.fmt_s(v)\n\tcase 'x':\n\t\tp.fmt.fmt_sx(v, ldigits)\n\tcase 'X':\n\t\tp.fmt.fmt_sx(v, udigits)\n\tcase 'q':\n\t\tp.fmt.fmt_q(v)\n\tcase 'm':\n\t\tctx := p.cat.Context(p.tag, rawPrinter{p})\n\t\tif ctx.Execute(v) == catalog.ErrNotFound {\n\t\t\tp.WriteString(v)\n\t\t}\n\tdefault:\n\t\tp.badVerb(verb)\n\t}\n}\n\nfunc (p *printer) fmtBytes(v []byte, verb rune, typeString string) {\n\tswitch verb {\n\tcase 'v', 'd':\n\t\tif p.fmt.SharpV {\n\t\t\tp.WriteString(typeString)\n\t\t\tif v == nil {\n\t\t\t\tp.WriteString(nilParenString)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tp.WriteByte('{')\n\t\t\tfor i, c := range v {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tp.WriteString(commaSpaceString)\n\t\t\t\t}\n\t\t\t\tp.fmt0x64(uint64(c), true)\n\t\t\t}\n\t\t\tp.WriteByte('}')\n\t\t} else {\n\t\t\tp.WriteByte('[')\n\t\t\tfor i, c := range v {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tp.WriteByte(' ')\n\t\t\t\t}\n\t\t\t\tp.fmt.fmt_integer(uint64(c), 10, unsigned, ldigits)\n\t\t\t}\n\t\t\tp.WriteByte(']')\n\t\t}\n\tcase 's':\n\t\tp.fmt.fmt_s(string(v))\n\tcase 'x':\n\t\tp.fmt.fmt_bx(v, ldigits)\n\tcase 'X':\n\t\tp.fmt.fmt_bx(v, udigits)\n\tcase 'q':\n\t\tp.fmt.fmt_q(string(v))\n\tdefault:\n\t\tp.printValue(reflect.ValueOf(v), verb, 0)\n\t}\n}\n\nfunc (p *printer) fmtPointer(value reflect.Value, verb rune) {\n\tvar u uintptr\n\tswitch value.Kind() {\n\tcase reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.Slice, reflect.UnsafePointer:\n\t\tu = value.Pointer()\n\tdefault:\n\t\tp.badVerb(verb)\n\t\treturn\n\t}\n\n\tswitch verb {\n\tcase 'v':\n\t\tif p.fmt.SharpV {\n\t\t\tp.WriteByte('(')\n\t\t\tp.WriteString(value.Type().String())\n\t\t\tp.WriteString(\")(\")\n\t\t\tif u == 0 {\n\t\t\t\tp.WriteString(nilString)\n\t\t\t} else {\n\t\t\t\tp.fmt0x64(uint64(u), true)\n\t\t\t}\n\t\t\tp.WriteByte(')')\n\t\t} else {\n\t\t\tif u == 0 {\n\t\t\t\tp.fmt.padString(nilAngleString)\n\t\t\t} else {\n\t\t\t\tp.fmt0x64(uint64(u), !p.fmt.Sharp)\n\t\t\t}\n\t\t}\n\tcase 'p':\n\t\tp.fmt0x64(uint64(u), !p.fmt.Sharp)\n\tcase 'b', 'o', 'd', 'x', 'X':\n\t\tif verb == 'd' {\n\t\t\tp.fmt.Sharp = true // Print as standard go. TODO: does this make sense?\n\t\t}\n\t\tp.fmtInteger(uint64(u), unsigned, verb)\n\tdefault:\n\t\tp.badVerb(verb)\n\t}\n}\n\nfunc (p *printer) catchPanic(arg interface{}, verb rune) {\n\tif err := recover(); err != nil {\n\t\t// If it's a nil pointer, just say \"<nil>\". The likeliest causes are a\n\t\t// Stringer that fails to guard against nil or a nil pointer for a\n\t\t// value receiver, and in either case, \"<nil>\" is a nice result.\n\t\tif v := reflect.ValueOf(arg); v.Kind() == reflect.Ptr && v.IsNil() {\n\t\t\tp.WriteString(nilAngleString)\n\t\t\treturn\n\t\t}\n\t\t// Otherwise print a concise panic message. Most of the time the panic\n\t\t// value will print itself nicely.\n\t\tif p.panicking {\n\t\t\t// Nested panics; the recursion in printArg cannot succeed.\n\t\t\tpanic(err)\n\t\t}\n\n\t\toldFlags := p.fmt.Parser\n\t\t// For this output we want default behavior.\n\t\tp.fmt.ClearFlags()\n\n\t\tp.WriteString(percentBangString)\n\t\tp.WriteRune(verb)\n\t\tp.WriteString(panicString)\n\t\tp.panicking = true\n\t\tp.printArg(err, 'v')\n\t\tp.panicking = false\n\t\tp.WriteByte(')')\n\n\t\tp.fmt.Parser = oldFlags\n\t}\n}\n\nfunc (p *printer) handleMethods(verb rune) (handled bool) {\n\tif p.erroring {\n\t\treturn\n\t}\n\t// Is it a Formatter?\n\tif formatter, ok := p.arg.(format.Formatter); ok {\n\t\thandled = true\n\t\tdefer p.catchPanic(p.arg, verb)\n\t\tformatter.Format(p, verb)\n\t\treturn\n\t}\n\tif formatter, ok := p.arg.(fmt.Formatter); ok {\n\t\thandled = true\n\t\tdefer p.catchPanic(p.arg, verb)\n\t\tformatter.Format(p, verb)\n\t\treturn\n\t}\n\n\t// If we're doing Go syntax and the argument knows how to supply it, take care of it now.\n\tif p.fmt.SharpV {\n\t\tif stringer, ok := p.arg.(fmt.GoStringer); ok {\n\t\t\thandled = true\n\t\t\tdefer p.catchPanic(p.arg, verb)\n\t\t\t// Print the result of GoString unadorned.\n\t\t\tp.fmt.fmt_s(stringer.GoString())\n\t\t\treturn\n\t\t}\n\t} else {\n\t\t// If a string is acceptable according to the format, see if\n\t\t// the value satisfies one of the string-valued interfaces.\n\t\t// Println etc. set verb to %v, which is \"stringable\".\n\t\tswitch verb {\n\t\tcase 'v', 's', 'x', 'X', 'q':\n\t\t\t// Is it an error or Stringer?\n\t\t\t// The duplication in the bodies is necessary:\n\t\t\t// setting handled and deferring catchPanic\n\t\t\t// must happen before calling the method.\n\t\t\tswitch v := p.arg.(type) {\n\t\t\tcase error:\n\t\t\t\thandled = true\n\t\t\t\tdefer p.catchPanic(p.arg, verb)\n\t\t\t\tp.fmtString(v.Error(), verb)\n\t\t\t\treturn\n\n\t\t\tcase fmt.Stringer:\n\t\t\t\thandled = true\n\t\t\t\tdefer p.catchPanic(p.arg, verb)\n\t\t\t\tp.fmtString(v.String(), verb)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (p *printer) printArg(arg interface{}, verb rune) {\n\tp.arg = arg\n\tp.value = reflect.Value{}\n\n\tif arg == nil {\n\t\tswitch verb {\n\t\tcase 'T', 'v':\n\t\t\tp.fmt.padString(nilAngleString)\n\t\tdefault:\n\t\t\tp.badVerb(verb)\n\t\t}\n\t\treturn\n\t}\n\n\t// Special processing considerations.\n\t// %T (the value's type) and %p (its address) are special; we always do them first.\n\tswitch verb {\n\tcase 'T':\n\t\tp.fmt.fmt_s(reflect.TypeOf(arg).String())\n\t\treturn\n\tcase 'p':\n\t\tp.fmtPointer(reflect.ValueOf(arg), 'p')\n\t\treturn\n\t}\n\n\t// Some types can be done without reflection.\n\tswitch f := arg.(type) {\n\tcase bool:\n\t\tp.fmtBool(f, verb)\n\tcase float32:\n\t\tp.fmtFloat(float64(f), 32, verb)\n\tcase float64:\n\t\tp.fmtFloat(f, 64, verb)\n\tcase complex64:\n\t\tp.fmtComplex(complex128(f), 64, verb)\n\tcase complex128:\n\t\tp.fmtComplex(f, 128, verb)\n\tcase int:\n\t\tp.fmtInteger(uint64(f), signed, verb)\n\tcase int8:\n\t\tp.fmtInteger(uint64(f), signed, verb)\n\tcase int16:\n\t\tp.fmtInteger(uint64(f), signed, verb)\n\tcase int32:\n\t\tp.fmtInteger(uint64(f), signed, verb)\n\tcase int64:\n\t\tp.fmtInteger(uint64(f), signed, verb)\n\tcase uint:\n\t\tp.fmtInteger(uint64(f), unsigned, verb)\n\tcase uint8:\n\t\tp.fmtInteger(uint64(f), unsigned, verb)\n\tcase uint16:\n\t\tp.fmtInteger(uint64(f), unsigned, verb)\n\tcase uint32:\n\t\tp.fmtInteger(uint64(f), unsigned, verb)\n\tcase uint64:\n\t\tp.fmtInteger(f, unsigned, verb)\n\tcase uintptr:\n\t\tp.fmtInteger(uint64(f), unsigned, verb)\n\tcase string:\n\t\tp.fmtString(f, verb)\n\tcase []byte:\n\t\tp.fmtBytes(f, verb, \"[]byte\")\n\tcase reflect.Value:\n\t\t// Handle extractable values with special methods\n\t\t// since printValue does not handle them at depth 0.\n\t\tif f.IsValid() && f.CanInterface() {\n\t\t\tp.arg = f.Interface()\n\t\t\tif p.handleMethods(verb) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tp.printValue(f, verb, 0)\n\tdefault:\n\t\t// If the type is not simple, it might have methods.\n\t\tif !p.handleMethods(verb) {\n\t\t\t// Need to use reflection, since the type had no\n\t\t\t// interface methods that could be used for formatting.\n\t\t\tp.printValue(reflect.ValueOf(f), verb, 0)\n\t\t}\n\t}\n}\n\n// printValue is similar to printArg but starts with a reflect value, not an interface{} value.\n// It does not handle 'p' and 'T' verbs because these should have been already handled by printArg.\nfunc (p *printer) printValue(value reflect.Value, verb rune, depth int) {\n\t// Handle values with special methods if not already handled by printArg (depth == 0).\n\tif depth > 0 && value.IsValid() && value.CanInterface() {\n\t\tp.arg = value.Interface()\n\t\tif p.handleMethods(verb) {\n\t\t\treturn\n\t\t}\n\t}\n\tp.arg = nil\n\tp.value = value\n\n\tswitch f := value; value.Kind() {\n\tcase reflect.Invalid:\n\t\tif depth == 0 {\n\t\t\tp.WriteString(invReflectString)\n\t\t} else {\n\t\t\tswitch verb {\n\t\t\tcase 'v':\n\t\t\t\tp.WriteString(nilAngleString)\n\t\t\tdefault:\n\t\t\t\tp.badVerb(verb)\n\t\t\t}\n\t\t}\n\tcase reflect.Bool:\n\t\tp.fmtBool(f.Bool(), verb)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tp.fmtInteger(uint64(f.Int()), signed, verb)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tp.fmtInteger(f.Uint(), unsigned, verb)\n\tcase reflect.Float32:\n\t\tp.fmtFloat(f.Float(), 32, verb)\n\tcase reflect.Float64:\n\t\tp.fmtFloat(f.Float(), 64, verb)\n\tcase reflect.Complex64:\n\t\tp.fmtComplex(f.Complex(), 64, verb)\n\tcase reflect.Complex128:\n\t\tp.fmtComplex(f.Complex(), 128, verb)\n\tcase reflect.String:\n\t\tp.fmtString(f.String(), verb)\n\tcase reflect.Map:\n\t\tif p.fmt.SharpV {\n\t\t\tp.WriteString(f.Type().String())\n\t\t\tif f.IsNil() {\n\t\t\t\tp.WriteString(nilParenString)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tp.WriteByte('{')\n\t\t} else {\n\t\t\tp.WriteString(mapString)\n\t\t}\n\t\tkeys := f.MapKeys()\n\t\tfor i, key := range keys {\n\t\t\tif i > 0 {\n\t\t\t\tif p.fmt.SharpV {\n\t\t\t\t\tp.WriteString(commaSpaceString)\n\t\t\t\t} else {\n\t\t\t\t\tp.WriteByte(' ')\n\t\t\t\t}\n\t\t\t}\n\t\t\tp.printValue(key, verb, depth+1)\n\t\t\tp.WriteByte(':')\n\t\t\tp.printValue(f.MapIndex(key), verb, depth+1)\n\t\t}\n\t\tif p.fmt.SharpV {\n\t\t\tp.WriteByte('}')\n\t\t} else {\n\t\t\tp.WriteByte(']')\n\t\t}\n\tcase reflect.Struct:\n\t\tif p.fmt.SharpV {\n\t\t\tp.WriteString(f.Type().String())\n\t\t}\n\t\tp.WriteByte('{')\n\t\tfor i := 0; i < f.NumField(); i++ {\n\t\t\tif i > 0 {\n\t\t\t\tif p.fmt.SharpV {\n\t\t\t\t\tp.WriteString(commaSpaceString)\n\t\t\t\t} else {\n\t\t\t\t\tp.WriteByte(' ')\n\t\t\t\t}\n\t\t\t}\n\t\t\tif p.fmt.PlusV || p.fmt.SharpV {\n\t\t\t\tif name := f.Type().Field(i).Name; name != \"\" {\n\t\t\t\t\tp.WriteString(name)\n\t\t\t\t\tp.WriteByte(':')\n\t\t\t\t}\n\t\t\t}\n\t\t\tp.printValue(getField(f, i), verb, depth+1)\n\t\t}\n\t\tp.WriteByte('}')\n\tcase reflect.Interface:\n\t\tvalue := f.Elem()\n\t\tif !value.IsValid() {\n\t\t\tif p.fmt.SharpV {\n\t\t\t\tp.WriteString(f.Type().String())\n\t\t\t\tp.WriteString(nilParenString)\n\t\t\t} else {\n\t\t\t\tp.WriteString(nilAngleString)\n\t\t\t}\n\t\t} else {\n\t\t\tp.printValue(value, verb, depth+1)\n\t\t}\n\tcase reflect.Array, reflect.Slice:\n\t\tswitch verb {\n\t\tcase 's', 'q', 'x', 'X':\n\t\t\t// Handle byte and uint8 slices and arrays special for the above verbs.\n\t\t\tt := f.Type()\n\t\t\tif t.Elem().Kind() == reflect.Uint8 {\n\t\t\t\tvar bytes []byte\n\t\t\t\tif f.Kind() == reflect.Slice {\n\t\t\t\t\tbytes = f.Bytes()\n\t\t\t\t} else if f.CanAddr() {\n\t\t\t\t\tbytes = f.Slice(0, f.Len()).Bytes()\n\t\t\t\t} else {\n\t\t\t\t\t// We have an array, but we cannot Slice() a non-addressable array,\n\t\t\t\t\t// so we build a slice by hand. This is a rare case but it would be nice\n\t\t\t\t\t// if reflection could help a little more.\n\t\t\t\t\tbytes = make([]byte, f.Len())\n\t\t\t\t\tfor i := range bytes {\n\t\t\t\t\t\tbytes[i] = byte(f.Index(i).Uint())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tp.fmtBytes(bytes, verb, t.String())\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tif p.fmt.SharpV {\n\t\t\tp.WriteString(f.Type().String())\n\t\t\tif f.Kind() == reflect.Slice && f.IsNil() {\n\t\t\t\tp.WriteString(nilParenString)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tp.WriteByte('{')\n\t\t\tfor i := 0; i < f.Len(); i++ {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tp.WriteString(commaSpaceString)\n\t\t\t\t}\n\t\t\t\tp.printValue(f.Index(i), verb, depth+1)\n\t\t\t}\n\t\t\tp.WriteByte('}')\n\t\t} else {\n\t\t\tp.WriteByte('[')\n\t\t\tfor i := 0; i < f.Len(); i++ {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tp.WriteByte(' ')\n\t\t\t\t}\n\t\t\t\tp.printValue(f.Index(i), verb, depth+1)\n\t\t\t}\n\t\t\tp.WriteByte(']')\n\t\t}\n\tcase reflect.Ptr:\n\t\t// pointer to array or slice or struct?  ok at top level\n\t\t// but not embedded (avoid loops)\n\t\tif depth == 0 && f.Pointer() != 0 {\n\t\t\tswitch a := f.Elem(); a.Kind() {\n\t\t\tcase reflect.Array, reflect.Slice, reflect.Struct, reflect.Map:\n\t\t\t\tp.WriteByte('&')\n\t\t\t\tp.printValue(a, verb, depth+1)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tfallthrough\n\tcase reflect.Chan, reflect.Func, reflect.UnsafePointer:\n\t\tp.fmtPointer(f, verb)\n\tdefault:\n\t\tp.unknownType(f)\n\t}\n}\n\nfunc (p *printer) badArgNum(verb rune) {\n\tp.WriteString(percentBangString)\n\tp.WriteRune(verb)\n\tp.WriteString(badIndexString)\n}\n\nfunc (p *printer) missingArg(verb rune) {\n\tp.WriteString(percentBangString)\n\tp.WriteRune(verb)\n\tp.WriteString(missingString)\n}\n\nfunc (p *printer) doPrintf(fmt string) {\n\tfor p.fmt.Parser.SetFormat(fmt); p.fmt.Scan(); {\n\t\tswitch p.fmt.Status {\n\t\tcase format.StatusText:\n\t\t\tp.WriteString(p.fmt.Text())\n\t\tcase format.StatusSubstitution:\n\t\t\tp.printArg(p.Arg(p.fmt.ArgNum), p.fmt.Verb)\n\t\tcase format.StatusBadWidthSubstitution:\n\t\t\tp.WriteString(badWidthString)\n\t\t\tp.printArg(p.Arg(p.fmt.ArgNum), p.fmt.Verb)\n\t\tcase format.StatusBadPrecSubstitution:\n\t\t\tp.WriteString(badPrecString)\n\t\t\tp.printArg(p.Arg(p.fmt.ArgNum), p.fmt.Verb)\n\t\tcase format.StatusNoVerb:\n\t\t\tp.WriteString(noVerbString)\n\t\tcase format.StatusBadArgNum:\n\t\t\tp.badArgNum(p.fmt.Verb)\n\t\tcase format.StatusMissingArg:\n\t\t\tp.missingArg(p.fmt.Verb)\n\t\tdefault:\n\t\t\tpanic(\"unreachable\")\n\t\t}\n\t}\n\n\t// Check for extra arguments, but only if there was at least one ordered\n\t// argument. Note that this behavior is necessarily different from fmt:\n\t// different variants of messages may opt to drop some or all of the\n\t// arguments.\n\tif !p.fmt.Reordered && p.fmt.ArgNum < len(p.fmt.Args) && p.fmt.ArgNum != 0 {\n\t\tp.fmt.ClearFlags()\n\t\tp.WriteString(extraString)\n\t\tfor i, arg := range p.fmt.Args[p.fmt.ArgNum:] {\n\t\t\tif i > 0 {\n\t\t\t\tp.WriteString(commaSpaceString)\n\t\t\t}\n\t\t\tif arg == nil {\n\t\t\t\tp.WriteString(nilAngleString)\n\t\t\t} else {\n\t\t\t\tp.WriteString(reflect.TypeOf(arg).String())\n\t\t\t\tp.WriteString(\"=\")\n\t\t\t\tp.printArg(arg, 'v')\n\t\t\t}\n\t\t}\n\t\tp.WriteByte(')')\n\t}\n}\n\nfunc (p *printer) doPrint(a []interface{}) {\n\tprevString := false\n\tfor argNum, arg := range a {\n\t\tisString := arg != nil && reflect.TypeOf(arg).Kind() == reflect.String\n\t\t// Add a space between two non-string arguments.\n\t\tif argNum > 0 && !isString && !prevString {\n\t\t\tp.WriteByte(' ')\n\t\t}\n\t\tp.printArg(arg, 'v')\n\t\tprevString = isString\n\t}\n}\n\n// doPrintln is like doPrint but always adds a space between arguments\n// and a newline after the last argument.\nfunc (p *printer) doPrintln(a []interface{}) {\n\tfor argNum, arg := range a {\n\t\tif argNum > 0 {\n\t\t\tp.WriteByte(' ')\n\t\t}\n\t\tp.printArg(arg, 'v')\n\t}\n\tp.WriteByte('\\n')\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/LICENSE",
    "content": "\nThis project is covered by two different licenses: MIT and Apache.\n\n#### MIT License ####\n\nThe following files were ported to Go from C files of libyaml, and thus\nare still covered by their original MIT license, with the additional\ncopyright staring in 2011 when the project was ported over:\n\n    apic.go emitterc.go parserc.go readerc.go scannerc.go\n    writerc.go yamlh.go yamlprivateh.go\n\nCopyright (c) 2006-2010 Kirill Simonov\nCopyright (c) 2006-2011 Kirill Simonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n### Apache License ###\n\nAll the remaining project files are covered by the Apache license:\n\nCopyright (c) 2011-2019 Canonical Ltd\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/NOTICE",
    "content": "Copyright 2011-2016 Canonical Ltd.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/README.md",
    "content": "# YAML support for the Go language\n\nIntroduction\n------------\n\nThe yaml package enables Go programs to comfortably encode and decode YAML\nvalues. It was developed within [Canonical](https://www.canonical.com) as\npart of the [juju](https://juju.ubuntu.com) project, and is based on a\npure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML)\nC library to parse and generate YAML data quickly and reliably.\n\nCompatibility\n-------------\n\nThe yaml package supports most of YAML 1.2, but preserves some behavior\nfrom 1.1 for backwards compatibility.\n\nSpecifically, as of v3 of the yaml package:\n\n - YAML 1.1 bools (_yes/no, on/off_) are supported as long as they are being\n   decoded into a typed bool value. Otherwise they behave as a string. Booleans\n   in YAML 1.2 are _true/false_ only.\n - Octals encode and decode as _0777_ per YAML 1.1, rather than _0o777_\n   as specified in YAML 1.2, because most parsers still use the old format.\n   Octals in the  _0o777_ format are supported though, so new files work.\n - Does not support base-60 floats. These are gone from YAML 1.2, and were\n   actually never supported by this package as it's clearly a poor choice.\n\nand offers backwards\ncompatibility with YAML 1.1 in some cases.\n1.2, including support for\nanchors, tags, map merging, etc. Multi-document unmarshalling is not yet\nimplemented, and base-60 floats from YAML 1.1 are purposefully not\nsupported since they're a poor design and are gone in YAML 1.2.\n\nInstallation and usage\n----------------------\n\nThe import path for the package is *gopkg.in/yaml.v3*.\n\nTo install it, run:\n\n    go get gopkg.in/yaml.v3\n\nAPI documentation\n-----------------\n\nIf opened in a browser, the import path itself leads to the API documentation:\n\n  - [https://gopkg.in/yaml.v3](https://gopkg.in/yaml.v3)\n\nAPI stability\n-------------\n\nThe package API for yaml v3 will remain stable as described in [gopkg.in](https://gopkg.in).\n\n\nLicense\n-------\n\nThe yaml package is licensed under the MIT and Apache License 2.0 licenses.\nPlease see the LICENSE file for details.\n\n\nExample\n-------\n\n```Go\npackage main\n\nimport (\n        \"fmt\"\n        \"log\"\n\n        \"gopkg.in/yaml.v3\"\n)\n\nvar data = `\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n`\n\n// Note: struct fields must be public in order for unmarshal to\n// correctly populate the data.\ntype T struct {\n        A string\n        B struct {\n                RenamedC int   `yaml:\"c\"`\n                D        []int `yaml:\",flow\"`\n        }\n}\n\nfunc main() {\n        t := T{}\n    \n        err := yaml.Unmarshal([]byte(data), &t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t:\\n%v\\n\\n\", t)\n    \n        d, err := yaml.Marshal(&t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t dump:\\n%s\\n\\n\", string(d))\n    \n        m := make(map[interface{}]interface{})\n    \n        err = yaml.Unmarshal([]byte(data), &m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m:\\n%v\\n\\n\", m)\n    \n        d, err = yaml.Marshal(&m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m dump:\\n%s\\n\\n\", string(d))\n}\n```\n\nThis example will generate the following output:\n\n```\n--- t:\n{Easy! {2 [3 4]}}\n\n--- t dump:\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n\n\n--- m:\nmap[a:Easy! b:map[c:2 d:[3 4]]]\n\n--- m dump:\na: Easy!\nb:\n  c: 2\n  d:\n  - 3\n  - 4\n```\n\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/apic.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"io\"\n)\n\nfunc yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) {\n\t//fmt.Println(\"yaml_insert_token\", \"pos:\", pos, \"typ:\", token.typ, \"head:\", parser.tokens_head, \"len:\", len(parser.tokens))\n\n\t// Check if we can move the queue at the beginning of the buffer.\n\tif parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) {\n\t\tif parser.tokens_head != len(parser.tokens) {\n\t\t\tcopy(parser.tokens, parser.tokens[parser.tokens_head:])\n\t\t}\n\t\tparser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head]\n\t\tparser.tokens_head = 0\n\t}\n\tparser.tokens = append(parser.tokens, *token)\n\tif pos < 0 {\n\t\treturn\n\t}\n\tcopy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:])\n\tparser.tokens[parser.tokens_head+pos] = *token\n}\n\n// Create a new parser object.\nfunc yaml_parser_initialize(parser *yaml_parser_t) bool {\n\t*parser = yaml_parser_t{\n\t\traw_buffer: make([]byte, 0, input_raw_buffer_size),\n\t\tbuffer:     make([]byte, 0, input_buffer_size),\n\t}\n\treturn true\n}\n\n// Destroy a parser object.\nfunc yaml_parser_delete(parser *yaml_parser_t) {\n\t*parser = yaml_parser_t{}\n}\n\n// String read handler.\nfunc yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\tif parser.input_pos == len(parser.input) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(buffer, parser.input[parser.input_pos:])\n\tparser.input_pos += n\n\treturn n, nil\n}\n\n// Reader read handler.\nfunc yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\treturn parser.input_reader.Read(buffer)\n}\n\n// Set a string input.\nfunc yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_string_read_handler\n\tparser.input = input\n\tparser.input_pos = 0\n}\n\n// Set a file input.\nfunc yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_reader_read_handler\n\tparser.input_reader = r\n}\n\n// Set the source encoding.\nfunc yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) {\n\tif parser.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the encoding only once\")\n\t}\n\tparser.encoding = encoding\n}\n\n// Create a new emitter object.\nfunc yaml_emitter_initialize(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{\n\t\tbuffer:     make([]byte, output_buffer_size),\n\t\traw_buffer: make([]byte, 0, output_raw_buffer_size),\n\t\tstates:     make([]yaml_emitter_state_t, 0, initial_stack_size),\n\t\tevents:     make([]yaml_event_t, 0, initial_queue_size),\n\t\tbest_width: -1,\n\t}\n}\n\n// Destroy an emitter object.\nfunc yaml_emitter_delete(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{}\n}\n\n// String write handler.\nfunc yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t*emitter.output_buffer = append(*emitter.output_buffer, buffer...)\n\treturn nil\n}\n\n// yaml_writer_write_handler uses emitter.output_writer to write the\n// emitted text.\nfunc yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t_, err := emitter.output_writer.Write(buffer)\n\treturn err\n}\n\n// Set a string output.\nfunc yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_string_write_handler\n\temitter.output_buffer = output_buffer\n}\n\n// Set a file output.\nfunc yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_writer_write_handler\n\temitter.output_writer = w\n}\n\n// Set the output encoding.\nfunc yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) {\n\tif emitter.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the output encoding only once\")\n\t}\n\temitter.encoding = encoding\n}\n\n// Set the canonical output style.\nfunc yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) {\n\temitter.canonical = canonical\n}\n\n// Set the indentation increment.\nfunc yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) {\n\tif indent < 2 || indent > 9 {\n\t\tindent = 2\n\t}\n\temitter.best_indent = indent\n}\n\n// Set the preferred line width.\nfunc yaml_emitter_set_width(emitter *yaml_emitter_t, width int) {\n\tif width < 0 {\n\t\twidth = -1\n\t}\n\temitter.best_width = width\n}\n\n// Set if unescaped non-ASCII characters are allowed.\nfunc yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) {\n\temitter.unicode = unicode\n}\n\n// Set the preferred line break character.\nfunc yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) {\n\temitter.line_break = line_break\n}\n\n///*\n// * Destroy a token object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_token_delete(yaml_token_t *token)\n//{\n//    assert(token);  // Non-NULL token object expected.\n//\n//    switch (token.type)\n//    {\n//        case YAML_TAG_DIRECTIVE_TOKEN:\n//            yaml_free(token.data.tag_directive.handle);\n//            yaml_free(token.data.tag_directive.prefix);\n//            break;\n//\n//        case YAML_ALIAS_TOKEN:\n//            yaml_free(token.data.alias.value);\n//            break;\n//\n//        case YAML_ANCHOR_TOKEN:\n//            yaml_free(token.data.anchor.value);\n//            break;\n//\n//        case YAML_TAG_TOKEN:\n//            yaml_free(token.data.tag.handle);\n//            yaml_free(token.data.tag.suffix);\n//            break;\n//\n//        case YAML_SCALAR_TOKEN:\n//            yaml_free(token.data.scalar.value);\n//            break;\n//\n//        default:\n//            break;\n//    }\n//\n//    memset(token, 0, sizeof(yaml_token_t));\n//}\n//\n///*\n// * Check if a string is a valid UTF-8 sequence.\n// *\n// * Check 'reader.c' for more details on UTF-8 encoding.\n// */\n//\n//static int\n//yaml_check_utf8(yaml_char_t *start, size_t length)\n//{\n//    yaml_char_t *end = start+length;\n//    yaml_char_t *pointer = start;\n//\n//    while (pointer < end) {\n//        unsigned char octet;\n//        unsigned int width;\n//        unsigned int value;\n//        size_t k;\n//\n//        octet = pointer[0];\n//        width = (octet & 0x80) == 0x00 ? 1 :\n//                (octet & 0xE0) == 0xC0 ? 2 :\n//                (octet & 0xF0) == 0xE0 ? 3 :\n//                (octet & 0xF8) == 0xF0 ? 4 : 0;\n//        value = (octet & 0x80) == 0x00 ? octet & 0x7F :\n//                (octet & 0xE0) == 0xC0 ? octet & 0x1F :\n//                (octet & 0xF0) == 0xE0 ? octet & 0x0F :\n//                (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0;\n//        if (!width) return 0;\n//        if (pointer+width > end) return 0;\n//        for (k = 1; k < width; k ++) {\n//            octet = pointer[k];\n//            if ((octet & 0xC0) != 0x80) return 0;\n//            value = (value << 6) + (octet & 0x3F);\n//        }\n//        if (!((width == 1) ||\n//            (width == 2 && value >= 0x80) ||\n//            (width == 3 && value >= 0x800) ||\n//            (width == 4 && value >= 0x10000))) return 0;\n//\n//        pointer += width;\n//    }\n//\n//    return 1;\n//}\n//\n\n// Create STREAM-START.\nfunc yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_STREAM_START_EVENT,\n\t\tencoding: encoding,\n\t}\n}\n\n// Create STREAM-END.\nfunc yaml_stream_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_STREAM_END_EVENT,\n\t}\n}\n\n// Create DOCUMENT-START.\nfunc yaml_document_start_event_initialize(\n\tevent *yaml_event_t,\n\tversion_directive *yaml_version_directive_t,\n\ttag_directives []yaml_tag_directive_t,\n\timplicit bool,\n) {\n\t*event = yaml_event_t{\n\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\tversion_directive: version_directive,\n\t\ttag_directives:    tag_directives,\n\t\timplicit:          implicit,\n\t}\n}\n\n// Create DOCUMENT-END.\nfunc yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_DOCUMENT_END_EVENT,\n\t\timplicit: implicit,\n\t}\n}\n\n// Create ALIAS.\nfunc yaml_alias_event_initialize(event *yaml_event_t, anchor []byte) bool {\n\t*event = yaml_event_t{\n\t\ttyp:    yaml_ALIAS_EVENT,\n\t\tanchor: anchor,\n\t}\n\treturn true\n}\n\n// Create SCALAR.\nfunc yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:             yaml_SCALAR_EVENT,\n\t\tanchor:          anchor,\n\t\ttag:             tag,\n\t\tvalue:           value,\n\t\timplicit:        plain_implicit,\n\t\tquoted_implicit: quoted_implicit,\n\t\tstyle:           yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-START.\nfunc yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_SEQUENCE_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-END.\nfunc yaml_sequence_end_event_initialize(event *yaml_event_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_SEQUENCE_END_EVENT,\n\t}\n\treturn true\n}\n\n// Create MAPPING-START.\nfunc yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_MAPPING_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n}\n\n// Create MAPPING-END.\nfunc yaml_mapping_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_MAPPING_END_EVENT,\n\t}\n}\n\n// Destroy an event object.\nfunc yaml_event_delete(event *yaml_event_t) {\n\t*event = yaml_event_t{}\n}\n\n///*\n// * Create a document object.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_initialize(document *yaml_document_t,\n//        version_directive *yaml_version_directive_t,\n//        tag_directives_start *yaml_tag_directive_t,\n//        tag_directives_end *yaml_tag_directive_t,\n//        start_implicit int, end_implicit int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    struct {\n//        start *yaml_node_t\n//        end *yaml_node_t\n//        top *yaml_node_t\n//    } nodes = { NULL, NULL, NULL }\n//    version_directive_copy *yaml_version_directive_t = NULL\n//    struct {\n//        start *yaml_tag_directive_t\n//        end *yaml_tag_directive_t\n//        top *yaml_tag_directive_t\n//    } tag_directives_copy = { NULL, NULL, NULL }\n//    value yaml_tag_directive_t = { NULL, NULL }\n//    mark yaml_mark_t = { 0, 0, 0 }\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert((tag_directives_start && tag_directives_end) ||\n//            (tag_directives_start == tag_directives_end))\n//                            // Valid tag directives are expected.\n//\n//    if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error\n//\n//    if (version_directive) {\n//        version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t))\n//        if (!version_directive_copy) goto error\n//        version_directive_copy.major = version_directive.major\n//        version_directive_copy.minor = version_directive.minor\n//    }\n//\n//    if (tag_directives_start != tag_directives_end) {\n//        tag_directive *yaml_tag_directive_t\n//        if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE))\n//            goto error\n//        for (tag_directive = tag_directives_start\n//                tag_directive != tag_directives_end; tag_directive ++) {\n//            assert(tag_directive.handle)\n//            assert(tag_directive.prefix)\n//            if (!yaml_check_utf8(tag_directive.handle,\n//                        strlen((char *)tag_directive.handle)))\n//                goto error\n//            if (!yaml_check_utf8(tag_directive.prefix,\n//                        strlen((char *)tag_directive.prefix)))\n//                goto error\n//            value.handle = yaml_strdup(tag_directive.handle)\n//            value.prefix = yaml_strdup(tag_directive.prefix)\n//            if (!value.handle || !value.prefix) goto error\n//            if (!PUSH(&context, tag_directives_copy, value))\n//                goto error\n//            value.handle = NULL\n//            value.prefix = NULL\n//        }\n//    }\n//\n//    DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy,\n//            tag_directives_copy.start, tag_directives_copy.top,\n//            start_implicit, end_implicit, mark, mark)\n//\n//    return 1\n//\n//error:\n//    STACK_DEL(&context, nodes)\n//    yaml_free(version_directive_copy)\n//    while (!STACK_EMPTY(&context, tag_directives_copy)) {\n//        value yaml_tag_directive_t = POP(&context, tag_directives_copy)\n//        yaml_free(value.handle)\n//        yaml_free(value.prefix)\n//    }\n//    STACK_DEL(&context, tag_directives_copy)\n//    yaml_free(value.handle)\n//    yaml_free(value.prefix)\n//\n//    return 0\n//}\n//\n///*\n// * Destroy a document object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_document_delete(document *yaml_document_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    tag_directive *yaml_tag_directive_t\n//\n//    context.error = YAML_NO_ERROR // Eliminate a compiler warning.\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    while (!STACK_EMPTY(&context, document.nodes)) {\n//        node yaml_node_t = POP(&context, document.nodes)\n//        yaml_free(node.tag)\n//        switch (node.type) {\n//            case YAML_SCALAR_NODE:\n//                yaml_free(node.data.scalar.value)\n//                break\n//            case YAML_SEQUENCE_NODE:\n//                STACK_DEL(&context, node.data.sequence.items)\n//                break\n//            case YAML_MAPPING_NODE:\n//                STACK_DEL(&context, node.data.mapping.pairs)\n//                break\n//            default:\n//                assert(0) // Should not happen.\n//        }\n//    }\n//    STACK_DEL(&context, document.nodes)\n//\n//    yaml_free(document.version_directive)\n//    for (tag_directive = document.tag_directives.start\n//            tag_directive != document.tag_directives.end\n//            tag_directive++) {\n//        yaml_free(tag_directive.handle)\n//        yaml_free(tag_directive.prefix)\n//    }\n//    yaml_free(document.tag_directives.start)\n//\n//    memset(document, 0, sizeof(yaml_document_t))\n//}\n//\n///**\n// * Get a document node.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_node(document *yaml_document_t, index int)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (index > 0 && document.nodes.start + index <= document.nodes.top) {\n//        return document.nodes.start + index - 1\n//    }\n//    return NULL\n//}\n//\n///**\n// * Get the root object.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_root_node(document *yaml_document_t)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (document.nodes.top != document.nodes.start) {\n//        return document.nodes.start\n//    }\n//    return NULL\n//}\n//\n///*\n// * Add a scalar node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_scalar(document *yaml_document_t,\n//        tag *yaml_char_t, value *yaml_char_t, length int,\n//        style yaml_scalar_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    value_copy *yaml_char_t = NULL\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert(value) // Non-NULL value is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (length < 0) {\n//        length = strlen((char *)value)\n//    }\n//\n//    if (!yaml_check_utf8(value, length)) goto error\n//    value_copy = yaml_malloc(length+1)\n//    if (!value_copy) goto error\n//    memcpy(value_copy, value, length)\n//    value_copy[length] = '\\0'\n//\n//    SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    yaml_free(tag_copy)\n//    yaml_free(value_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a sequence node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_sequence(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_sequence_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_item_t\n//        end *yaml_node_item_t\n//        top *yaml_node_item_t\n//    } items = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error\n//\n//    SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, items)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a mapping node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_mapping(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_mapping_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_pair_t\n//        end *yaml_node_pair_t\n//        top *yaml_node_pair_t\n//    } pairs = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error\n//\n//    MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, pairs)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Append an item to a sequence node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_sequence_item(document *yaml_document_t,\n//        sequence int, item int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(sequence > 0\n//            && document.nodes.start + sequence <= document.nodes.top)\n//                            // Valid sequence id is required.\n//    assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE)\n//                            // A sequence node is required.\n//    assert(item > 0 && document.nodes.start + item <= document.nodes.top)\n//                            // Valid item id is required.\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[sequence-1].data.sequence.items, item))\n//        return 0\n//\n//    return 1\n//}\n//\n///*\n// * Append a pair of a key and a value to a mapping node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_mapping_pair(document *yaml_document_t,\n//        mapping int, key int, value int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    pair yaml_node_pair_t\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(mapping > 0\n//            && document.nodes.start + mapping <= document.nodes.top)\n//                            // Valid mapping id is required.\n//    assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE)\n//                            // A mapping node is required.\n//    assert(key > 0 && document.nodes.start + key <= document.nodes.top)\n//                            // Valid key id is required.\n//    assert(value > 0 && document.nodes.start + value <= document.nodes.top)\n//                            // Valid value id is required.\n//\n//    pair.key = key\n//    pair.value = value\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[mapping-1].data.mapping.pairs, pair))\n//        return 0\n//\n//    return 1\n//}\n//\n//\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/decode.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// ----------------------------------------------------------------------------\n// Parser, produces a node tree out of a libyaml event stream.\n\ntype parser struct {\n\tparser   yaml_parser_t\n\tevent    yaml_event_t\n\tdoc      *Node\n\tanchors  map[string]*Node\n\tdoneInit bool\n\ttextless bool\n}\n\nfunc newParser(b []byte) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tif len(b) == 0 {\n\t\tb = []byte{'\\n'}\n\t}\n\tyaml_parser_set_input_string(&p.parser, b)\n\treturn &p\n}\n\nfunc newParserFromReader(r io.Reader) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tyaml_parser_set_input_reader(&p.parser, r)\n\treturn &p\n}\n\nfunc (p *parser) init() {\n\tif p.doneInit {\n\t\treturn\n\t}\n\tp.anchors = make(map[string]*Node)\n\tp.expect(yaml_STREAM_START_EVENT)\n\tp.doneInit = true\n}\n\nfunc (p *parser) destroy() {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\tyaml_event_delete(&p.event)\n\t}\n\tyaml_parser_delete(&p.parser)\n}\n\n// expect consumes an event from the event stream and\n// checks that it's of the expected type.\nfunc (p *parser) expect(e yaml_event_type_t) {\n\tif p.event.typ == yaml_NO_EVENT {\n\t\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\t\tp.fail()\n\t\t}\n\t}\n\tif p.event.typ == yaml_STREAM_END_EVENT {\n\t\tfailf(\"attempted to go past the end of stream; corrupted value?\")\n\t}\n\tif p.event.typ != e {\n\t\tp.parser.problem = fmt.Sprintf(\"expected %s event but got %s\", e, p.event.typ)\n\t\tp.fail()\n\t}\n\tyaml_event_delete(&p.event)\n\tp.event.typ = yaml_NO_EVENT\n}\n\n// peek peeks at the next event in the event stream,\n// puts the results into p.event and returns the event type.\nfunc (p *parser) peek() yaml_event_type_t {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\treturn p.event.typ\n\t}\n\t// It's curious choice from the underlying API to generally return a\n\t// positive result on success, but on this case return true in an error\n\t// scenario. This was the source of bugs in the past (issue #666).\n\tif !yaml_parser_parse(&p.parser, &p.event) || p.parser.error != yaml_NO_ERROR {\n\t\tp.fail()\n\t}\n\treturn p.event.typ\n}\n\nfunc (p *parser) fail() {\n\tvar where string\n\tvar line int\n\tif p.parser.context_mark.line != 0 {\n\t\tline = p.parser.context_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t} else if p.parser.problem_mark.line != 0 {\n\t\tline = p.parser.problem_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t}\n\tif line != 0 {\n\t\twhere = \"line \" + strconv.Itoa(line) + \": \"\n\t}\n\tvar msg string\n\tif len(p.parser.problem) > 0 {\n\t\tmsg = p.parser.problem\n\t} else {\n\t\tmsg = \"unknown problem parsing YAML content\"\n\t}\n\tfailf(\"%s%s\", where, msg)\n}\n\nfunc (p *parser) anchor(n *Node, anchor []byte) {\n\tif anchor != nil {\n\t\tn.Anchor = string(anchor)\n\t\tp.anchors[n.Anchor] = n\n\t}\n}\n\nfunc (p *parser) parse() *Node {\n\tp.init()\n\tswitch p.peek() {\n\tcase yaml_SCALAR_EVENT:\n\t\treturn p.scalar()\n\tcase yaml_ALIAS_EVENT:\n\t\treturn p.alias()\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn p.mapping()\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn p.sequence()\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\treturn p.document()\n\tcase yaml_STREAM_END_EVENT:\n\t\t// Happens when attempting to decode an empty buffer.\n\t\treturn nil\n\tcase yaml_TAIL_COMMENT_EVENT:\n\t\tpanic(\"internal error: unexpected tail comment event (please report)\")\n\tdefault:\n\t\tpanic(\"internal error: attempted to parse unknown event (please report): \" + p.event.typ.String())\n\t}\n}\n\nfunc (p *parser) node(kind Kind, defaultTag, tag, value string) *Node {\n\tvar style Style\n\tif tag != \"\" && tag != \"!\" {\n\t\ttag = shortTag(tag)\n\t\tstyle = TaggedStyle\n\t} else if defaultTag != \"\" {\n\t\ttag = defaultTag\n\t} else if kind == ScalarNode {\n\t\ttag, _ = resolve(\"\", value)\n\t}\n\tn := &Node{\n\t\tKind:  kind,\n\t\tTag:   tag,\n\t\tValue: value,\n\t\tStyle: style,\n\t}\n\tif !p.textless {\n\t\tn.Line = p.event.start_mark.line + 1\n\t\tn.Column = p.event.start_mark.column + 1\n\t\tn.HeadComment = string(p.event.head_comment)\n\t\tn.LineComment = string(p.event.line_comment)\n\t\tn.FootComment = string(p.event.foot_comment)\n\t}\n\treturn n\n}\n\nfunc (p *parser) parseChild(parent *Node) *Node {\n\tchild := p.parse()\n\tparent.Content = append(parent.Content, child)\n\treturn child\n}\n\nfunc (p *parser) document() *Node {\n\tn := p.node(DocumentNode, \"\", \"\", \"\")\n\tp.doc = n\n\tp.expect(yaml_DOCUMENT_START_EVENT)\n\tp.parseChild(n)\n\tif p.peek() == yaml_DOCUMENT_END_EVENT {\n\t\tn.FootComment = string(p.event.foot_comment)\n\t}\n\tp.expect(yaml_DOCUMENT_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) alias() *Node {\n\tn := p.node(AliasNode, \"\", \"\", string(p.event.anchor))\n\tn.Alias = p.anchors[n.Value]\n\tif n.Alias == nil {\n\t\tfailf(\"unknown anchor '%s' referenced\", n.Value)\n\t}\n\tp.expect(yaml_ALIAS_EVENT)\n\treturn n\n}\n\nfunc (p *parser) scalar() *Node {\n\tvar parsedStyle = p.event.scalar_style()\n\tvar nodeStyle Style\n\tswitch {\n\tcase parsedStyle&yaml_DOUBLE_QUOTED_SCALAR_STYLE != 0:\n\t\tnodeStyle = DoubleQuotedStyle\n\tcase parsedStyle&yaml_SINGLE_QUOTED_SCALAR_STYLE != 0:\n\t\tnodeStyle = SingleQuotedStyle\n\tcase parsedStyle&yaml_LITERAL_SCALAR_STYLE != 0:\n\t\tnodeStyle = LiteralStyle\n\tcase parsedStyle&yaml_FOLDED_SCALAR_STYLE != 0:\n\t\tnodeStyle = FoldedStyle\n\t}\n\tvar nodeValue = string(p.event.value)\n\tvar nodeTag = string(p.event.tag)\n\tvar defaultTag string\n\tif nodeStyle == 0 {\n\t\tif nodeValue == \"<<\" {\n\t\t\tdefaultTag = mergeTag\n\t\t}\n\t} else {\n\t\tdefaultTag = strTag\n\t}\n\tn := p.node(ScalarNode, defaultTag, nodeTag, nodeValue)\n\tn.Style |= nodeStyle\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SCALAR_EVENT)\n\treturn n\n}\n\nfunc (p *parser) sequence() *Node {\n\tn := p.node(SequenceNode, seqTag, string(p.event.tag), \"\")\n\tif p.event.sequence_style()&yaml_FLOW_SEQUENCE_STYLE != 0 {\n\t\tn.Style |= FlowStyle\n\t}\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SEQUENCE_START_EVENT)\n\tfor p.peek() != yaml_SEQUENCE_END_EVENT {\n\t\tp.parseChild(n)\n\t}\n\tn.LineComment = string(p.event.line_comment)\n\tn.FootComment = string(p.event.foot_comment)\n\tp.expect(yaml_SEQUENCE_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) mapping() *Node {\n\tn := p.node(MappingNode, mapTag, string(p.event.tag), \"\")\n\tblock := true\n\tif p.event.mapping_style()&yaml_FLOW_MAPPING_STYLE != 0 {\n\t\tblock = false\n\t\tn.Style |= FlowStyle\n\t}\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_MAPPING_START_EVENT)\n\tfor p.peek() != yaml_MAPPING_END_EVENT {\n\t\tk := p.parseChild(n)\n\t\tif block && k.FootComment != \"\" {\n\t\t\t// Must be a foot comment for the prior value when being dedented.\n\t\t\tif len(n.Content) > 2 {\n\t\t\t\tn.Content[len(n.Content)-3].FootComment = k.FootComment\n\t\t\t\tk.FootComment = \"\"\n\t\t\t}\n\t\t}\n\t\tv := p.parseChild(n)\n\t\tif k.FootComment == \"\" && v.FootComment != \"\" {\n\t\t\tk.FootComment = v.FootComment\n\t\t\tv.FootComment = \"\"\n\t\t}\n\t\tif p.peek() == yaml_TAIL_COMMENT_EVENT {\n\t\t\tif k.FootComment == \"\" {\n\t\t\t\tk.FootComment = string(p.event.foot_comment)\n\t\t\t}\n\t\t\tp.expect(yaml_TAIL_COMMENT_EVENT)\n\t\t}\n\t}\n\tn.LineComment = string(p.event.line_comment)\n\tn.FootComment = string(p.event.foot_comment)\n\tif n.Style&FlowStyle == 0 && n.FootComment != \"\" && len(n.Content) > 1 {\n\t\tn.Content[len(n.Content)-2].FootComment = n.FootComment\n\t\tn.FootComment = \"\"\n\t}\n\tp.expect(yaml_MAPPING_END_EVENT)\n\treturn n\n}\n\n// ----------------------------------------------------------------------------\n// Decoder, unmarshals a node into a provided value.\n\ntype decoder struct {\n\tdoc     *Node\n\taliases map[*Node]bool\n\tterrors []string\n\n\tstringMapType  reflect.Type\n\tgeneralMapType reflect.Type\n\n\tknownFields bool\n\tuniqueKeys  bool\n\tdecodeCount int\n\taliasCount  int\n\taliasDepth  int\n\n\tmergedFields map[interface{}]bool\n}\n\nvar (\n\tnodeType       = reflect.TypeOf(Node{})\n\tdurationType   = reflect.TypeOf(time.Duration(0))\n\tstringMapType  = reflect.TypeOf(map[string]interface{}{})\n\tgeneralMapType = reflect.TypeOf(map[interface{}]interface{}{})\n\tifaceType      = generalMapType.Elem()\n\ttimeType       = reflect.TypeOf(time.Time{})\n\tptrTimeType    = reflect.TypeOf(&time.Time{})\n)\n\nfunc newDecoder() *decoder {\n\td := &decoder{\n\t\tstringMapType:  stringMapType,\n\t\tgeneralMapType: generalMapType,\n\t\tuniqueKeys:     true,\n\t}\n\td.aliases = make(map[*Node]bool)\n\treturn d\n}\n\nfunc (d *decoder) terror(n *Node, tag string, out reflect.Value) {\n\tif n.Tag != \"\" {\n\t\ttag = n.Tag\n\t}\n\tvalue := n.Value\n\tif tag != seqTag && tag != mapTag {\n\t\tif len(value) > 10 {\n\t\t\tvalue = \" `\" + value[:7] + \"...`\"\n\t\t} else {\n\t\t\tvalue = \" `\" + value + \"`\"\n\t\t}\n\t}\n\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: cannot unmarshal %s%s into %s\", n.Line, shortTag(tag), value, out.Type()))\n}\n\nfunc (d *decoder) callUnmarshaler(n *Node, u Unmarshaler) (good bool) {\n\terr := u.UnmarshalYAML(n)\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) callObsoleteUnmarshaler(n *Node, u obsoleteUnmarshaler) (good bool) {\n\tterrlen := len(d.terrors)\n\terr := u.UnmarshalYAML(func(v interface{}) (err error) {\n\t\tdefer handleErr(&err)\n\t\td.unmarshal(n, reflect.ValueOf(v))\n\t\tif len(d.terrors) > terrlen {\n\t\t\tissues := d.terrors[terrlen:]\n\t\t\td.terrors = d.terrors[:terrlen]\n\t\t\treturn &TypeError{issues}\n\t\t}\n\t\treturn nil\n\t})\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\n// d.prepare initializes and dereferences pointers and calls UnmarshalYAML\n// if a value is found to implement it.\n// It returns the initialized and dereferenced out value, whether\n// unmarshalling was already done by UnmarshalYAML, and if so whether\n// its types unmarshalled appropriately.\n//\n// If n holds a null value, prepare returns before doing anything.\nfunc (d *decoder) prepare(n *Node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) {\n\tif n.ShortTag() == nullTag {\n\t\treturn out, false, false\n\t}\n\tagain := true\n\tfor again {\n\t\tagain = false\n\t\tif out.Kind() == reflect.Ptr {\n\t\t\tif out.IsNil() {\n\t\t\t\tout.Set(reflect.New(out.Type().Elem()))\n\t\t\t}\n\t\t\tout = out.Elem()\n\t\t\tagain = true\n\t\t}\n\t\tif out.CanAddr() {\n\t\t\touti := out.Addr().Interface()\n\t\t\tif u, ok := outi.(Unmarshaler); ok {\n\t\t\t\tgood = d.callUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t\tif u, ok := outi.(obsoleteUnmarshaler); ok {\n\t\t\t\tgood = d.callObsoleteUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t}\n\t}\n\treturn out, false, false\n}\n\nfunc (d *decoder) fieldByIndex(n *Node, v reflect.Value, index []int) (field reflect.Value) {\n\tif n.ShortTag() == nullTag {\n\t\treturn reflect.Value{}\n\t}\n\tfor _, num := range index {\n\t\tfor {\n\t\t\tif v.Kind() == reflect.Ptr {\n\t\t\t\tif v.IsNil() {\n\t\t\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t\t\t}\n\t\t\t\tv = v.Elem()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tv = v.Field(num)\n\t}\n\treturn v\n}\n\nconst (\n\t// 400,000 decode operations is ~500kb of dense object declarations, or\n\t// ~5kb of dense object declarations with 10000% alias expansion\n\talias_ratio_range_low = 400000\n\n\t// 4,000,000 decode operations is ~5MB of dense object declarations, or\n\t// ~4.5MB of dense object declarations with 10% alias expansion\n\talias_ratio_range_high = 4000000\n\n\t// alias_ratio_range is the range over which we scale allowed alias ratios\n\talias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low)\n)\n\nfunc allowedAliasRatio(decodeCount int) float64 {\n\tswitch {\n\tcase decodeCount <= alias_ratio_range_low:\n\t\t// allow 99% to come from alias expansion for small-to-medium documents\n\t\treturn 0.99\n\tcase decodeCount >= alias_ratio_range_high:\n\t\t// allow 10% to come from alias expansion for very large documents\n\t\treturn 0.10\n\tdefault:\n\t\t// scale smoothly from 99% down to 10% over the range.\n\t\t// this maps to 396,000 - 400,000 allowed alias-driven decodes over the range.\n\t\t// 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps).\n\t\treturn 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range)\n\t}\n}\n\nfunc (d *decoder) unmarshal(n *Node, out reflect.Value) (good bool) {\n\td.decodeCount++\n\tif d.aliasDepth > 0 {\n\t\td.aliasCount++\n\t}\n\tif d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) {\n\t\tfailf(\"document contains excessive aliasing\")\n\t}\n\tif out.Type() == nodeType {\n\t\tout.Set(reflect.ValueOf(n).Elem())\n\t\treturn true\n\t}\n\tswitch n.Kind {\n\tcase DocumentNode:\n\t\treturn d.document(n, out)\n\tcase AliasNode:\n\t\treturn d.alias(n, out)\n\t}\n\tout, unmarshaled, good := d.prepare(n, out)\n\tif unmarshaled {\n\t\treturn good\n\t}\n\tswitch n.Kind {\n\tcase ScalarNode:\n\t\tgood = d.scalar(n, out)\n\tcase MappingNode:\n\t\tgood = d.mapping(n, out)\n\tcase SequenceNode:\n\t\tgood = d.sequence(n, out)\n\tcase 0:\n\t\tif n.IsZero() {\n\t\t\treturn d.null(out)\n\t\t}\n\t\tfallthrough\n\tdefault:\n\t\tfailf(\"cannot decode node with unknown kind %d\", n.Kind)\n\t}\n\treturn good\n}\n\nfunc (d *decoder) document(n *Node, out reflect.Value) (good bool) {\n\tif len(n.Content) == 1 {\n\t\td.doc = n\n\t\td.unmarshal(n.Content[0], out)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *decoder) alias(n *Node, out reflect.Value) (good bool) {\n\tif d.aliases[n] {\n\t\t// TODO this could actually be allowed in some circumstances.\n\t\tfailf(\"anchor '%s' value contains itself\", n.Value)\n\t}\n\td.aliases[n] = true\n\td.aliasDepth++\n\tgood = d.unmarshal(n.Alias, out)\n\td.aliasDepth--\n\tdelete(d.aliases, n)\n\treturn good\n}\n\nvar zeroValue reflect.Value\n\nfunc resetMap(out reflect.Value) {\n\tfor _, k := range out.MapKeys() {\n\t\tout.SetMapIndex(k, zeroValue)\n\t}\n}\n\nfunc (d *decoder) null(out reflect.Value) bool {\n\tif out.CanAddr() {\n\t\tswitch out.Kind() {\n\t\tcase reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice:\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (d *decoder) scalar(n *Node, out reflect.Value) bool {\n\tvar tag string\n\tvar resolved interface{}\n\tif n.indicatedString() {\n\t\ttag = strTag\n\t\tresolved = n.Value\n\t} else {\n\t\ttag, resolved = resolve(n.Tag, n.Value)\n\t\tif tag == binaryTag {\n\t\t\tdata, err := base64.StdEncoding.DecodeString(resolved.(string))\n\t\t\tif err != nil {\n\t\t\t\tfailf(\"!!binary value contains invalid base64 data\")\n\t\t\t}\n\t\t\tresolved = string(data)\n\t\t}\n\t}\n\tif resolved == nil {\n\t\treturn d.null(out)\n\t}\n\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t// We've resolved to exactly the type we want, so use that.\n\t\tout.Set(resolvedv)\n\t\treturn true\n\t}\n\t// Perhaps we can use the value as a TextUnmarshaler to\n\t// set its value.\n\tif out.CanAddr() {\n\t\tu, ok := out.Addr().Interface().(encoding.TextUnmarshaler)\n\t\tif ok {\n\t\t\tvar text []byte\n\t\t\tif tag == binaryTag {\n\t\t\t\ttext = []byte(resolved.(string))\n\t\t\t} else {\n\t\t\t\t// We let any value be unmarshaled into TextUnmarshaler.\n\t\t\t\t// That might be more lax than we'd like, but the\n\t\t\t\t// TextUnmarshaler itself should bowl out any dubious values.\n\t\t\t\ttext = []byte(n.Value)\n\t\t\t}\n\t\t\terr := u.UnmarshalText(text)\n\t\t\tif err != nil {\n\t\t\t\tfail(err)\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.String:\n\t\tif tag == binaryTag {\n\t\t\tout.SetString(resolved.(string))\n\t\t\treturn true\n\t\t}\n\t\tout.SetString(n.Value)\n\t\treturn true\n\tcase reflect.Interface:\n\t\tout.Set(reflect.ValueOf(resolved))\n\t\treturn true\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t// This used to work in v2, but it's very unfriendly.\n\t\tisDuration := out.Type() == durationType\n\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif !isDuration && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif !isDuration && !out.OverflowInt(resolved) {\n\t\t\t\tout.SetInt(resolved)\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase string:\n\t\t\tif out.Type() == durationType {\n\t\t\t\td, err := time.ParseDuration(resolved)\n\t\t\t\tif err == nil {\n\t\t\t\t\tout.SetInt(int64(d))\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Bool:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase bool:\n\t\t\tout.SetBool(resolved)\n\t\t\treturn true\n\t\tcase string:\n\t\t\t// This offers some compatibility with the 1.1 spec (https://yaml.org/type/bool.html).\n\t\t\t// It only works if explicitly attempting to unmarshal into a typed bool value.\n\t\t\tswitch resolved {\n\t\t\tcase \"y\", \"Y\", \"yes\", \"Yes\", \"YES\", \"on\", \"On\", \"ON\":\n\t\t\t\tout.SetBool(true)\n\t\t\t\treturn true\n\t\t\tcase \"n\", \"N\", \"no\", \"No\", \"NO\", \"off\", \"Off\", \"OFF\":\n\t\t\t\tout.SetBool(false)\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase int64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase uint64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase float64:\n\t\t\tout.SetFloat(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Struct:\n\t\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t\tout.Set(resolvedv)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Ptr:\n\t\tpanic(\"yaml internal error: please report the issue\")\n\t}\n\td.terror(n, tag, out)\n\treturn false\n}\n\nfunc settableValueOf(i interface{}) reflect.Value {\n\tv := reflect.ValueOf(i)\n\tsv := reflect.New(v.Type()).Elem()\n\tsv.Set(v)\n\treturn sv\n}\n\nfunc (d *decoder) sequence(n *Node, out reflect.Value) (good bool) {\n\tl := len(n.Content)\n\n\tvar iface reflect.Value\n\tswitch out.Kind() {\n\tcase reflect.Slice:\n\t\tout.Set(reflect.MakeSlice(out.Type(), l, l))\n\tcase reflect.Array:\n\t\tif l != out.Len() {\n\t\t\tfailf(\"invalid array: want %d elements but got %d\", out.Len(), l)\n\t\t}\n\tcase reflect.Interface:\n\t\t// No type hints. Will have to use a generic sequence.\n\t\tiface = out\n\t\tout = settableValueOf(make([]interface{}, l))\n\tdefault:\n\t\td.terror(n, seqTag, out)\n\t\treturn false\n\t}\n\tet := out.Type().Elem()\n\n\tj := 0\n\tfor i := 0; i < l; i++ {\n\t\te := reflect.New(et).Elem()\n\t\tif ok := d.unmarshal(n.Content[i], e); ok {\n\t\t\tout.Index(j).Set(e)\n\t\t\tj++\n\t\t}\n\t}\n\tif out.Kind() != reflect.Array {\n\t\tout.Set(out.Slice(0, j))\n\t}\n\tif iface.IsValid() {\n\t\tiface.Set(out)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mapping(n *Node, out reflect.Value) (good bool) {\n\tl := len(n.Content)\n\tif d.uniqueKeys {\n\t\tnerrs := len(d.terrors)\n\t\tfor i := 0; i < l; i += 2 {\n\t\t\tni := n.Content[i]\n\t\t\tfor j := i + 2; j < l; j += 2 {\n\t\t\t\tnj := n.Content[j]\n\t\t\t\tif ni.Kind == nj.Kind && ni.Value == nj.Value {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: mapping key %#v already defined at line %d\", nj.Line, nj.Value, ni.Line))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif len(d.terrors) > nerrs {\n\t\t\treturn false\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.Struct:\n\t\treturn d.mappingStruct(n, out)\n\tcase reflect.Map:\n\t\t// okay\n\tcase reflect.Interface:\n\t\tiface := out\n\t\tif isStringMap(n) {\n\t\t\tout = reflect.MakeMap(d.stringMapType)\n\t\t} else {\n\t\t\tout = reflect.MakeMap(d.generalMapType)\n\t\t}\n\t\tiface.Set(out)\n\tdefault:\n\t\td.terror(n, mapTag, out)\n\t\treturn false\n\t}\n\n\toutt := out.Type()\n\tkt := outt.Key()\n\tet := outt.Elem()\n\n\tstringMapType := d.stringMapType\n\tgeneralMapType := d.generalMapType\n\tif outt.Elem() == ifaceType {\n\t\tif outt.Key().Kind() == reflect.String {\n\t\t\td.stringMapType = outt\n\t\t} else if outt.Key() == ifaceType {\n\t\t\td.generalMapType = outt\n\t\t}\n\t}\n\n\tmergedFields := d.mergedFields\n\td.mergedFields = nil\n\n\tvar mergeNode *Node\n\n\tmapIsNew := false\n\tif out.IsNil() {\n\t\tout.Set(reflect.MakeMap(outt))\n\t\tmapIsNew = true\n\t}\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.Content[i]) {\n\t\t\tmergeNode = n.Content[i+1]\n\t\t\tcontinue\n\t\t}\n\t\tk := reflect.New(kt).Elem()\n\t\tif d.unmarshal(n.Content[i], k) {\n\t\t\tif mergedFields != nil {\n\t\t\t\tki := k.Interface()\n\t\t\t\tif mergedFields[ki] {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tmergedFields[ki] = true\n\t\t\t}\n\t\t\tkkind := k.Kind()\n\t\t\tif kkind == reflect.Interface {\n\t\t\t\tkkind = k.Elem().Kind()\n\t\t\t}\n\t\t\tif kkind == reflect.Map || kkind == reflect.Slice {\n\t\t\t\tfailf(\"invalid map key: %#v\", k.Interface())\n\t\t\t}\n\t\t\te := reflect.New(et).Elem()\n\t\t\tif d.unmarshal(n.Content[i+1], e) || n.Content[i+1].ShortTag() == nullTag && (mapIsNew || !out.MapIndex(k).IsValid()) {\n\t\t\t\tout.SetMapIndex(k, e)\n\t\t\t}\n\t\t}\n\t}\n\n\td.mergedFields = mergedFields\n\tif mergeNode != nil {\n\t\td.merge(n, mergeNode, out)\n\t}\n\n\td.stringMapType = stringMapType\n\td.generalMapType = generalMapType\n\treturn true\n}\n\nfunc isStringMap(n *Node) bool {\n\tif n.Kind != MappingNode {\n\t\treturn false\n\t}\n\tl := len(n.Content)\n\tfor i := 0; i < l; i += 2 {\n\t\tshortTag := n.Content[i].ShortTag()\n\t\tif shortTag != strTag && shortTag != mergeTag {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mappingStruct(n *Node, out reflect.Value) (good bool) {\n\tsinfo, err := getStructInfo(out.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tvar inlineMap reflect.Value\n\tvar elemType reflect.Type\n\tif sinfo.InlineMap != -1 {\n\t\tinlineMap = out.Field(sinfo.InlineMap)\n\t\telemType = inlineMap.Type().Elem()\n\t}\n\n\tfor _, index := range sinfo.InlineUnmarshalers {\n\t\tfield := d.fieldByIndex(n, out, index)\n\t\td.prepare(n, field)\n\t}\n\n\tmergedFields := d.mergedFields\n\td.mergedFields = nil\n\tvar mergeNode *Node\n\tvar doneFields []bool\n\tif d.uniqueKeys {\n\t\tdoneFields = make([]bool, len(sinfo.FieldsList))\n\t}\n\tname := settableValueOf(\"\")\n\tl := len(n.Content)\n\tfor i := 0; i < l; i += 2 {\n\t\tni := n.Content[i]\n\t\tif isMerge(ni) {\n\t\t\tmergeNode = n.Content[i+1]\n\t\t\tcontinue\n\t\t}\n\t\tif !d.unmarshal(ni, name) {\n\t\t\tcontinue\n\t\t}\n\t\tsname := name.String()\n\t\tif mergedFields != nil {\n\t\t\tif mergedFields[sname] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmergedFields[sname] = true\n\t\t}\n\t\tif info, ok := sinfo.FieldsMap[sname]; ok {\n\t\t\tif d.uniqueKeys {\n\t\t\t\tif doneFields[info.Id] {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s already set in type %s\", ni.Line, name.String(), out.Type()))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tdoneFields[info.Id] = true\n\t\t\t}\n\t\t\tvar field reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tfield = out.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tfield = d.fieldByIndex(n, out, info.Inline)\n\t\t\t}\n\t\t\td.unmarshal(n.Content[i+1], field)\n\t\t} else if sinfo.InlineMap != -1 {\n\t\t\tif inlineMap.IsNil() {\n\t\t\t\tinlineMap.Set(reflect.MakeMap(inlineMap.Type()))\n\t\t\t}\n\t\t\tvalue := reflect.New(elemType).Elem()\n\t\t\td.unmarshal(n.Content[i+1], value)\n\t\t\tinlineMap.SetMapIndex(name, value)\n\t\t} else if d.knownFields {\n\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s not found in type %s\", ni.Line, name.String(), out.Type()))\n\t\t}\n\t}\n\n\td.mergedFields = mergedFields\n\tif mergeNode != nil {\n\t\td.merge(n, mergeNode, out)\n\t}\n\treturn true\n}\n\nfunc failWantMap() {\n\tfailf(\"map merge requires map or sequence of maps as the value\")\n}\n\nfunc (d *decoder) merge(parent *Node, merge *Node, out reflect.Value) {\n\tmergedFields := d.mergedFields\n\tif mergedFields == nil {\n\t\td.mergedFields = make(map[interface{}]bool)\n\t\tfor i := 0; i < len(parent.Content); i += 2 {\n\t\t\tk := reflect.New(ifaceType).Elem()\n\t\t\tif d.unmarshal(parent.Content[i], k) {\n\t\t\t\td.mergedFields[k.Interface()] = true\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch merge.Kind {\n\tcase MappingNode:\n\t\td.unmarshal(merge, out)\n\tcase AliasNode:\n\t\tif merge.Alias != nil && merge.Alias.Kind != MappingNode {\n\t\t\tfailWantMap()\n\t\t}\n\t\td.unmarshal(merge, out)\n\tcase SequenceNode:\n\t\tfor i := 0; i < len(merge.Content); i++ {\n\t\t\tni := merge.Content[i]\n\t\t\tif ni.Kind == AliasNode {\n\t\t\t\tif ni.Alias != nil && ni.Alias.Kind != MappingNode {\n\t\t\t\t\tfailWantMap()\n\t\t\t\t}\n\t\t\t} else if ni.Kind != MappingNode {\n\t\t\t\tfailWantMap()\n\t\t\t}\n\t\t\td.unmarshal(ni, out)\n\t\t}\n\tdefault:\n\t\tfailWantMap()\n\t}\n\n\td.mergedFields = mergedFields\n}\n\nfunc isMerge(n *Node) bool {\n\treturn n.Kind == ScalarNode && n.Value == \"<<\" && (n.Tag == \"\" || n.Tag == \"!\" || shortTag(n.Tag) == mergeTag)\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/emitterc.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Flush the buffer if needed.\nfunc flush(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) {\n\t\treturn yaml_emitter_flush(emitter)\n\t}\n\treturn true\n}\n\n// Put a character to the output buffer.\nfunc put(emitter *yaml_emitter_t, value byte) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.buffer[emitter.buffer_pos] = value\n\temitter.buffer_pos++\n\temitter.column++\n\treturn true\n}\n\n// Put a line break to the output buffer.\nfunc put_break(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tswitch emitter.line_break {\n\tcase yaml_CR_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\r'\n\t\temitter.buffer_pos += 1\n\tcase yaml_LN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\n'\n\t\temitter.buffer_pos += 1\n\tcase yaml_CRLN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos+0] = '\\r'\n\t\temitter.buffer[emitter.buffer_pos+1] = '\\n'\n\t\temitter.buffer_pos += 2\n\tdefault:\n\t\tpanic(\"unknown line break setting\")\n\t}\n\tif emitter.column == 0 {\n\t\temitter.space_above = true\n\t}\n\temitter.column = 0\n\temitter.line++\n\t// [Go] Do this here and below and drop from everywhere else (see commented lines).\n\temitter.indention = true\n\treturn true\n}\n\n// Copy a character from a string into buffer.\nfunc write(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tp := emitter.buffer_pos\n\tw := width(s[*i])\n\tswitch w {\n\tcase 4:\n\t\temitter.buffer[p+3] = s[*i+3]\n\t\tfallthrough\n\tcase 3:\n\t\temitter.buffer[p+2] = s[*i+2]\n\t\tfallthrough\n\tcase 2:\n\t\temitter.buffer[p+1] = s[*i+1]\n\t\tfallthrough\n\tcase 1:\n\t\temitter.buffer[p+0] = s[*i+0]\n\tdefault:\n\t\tpanic(\"unknown character width\")\n\t}\n\temitter.column++\n\temitter.buffer_pos += w\n\t*i += w\n\treturn true\n}\n\n// Write a whole string into buffer.\nfunc write_all(emitter *yaml_emitter_t, s []byte) bool {\n\tfor i := 0; i < len(s); {\n\t\tif !write(emitter, s, &i) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Copy a line break character from a string into buffer.\nfunc write_break(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif s[*i] == '\\n' {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t\t*i++\n\t} else {\n\t\tif !write(emitter, s, i) {\n\t\t\treturn false\n\t\t}\n\t\tif emitter.column == 0 {\n\t\t\temitter.space_above = true\n\t\t}\n\t\temitter.column = 0\n\t\temitter.line++\n\t\t// [Go] Do this here and above and drop from everywhere else (see commented lines).\n\t\temitter.indention = true\n\t}\n\treturn true\n}\n\n// Set an emitter error and return false.\nfunc yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_EMITTER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Emit an event.\nfunc yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.events = append(emitter.events, *event)\n\tfor !yaml_emitter_need_more_events(emitter) {\n\t\tevent := &emitter.events[emitter.events_head]\n\t\tif !yaml_emitter_analyze_event(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_state_machine(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tyaml_event_delete(event)\n\t\temitter.events_head++\n\t}\n\treturn true\n}\n\n// Check if we need to accumulate more events before emitting.\n//\n// We accumulate extra\n//  - 1 event for DOCUMENT-START\n//  - 2 events for SEQUENCE-START\n//  - 3 events for MAPPING-START\n//\nfunc yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool {\n\tif emitter.events_head == len(emitter.events) {\n\t\treturn true\n\t}\n\tvar accumulate int\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\taccumulate = 1\n\t\tbreak\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\taccumulate = 2\n\t\tbreak\n\tcase yaml_MAPPING_START_EVENT:\n\t\taccumulate = 3\n\t\tbreak\n\tdefault:\n\t\treturn false\n\t}\n\tif len(emitter.events)-emitter.events_head > accumulate {\n\t\treturn false\n\t}\n\tvar level int\n\tfor i := emitter.events_head; i < len(emitter.events); i++ {\n\t\tswitch emitter.events[i].typ {\n\t\tcase yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT:\n\t\t\tlevel++\n\t\tcase yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT:\n\t\t\tlevel--\n\t\t}\n\t\tif level == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Append a directive to the directives stack.\nfunc yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool {\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\tif bytes.Equal(value.handle, emitter.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"duplicate %TAG directive\")\n\t\t}\n\t}\n\n\t// [Go] Do we actually need to copy this given garbage collection\n\t// and the lack of deallocating destructors?\n\ttag_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(tag_copy.handle, value.handle)\n\tcopy(tag_copy.prefix, value.prefix)\n\temitter.tag_directives = append(emitter.tag_directives, tag_copy)\n\treturn true\n}\n\n// Increase the indentation level.\nfunc yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool {\n\temitter.indents = append(emitter.indents, emitter.indent)\n\tif emitter.indent < 0 {\n\t\tif flow {\n\t\t\temitter.indent = emitter.best_indent\n\t\t} else {\n\t\t\temitter.indent = 0\n\t\t}\n\t} else if !indentless {\n\t\t// [Go] This was changed so that indentations are more regular.\n\t\tif emitter.states[len(emitter.states)-1] == yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE {\n\t\t\t// The first indent inside a sequence will just skip the \"- \" indicator.\n\t\t\temitter.indent += 2\n\t\t} else {\n\t\t\t// Everything else aligns to the chosen indentation.\n\t\t\temitter.indent = emitter.best_indent*((emitter.indent+emitter.best_indent)/emitter.best_indent)\n\t\t}\n\t}\n\treturn true\n}\n\n// State dispatcher.\nfunc yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tswitch emitter.state {\n\tdefault:\n\tcase yaml_EMIT_STREAM_START_STATE:\n\t\treturn yaml_emitter_emit_stream_start(emitter, event)\n\n\tcase yaml_EMIT_FIRST_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, true)\n\n\tcase yaml_EMIT_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, false)\n\n\tcase yaml_EMIT_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_emitter_emit_document_content(emitter, event)\n\n\tcase yaml_EMIT_DOCUMENT_END_STATE:\n\t\treturn yaml_emitter_emit_document_end(emitter, event)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, true, false)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false, true)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, true, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_END_STATE:\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected nothing after STREAM-END\")\n\t}\n\tpanic(\"invalid emitter state\")\n}\n\n// Expect STREAM-START.\nfunc yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_STREAM_START_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected STREAM-START\")\n\t}\n\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\temitter.encoding = event.encoding\n\t\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\t\temitter.encoding = yaml_UTF8_ENCODING\n\t\t}\n\t}\n\tif emitter.best_indent < 2 || emitter.best_indent > 9 {\n\t\temitter.best_indent = 2\n\t}\n\tif emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 {\n\t\temitter.best_width = 80\n\t}\n\tif emitter.best_width < 0 {\n\t\temitter.best_width = 1<<31 - 1\n\t}\n\tif emitter.line_break == yaml_ANY_BREAK {\n\t\temitter.line_break = yaml_LN_BREAK\n\t}\n\n\temitter.indent = -1\n\temitter.line = 0\n\temitter.column = 0\n\temitter.whitespace = true\n\temitter.indention = true\n\temitter.space_above = true\n\temitter.foot_indent = -1\n\n\tif emitter.encoding != yaml_UTF8_ENCODING {\n\t\tif !yaml_emitter_write_bom(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE\n\treturn true\n}\n\n// Expect DOCUMENT-START or STREAM-END.\nfunc yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\n\tif event.typ == yaml_DOCUMENT_START_EVENT {\n\n\t\tif event.version_directive != nil {\n\t\t\tif !yaml_emitter_analyze_version_directive(emitter, event.version_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\tif !yaml_emitter_analyze_tag_directive(emitter, tag_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(default_tag_directives); i++ {\n\t\t\ttag_directive := &default_tag_directives[i]\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, true) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\timplicit := event.implicit\n\t\tif !first || emitter.canonical {\n\t\t\timplicit = false\n\t\t}\n\n\t\tif emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif event.version_directive != nil {\n\t\t\timplicit = false\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%YAML\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"1.1\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif len(event.tag_directives) > 0 {\n\t\t\timplicit = false\n\t\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%TAG\"), true, false, false) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif yaml_emitter_check_empty_document(emitter) {\n\t\t\timplicit = false\n\t\t}\n\t\tif !implicit {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"---\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif emitter.canonical || true {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif len(emitter.head_comment) > 0 {\n\t\t\tif !yaml_emitter_process_head_comment(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !put_break(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\temitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE\n\t\treturn true\n\t}\n\n\tif event.typ == yaml_STREAM_END_EVENT {\n\t\tif emitter.open_ended {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_flush(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = yaml_EMIT_END_STATE\n\t\treturn true\n\t}\n\n\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-START or STREAM-END\")\n}\n\n// Expect the root node.\nfunc yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE)\n\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_emit_node(emitter, event, true, false, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect DOCUMENT-END.\nfunc yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_DOCUMENT_END_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-END\")\n\t}\n\t// [Go] Force document foot separation.\n\temitter.foot_indent = 0\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\temitter.foot_indent = -1\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !event.implicit {\n\t\t// [Go] Allocate the slice elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.state = yaml_EMIT_DOCUMENT_START_STATE\n\temitter.tag_directives = emitter.tag_directives[:0]\n\treturn true\n}\n\n// Expect a flow item node.\nfunc yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\tif emitter.canonical && !first && !trail {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.column == 0 || emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_line_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\n\t\treturn true\n\t}\n\n\tif !first && !trail {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif emitter.column == 0 {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE)\n\t} else {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE)\n\t}\n\tif !yaml_emitter_emit_node(emitter, event, false, true, false, false) {\n\t\treturn false\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect a flow key node.\nfunc yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\tif (emitter.canonical || len(emitter.head_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0) && !first && !trail {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_process_head_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_line_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\n\tif !first && !trail {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\n\tif emitter.column == 0 {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !emitter.canonical && yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a flow value node.\nfunc yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE)\n\t} else {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE)\n\t}\n\tif !yaml_emitter_emit_node(emitter, event, false, false, true, false) {\n\t\treturn false\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect a block item node.\nfunc yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE)\n\tif !yaml_emitter_emit_node(emitter, event, false, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect a block key node.\nfunc yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif len(emitter.line_comment) > 0 {\n\t\t// [Go] A line comment was provided for the key. That's unusual as the\n\t\t//      scanner associates line comments with the value. Either way,\n\t\t//      save the line comment and render it appropriately later.\n\t\temitter.key_line_comment = emitter.line_comment\n\t\temitter.line_comment = nil\n\t}\n\tif yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block value node.\nfunc yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(emitter.key_line_comment) > 0 {\n\t\t// [Go] Line comments are generally associated with the value, but when there's\n\t\t//      no value on the same line as a mapping key they end up attached to the\n\t\t//      key itself.\n\t\tif event.typ == yaml_SCALAR_EVENT {\n\t\t\tif len(emitter.line_comment) == 0 {\n\t\t\t\t// A scalar is coming and it has no line comments by itself yet,\n\t\t\t\t// so just let it handle the line comment as usual. If it has a\n\t\t\t\t// line comment, we can't have both so the one from the key is lost.\n\t\t\t\temitter.line_comment = emitter.key_line_comment\n\t\t\t\temitter.key_line_comment = nil\n\t\t\t}\n\t\t} else if event.sequence_style() != yaml_FLOW_SEQUENCE_STYLE && (event.typ == yaml_MAPPING_START_EVENT || event.typ == yaml_SEQUENCE_START_EVENT) {\n\t\t\t// An indented block follows, so write the comment right now.\n\t\t\temitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment\n\t\t\tif !yaml_emitter_process_line_comment(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE)\n\tif !yaml_emitter_emit_node(emitter, event, false, false, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_silent_nil_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\treturn event.typ == yaml_SCALAR_EVENT && event.implicit && !emitter.canonical && len(emitter.scalar_data.value) == 0\n}\n\n// Expect a node.\nfunc yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t,\n\troot bool, sequence bool, mapping bool, simple_key bool) bool {\n\n\temitter.root_context = root\n\temitter.sequence_context = sequence\n\temitter.mapping_context = mapping\n\temitter.simple_key_context = simple_key\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\treturn yaml_emitter_emit_alias(emitter, event)\n\tcase yaml_SCALAR_EVENT:\n\t\treturn yaml_emitter_emit_scalar(emitter, event)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn yaml_emitter_emit_sequence_start(emitter, event)\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn yaml_emitter_emit_mapping_start(emitter, event)\n\tdefault:\n\t\treturn yaml_emitter_set_emitter_error(emitter,\n\t\t\tfmt.Sprintf(\"expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v\", event.typ))\n\t}\n}\n\n// Expect ALIAS.\nfunc yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SCALAR.\nfunc yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_select_scalar_style(emitter, event) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_scalar(emitter) {\n\t\treturn false\n\t}\n\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SEQUENCE-START.\nfunc yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE ||\n\t\tyaml_emitter_check_empty_sequence(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE\n\t}\n\treturn true\n}\n\n// Expect MAPPING-START.\nfunc yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE ||\n\t\tyaml_emitter_check_empty_mapping(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE\n\t}\n\treturn true\n}\n\n// Check if the document content is an empty scalar.\nfunc yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool {\n\treturn false // [Go] Huh?\n}\n\n// Check if the next events represent an empty sequence.\nfunc yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT\n}\n\n// Check if the next events represent an empty mapping.\nfunc yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT\n}\n\n// Check if the next node can be expressed as a simple key.\nfunc yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool {\n\tlength := 0\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tlength += len(emitter.anchor_data.anchor)\n\tcase yaml_SCALAR_EVENT:\n\t\tif emitter.scalar_data.multiline {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix) +\n\t\t\tlen(emitter.scalar_data.value)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif !yaml_emitter_check_empty_sequence(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif !yaml_emitter_check_empty_mapping(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tdefault:\n\t\treturn false\n\t}\n\treturn length <= 128\n}\n\n// Determine an acceptable scalar style.\nfunc yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\tno_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0\n\tif no_tag && !event.implicit && !event.quoted_implicit {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"neither tag nor implicit flags are specified\")\n\t}\n\n\tstyle := event.scalar_style()\n\tif style == yaml_ANY_SCALAR_STYLE {\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\t}\n\tif emitter.canonical {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\tif emitter.simple_key_context && emitter.scalar_data.multiline {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\n\tif style == yaml_PLAIN_SCALAR_STYLE {\n\t\tif emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed ||\n\t\t\temitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif no_tag && !event.implicit {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_SINGLE_QUOTED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.single_quoted_allowed {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\n\tif no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE {\n\t\temitter.tag_data.handle = []byte{'!'}\n\t}\n\temitter.scalar_data.style = style\n\treturn true\n}\n\n// Write an anchor.\nfunc yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool {\n\tif emitter.anchor_data.anchor == nil {\n\t\treturn true\n\t}\n\tc := []byte{'&'}\n\tif emitter.anchor_data.alias {\n\t\tc[0] = '*'\n\t}\n\tif !yaml_emitter_write_indicator(emitter, c, true, false, false) {\n\t\treturn false\n\t}\n\treturn yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor)\n}\n\n// Write a tag.\nfunc yaml_emitter_process_tag(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 {\n\t\treturn true\n\t}\n\tif len(emitter.tag_data.handle) > 0 {\n\t\tif !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) {\n\t\t\treturn false\n\t\t}\n\t\tif len(emitter.tag_data.suffix) > 0 {\n\t\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// [Go] Allocate these slices elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"!<\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Write a scalar.\nfunc yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool {\n\tswitch emitter.scalar_data.style {\n\tcase yaml_PLAIN_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_SINGLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_DOUBLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_LITERAL_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value)\n\n\tcase yaml_FOLDED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value)\n\t}\n\tpanic(\"unknown scalar style\")\n}\n\n// Write a head comment.\nfunc yaml_emitter_process_head_comment(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tail_comment) > 0 {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_comment(emitter, emitter.tail_comment) {\n\t\t\treturn false\n\t\t}\n\t\temitter.tail_comment = emitter.tail_comment[:0]\n\t\temitter.foot_indent = emitter.indent\n\t\tif emitter.foot_indent < 0 {\n\t\t\temitter.foot_indent = 0\n\t\t}\n\t}\n\n\tif len(emitter.head_comment) == 0 {\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_comment(emitter, emitter.head_comment) {\n\t\treturn false\n\t}\n\temitter.head_comment = emitter.head_comment[:0]\n\treturn true\n}\n\n// Write an line comment.\nfunc yaml_emitter_process_line_comment(emitter *yaml_emitter_t) bool {\n\tif len(emitter.line_comment) == 0 {\n\t\treturn true\n\t}\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_write_comment(emitter, emitter.line_comment) {\n\t\treturn false\n\t}\n\temitter.line_comment = emitter.line_comment[:0]\n\treturn true\n}\n\n// Write a foot comment.\nfunc yaml_emitter_process_foot_comment(emitter *yaml_emitter_t) bool {\n\tif len(emitter.foot_comment) == 0 {\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_comment(emitter, emitter.foot_comment) {\n\t\treturn false\n\t}\n\temitter.foot_comment = emitter.foot_comment[:0]\n\temitter.foot_indent = emitter.indent\n\tif emitter.foot_indent < 0 {\n\t\temitter.foot_indent = 0\n\t}\n\treturn true\n}\n\n// Check if a %YAML directive is valid.\nfunc yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool {\n\tif version_directive.major != 1 || version_directive.minor != 1 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"incompatible %YAML directive\")\n\t}\n\treturn true\n}\n\n// Check if a %TAG directive is valid.\nfunc yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool {\n\thandle := tag_directive.handle\n\tprefix := tag_directive.prefix\n\tif len(handle) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must not be empty\")\n\t}\n\tif handle[0] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must start with '!'\")\n\t}\n\tif handle[len(handle)-1] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must end with '!'\")\n\t}\n\tfor i := 1; i < len(handle)-1; i += width(handle[i]) {\n\t\tif !is_alpha(handle, i) {\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must contain alphanumerical characters only\")\n\t\t}\n\t}\n\tif len(prefix) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag prefix must not be empty\")\n\t}\n\treturn true\n}\n\n// Check if an anchor is valid.\nfunc yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool {\n\tif len(anchor) == 0 {\n\t\tproblem := \"anchor value must not be empty\"\n\t\tif alias {\n\t\t\tproblem = \"alias value must not be empty\"\n\t\t}\n\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t}\n\tfor i := 0; i < len(anchor); i += width(anchor[i]) {\n\t\tif !is_alpha(anchor, i) {\n\t\t\tproblem := \"anchor value must contain alphanumerical characters only\"\n\t\t\tif alias {\n\t\t\t\tproblem = \"alias value must contain alphanumerical characters only\"\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t\t}\n\t}\n\temitter.anchor_data.anchor = anchor\n\temitter.anchor_data.alias = alias\n\treturn true\n}\n\n// Check if a tag is valid.\nfunc yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool {\n\tif len(tag) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag value must not be empty\")\n\t}\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\ttag_directive := &emitter.tag_directives[i]\n\t\tif bytes.HasPrefix(tag, tag_directive.prefix) {\n\t\t\temitter.tag_data.handle = tag_directive.handle\n\t\t\temitter.tag_data.suffix = tag[len(tag_directive.prefix):]\n\t\t\treturn true\n\t\t}\n\t}\n\temitter.tag_data.suffix = tag\n\treturn true\n}\n\n// Check if a scalar is valid.\nfunc yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tvar (\n\t\tblock_indicators   = false\n\t\tflow_indicators    = false\n\t\tline_breaks        = false\n\t\tspecial_characters = false\n\t\ttab_characters     = false\n\n\t\tleading_space  = false\n\t\tleading_break  = false\n\t\ttrailing_space = false\n\t\ttrailing_break = false\n\t\tbreak_space    = false\n\t\tspace_break    = false\n\n\t\tpreceded_by_whitespace = false\n\t\tfollowed_by_whitespace = false\n\t\tprevious_space         = false\n\t\tprevious_break         = false\n\t)\n\n\temitter.scalar_data.value = value\n\n\tif len(value) == 0 {\n\t\temitter.scalar_data.multiline = false\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = true\n\t\temitter.scalar_data.single_quoted_allowed = true\n\t\temitter.scalar_data.block_allowed = false\n\t\treturn true\n\t}\n\n\tif len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) {\n\t\tblock_indicators = true\n\t\tflow_indicators = true\n\t}\n\n\tpreceded_by_whitespace = true\n\tfor i, w := 0, 0; i < len(value); i += w {\n\t\tw = width(value[i])\n\t\tfollowed_by_whitespace = i+w >= len(value) || is_blank(value, i+w)\n\n\t\tif i == 0 {\n\t\t\tswitch value[i] {\n\t\t\tcase '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\\'', '\"', '%', '@', '`':\n\t\t\t\tflow_indicators = true\n\t\t\t\tblock_indicators = true\n\t\t\tcase '?', ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '-':\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tswitch value[i] {\n\t\t\tcase ',', '?', '[', ']', '{', '}':\n\t\t\t\tflow_indicators = true\n\t\t\tcase ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '#':\n\t\t\t\tif preceded_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif value[i] == '\\t' {\n\t\t\ttab_characters = true\n\t\t} else if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode {\n\t\t\tspecial_characters = true\n\t\t}\n\t\tif is_space(value, i) {\n\t\t\tif i == 0 {\n\t\t\t\tleading_space = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_space = true\n\t\t\t}\n\t\t\tif previous_break {\n\t\t\t\tbreak_space = true\n\t\t\t}\n\t\t\tprevious_space = true\n\t\t\tprevious_break = false\n\t\t} else if is_break(value, i) {\n\t\t\tline_breaks = true\n\t\t\tif i == 0 {\n\t\t\t\tleading_break = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_break = true\n\t\t\t}\n\t\t\tif previous_space {\n\t\t\t\tspace_break = true\n\t\t\t}\n\t\t\tprevious_space = false\n\t\t\tprevious_break = true\n\t\t} else {\n\t\t\tprevious_space = false\n\t\t\tprevious_break = false\n\t\t}\n\n\t\t// [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition.\n\t\tpreceded_by_whitespace = is_blankz(value, i)\n\t}\n\n\temitter.scalar_data.multiline = line_breaks\n\temitter.scalar_data.flow_plain_allowed = true\n\temitter.scalar_data.block_plain_allowed = true\n\temitter.scalar_data.single_quoted_allowed = true\n\temitter.scalar_data.block_allowed = true\n\n\tif leading_space || leading_break || trailing_space || trailing_break {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif trailing_space {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif break_space {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || tab_characters || special_characters {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || special_characters {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif line_breaks {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif flow_indicators {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t}\n\tif block_indicators {\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\treturn true\n}\n\n// Check if the event data is valid.\nfunc yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\temitter.anchor_data.anchor = nil\n\temitter.tag_data.handle = nil\n\temitter.tag_data.suffix = nil\n\temitter.scalar_data.value = nil\n\n\tif len(event.head_comment) > 0 {\n\t\temitter.head_comment = event.head_comment\n\t}\n\tif len(event.line_comment) > 0 {\n\t\temitter.line_comment = event.line_comment\n\t}\n\tif len(event.foot_comment) > 0 {\n\t\temitter.foot_comment = event.foot_comment\n\t}\n\tif len(event.tail_comment) > 0 {\n\t\temitter.tail_comment = event.tail_comment\n\t}\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, true) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SCALAR_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_analyze_scalar(emitter, event.value) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\n// Write the BOM character.\nfunc yaml_emitter_write_bom(emitter *yaml_emitter_t) bool {\n\tif !flush(emitter) {\n\t\treturn false\n\t}\n\tpos := emitter.buffer_pos\n\temitter.buffer[pos+0] = '\\xEF'\n\temitter.buffer[pos+1] = '\\xBB'\n\temitter.buffer[pos+2] = '\\xBF'\n\temitter.buffer_pos += 3\n\treturn true\n}\n\nfunc yaml_emitter_write_indent(emitter *yaml_emitter_t) bool {\n\tindent := emitter.indent\n\tif indent < 0 {\n\t\tindent = 0\n\t}\n\tif !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif emitter.foot_indent == indent {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor emitter.column < indent {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.whitespace = true\n\t//emitter.indention = true\n\temitter.space_above = false\n\temitter.foot_indent = -1\n\treturn true\n}\n\nfunc yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, indicator) {\n\t\treturn false\n\t}\n\temitter.whitespace = is_whitespace\n\temitter.indention = (emitter.indention && is_indention)\n\temitter.open_ended = false\n\treturn true\n}\n\nfunc yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool {\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor i := 0; i < len(value); {\n\t\tvar must_write bool\n\t\tswitch value[i] {\n\t\tcase ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\\'', '(', ')', '[', ']':\n\t\t\tmust_write = true\n\t\tdefault:\n\t\t\tmust_write = is_alpha(value, i)\n\t\t}\n\t\tif must_write {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\tw := width(value[i])\n\t\t\tfor k := 0; k < w; k++ {\n\t\t\t\toctet := value[i]\n\t\t\t\ti++\n\t\t\t\tif !put(emitter, '%') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc := octet >> 4\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc = octet & 0x0f\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tif len(value) > 0 && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\tif len(value) > 0 {\n\t\temitter.whitespace = false\n\t}\n\temitter.indention = false\n\tif emitter.root_context {\n\t\temitter.open_ended = true\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, true, false, false) {\n\t\treturn false\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif value[i] == '\\'' {\n\t\t\t\tif !put(emitter, '\\'') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tspaces := false\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, true, false, false) {\n\t\treturn false\n\t}\n\n\tfor i := 0; i < len(value); {\n\t\tif !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) ||\n\t\t\tis_bom(value, i) || is_break(value, i) ||\n\t\t\tvalue[i] == '\"' || value[i] == '\\\\' {\n\n\t\t\toctet := value[i]\n\n\t\t\tvar w int\n\t\t\tvar v rune\n\t\t\tswitch {\n\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\tw, v = 1, rune(octet&0x7F)\n\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\tw, v = 2, rune(octet&0x1F)\n\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\tw, v = 3, rune(octet&0x0F)\n\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\tw, v = 4, rune(octet&0x07)\n\t\t\t}\n\t\t\tfor k := 1; k < w; k++ {\n\t\t\t\toctet = value[i+k]\n\t\t\t\tv = (v << 6) + (rune(octet) & 0x3F)\n\t\t\t}\n\t\t\ti += w\n\n\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tvar ok bool\n\t\t\tswitch v {\n\t\t\tcase 0x00:\n\t\t\t\tok = put(emitter, '0')\n\t\t\tcase 0x07:\n\t\t\t\tok = put(emitter, 'a')\n\t\t\tcase 0x08:\n\t\t\t\tok = put(emitter, 'b')\n\t\t\tcase 0x09:\n\t\t\t\tok = put(emitter, 't')\n\t\t\tcase 0x0A:\n\t\t\t\tok = put(emitter, 'n')\n\t\t\tcase 0x0b:\n\t\t\t\tok = put(emitter, 'v')\n\t\t\tcase 0x0c:\n\t\t\t\tok = put(emitter, 'f')\n\t\t\tcase 0x0d:\n\t\t\t\tok = put(emitter, 'r')\n\t\t\tcase 0x1b:\n\t\t\t\tok = put(emitter, 'e')\n\t\t\tcase 0x22:\n\t\t\t\tok = put(emitter, '\"')\n\t\t\tcase 0x5c:\n\t\t\t\tok = put(emitter, '\\\\')\n\t\t\tcase 0x85:\n\t\t\t\tok = put(emitter, 'N')\n\t\t\tcase 0xA0:\n\t\t\t\tok = put(emitter, '_')\n\t\t\tcase 0x2028:\n\t\t\t\tok = put(emitter, 'L')\n\t\t\tcase 0x2029:\n\t\t\t\tok = put(emitter, 'P')\n\t\t\tdefault:\n\t\t\t\tif v <= 0xFF {\n\t\t\t\t\tok = put(emitter, 'x')\n\t\t\t\t\tw = 2\n\t\t\t\t} else if v <= 0xFFFF {\n\t\t\t\t\tok = put(emitter, 'u')\n\t\t\t\t\tw = 4\n\t\t\t\t} else {\n\t\t\t\t\tok = put(emitter, 'U')\n\t\t\t\t\tw = 8\n\t\t\t\t}\n\t\t\t\tfor k := (w - 1) * 4; ok && k >= 0; k -= 4 {\n\t\t\t\t\tdigit := byte((v >> uint(k)) & 0x0F)\n\t\t\t\t\tif digit < 10 {\n\t\t\t\t\t\tok = put(emitter, digit+'0')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tok = put(emitter, digit+'A'-10)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t} else if is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_space(value, i+1) {\n\t\t\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else if !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool {\n\tif is_space(value, 0) || is_break(value, 0) {\n\t\tindent_hint := []byte{'0' + byte(emitter.best_indent)}\n\t\tif !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\temitter.open_ended = false\n\n\tvar chomp_hint [1]byte\n\tif len(value) == 0 {\n\t\tchomp_hint[0] = '-'\n\t} else {\n\t\ti := len(value) - 1\n\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\ti--\n\t\t}\n\t\tif !is_break(value, i) {\n\t\t\tchomp_hint[0] = '-'\n\t\t} else if i == 0 {\n\t\t\tchomp_hint[0] = '+'\n\t\t\temitter.open_ended = true\n\t\t} else {\n\t\t\ti--\n\t\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\t\ti--\n\t\t\t}\n\t\t\tif is_break(value, i) {\n\t\t\t\tchomp_hint[0] = '+'\n\t\t\t\temitter.open_ended = true\n\t\t\t}\n\t\t}\n\t}\n\tif chomp_hint[0] != 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\t//emitter.indention = true\n\temitter.whitespace = true\n\tbreaks := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\n\t//emitter.indention = true\n\temitter.whitespace = true\n\n\tbreaks := true\n\tleading_spaces := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !breaks && !leading_spaces && value[i] == '\\n' {\n\t\t\t\tk := 0\n\t\t\t\tfor is_break(value, k) {\n\t\t\t\t\tk += width(value[k])\n\t\t\t\t}\n\t\t\t\tif !is_blankz(value, k) {\n\t\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tleading_spaces = is_blank(value, i)\n\t\t\t}\n\t\t\tif !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_comment(emitter *yaml_emitter_t, comment []byte) bool {\n\tbreaks := false\n\tpound := false\n\tfor i := 0; i < len(comment); {\n\t\tif is_break(comment, i) {\n\t\t\tif !write_break(emitter, comment, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t\tpound = false\n\t\t} else {\n\t\t\tif breaks && !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !pound {\n\t\t\t\tif comment[i] != '#' && (!put(emitter, '#') || !put(emitter, ' ')) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tpound = true\n\t\t\t}\n\t\t\tif !write(emitter, comment, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !breaks && !put_break(emitter) {\n\t\treturn false\n\t}\n\n\temitter.whitespace = true\n\t//emitter.indention = true\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/encode.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\ntype encoder struct {\n\temitter  yaml_emitter_t\n\tevent    yaml_event_t\n\tout      []byte\n\tflow     bool\n\tindent   int\n\tdoneInit bool\n}\n\nfunc newEncoder() *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_string(&e.emitter, &e.out)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc newEncoderWithWriter(w io.Writer) *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_writer(&e.emitter, w)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc (e *encoder) init() {\n\tif e.doneInit {\n\t\treturn\n\t}\n\tif e.indent == 0 {\n\t\te.indent = 4\n\t}\n\te.emitter.best_indent = e.indent\n\tyaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)\n\te.emit()\n\te.doneInit = true\n}\n\nfunc (e *encoder) finish() {\n\te.emitter.open_ended = false\n\tyaml_stream_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) destroy() {\n\tyaml_emitter_delete(&e.emitter)\n}\n\nfunc (e *encoder) emit() {\n\t// This will internally delete the e.event value.\n\te.must(yaml_emitter_emit(&e.emitter, &e.event))\n}\n\nfunc (e *encoder) must(ok bool) {\n\tif !ok {\n\t\tmsg := e.emitter.problem\n\t\tif msg == \"\" {\n\t\t\tmsg = \"unknown problem generating YAML content\"\n\t\t}\n\t\tfailf(\"%s\", msg)\n\t}\n}\n\nfunc (e *encoder) marshalDoc(tag string, in reflect.Value) {\n\te.init()\n\tvar node *Node\n\tif in.IsValid() {\n\t\tnode, _ = in.Interface().(*Node)\n\t}\n\tif node != nil && node.Kind == DocumentNode {\n\t\te.nodev(in)\n\t} else {\n\t\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\t\te.emit()\n\t\te.marshal(tag, in)\n\t\tyaml_document_end_event_initialize(&e.event, true)\n\t\te.emit()\n\t}\n}\n\nfunc (e *encoder) marshal(tag string, in reflect.Value) {\n\ttag = shortTag(tag)\n\tif !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() {\n\t\te.nilv()\n\t\treturn\n\t}\n\tiface := in.Interface()\n\tswitch value := iface.(type) {\n\tcase *Node:\n\t\te.nodev(in)\n\t\treturn\n\tcase Node:\n\t\tif !in.CanAddr() {\n\t\t\tvar n = reflect.New(in.Type()).Elem()\n\t\t\tn.Set(in)\n\t\t\tin = n\n\t\t}\n\t\te.nodev(in.Addr())\n\t\treturn\n\tcase time.Time:\n\t\te.timev(tag, in)\n\t\treturn\n\tcase *time.Time:\n\t\te.timev(tag, in.Elem())\n\t\treturn\n\tcase time.Duration:\n\t\te.stringv(tag, reflect.ValueOf(value.String()))\n\t\treturn\n\tcase Marshaler:\n\t\tv, err := value.MarshalYAML()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tif v == nil {\n\t\t\te.nilv()\n\t\t\treturn\n\t\t}\n\t\te.marshal(tag, reflect.ValueOf(v))\n\t\treturn\n\tcase encoding.TextMarshaler:\n\t\ttext, err := value.MarshalText()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tin = reflect.ValueOf(string(text))\n\tcase nil:\n\t\te.nilv()\n\t\treturn\n\t}\n\tswitch in.Kind() {\n\tcase reflect.Interface:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Map:\n\t\te.mapv(tag, in)\n\tcase reflect.Ptr:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Struct:\n\t\te.structv(tag, in)\n\tcase reflect.Slice, reflect.Array:\n\t\te.slicev(tag, in)\n\tcase reflect.String:\n\t\te.stringv(tag, in)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\te.intv(tag, in)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\te.uintv(tag, in)\n\tcase reflect.Float32, reflect.Float64:\n\t\te.floatv(tag, in)\n\tcase reflect.Bool:\n\t\te.boolv(tag, in)\n\tdefault:\n\t\tpanic(\"cannot marshal type: \" + in.Type().String())\n\t}\n}\n\nfunc (e *encoder) mapv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tkeys := keyList(in.MapKeys())\n\t\tsort.Sort(keys)\n\t\tfor _, k := range keys {\n\t\t\te.marshal(\"\", k)\n\t\t\te.marshal(\"\", in.MapIndex(k))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) fieldByIndex(v reflect.Value, index []int) (field reflect.Value) {\n\tfor _, num := range index {\n\t\tfor {\n\t\t\tif v.Kind() == reflect.Ptr {\n\t\t\t\tif v.IsNil() {\n\t\t\t\t\treturn reflect.Value{}\n\t\t\t\t}\n\t\t\t\tv = v.Elem()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tv = v.Field(num)\n\t}\n\treturn v\n}\n\nfunc (e *encoder) structv(tag string, in reflect.Value) {\n\tsinfo, err := getStructInfo(in.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\te.mappingv(tag, func() {\n\t\tfor _, info := range sinfo.FieldsList {\n\t\t\tvar value reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tvalue = in.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tvalue = e.fieldByIndex(in, info.Inline)\n\t\t\t\tif !value.IsValid() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tif info.OmitEmpty && isZero(value) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\te.marshal(\"\", reflect.ValueOf(info.Key))\n\t\t\te.flow = info.Flow\n\t\t\te.marshal(\"\", value)\n\t\t}\n\t\tif sinfo.InlineMap >= 0 {\n\t\t\tm := in.Field(sinfo.InlineMap)\n\t\t\tif m.Len() > 0 {\n\t\t\t\te.flow = false\n\t\t\t\tkeys := keyList(m.MapKeys())\n\t\t\t\tsort.Sort(keys)\n\t\t\t\tfor _, k := range keys {\n\t\t\t\t\tif _, found := sinfo.FieldsMap[k.String()]; found {\n\t\t\t\t\t\tpanic(fmt.Sprintf(\"cannot have key %q in inlined map: conflicts with struct field\", k.String()))\n\t\t\t\t\t}\n\t\t\t\t\te.marshal(\"\", k)\n\t\t\t\t\te.flow = false\n\t\t\t\t\te.marshal(\"\", m.MapIndex(k))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc (e *encoder) mappingv(tag string, f func()) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_MAPPING_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t}\n\tyaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)\n\te.emit()\n\tf()\n\tyaml_mapping_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) slicev(tag string, in reflect.Value) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t}\n\te.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style))\n\te.emit()\n\tn := in.Len()\n\tfor i := 0; i < n; i++ {\n\t\te.marshal(\"\", in.Index(i))\n\t}\n\te.must(yaml_sequence_end_event_initialize(&e.event))\n\te.emit()\n}\n\n// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1.\n//\n// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported\n// in YAML 1.2 and by this package, but these should be marshalled quoted for\n// the time being for compatibility with other parsers.\nfunc isBase60Float(s string) (result bool) {\n\t// Fast path.\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tc := s[0]\n\tif !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 {\n\t\treturn false\n\t}\n\t// Do the full match.\n\treturn base60float.MatchString(s)\n}\n\n// From http://yaml.org/type/float.html, except the regular expression there\n// is bogus. In practice parsers do not enforce the \"\\.[0-9_]*\" suffix.\nvar base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\\.[0-9_]*)?$`)\n\n// isOldBool returns whether s is bool notation as defined in YAML 1.1.\n//\n// We continue to force strings that YAML 1.1 would interpret as booleans to be\n// rendered as quotes strings so that the marshalled output valid for YAML 1.1\n// parsing.\nfunc isOldBool(s string) (result bool) {\n\tswitch s {\n\tcase \"y\", \"Y\", \"yes\", \"Yes\", \"YES\", \"on\", \"On\", \"ON\",\n\t\t\"n\", \"N\", \"no\", \"No\", \"NO\", \"off\", \"Off\", \"OFF\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (e *encoder) stringv(tag string, in reflect.Value) {\n\tvar style yaml_scalar_style_t\n\ts := in.String()\n\tcanUsePlain := true\n\tswitch {\n\tcase !utf8.ValidString(s):\n\t\tif tag == binaryTag {\n\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t}\n\t\tif tag != \"\" {\n\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", shortTag(tag))\n\t\t}\n\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t// and encode it as base64.\n\t\ttag = binaryTag\n\t\ts = encodeBase64(s)\n\tcase tag == \"\":\n\t\t// Check to see if it would resolve to a specific\n\t\t// tag when encoded unquoted. If it doesn't,\n\t\t// there's no need to quote it.\n\t\trtag, _ := resolve(\"\", s)\n\t\tcanUsePlain = rtag == strTag && !(isBase60Float(s) || isOldBool(s))\n\t}\n\t// Note: it's possible for user code to emit invalid YAML\n\t// if they explicitly specify a tag and a string containing\n\t// text that's incompatible with that tag.\n\tswitch {\n\tcase strings.Contains(s, \"\\n\"):\n\t\tif e.flow {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t} else {\n\t\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\t\t}\n\tcase canUsePlain:\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\tdefault:\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\te.emitScalar(s, \"\", tag, style, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) boolv(tag string, in reflect.Value) {\n\tvar s string\n\tif in.Bool() {\n\t\ts = \"true\"\n\t} else {\n\t\ts = \"false\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) intv(tag string, in reflect.Value) {\n\ts := strconv.FormatInt(in.Int(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) uintv(tag string, in reflect.Value) {\n\ts := strconv.FormatUint(in.Uint(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) timev(tag string, in reflect.Value) {\n\tt := in.Interface().(time.Time)\n\ts := t.Format(time.RFC3339Nano)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) floatv(tag string, in reflect.Value) {\n\t// Issue #352: When formatting, use the precision of the underlying value\n\tprecision := 64\n\tif in.Kind() == reflect.Float32 {\n\t\tprecision = 32\n\t}\n\n\ts := strconv.FormatFloat(in.Float(), 'g', -1, precision)\n\tswitch s {\n\tcase \"+Inf\":\n\t\ts = \".inf\"\n\tcase \"-Inf\":\n\t\ts = \"-.inf\"\n\tcase \"NaN\":\n\t\ts = \".nan\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) nilv() {\n\te.emitScalar(\"null\", \"\", \"\", yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t, head, line, foot, tail []byte) {\n\t// TODO Kill this function. Replace all initialize calls by their underlining Go literals.\n\timplicit := tag == \"\"\n\tif !implicit {\n\t\ttag = longTag(tag)\n\t}\n\te.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style))\n\te.event.head_comment = head\n\te.event.line_comment = line\n\te.event.foot_comment = foot\n\te.event.tail_comment = tail\n\te.emit()\n}\n\nfunc (e *encoder) nodev(in reflect.Value) {\n\te.node(in.Interface().(*Node), \"\")\n}\n\nfunc (e *encoder) node(node *Node, tail string) {\n\t// Zero nodes behave as nil.\n\tif node.Kind == 0 && node.IsZero() {\n\t\te.nilv()\n\t\treturn\n\t}\n\n\t// If the tag was not explicitly requested, and dropping it won't change the\n\t// implicit tag of the value, don't include it in the presentation.\n\tvar tag = node.Tag\n\tvar stag = shortTag(tag)\n\tvar forceQuoting bool\n\tif tag != \"\" && node.Style&TaggedStyle == 0 {\n\t\tif node.Kind == ScalarNode {\n\t\t\tif stag == strTag && node.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0 {\n\t\t\t\ttag = \"\"\n\t\t\t} else {\n\t\t\t\trtag, _ := resolve(\"\", node.Value)\n\t\t\t\tif rtag == stag {\n\t\t\t\t\ttag = \"\"\n\t\t\t\t} else if stag == strTag {\n\t\t\t\t\ttag = \"\"\n\t\t\t\t\tforceQuoting = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar rtag string\n\t\t\tswitch node.Kind {\n\t\t\tcase MappingNode:\n\t\t\t\trtag = mapTag\n\t\t\tcase SequenceNode:\n\t\t\t\trtag = seqTag\n\t\t\t}\n\t\t\tif rtag == stag {\n\t\t\t\ttag = \"\"\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch node.Kind {\n\tcase DocumentNode:\n\t\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.emit()\n\t\tfor _, node := range node.Content {\n\t\t\te.node(node, \"\")\n\t\t}\n\t\tyaml_document_end_event_initialize(&e.event, true)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase SequenceNode:\n\t\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\t\tif node.Style&FlowStyle != 0 {\n\t\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t\t}\n\t\te.must(yaml_sequence_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == \"\", style))\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.emit()\n\t\tfor _, node := range node.Content {\n\t\t\te.node(node, \"\")\n\t\t}\n\t\te.must(yaml_sequence_end_event_initialize(&e.event))\n\t\te.event.line_comment = []byte(node.LineComment)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase MappingNode:\n\t\tstyle := yaml_BLOCK_MAPPING_STYLE\n\t\tif node.Style&FlowStyle != 0 {\n\t\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t\t}\n\t\tyaml_mapping_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == \"\", style)\n\t\te.event.tail_comment = []byte(tail)\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.emit()\n\n\t\t// The tail logic below moves the foot comment of prior keys to the following key,\n\t\t// since the value for each key may be a nested structure and the foot needs to be\n\t\t// processed only the entirety of the value is streamed. The last tail is processed\n\t\t// with the mapping end event.\n\t\tvar tail string\n\t\tfor i := 0; i+1 < len(node.Content); i += 2 {\n\t\t\tk := node.Content[i]\n\t\t\tfoot := k.FootComment\n\t\t\tif foot != \"\" {\n\t\t\t\tkopy := *k\n\t\t\t\tkopy.FootComment = \"\"\n\t\t\t\tk = &kopy\n\t\t\t}\n\t\t\te.node(k, tail)\n\t\t\ttail = foot\n\n\t\t\tv := node.Content[i+1]\n\t\t\te.node(v, \"\")\n\t\t}\n\n\t\tyaml_mapping_end_event_initialize(&e.event)\n\t\te.event.tail_comment = []byte(tail)\n\t\te.event.line_comment = []byte(node.LineComment)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase AliasNode:\n\t\tyaml_alias_event_initialize(&e.event, []byte(node.Value))\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.event.line_comment = []byte(node.LineComment)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase ScalarNode:\n\t\tvalue := node.Value\n\t\tif !utf8.ValidString(value) {\n\t\t\tif stag == binaryTag {\n\t\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t\t}\n\t\t\tif stag != \"\" {\n\t\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", stag)\n\t\t\t}\n\t\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t\t// and encode it as base64.\n\t\t\ttag = binaryTag\n\t\t\tvalue = encodeBase64(value)\n\t\t}\n\n\t\tstyle := yaml_PLAIN_SCALAR_STYLE\n\t\tswitch {\n\t\tcase node.Style&DoubleQuotedStyle != 0:\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\tcase node.Style&SingleQuotedStyle != 0:\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\tcase node.Style&LiteralStyle != 0:\n\t\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\t\tcase node.Style&FoldedStyle != 0:\n\t\t\tstyle = yaml_FOLDED_SCALAR_STYLE\n\t\tcase strings.Contains(value, \"\\n\"):\n\t\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\t\tcase forceQuoting:\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\n\t\te.emitScalar(value, node.Anchor, tag, style, []byte(node.HeadComment), []byte(node.LineComment), []byte(node.FootComment), []byte(tail))\n\tdefault:\n\t\tfailf(\"cannot encode node with unknown kind %d\", node.Kind)\n\t}\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/parserc.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n)\n\n// The parser implements the following grammar:\n//\n// stream               ::= STREAM-START implicit_document? explicit_document* STREAM-END\n// implicit_document    ::= block_node DOCUMENT-END*\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          | properties (block_content | indentless_block_sequence)?\n//                          | block_content\n//                          | indentless_block_sequence\n// block_node           ::= ALIAS\n//                          | properties block_content?\n//                          | block_content\n// flow_node            ::= ALIAS\n//                          | properties flow_content?\n//                          | flow_content\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n// block_content        ::= block_collection | flow_collection | SCALAR\n// flow_content         ::= flow_collection | SCALAR\n// block_collection     ::= block_sequence | block_mapping\n// flow_collection      ::= flow_sequence | flow_mapping\n// block_sequence       ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                          BLOCK-END\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                          flow_sequence_entry?\n//                          FLOW-SEQUENCE-END\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                          flow_mapping_entry?\n//                          FLOW-MAPPING-END\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n\n// Peek the next token in the token queue.\nfunc peek_token(parser *yaml_parser_t) *yaml_token_t {\n\tif parser.token_available || yaml_parser_fetch_more_tokens(parser) {\n\t\ttoken := &parser.tokens[parser.tokens_head]\n\t\tyaml_parser_unfold_comments(parser, token)\n\t\treturn token\n\t}\n\treturn nil\n}\n\n// yaml_parser_unfold_comments walks through the comments queue and joins all\n// comments behind the position of the provided token into the respective\n// top-level comment slices in the parser.\nfunc yaml_parser_unfold_comments(parser *yaml_parser_t, token *yaml_token_t) {\n\tfor parser.comments_head < len(parser.comments) && token.start_mark.index >= parser.comments[parser.comments_head].token_mark.index {\n\t\tcomment := &parser.comments[parser.comments_head]\n\t\tif len(comment.head) > 0 {\n\t\t\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\t\t\t// No heads on ends, so keep comment.head for a follow up token.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif len(parser.head_comment) > 0 {\n\t\t\t\tparser.head_comment = append(parser.head_comment, '\\n')\n\t\t\t}\n\t\t\tparser.head_comment = append(parser.head_comment, comment.head...)\n\t\t}\n\t\tif len(comment.foot) > 0 {\n\t\t\tif len(parser.foot_comment) > 0 {\n\t\t\t\tparser.foot_comment = append(parser.foot_comment, '\\n')\n\t\t\t}\n\t\t\tparser.foot_comment = append(parser.foot_comment, comment.foot...)\n\t\t}\n\t\tif len(comment.line) > 0 {\n\t\t\tif len(parser.line_comment) > 0 {\n\t\t\t\tparser.line_comment = append(parser.line_comment, '\\n')\n\t\t\t}\n\t\t\tparser.line_comment = append(parser.line_comment, comment.line...)\n\t\t}\n\t\t*comment = yaml_comment_t{}\n\t\tparser.comments_head++\n\t}\n}\n\n// Remove the next token from the queue (must be called after peek_token).\nfunc skip_token(parser *yaml_parser_t) {\n\tparser.token_available = false\n\tparser.tokens_parsed++\n\tparser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN\n\tparser.tokens_head++\n}\n\n// Get the next event.\nfunc yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t// Erase the event object.\n\t*event = yaml_event_t{}\n\n\t// No events after the end of the stream or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE {\n\t\treturn true\n\t}\n\n\t// Generate the next event.\n\treturn yaml_parser_state_machine(parser, event)\n}\n\n// Set parser error.\nfunc yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\nfunc yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\n// State dispatcher.\nfunc yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t//trace(\"yaml_parser_state_machine\", \"state:\", parser.state.String())\n\n\tswitch parser.state {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn yaml_parser_parse_stream_start(parser, event)\n\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, true)\n\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, false)\n\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_parser_parse_document_content(parser, event)\n\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn yaml_parser_parse_document_end(parser, event)\n\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_indentless_sequence_entry(parser, event)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_block_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event)\n\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, true)\n\n\tdefault:\n\t\tpanic(\"invalid parser state\")\n\t}\n}\n\n// Parse the production:\n// stream   ::= STREAM-START implicit_document? explicit_document* STREAM-END\n//              ************\nfunc yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_STREAM_START_TOKEN {\n\t\treturn yaml_parser_set_parser_error(parser, \"did not find expected <stream-start>\", token.start_mark)\n\t}\n\tparser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_STREAM_START_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t\tencoding:   token.encoding,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                          *\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                          *************************\nfunc yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool {\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// Parse extra document end indicators.\n\tif !implicit {\n\t\tfor token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tif implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_TAG_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_DOCUMENT_START_TOKEN &&\n\t\ttoken.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an implicit document.\n\t\tif !yaml_parser_process_directives(parser, nil, nil) {\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_BLOCK_NODE_STATE\n\n\t\tvar head_comment []byte\n\t\tif len(parser.head_comment) > 0 {\n\t\t\t// [Go] Scan the header comment backwards, and if an empty line is found, break\n\t\t\t//      the header so the part before the last empty line goes into the\n\t\t\t//      document header, while the bottom of it goes into a follow up event.\n\t\t\tfor i := len(parser.head_comment) - 1; i > 0; i-- {\n\t\t\t\tif parser.head_comment[i] == '\\n' {\n\t\t\t\t\tif i == len(parser.head_comment)-1 {\n\t\t\t\t\t\thead_comment = parser.head_comment[:i]\n\t\t\t\t\t\tparser.head_comment = parser.head_comment[i+1:]\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else if parser.head_comment[i-1] == '\\n' {\n\t\t\t\t\t\thead_comment = parser.head_comment[:i-1]\n\t\t\t\t\t\tparser.head_comment = parser.head_comment[i+1:]\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\n\t\t\thead_comment: head_comment,\n\t\t}\n\n\t} else if token.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an explicit document.\n\t\tvar version_directive *yaml_version_directive_t\n\t\tvar tag_directives []yaml_tag_directive_t\n\t\tstart_mark := token.start_mark\n\t\tif !yaml_parser_process_directives(parser, &version_directive, &tag_directives) {\n\t\t\treturn false\n\t\t}\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_DOCUMENT_START_TOKEN {\n\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\"did not find expected <document start>\", token.start_mark)\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE\n\t\tend_mark := token.end_mark\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark:        start_mark,\n\t\t\tend_mark:          end_mark,\n\t\t\tversion_directive: version_directive,\n\t\t\ttag_directives:    tag_directives,\n\t\t\timplicit:          false,\n\t\t}\n\t\tskip_token(parser)\n\n\t} else {\n\t\t// Parse the stream end.\n\t\tparser.state = yaml_PARSE_END_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_STREAM_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t}\n\n\treturn true\n}\n\n// Parse the productions:\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                                                    ***********\n//\nfunc yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_TAG_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_START_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_END_TOKEN ||\n\t\ttoken.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\treturn yaml_parser_process_empty_scalar(parser, event,\n\t\t\ttoken.start_mark)\n\t}\n\treturn yaml_parser_parse_node(parser, event, true, false)\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                                     *************\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//\nfunc yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\timplicit := true\n\tif token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\timplicit = false\n\t}\n\n\tparser.tag_directives = parser.tag_directives[:0]\n\n\tparser.state = yaml_PARSE_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_DOCUMENT_END_EVENT,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\timplicit:   implicit,\n\t}\n\tyaml_parser_set_event_comments(parser, event)\n\tif len(event.head_comment) > 0 && len(event.foot_comment) == 0 {\n\t\tevent.foot_comment = event.head_comment\n\t\tevent.head_comment = nil\n\t}\n\treturn true\n}\n\nfunc yaml_parser_set_event_comments(parser *yaml_parser_t, event *yaml_event_t) {\n\tevent.head_comment = parser.head_comment\n\tevent.line_comment = parser.line_comment\n\tevent.foot_comment = parser.foot_comment\n\tparser.head_comment = nil\n\tparser.line_comment = nil\n\tparser.foot_comment = nil\n\tparser.tail_comment = nil\n\tparser.stem_comment = nil\n}\n\n// Parse the productions:\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          *****\n//                          | properties (block_content | indentless_block_sequence)?\n//                            **********  *\n//                          | block_content | indentless_block_sequence\n//                            *\n// block_node           ::= ALIAS\n//                          *****\n//                          | properties block_content?\n//                            ********** *\n//                          | block_content\n//                            *\n// flow_node            ::= ALIAS\n//                          *****\n//                          | properties flow_content?\n//                            ********** *\n//                          | flow_content\n//                            *\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n//                          *************************\n// block_content        ::= block_collection | flow_collection | SCALAR\n//                                                               ******\n// flow_content         ::= flow_collection | SCALAR\n//                                            ******\nfunc yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool {\n\t//defer trace(\"yaml_parser_parse_node\", \"block:\", block, \"indentless_sequence:\", indentless_sequence)()\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_ALIAS_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_ALIAS_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t\tanchor:     token.value,\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\tvar tag_token bool\n\tvar tag_handle, tag_suffix, anchor []byte\n\tvar tag_mark yaml_mark_t\n\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\tanchor = token.value\n\t\tstart_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_TAG_TOKEN {\n\t\t\ttag_token = true\n\t\t\ttag_handle = token.value\n\t\t\ttag_suffix = token.suffix\n\t\t\ttag_mark = token.start_mark\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else if token.typ == yaml_TAG_TOKEN {\n\t\ttag_token = true\n\t\ttag_handle = token.value\n\t\ttag_suffix = token.suffix\n\t\tstart_mark = token.start_mark\n\t\ttag_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\t\tanchor = token.value\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tvar tag []byte\n\tif tag_token {\n\t\tif len(tag_handle) == 0 {\n\t\t\ttag = tag_suffix\n\t\t\ttag_suffix = nil\n\t\t} else {\n\t\t\tfor i := range parser.tag_directives {\n\t\t\t\tif bytes.Equal(parser.tag_directives[i].handle, tag_handle) {\n\t\t\t\t\ttag = append([]byte(nil), parser.tag_directives[i].prefix...)\n\t\t\t\t\ttag = append(tag, tag_suffix...)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(tag) == 0 {\n\t\t\t\tyaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a node\", start_mark,\n\t\t\t\t\t\"found undefined tag handle\", tag_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\timplicit := len(tag) == 0\n\tif indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_SCALAR_TOKEN {\n\t\tvar plain_implicit, quoted_implicit bool\n\t\tend_mark = token.end_mark\n\t\tif (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') {\n\t\t\tplain_implicit = true\n\t\t} else if len(tag) == 0 {\n\t\t\tquoted_implicit = true\n\t\t}\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\tvalue:           token.value,\n\t\t\timplicit:        plain_implicit,\n\t\t\tquoted_implicit: quoted_implicit,\n\t\t\tstyle:           yaml_style_t(token.style),\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_SEQUENCE_START_TOKEN {\n\t\t// [Go] Some of the events below can be merged as they differ only on style.\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_SEQUENCE_STYLE),\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\tif parser.stem_comment != nil {\n\t\t\tevent.head_comment = parser.stem_comment\n\t\t\tparser.stem_comment = nil\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_MAPPING_STYLE),\n\t\t}\n\t\tif parser.stem_comment != nil {\n\t\t\tevent.head_comment = parser.stem_comment\n\t\t\tparser.stem_comment = nil\n\t\t}\n\t\treturn true\n\t}\n\tif len(anchor) > 0 || len(tag) > 0 {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\timplicit:        implicit,\n\t\t\tquoted_implicit: false,\n\t\t\tstyle:           yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\n\tcontext := \"while parsing a flow node\"\n\tif block {\n\t\tcontext = \"while parsing a block node\"\n\t}\n\tyaml_parser_set_parser_error_context(parser, context, start_mark,\n\t\t\"did not find expected node content\", token.start_mark)\n\treturn false\n}\n\n// Parse the productions:\n// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n//                    ********************  *********** *             *********\n//\nfunc yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tprior_head_len := len(parser.head_comment)\n\t\tskip_token(parser)\n\t\tyaml_parser_split_stem_comment(parser, prior_head_len)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t}\n\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block collection\", context_mark,\n\t\t\"did not find expected '-' indicator\", token.start_mark)\n}\n\n// Parse the productions:\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n//                           *********** *\nfunc yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tprior_head_len := len(parser.head_comment)\n\t\tskip_token(parser)\n\t\tyaml_parser_split_stem_comment(parser, prior_head_len)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN &&\n\t\t\ttoken.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t}\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be token.end_mark?\n\t}\n\treturn true\n}\n\n// Split stem comment from head comment.\n//\n// When a sequence or map is found under a sequence entry, the former head comment\n// is assigned to the underlying sequence or map as a whole, not the individual\n// sequence or map entry as would be expected otherwise. To handle this case the\n// previous head comment is moved aside as the stem comment.\nfunc yaml_parser_split_stem_comment(parser *yaml_parser_t, stem_len int) {\n\tif stem_len == 0 {\n\t\treturn\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil || token.typ != yaml_BLOCK_SEQUENCE_START_TOKEN && token.typ != yaml_BLOCK_MAPPING_START_TOKEN {\n\t\treturn\n\t}\n\n\tparser.stem_comment = parser.head_comment[:stem_len]\n\tif len(parser.head_comment) == stem_len {\n\t\tparser.head_comment = nil\n\t} else {\n\t\t// Copy suffix to prevent very strange bugs if someone ever appends\n\t\t// further bytes to the prefix in the stem_comment slice above.\n\t\tparser.head_comment = append([]byte(nil), parser.head_comment[stem_len+1:]...)\n\t}\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          *******************\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                            *** *\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//\n//                          BLOCK-END\n//                          *********\n//\nfunc yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// [Go] A tail comment was left from the prior mapping value processed. Emit an event\n\t//      as it needs to be processed with that value and not the following key.\n\tif len(parser.tail_comment) > 0 {\n\t\t*event = yaml_event_t{\n\t\t\ttyp:          yaml_TAIL_COMMENT_EVENT,\n\t\t\tstart_mark:   token.start_mark,\n\t\t\tend_mark:     token.end_mark,\n\t\t\tfoot_comment: parser.tail_comment,\n\t\t}\n\t\tparser.tail_comment = nil\n\t\treturn true\n\t}\n\n\tif token.typ == yaml_KEY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t} else if token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block mapping\", context_mark,\n\t\t\"did not find expected key\", token.start_mark)\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//\n//                          ((KEY block_node_or_indentless_sequence?)?\n//\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                           ***** *\n//                          BLOCK-END\n//\n//\nfunc yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t}\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          *******************\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                           *                   **********\n//                          flow_sequence_entry?\n//                          *\n//                          FLOW-SEQUENCE-END\n//                          *****************\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *\n//\nfunc yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow sequence\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or ']'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\n\t\t\t*event = yaml_event_t{\n\t\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\t\tstart_mark: token.start_mark,\n\t\t\t\tend_mark:   token.end_mark,\n\t\t\t\timplicit:   true,\n\t\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t\t}\n\t\t\tskip_token(parser)\n\t\t\treturn true\n\t\t} else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tyaml_parser_set_event_comments(parser, event)\n\n\tskip_token(parser)\n\treturn true\n}\n\n//\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                      *** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_VALUE_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE)\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t}\n\tmark := token.end_mark\n\tskip_token(parser)\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                      ***** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                                      *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          ******************\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                           *                  **********\n//                          flow_mapping_entry?\n//                          ******************\n//                          FLOW-MAPPING-END\n//                          ****************\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *           *** *\n//\nfunc yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow mapping\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or '}'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.typ != yaml_VALUE_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE)\n\t\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t\t} else {\n\t\t\t\tparser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE\n\t\t\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t\t\t}\n\t\t} else if token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tyaml_parser_set_event_comments(parser, event)\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                   *                  ***** *\n//\nfunc yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif empty {\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Generate an empty scalar event.\nfunc yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SCALAR_EVENT,\n\t\tstart_mark: mark,\n\t\tend_mark:   mark,\n\t\tvalue:      nil, // Empty\n\t\timplicit:   true,\n\t\tstyle:      yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t}\n\treturn true\n}\n\nvar default_tag_directives = []yaml_tag_directive_t{\n\t{[]byte(\"!\"), []byte(\"!\")},\n\t{[]byte(\"!!\"), []byte(\"tag:yaml.org,2002:\")},\n}\n\n// Parse directives.\nfunc yaml_parser_process_directives(parser *yaml_parser_t,\n\tversion_directive_ref **yaml_version_directive_t,\n\ttag_directives_ref *[]yaml_tag_directive_t) bool {\n\n\tvar version_directive *yaml_version_directive_t\n\tvar tag_directives []yaml_tag_directive_t\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tfor token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN {\n\t\t\tif version_directive != nil {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found duplicate %YAML directive\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.major != 1 || token.minor != 1 {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found incompatible YAML document\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tversion_directive = &yaml_version_directive_t{\n\t\t\t\tmajor: token.major,\n\t\t\t\tminor: token.minor,\n\t\t\t}\n\t\t} else if token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\t\tvalue := yaml_tag_directive_t{\n\t\t\t\thandle: token.value,\n\t\t\t\tprefix: token.prefix,\n\t\t\t}\n\t\t\tif !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\ttag_directives = append(tag_directives, value)\n\t\t}\n\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tfor i := range default_tag_directives {\n\t\tif !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif version_directive_ref != nil {\n\t\t*version_directive_ref = version_directive\n\t}\n\tif tag_directives_ref != nil {\n\t\t*tag_directives_ref = tag_directives\n\t}\n\treturn true\n}\n\n// Append a tag directive to the directives stack.\nfunc yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool {\n\tfor i := range parser.tag_directives {\n\t\tif bytes.Equal(value.handle, parser.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_parser_set_parser_error(parser, \"found duplicate %TAG directive\", mark)\n\t\t}\n\t}\n\n\t// [Go] I suspect the copy is unnecessary. This was likely done\n\t// because there was no way to track ownership of the data.\n\tvalue_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(value_copy.handle, value.handle)\n\tcopy(value_copy.prefix, value.prefix)\n\tparser.tag_directives = append(parser.tag_directives, value_copy)\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/readerc.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"io\"\n)\n\n// Set the reader error and return 0.\nfunc yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool {\n\tparser.error = yaml_READER_ERROR\n\tparser.problem = problem\n\tparser.problem_offset = offset\n\tparser.problem_value = value\n\treturn false\n}\n\n// Byte order marks.\nconst (\n\tbom_UTF8    = \"\\xef\\xbb\\xbf\"\n\tbom_UTF16LE = \"\\xff\\xfe\"\n\tbom_UTF16BE = \"\\xfe\\xff\"\n)\n\n// Determine the input stream encoding by checking the BOM symbol. If no BOM is\n// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure.\nfunc yaml_parser_determine_encoding(parser *yaml_parser_t) bool {\n\t// Ensure that we had enough bytes in the raw buffer.\n\tfor !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 {\n\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Determine the encoding.\n\tbuf := parser.raw_buffer\n\tpos := parser.raw_buffer_pos\n\tavail := len(buf) - pos\n\tif avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] {\n\t\tparser.encoding = yaml_UTF16LE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] {\n\t\tparser.encoding = yaml_UTF16BE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t\tparser.raw_buffer_pos += 3\n\t\tparser.offset += 3\n\t} else {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t}\n\treturn true\n}\n\n// Update the raw buffer.\nfunc yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool {\n\tsize_read := 0\n\n\t// Return if the raw buffer is full.\n\tif parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) {\n\t\treturn true\n\t}\n\n\t// Return on EOF.\n\tif parser.eof {\n\t\treturn true\n\t}\n\n\t// Move the remaining bytes in the raw buffer to the beginning.\n\tif parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) {\n\t\tcopy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:])\n\t}\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos]\n\tparser.raw_buffer_pos = 0\n\n\t// Call the read handler to fill the buffer.\n\tsize_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)])\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read]\n\tif err == io.EOF {\n\t\tparser.eof = true\n\t} else if err != nil {\n\t\treturn yaml_parser_set_reader_error(parser, \"input error: \"+err.Error(), parser.offset, -1)\n\t}\n\treturn true\n}\n\n// Ensure that the buffer contains at least `length` characters.\n// Return true on success, false on failure.\n//\n// The length is supposed to be significantly less that the buffer size.\nfunc yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {\n\tif parser.read_handler == nil {\n\t\tpanic(\"read handler must be set\")\n\t}\n\n\t// [Go] This function was changed to guarantee the requested length size at EOF.\n\t// The fact we need to do this is pretty awful, but the description above implies\n\t// for that to be the case, and there are tests\n\n\t// If the EOF flag is set and the raw buffer is empty, do nothing.\n\tif parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t// [Go] ACTUALLY! Read the documentation of this function above.\n\t\t// This is just broken. To return true, we need to have the\n\t\t// given length in the buffer. Not doing that means every single\n\t\t// check that calls this function to make sure the buffer has a\n\t\t// given length is Go) panicking; or C) accessing invalid memory.\n\t\t//return true\n\t}\n\n\t// Return if the buffer contains enough characters.\n\tif parser.unread >= length {\n\t\treturn true\n\t}\n\n\t// Determine the input encoding if it is not known yet.\n\tif parser.encoding == yaml_ANY_ENCODING {\n\t\tif !yaml_parser_determine_encoding(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Move the unread characters to the beginning of the buffer.\n\tbuffer_len := len(parser.buffer)\n\tif parser.buffer_pos > 0 && parser.buffer_pos < buffer_len {\n\t\tcopy(parser.buffer, parser.buffer[parser.buffer_pos:])\n\t\tbuffer_len -= parser.buffer_pos\n\t\tparser.buffer_pos = 0\n\t} else if parser.buffer_pos == buffer_len {\n\t\tbuffer_len = 0\n\t\tparser.buffer_pos = 0\n\t}\n\n\t// Open the whole buffer for writing, and cut it before returning.\n\tparser.buffer = parser.buffer[:cap(parser.buffer)]\n\n\t// Fill the buffer until it has enough characters.\n\tfirst := true\n\tfor parser.unread < length {\n\n\t\t// Fill the raw buffer if necessary.\n\t\tif !first || parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\t\tparser.buffer = parser.buffer[:buffer_len]\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tfirst = false\n\n\t\t// Decode the raw buffer.\n\tinner:\n\t\tfor parser.raw_buffer_pos != len(parser.raw_buffer) {\n\t\t\tvar value rune\n\t\t\tvar width int\n\n\t\t\traw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos\n\n\t\t\t// Decode the next character.\n\t\t\tswitch parser.encoding {\n\t\t\tcase yaml_UTF8_ENCODING:\n\t\t\t\t// Decode a UTF-8 character.  Check RFC 3629\n\t\t\t\t// (http://www.ietf.org/rfc/rfc3629.txt) for more details.\n\t\t\t\t//\n\t\t\t\t// The following table (taken from the RFC) is used for\n\t\t\t\t// decoding.\n\t\t\t\t//\n\t\t\t\t//    Char. number range |        UTF-8 octet sequence\n\t\t\t\t//      (hexadecimal)    |              (binary)\n\t\t\t\t//   --------------------+------------------------------------\n\t\t\t\t//   0000 0000-0000 007F | 0xxxxxxx\n\t\t\t\t//   0000 0080-0000 07FF | 110xxxxx 10xxxxxx\n\t\t\t\t//   0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//   0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//\n\t\t\t\t// Additionally, the characters in the range 0xD800-0xDFFF\n\t\t\t\t// are prohibited as they are reserved for use with UTF-16\n\t\t\t\t// surrogate pairs.\n\n\t\t\t\t// Determine the length of the UTF-8 sequence.\n\t\t\t\toctet := parser.raw_buffer[parser.raw_buffer_pos]\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\twidth = 1\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\twidth = 2\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\twidth = 3\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\twidth = 4\n\t\t\t\tdefault:\n\t\t\t\t\t// The leading octet is invalid.\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid leading UTF-8 octet\",\n\t\t\t\t\t\tparser.offset, int(octet))\n\t\t\t\t}\n\n\t\t\t\t// Check if the raw buffer contains an incomplete character.\n\t\t\t\tif width > raw_unread {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-8 octet sequence\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Decode the leading octet.\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\tvalue = rune(octet & 0x7F)\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\tvalue = rune(octet & 0x1F)\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\tvalue = rune(octet & 0x0F)\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\tvalue = rune(octet & 0x07)\n\t\t\t\tdefault:\n\t\t\t\t\tvalue = 0\n\t\t\t\t}\n\n\t\t\t\t// Check and decode the trailing octets.\n\t\t\t\tfor k := 1; k < width; k++ {\n\t\t\t\t\toctet = parser.raw_buffer[parser.raw_buffer_pos+k]\n\n\t\t\t\t\t// Check if the octet is valid.\n\t\t\t\t\tif (octet & 0xC0) != 0x80 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"invalid trailing UTF-8 octet\",\n\t\t\t\t\t\t\tparser.offset+k, int(octet))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Decode the octet.\n\t\t\t\t\tvalue = (value << 6) + rune(octet&0x3F)\n\t\t\t\t}\n\n\t\t\t\t// Check the length of the sequence against the value.\n\t\t\t\tswitch {\n\t\t\t\tcase width == 1:\n\t\t\t\tcase width == 2 && value >= 0x80:\n\t\t\t\tcase width == 3 && value >= 0x800:\n\t\t\t\tcase width == 4 && value >= 0x10000:\n\t\t\t\tdefault:\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid length of a UTF-8 sequence\",\n\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t}\n\n\t\t\t\t// Check the range of the value.\n\t\t\t\tif value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid Unicode character\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\tcase yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING:\n\t\t\t\tvar low, high int\n\t\t\t\tif parser.encoding == yaml_UTF16LE_ENCODING {\n\t\t\t\t\tlow, high = 0, 1\n\t\t\t\t} else {\n\t\t\t\t\tlow, high = 1, 0\n\t\t\t\t}\n\n\t\t\t\t// The UTF-16 encoding is not as simple as one might\n\t\t\t\t// naively think.  Check RFC 2781\n\t\t\t\t// (http://www.ietf.org/rfc/rfc2781.txt).\n\t\t\t\t//\n\t\t\t\t// Normally, two subsequent bytes describe a Unicode\n\t\t\t\t// character.  However a special technique (called a\n\t\t\t\t// surrogate pair) is used for specifying character\n\t\t\t\t// values larger than 0xFFFF.\n\t\t\t\t//\n\t\t\t\t// A surrogate pair consists of two pseudo-characters:\n\t\t\t\t//      high surrogate area (0xD800-0xDBFF)\n\t\t\t\t//      low surrogate area (0xDC00-0xDFFF)\n\t\t\t\t//\n\t\t\t\t// The following formulas are used for decoding\n\t\t\t\t// and encoding characters using surrogate pairs:\n\t\t\t\t//\n\t\t\t\t//  U  = U' + 0x10000   (0x01 00 00 <= U <= 0x10 FF FF)\n\t\t\t\t//  U' = yyyyyyyyyyxxxxxxxxxx   (0 <= U' <= 0x0F FF FF)\n\t\t\t\t//  W1 = 110110yyyyyyyyyy\n\t\t\t\t//  W2 = 110111xxxxxxxxxx\n\t\t\t\t//\n\t\t\t\t// where U is the character value, W1 is the high surrogate\n\t\t\t\t// area, W2 is the low surrogate area.\n\n\t\t\t\t// Check for incomplete UTF-16 character.\n\t\t\t\tif raw_unread < 2 {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-16 character\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Get the character.\n\t\t\t\tvalue = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) +\n\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8)\n\n\t\t\t\t// Check for unexpected low surrogate area.\n\t\t\t\tif value&0xFC00 == 0xDC00 {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"unexpected low surrogate area\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\t\t// Check for a high surrogate area.\n\t\t\t\tif value&0xFC00 == 0xD800 {\n\t\t\t\t\twidth = 4\n\n\t\t\t\t\t// Check for incomplete surrogate pair.\n\t\t\t\t\tif raw_unread < 4 {\n\t\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\t\"incomplete UTF-16 surrogate pair\",\n\t\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak inner\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get the next character.\n\t\t\t\t\tvalue2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) +\n\t\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8)\n\n\t\t\t\t\t// Check for a low surrogate area.\n\t\t\t\t\tif value2&0xFC00 != 0xDC00 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"expected low surrogate area\",\n\t\t\t\t\t\t\tparser.offset+2, int(value2))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Generate the value of the surrogate pair.\n\t\t\t\t\tvalue = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF)\n\t\t\t\t} else {\n\t\t\t\t\twidth = 2\n\t\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tpanic(\"impossible\")\n\t\t\t}\n\n\t\t\t// Check if the character is in the allowed range:\n\t\t\t//      #x9 | #xA | #xD | [#x20-#x7E]               (8 bit)\n\t\t\t//      | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD]    (16 bit)\n\t\t\t//      | [#x10000-#x10FFFF]                        (32 bit)\n\t\t\tswitch {\n\t\t\tcase value == 0x09:\n\t\t\tcase value == 0x0A:\n\t\t\tcase value == 0x0D:\n\t\t\tcase value >= 0x20 && value <= 0x7E:\n\t\t\tcase value == 0x85:\n\t\t\tcase value >= 0xA0 && value <= 0xD7FF:\n\t\t\tcase value >= 0xE000 && value <= 0xFFFD:\n\t\t\tcase value >= 0x10000 && value <= 0x10FFFF:\n\t\t\tdefault:\n\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\"control characters are not allowed\",\n\t\t\t\t\tparser.offset, int(value))\n\t\t\t}\n\n\t\t\t// Move the raw pointers.\n\t\t\tparser.raw_buffer_pos += width\n\t\t\tparser.offset += width\n\n\t\t\t// Finally put the character into the buffer.\n\t\t\tif value <= 0x7F {\n\t\t\t\t// 0000 0000-0000 007F . 0xxxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(value)\n\t\t\t\tbuffer_len += 1\n\t\t\t} else if value <= 0x7FF {\n\t\t\t\t// 0000 0080-0000 07FF . 110xxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 2\n\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t// 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 3\n\t\t\t} else {\n\t\t\t\t// 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 4\n\t\t\t}\n\n\t\t\tparser.unread++\n\t\t}\n\n\t\t// On EOF, put NUL into the buffer and return.\n\t\tif parser.eof {\n\t\t\tparser.buffer[buffer_len] = 0\n\t\t\tbuffer_len++\n\t\t\tparser.unread++\n\t\t\tbreak\n\t\t}\n\t}\n\t// [Go] Read the documentation of this function above. To return true,\n\t// we need to have the given length in the buffer. Not doing that means\n\t// every single check that calls this function to make sure the buffer\n\t// has a given length is Go) panicking; or C) accessing invalid memory.\n\t// This happens here due to the EOF above breaking early.\n\tfor buffer_len < length {\n\t\tparser.buffer[buffer_len] = 0\n\t\tbuffer_len++\n\t}\n\tparser.buffer = parser.buffer[:buffer_len]\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/resolve.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"encoding/base64\"\n\t\"math\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype resolveMapItem struct {\n\tvalue interface{}\n\ttag   string\n}\n\nvar resolveTable = make([]byte, 256)\nvar resolveMap = make(map[string]resolveMapItem)\n\nfunc init() {\n\tt := resolveTable\n\tt[int('+')] = 'S' // Sign\n\tt[int('-')] = 'S'\n\tfor _, c := range \"0123456789\" {\n\t\tt[int(c)] = 'D' // Digit\n\t}\n\tfor _, c := range \"yYnNtTfFoO~\" {\n\t\tt[int(c)] = 'M' // In map\n\t}\n\tt[int('.')] = '.' // Float (potentially in map)\n\n\tvar resolveMapList = []struct {\n\t\tv   interface{}\n\t\ttag string\n\t\tl   []string\n\t}{\n\t\t{true, boolTag, []string{\"true\", \"True\", \"TRUE\"}},\n\t\t{false, boolTag, []string{\"false\", \"False\", \"FALSE\"}},\n\t\t{nil, nullTag, []string{\"\", \"~\", \"null\", \"Null\", \"NULL\"}},\n\t\t{math.NaN(), floatTag, []string{\".nan\", \".NaN\", \".NAN\"}},\n\t\t{math.Inf(+1), floatTag, []string{\".inf\", \".Inf\", \".INF\"}},\n\t\t{math.Inf(+1), floatTag, []string{\"+.inf\", \"+.Inf\", \"+.INF\"}},\n\t\t{math.Inf(-1), floatTag, []string{\"-.inf\", \"-.Inf\", \"-.INF\"}},\n\t\t{\"<<\", mergeTag, []string{\"<<\"}},\n\t}\n\n\tm := resolveMap\n\tfor _, item := range resolveMapList {\n\t\tfor _, s := range item.l {\n\t\t\tm[s] = resolveMapItem{item.v, item.tag}\n\t\t}\n\t}\n}\n\nconst (\n\tnullTag      = \"!!null\"\n\tboolTag      = \"!!bool\"\n\tstrTag       = \"!!str\"\n\tintTag       = \"!!int\"\n\tfloatTag     = \"!!float\"\n\ttimestampTag = \"!!timestamp\"\n\tseqTag       = \"!!seq\"\n\tmapTag       = \"!!map\"\n\tbinaryTag    = \"!!binary\"\n\tmergeTag     = \"!!merge\"\n)\n\nvar longTags = make(map[string]string)\nvar shortTags = make(map[string]string)\n\nfunc init() {\n\tfor _, stag := range []string{nullTag, boolTag, strTag, intTag, floatTag, timestampTag, seqTag, mapTag, binaryTag, mergeTag} {\n\t\tltag := longTag(stag)\n\t\tlongTags[stag] = ltag\n\t\tshortTags[ltag] = stag\n\t}\n}\n\nconst longTagPrefix = \"tag:yaml.org,2002:\"\n\nfunc shortTag(tag string) string {\n\tif strings.HasPrefix(tag, longTagPrefix) {\n\t\tif stag, ok := shortTags[tag]; ok {\n\t\t\treturn stag\n\t\t}\n\t\treturn \"!!\" + tag[len(longTagPrefix):]\n\t}\n\treturn tag\n}\n\nfunc longTag(tag string) string {\n\tif strings.HasPrefix(tag, \"!!\") {\n\t\tif ltag, ok := longTags[tag]; ok {\n\t\t\treturn ltag\n\t\t}\n\t\treturn longTagPrefix + tag[2:]\n\t}\n\treturn tag\n}\n\nfunc resolvableTag(tag string) bool {\n\tswitch tag {\n\tcase \"\", strTag, boolTag, intTag, floatTag, nullTag, timestampTag:\n\t\treturn true\n\t}\n\treturn false\n}\n\nvar yamlStyleFloat = regexp.MustCompile(`^[-+]?(\\.[0-9]+|[0-9]+(\\.[0-9]*)?)([eE][-+]?[0-9]+)?$`)\n\nfunc resolve(tag string, in string) (rtag string, out interface{}) {\n\ttag = shortTag(tag)\n\tif !resolvableTag(tag) {\n\t\treturn tag, in\n\t}\n\n\tdefer func() {\n\t\tswitch tag {\n\t\tcase \"\", rtag, strTag, binaryTag:\n\t\t\treturn\n\t\tcase floatTag:\n\t\t\tif rtag == intTag {\n\t\t\t\tswitch v := out.(type) {\n\t\t\t\tcase int64:\n\t\t\t\t\trtag = floatTag\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\tcase int:\n\t\t\t\t\trtag = floatTag\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfailf(\"cannot decode %s `%s` as a %s\", shortTag(rtag), in, shortTag(tag))\n\t}()\n\n\t// Any data is accepted as a !!str or !!binary.\n\t// Otherwise, the prefix is enough of a hint about what it might be.\n\thint := byte('N')\n\tif in != \"\" {\n\t\thint = resolveTable[in[0]]\n\t}\n\tif hint != 0 && tag != strTag && tag != binaryTag {\n\t\t// Handle things we can lookup in a map.\n\t\tif item, ok := resolveMap[in]; ok {\n\t\t\treturn item.tag, item.value\n\t\t}\n\n\t\t// Base 60 floats are a bad idea, were dropped in YAML 1.2, and\n\t\t// are purposefully unsupported here. They're still quoted on\n\t\t// the way out for compatibility with other parser, though.\n\n\t\tswitch hint {\n\t\tcase 'M':\n\t\t\t// We've already checked the map above.\n\n\t\tcase '.':\n\t\t\t// Not in the map, so maybe a normal float.\n\t\t\tfloatv, err := strconv.ParseFloat(in, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn floatTag, floatv\n\t\t\t}\n\n\t\tcase 'D', 'S':\n\t\t\t// Int, float, or timestamp.\n\t\t\t// Only try values as a timestamp if the value is unquoted or there's an explicit\n\t\t\t// !!timestamp tag.\n\t\t\tif tag == \"\" || tag == timestampTag {\n\t\t\t\tt, ok := parseTimestamp(in)\n\t\t\t\tif ok {\n\t\t\t\t\treturn timestampTag, t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tplain := strings.Replace(in, \"_\", \"\", -1)\n\t\t\tintv, err := strconv.ParseInt(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t} else {\n\t\t\t\t\treturn intTag, intv\n\t\t\t\t}\n\t\t\t}\n\t\t\tuintv, err := strconv.ParseUint(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn intTag, uintv\n\t\t\t}\n\t\t\tif yamlStyleFloat.MatchString(plain) {\n\t\t\t\tfloatv, err := strconv.ParseFloat(plain, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn floatTag, floatv\n\t\t\t\t}\n\t\t\t}\n\t\t\tif strings.HasPrefix(plain, \"0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn intTag, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\"+plain[3:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Octals as introduced in version 1.2 of the spec.\n\t\t\t// Octals from the 1.1 spec, spelled as 0777, are still\n\t\t\t// decoded by default in v3 as well for compatibility.\n\t\t\t// May be dropped in v4 depending on how usage evolves.\n\t\t\tif strings.HasPrefix(plain, \"0o\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 8, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 8, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn intTag, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0o\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\"+plain[3:], 8, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"internal error: missing handler for resolver table: \" + string(rune(hint)) + \" (with \" + in + \")\")\n\t\t}\n\t}\n\treturn strTag, in\n}\n\n// encodeBase64 encodes s as base64 that is broken up into multiple lines\n// as appropriate for the resulting length.\nfunc encodeBase64(s string) string {\n\tconst lineLen = 70\n\tencLen := base64.StdEncoding.EncodedLen(len(s))\n\tlines := encLen/lineLen + 1\n\tbuf := make([]byte, encLen*2+lines)\n\tin := buf[0:encLen]\n\tout := buf[encLen:]\n\tbase64.StdEncoding.Encode(in, []byte(s))\n\tk := 0\n\tfor i := 0; i < len(in); i += lineLen {\n\t\tj := i + lineLen\n\t\tif j > len(in) {\n\t\t\tj = len(in)\n\t\t}\n\t\tk += copy(out[k:], in[i:j])\n\t\tif lines > 1 {\n\t\t\tout[k] = '\\n'\n\t\t\tk++\n\t\t}\n\t}\n\treturn string(out[:k])\n}\n\n// This is a subset of the formats allowed by the regular expression\n// defined at http://yaml.org/type/timestamp.html.\nvar allowedTimestampFormats = []string{\n\t\"2006-1-2T15:4:5.999999999Z07:00\", // RCF3339Nano with short date fields.\n\t\"2006-1-2t15:4:5.999999999Z07:00\", // RFC3339Nano with short date fields and lower-case \"t\".\n\t\"2006-1-2 15:4:5.999999999\",       // space separated with no time zone\n\t\"2006-1-2\",                        // date only\n\t// Notable exception: time.Parse cannot handle: \"2001-12-14 21:59:43.10 -5\"\n\t// from the set of examples.\n}\n\n// parseTimestamp parses s as a timestamp string and\n// returns the timestamp and reports whether it succeeded.\n// Timestamp formats are defined at http://yaml.org/type/timestamp.html\nfunc parseTimestamp(s string) (time.Time, bool) {\n\t// TODO write code to check all the formats supported by\n\t// http://yaml.org/type/timestamp.html instead of using time.Parse.\n\n\t// Quick check: all date formats start with YYYY-.\n\ti := 0\n\tfor ; i < len(s); i++ {\n\t\tif c := s[i]; c < '0' || c > '9' {\n\t\t\tbreak\n\t\t}\n\t}\n\tif i != 4 || i == len(s) || s[i] != '-' {\n\t\treturn time.Time{}, false\n\t}\n\tfor _, format := range allowedTimestampFormats {\n\t\tif t, err := time.Parse(format, s); err == nil {\n\t\t\treturn t, true\n\t\t}\n\t}\n\treturn time.Time{}, false\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/scannerc.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Introduction\n// ************\n//\n// The following notes assume that you are familiar with the YAML specification\n// (http://yaml.org/spec/1.2/spec.html).  We mostly follow it, although in\n// some cases we are less restrictive that it requires.\n//\n// The process of transforming a YAML stream into a sequence of events is\n// divided on two steps: Scanning and Parsing.\n//\n// The Scanner transforms the input stream into a sequence of tokens, while the\n// parser transform the sequence of tokens produced by the Scanner into a\n// sequence of parsing events.\n//\n// The Scanner is rather clever and complicated. The Parser, on the contrary,\n// is a straightforward implementation of a recursive-descendant parser (or,\n// LL(1) parser, as it is usually called).\n//\n// Actually there are two issues of Scanning that might be called \"clever\", the\n// rest is quite straightforward.  The issues are \"block collection start\" and\n// \"simple keys\".  Both issues are explained below in details.\n//\n// Here the Scanning step is explained and implemented.  We start with the list\n// of all the tokens produced by the Scanner together with short descriptions.\n//\n// Now, tokens:\n//\n//      STREAM-START(encoding)          # The stream start.\n//      STREAM-END                      # The stream end.\n//      VERSION-DIRECTIVE(major,minor)  # The '%YAML' directive.\n//      TAG-DIRECTIVE(handle,prefix)    # The '%TAG' directive.\n//      DOCUMENT-START                  # '---'\n//      DOCUMENT-END                    # '...'\n//      BLOCK-SEQUENCE-START            # Indentation increase denoting a block\n//      BLOCK-MAPPING-START             # sequence or a block mapping.\n//      BLOCK-END                       # Indentation decrease.\n//      FLOW-SEQUENCE-START             # '['\n//      FLOW-SEQUENCE-END               # ']'\n//      BLOCK-SEQUENCE-START            # '{'\n//      BLOCK-SEQUENCE-END              # '}'\n//      BLOCK-ENTRY                     # '-'\n//      FLOW-ENTRY                      # ','\n//      KEY                             # '?' or nothing (simple keys).\n//      VALUE                           # ':'\n//      ALIAS(anchor)                   # '*anchor'\n//      ANCHOR(anchor)                  # '&anchor'\n//      TAG(handle,suffix)              # '!handle!suffix'\n//      SCALAR(value,style)             # A scalar.\n//\n// The following two tokens are \"virtual\" tokens denoting the beginning and the\n// end of the stream:\n//\n//      STREAM-START(encoding)\n//      STREAM-END\n//\n// We pass the information about the input stream encoding with the\n// STREAM-START token.\n//\n// The next two tokens are responsible for tags:\n//\n//      VERSION-DIRECTIVE(major,minor)\n//      TAG-DIRECTIVE(handle,prefix)\n//\n// Example:\n//\n//      %YAML   1.1\n//      %TAG    !   !foo\n//      %TAG    !yaml!  tag:yaml.org,2002:\n//      ---\n//\n// The correspoding sequence of tokens:\n//\n//      STREAM-START(utf-8)\n//      VERSION-DIRECTIVE(1,1)\n//      TAG-DIRECTIVE(\"!\",\"!foo\")\n//      TAG-DIRECTIVE(\"!yaml\",\"tag:yaml.org,2002:\")\n//      DOCUMENT-START\n//      STREAM-END\n//\n// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole\n// line.\n//\n// The document start and end indicators are represented by:\n//\n//      DOCUMENT-START\n//      DOCUMENT-END\n//\n// Note that if a YAML stream contains an implicit document (without '---'\n// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be\n// produced.\n//\n// In the following examples, we present whole documents together with the\n// produced tokens.\n//\n//      1. An implicit document:\n//\n//          'a scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          STREAM-END\n//\n//      2. An explicit document:\n//\n//          ---\n//          'a scalar'\n//          ...\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-END\n//          STREAM-END\n//\n//      3. Several documents in a stream:\n//\n//          'a scalar'\n//          ---\n//          'another scalar'\n//          ---\n//          'yet another scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"another scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"yet another scalar\",single-quoted)\n//          STREAM-END\n//\n// We have already introduced the SCALAR token above.  The following tokens are\n// used to describe aliases, anchors, tag, and scalars:\n//\n//      ALIAS(anchor)\n//      ANCHOR(anchor)\n//      TAG(handle,suffix)\n//      SCALAR(value,style)\n//\n// The following series of examples illustrate the usage of these tokens:\n//\n//      1. A recursive sequence:\n//\n//          &A [ *A ]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          ANCHOR(\"A\")\n//          FLOW-SEQUENCE-START\n//          ALIAS(\"A\")\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A tagged scalar:\n//\n//          !!float \"3.14\"  # A good approximation.\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          TAG(\"!!\",\"float\")\n//          SCALAR(\"3.14\",double-quoted)\n//          STREAM-END\n//\n//      3. Various scalar styles:\n//\n//          --- # Implicit empty plain scalars do not produce tokens.\n//          --- a plain scalar\n//          --- 'a single-quoted scalar'\n//          --- \"a double-quoted scalar\"\n//          --- |-\n//            a literal scalar\n//          --- >-\n//            a folded\n//            scalar\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          DOCUMENT-START\n//          SCALAR(\"a plain scalar\",plain)\n//          DOCUMENT-START\n//          SCALAR(\"a single-quoted scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a double-quoted scalar\",double-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a literal scalar\",literal)\n//          DOCUMENT-START\n//          SCALAR(\"a folded scalar\",folded)\n//          STREAM-END\n//\n// Now it's time to review collection-related tokens. We will start with\n// flow collections:\n//\n//      FLOW-SEQUENCE-START\n//      FLOW-SEQUENCE-END\n//      FLOW-MAPPING-START\n//      FLOW-MAPPING-END\n//      FLOW-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and\n// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}'\n// correspondingly.  FLOW-ENTRY represent the ',' indicator.  Finally the\n// indicators '?' and ':', which are used for denoting mapping keys and values,\n// are represented by the KEY and VALUE tokens.\n//\n// The following examples show flow collections:\n//\n//      1. A flow sequence:\n//\n//          [item 1, item 2, item 3]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-SEQUENCE-START\n//          SCALAR(\"item 1\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 3\",plain)\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A flow mapping:\n//\n//          {\n//              a simple key: a value,  # Note that the KEY token is produced.\n//              ? a complex key: another value,\n//          }\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          FLOW-ENTRY\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          FLOW-ENTRY\n//          FLOW-MAPPING-END\n//          STREAM-END\n//\n// A simple key is a key which is not denoted by the '?' indicator.  Note that\n// the Scanner still produce the KEY token whenever it encounters a simple key.\n//\n// For scanning block collections, the following tokens are used (note that we\n// repeat KEY and VALUE here):\n//\n//      BLOCK-SEQUENCE-START\n//      BLOCK-MAPPING-START\n//      BLOCK-END\n//      BLOCK-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation\n// increase that precedes a block collection (cf. the INDENT token in Python).\n// The token BLOCK-END denote indentation decrease that ends a block collection\n// (cf. the DEDENT token in Python).  However YAML has some syntax pecularities\n// that makes detections of these tokens more complex.\n//\n// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators\n// '-', '?', and ':' correspondingly.\n//\n// The following examples show how the tokens BLOCK-SEQUENCE-START,\n// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner:\n//\n//      1. Block sequences:\n//\n//          - item 1\n//          - item 2\n//          -\n//            - item 3.1\n//            - item 3.2\n//          -\n//            key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Block mappings:\n//\n//          a simple key: a value   # The KEY token is produced here.\n//          ? a complex key\n//          : another value\n//          a mapping:\n//            key 1: value 1\n//            key 2: value 2\n//          a sequence:\n//            - item 1\n//            - item 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML does not always require to start a new block collection from a new\n// line.  If the current line contains only '-', '?', and ':' indicators, a new\n// block collection may start at the current line.  The following examples\n// illustrate this case:\n//\n//      1. Collections in a sequence:\n//\n//          - - item 1\n//            - item 2\n//          - key 1: value 1\n//            key 2: value 2\n//          - ? complex key\n//            : complex value\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"complex key\")\n//          VALUE\n//          SCALAR(\"complex value\")\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Collections in a mapping:\n//\n//          ? a sequence\n//          : - item 1\n//            - item 2\n//          ? a mapping\n//          : key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          VALUE\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML also permits non-indented sequences if they are included into a block\n// mapping.  In this case, the token BLOCK-SEQUENCE-START is not produced:\n//\n//      key:\n//      - item 1    # BLOCK-SEQUENCE-START is NOT produced here.\n//      - item 2\n//\n// Tokens:\n//\n//      STREAM-START(utf-8)\n//      BLOCK-MAPPING-START\n//      KEY\n//      SCALAR(\"key\",plain)\n//      VALUE\n//      BLOCK-ENTRY\n//      SCALAR(\"item 1\",plain)\n//      BLOCK-ENTRY\n//      SCALAR(\"item 2\",plain)\n//      BLOCK-END\n//\n\n// Ensure that the buffer contains the required number of characters.\n// Return true on success, false on failure (reader error or memory error).\nfunc cache(parser *yaml_parser_t, length int) bool {\n\t// [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B)\n\treturn parser.unread >= length || yaml_parser_update_buffer(parser, length)\n}\n\n// Advance the buffer pointer.\nfunc skip(parser *yaml_parser_t) {\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tparser.newlines = 0\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n}\n\nfunc skip_line(parser *yaml_parser_t) {\n\tif is_crlf(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index += 2\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread -= 2\n\t\tparser.buffer_pos += 2\n\t\tparser.newlines++\n\t} else if is_break(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index++\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread--\n\t\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n\t\tparser.newlines++\n\t}\n}\n\n// Copy a character to a string buffer and advance pointers.\nfunc read(parser *yaml_parser_t, s []byte) []byte {\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tparser.newlines = 0\n\t}\n\tw := width(parser.buffer[parser.buffer_pos])\n\tif w == 0 {\n\t\tpanic(\"invalid character sequence\")\n\t}\n\tif len(s) == 0 {\n\t\ts = make([]byte, 0, 32)\n\t}\n\tif w == 1 && len(s)+w <= cap(s) {\n\t\ts = s[:len(s)+1]\n\t\ts[len(s)-1] = parser.buffer[parser.buffer_pos]\n\t\tparser.buffer_pos++\n\t} else {\n\t\ts = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...)\n\t\tparser.buffer_pos += w\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\treturn s\n}\n\n// Copy a line break character to a string buffer and advance pointers.\nfunc read_line(parser *yaml_parser_t, s []byte) []byte {\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\tswitch {\n\tcase buf[pos] == '\\r' && buf[pos+1] == '\\n':\n\t\t// CR LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\t\tparser.mark.index++\n\t\tparser.unread--\n\tcase buf[pos] == '\\r' || buf[pos] == '\\n':\n\t\t// CR|LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 1\n\tcase buf[pos] == '\\xC2' && buf[pos+1] == '\\x85':\n\t\t// NEL . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\tcase buf[pos] == '\\xE2' && buf[pos+1] == '\\x80' && (buf[pos+2] == '\\xA8' || buf[pos+2] == '\\xA9'):\n\t\t// LS|PS . LS|PS\n\t\ts = append(s, buf[parser.buffer_pos:pos+3]...)\n\t\tparser.buffer_pos += 3\n\tdefault:\n\t\treturn s\n\t}\n\tparser.mark.index++\n\tparser.mark.column = 0\n\tparser.mark.line++\n\tparser.unread--\n\tparser.newlines++\n\treturn s\n}\n\n// Get the next token.\nfunc yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Erase the token object.\n\t*token = yaml_token_t{} // [Go] Is this necessary?\n\n\t// No tokens after STREAM-END or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR {\n\t\treturn true\n\t}\n\n\t// Ensure that the tokens queue contains enough tokens.\n\tif !parser.token_available {\n\t\tif !yaml_parser_fetch_more_tokens(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Fetch the next token from the queue.\n\t*token = parser.tokens[parser.tokens_head]\n\tparser.tokens_head++\n\tparser.tokens_parsed++\n\tparser.token_available = false\n\n\tif token.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.stream_end_produced = true\n\t}\n\treturn true\n}\n\n// Set the scanner error and return false.\nfunc yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool {\n\tparser.error = yaml_SCANNER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = parser.mark\n\treturn false\n}\n\nfunc yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool {\n\tcontext := \"while parsing a tag\"\n\tif directive {\n\t\tcontext = \"while parsing a %TAG directive\"\n\t}\n\treturn yaml_parser_set_scanner_error(parser, context, context_mark, problem)\n}\n\nfunc trace(args ...interface{}) func() {\n\tpargs := append([]interface{}{\"+++\"}, args...)\n\tfmt.Println(pargs...)\n\tpargs = append([]interface{}{\"---\"}, args...)\n\treturn func() { fmt.Println(pargs...) }\n}\n\n// Ensure that the tokens queue contains at least one token which can be\n// returned to the Parser.\nfunc yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {\n\t// While we need more tokens to fetch, do it.\n\tfor {\n\t\t// [Go] The comment parsing logic requires a lookahead of two tokens\n\t\t// so that foot comments may be parsed in time of associating them\n\t\t// with the tokens that are parsed before them, and also for line\n\t\t// comments to be transformed into head comments in some edge cases.\n\t\tif parser.tokens_head < len(parser.tokens)-2 {\n\t\t\t// If a potential simple key is at the head position, we need to fetch\n\t\t\t// the next token to disambiguate it.\n\t\t\thead_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed]\n\t\t\tif !ok {\n\t\t\t\tbreak\n\t\t\t} else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok {\n\t\t\t\treturn false\n\t\t\t} else if !valid {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Fetch the next token.\n\t\tif !yaml_parser_fetch_next_token(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tparser.token_available = true\n\treturn true\n}\n\n// The dispatcher for token fetchers.\nfunc yaml_parser_fetch_next_token(parser *yaml_parser_t) (ok bool) {\n\t// Ensure that the buffer is initialized.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check if we just started scanning.  Fetch STREAM-START then.\n\tif !parser.stream_start_produced {\n\t\treturn yaml_parser_fetch_stream_start(parser)\n\t}\n\n\tscan_mark := parser.mark\n\n\t// Eat whitespaces and comments until we reach the next token.\n\tif !yaml_parser_scan_to_next_token(parser) {\n\t\treturn false\n\t}\n\n\t// [Go] While unrolling indents, transform the head comments of prior\n\t// indentation levels observed after scan_start into foot comments at\n\t// the respective indexes.\n\n\t// Check the indentation level against the current column.\n\tif !yaml_parser_unroll_indent(parser, parser.mark.column, scan_mark) {\n\t\treturn false\n\t}\n\n\t// Ensure that the buffer contains at least 4 characters.  4 is the length\n\t// of the longest indicators ('--- ' and '... ').\n\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\treturn false\n\t}\n\n\t// Is it the end of the stream?\n\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\treturn yaml_parser_fetch_stream_end(parser)\n\t}\n\n\t// Is it a directive?\n\tif parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' {\n\t\treturn yaml_parser_fetch_directive(parser)\n\t}\n\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\n\t// Is it the document start indicator?\n\tif parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN)\n\t}\n\n\t// Is it the document end indicator?\n\tif parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN)\n\t}\n\n\tcomment_mark := parser.mark\n\tif len(parser.tokens) > 0 && (parser.flow_level == 0 && buf[pos] == ':' || parser.flow_level > 0 && buf[pos] == ',') {\n\t\t// Associate any following comments with the prior token.\n\t\tcomment_mark = parser.tokens[len(parser.tokens)-1].start_mark\n\t}\n\tdefer func() {\n\t\tif !ok {\n\t\t\treturn\n\t\t}\n\t\tif len(parser.tokens) > 0 && parser.tokens[len(parser.tokens)-1].typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\t\t// Sequence indicators alone have no line comments. It becomes\n\t\t\t// a head comment for whatever follows.\n\t\t\treturn\n\t\t}\n\t\tif !yaml_parser_scan_line_comment(parser, comment_mark) {\n\t\t\tok = false\n\t\t\treturn\n\t\t}\n\t}()\n\n\t// Is it the flow sequence start indicator?\n\tif buf[pos] == '[' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN)\n\t}\n\n\t// Is it the flow mapping start indicator?\n\tif parser.buffer[parser.buffer_pos] == '{' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN)\n\t}\n\n\t// Is it the flow sequence end indicator?\n\tif parser.buffer[parser.buffer_pos] == ']' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_SEQUENCE_END_TOKEN)\n\t}\n\n\t// Is it the flow mapping end indicator?\n\tif parser.buffer[parser.buffer_pos] == '}' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_MAPPING_END_TOKEN)\n\t}\n\n\t// Is it the flow entry indicator?\n\tif parser.buffer[parser.buffer_pos] == ',' {\n\t\treturn yaml_parser_fetch_flow_entry(parser)\n\t}\n\n\t// Is it the block entry indicator?\n\tif parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) {\n\t\treturn yaml_parser_fetch_block_entry(parser)\n\t}\n\n\t// Is it the key indicator?\n\tif parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_key(parser)\n\t}\n\n\t// Is it the value indicator?\n\tif parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_value(parser)\n\t}\n\n\t// Is it an alias?\n\tif parser.buffer[parser.buffer_pos] == '*' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN)\n\t}\n\n\t// Is it an anchor?\n\tif parser.buffer[parser.buffer_pos] == '&' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN)\n\t}\n\n\t// Is it a tag?\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\treturn yaml_parser_fetch_tag(parser)\n\t}\n\n\t// Is it a literal scalar?\n\tif parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, true)\n\t}\n\n\t// Is it a folded scalar?\n\tif parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, false)\n\t}\n\n\t// Is it a single-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, true)\n\t}\n\n\t// Is it a double-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, false)\n\t}\n\n\t// Is it a plain scalar?\n\t//\n\t// A plain scalar may start with any non-blank characters except\n\t//\n\t//      '-', '?', ':', ',', '[', ']', '{', '}',\n\t//      '#', '&', '*', '!', '|', '>', '\\'', '\\\"',\n\t//      '%', '@', '`'.\n\t//\n\t// In the block context (and, for the '-' indicator, in the flow context\n\t// too), it may also start with the characters\n\t//\n\t//      '-', '?', ':'\n\t//\n\t// if it is followed by a non-space character.\n\t//\n\t// The last rule is more restrictive than the specification requires.\n\t// [Go] TODO Make this logic more reasonable.\n\t//switch parser.buffer[parser.buffer_pos] {\n\t//case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '\"', '\\'', '@', '%', '-', '`':\n\t//}\n\tif !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' ||\n\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\tparser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' ||\n\t\tparser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '\"' || parser.buffer[parser.buffer_pos] == '%' ||\n\t\tparser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') ||\n\t\t(parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) ||\n\t\t(parser.flow_level == 0 &&\n\t\t\t(parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') &&\n\t\t\t!is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_plain_scalar(parser)\n\t}\n\n\t// If we don't determine the token type so far, it is an error.\n\treturn yaml_parser_set_scanner_error(parser,\n\t\t\"while scanning for the next token\", parser.mark,\n\t\t\"found character that cannot start any token\")\n}\n\nfunc yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) {\n\tif !simple_key.possible {\n\t\treturn false, true\n\t}\n\n\t// The 1.2 specification says:\n\t//\n\t//     \"If the ? indicator is omitted, parsing needs to see past the\n\t//     implicit key to recognize it as such. To limit the amount of\n\t//     lookahead required, the “:” indicator must appear at most 1024\n\t//     Unicode characters beyond the start of the key. In addition, the key\n\t//     is restricted to a single line.\"\n\t//\n\tif simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index {\n\t\t// Check if the potential simple key to be removed is required.\n\t\tif simple_key.required {\n\t\t\treturn false, yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", simple_key.mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\tsimple_key.possible = false\n\t\treturn false, true\n\t}\n\treturn true, true\n}\n\n// Check if a simple key may start at the current position and add it if\n// needed.\nfunc yaml_parser_save_simple_key(parser *yaml_parser_t) bool {\n\t// A simple key is required at the current position if the scanner is in\n\t// the block context and the current column coincides with the indentation\n\t// level.\n\n\trequired := parser.flow_level == 0 && parser.indent == parser.mark.column\n\n\t//\n\t// If the current position may start a simple key, save it.\n\t//\n\tif parser.simple_key_allowed {\n\t\tsimple_key := yaml_simple_key_t{\n\t\t\tpossible:     true,\n\t\t\trequired:     required,\n\t\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\t\tmark:         parser.mark,\n\t\t}\n\n\t\tif !yaml_parser_remove_simple_key(parser) {\n\t\t\treturn false\n\t\t}\n\t\tparser.simple_keys[len(parser.simple_keys)-1] = simple_key\n\t\tparser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1\n\t}\n\treturn true\n}\n\n// Remove a potential simple key at the current flow level.\nfunc yaml_parser_remove_simple_key(parser *yaml_parser_t) bool {\n\ti := len(parser.simple_keys) - 1\n\tif parser.simple_keys[i].possible {\n\t\t// If the key is required, it is an error.\n\t\tif parser.simple_keys[i].required {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", parser.simple_keys[i].mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\t// Remove the key from the stack.\n\t\tparser.simple_keys[i].possible = false\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number)\n\t}\n\treturn true\n}\n\n// max_flow_level limits the flow_level\nconst max_flow_level = 10000\n\n// Increase the flow level and resize the simple key list if needed.\nfunc yaml_parser_increase_flow_level(parser *yaml_parser_t) bool {\n\t// Reset the simple key on the next level.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{\n\t\tpossible:     false,\n\t\trequired:     false,\n\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\tmark:         parser.mark,\n\t})\n\n\t// Increase the flow level.\n\tparser.flow_level++\n\tif parser.flow_level > max_flow_level {\n\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\"while increasing flow level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_flow_level))\n\t}\n\treturn true\n}\n\n// Decrease the flow level.\nfunc yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool {\n\tif parser.flow_level > 0 {\n\t\tparser.flow_level--\n\t\tlast := len(parser.simple_keys) - 1\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number)\n\t\tparser.simple_keys = parser.simple_keys[:last]\n\t}\n\treturn true\n}\n\n// max_indents limits the indents stack size\nconst max_indents = 10000\n\n// Push the current indentation level to the stack and set the new level\n// the current column is greater than the indentation level.  In this case,\n// append or insert the specified token into the token queue.\nfunc yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tif parser.indent < column {\n\t\t// Push the current indentation level to the stack and set the new\n\t\t// indentation level.\n\t\tparser.indents = append(parser.indents, parser.indent)\n\t\tparser.indent = column\n\t\tif len(parser.indents) > max_indents {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while increasing indent level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_indents))\n\t\t}\n\n\t\t// Create a token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        typ,\n\t\t\tstart_mark: mark,\n\t\t\tend_mark:   mark,\n\t\t}\n\t\tif number > -1 {\n\t\t\tnumber -= parser.tokens_parsed\n\t\t}\n\t\tyaml_insert_token(parser, number, &token)\n\t}\n\treturn true\n}\n\n// Pop indentation levels from the indents stack until the current level\n// becomes less or equal to the column.  For each indentation level, append\n// the BLOCK-END token.\nfunc yaml_parser_unroll_indent(parser *yaml_parser_t, column int, scan_mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tblock_mark := scan_mark\n\tblock_mark.index--\n\n\t// Loop through the indentation levels in the stack.\n\tfor parser.indent > column {\n\n\t\t// [Go] Reposition the end token before potential following\n\t\t//      foot comments of parent blocks. For that, search\n\t\t//      backwards for recent comments that were at the same\n\t\t//      indent as the block that is ending now.\n\t\tstop_index := block_mark.index\n\t\tfor i := len(parser.comments) - 1; i >= 0; i-- {\n\t\t\tcomment := &parser.comments[i]\n\n\t\t\tif comment.end_mark.index < stop_index {\n\t\t\t\t// Don't go back beyond the start of the comment/whitespace scan, unless column < 0.\n\t\t\t\t// If requested indent column is < 0, then the document is over and everything else\n\t\t\t\t// is a foot anyway.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif comment.start_mark.column == parser.indent+1 {\n\t\t\t\t// This is a good match. But maybe there's a former comment\n\t\t\t\t// at that same indent level, so keep searching.\n\t\t\t\tblock_mark = comment.start_mark\n\t\t\t}\n\n\t\t\t// While the end of the former comment matches with\n\t\t\t// the start of the following one, we know there's\n\t\t\t// nothing in between and scanning is still safe.\n\t\t\tstop_index = comment.scan_mark.index\n\t\t}\n\n\t\t// Create a token and append it to the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_BLOCK_END_TOKEN,\n\t\t\tstart_mark: block_mark,\n\t\t\tend_mark:   block_mark,\n\t\t}\n\t\tyaml_insert_token(parser, -1, &token)\n\n\t\t// Pop the indentation level.\n\t\tparser.indent = parser.indents[len(parser.indents)-1]\n\t\tparser.indents = parser.indents[:len(parser.indents)-1]\n\t}\n\treturn true\n}\n\n// Initialize the scanner and produce the STREAM-START token.\nfunc yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool {\n\n\t// Set the initial indentation.\n\tparser.indent = -1\n\n\t// Initialize the simple key stack.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{})\n\n\tparser.simple_keys_by_tok = make(map[int]int)\n\n\t// A simple key is allowed at the beginning of the stream.\n\tparser.simple_key_allowed = true\n\n\t// We have started.\n\tparser.stream_start_produced = true\n\n\t// Create the STREAM-START token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_START_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t\tencoding:   parser.encoding,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the STREAM-END token and shut down the scanner.\nfunc yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool {\n\n\t// Force new line.\n\tif parser.mark.column != 0 {\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t}\n\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1, parser.mark) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the STREAM-END token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_END_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token.\nfunc yaml_parser_fetch_directive(parser *yaml_parser_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1, parser.mark) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the YAML-DIRECTIVE or TAG-DIRECTIVE token.\n\ttoken := yaml_token_t{}\n\tif !yaml_parser_scan_directive(parser, &token) {\n\t\treturn false\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the DOCUMENT-START or DOCUMENT-END token.\nfunc yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1, parser.mark) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\n\tskip(parser)\n\tskip(parser)\n\tskip(parser)\n\n\tend_mark := parser.mark\n\n\t// Create the DOCUMENT-START or DOCUMENT-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token.\nfunc yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\n\t// The indicators '[' and '{' may start a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Increase the flow level.\n\tif !yaml_parser_increase_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow the indicators '[' and '{'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token.\nfunc yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset any potential simple key on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Decrease the flow level.\n\tif !yaml_parser_decrease_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// No simple keys after the indicators ']' and '}'.\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-ENTRY token.\nfunc yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool {\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after ','.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_FLOW_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the BLOCK-ENTRY token.\nfunc yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool {\n\t// Check if the scanner is in the block context.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new entry.\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"block sequence entries are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-SEQUENCE-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\t// It is an error for the '-' indicator to occur in the flow context,\n\t\t// but we let the Parser detect and report about it because the Parser\n\t\t// is able to point to the context.\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '-'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the BLOCK-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_BLOCK_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the KEY token.\nfunc yaml_parser_fetch_key(parser *yaml_parser_t) bool {\n\n\t// In the block context, additional checks are required.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new key (not nessesary simple).\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"mapping keys are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '?' in the block context.\n\tparser.simple_key_allowed = parser.flow_level == 0\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the KEY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_KEY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the VALUE token.\nfunc yaml_parser_fetch_value(parser *yaml_parser_t) bool {\n\n\tsimple_key := &parser.simple_keys[len(parser.simple_keys)-1]\n\n\t// Have we found a simple key?\n\tif valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok {\n\t\treturn false\n\n\t} else if valid {\n\n\t\t// Create the KEY token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_KEY_TOKEN,\n\t\t\tstart_mark: simple_key.mark,\n\t\t\tend_mark:   simple_key.mark,\n\t\t}\n\t\tyaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token)\n\n\t\t// In the block context, we may need to add the BLOCK-MAPPING-START token.\n\t\tif !yaml_parser_roll_indent(parser, simple_key.mark.column,\n\t\t\tsimple_key.token_number,\n\t\t\tyaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Remove the simple key.\n\t\tsimple_key.possible = false\n\t\tdelete(parser.simple_keys_by_tok, simple_key.token_number)\n\n\t\t// A simple key cannot follow another simple key.\n\t\tparser.simple_key_allowed = false\n\n\t} else {\n\t\t// The ':' indicator follows a complex key.\n\n\t\t// In the block context, extra checks are required.\n\t\tif parser.flow_level == 0 {\n\n\t\t\t// Check if we are allowed to start a complex value.\n\t\t\tif !parser.simple_key_allowed {\n\t\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\t\"mapping values are not allowed in this context\")\n\t\t\t}\n\n\t\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Simple keys after ':' are allowed in the block context.\n\t\tparser.simple_key_allowed = parser.flow_level == 0\n\t}\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the VALUE token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_VALUE_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the ALIAS or ANCHOR token.\nfunc yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// An anchor or an alias could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow an anchor or an alias.\n\tparser.simple_key_allowed = false\n\n\t// Create the ALIAS or ANCHOR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_anchor(parser, &token, typ) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the TAG token.\nfunc yaml_parser_fetch_tag(parser *yaml_parser_t) bool {\n\t// A tag could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a tag.\n\tparser.simple_key_allowed = false\n\n\t// Create the TAG token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_tag(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens.\nfunc yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool {\n\t// Remove any potential simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow a block scalar.\n\tparser.simple_key_allowed = true\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_block_scalar(parser, &token, literal) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens.\nfunc yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_flow_scalar(parser, &token, single) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,plain) token.\nfunc yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_plain_scalar(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Eat whitespaces and comments until the next token is found.\nfunc yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool {\n\n\tscan_mark := parser.mark\n\n\t// Until the next token is not found.\n\tfor {\n\t\t// Allow the BOM mark to start a line.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t}\n\n\t\t// Eat whitespaces.\n\t\t// Tabs are allowed:\n\t\t//  - in the flow context\n\t\t//  - in the block context, but not at the beginning of the line or\n\t\t//  after '-', '?', or ':' (complex value).\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\\t') {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check if we just had a line comment under a sequence entry that\n\t\t// looks more like a header to the following content. Similar to this:\n\t\t//\n\t\t// - # The comment\n\t\t//   - Some data\n\t\t//\n\t\t// If so, transform the line comment to a head comment and reposition.\n\t\tif len(parser.comments) > 0 && len(parser.tokens) > 1 {\n\t\t\ttokenA := parser.tokens[len(parser.tokens)-2]\n\t\t\ttokenB := parser.tokens[len(parser.tokens)-1]\n\t\t\tcomment := &parser.comments[len(parser.comments)-1]\n\t\t\tif tokenA.typ == yaml_BLOCK_SEQUENCE_START_TOKEN && tokenB.typ == yaml_BLOCK_ENTRY_TOKEN && len(comment.line) > 0 && !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// If it was in the prior line, reposition so it becomes a\n\t\t\t\t// header of the follow up token. Otherwise, keep it in place\n\t\t\t\t// so it becomes a header of the former.\n\t\t\t\tcomment.head = comment.line\n\t\t\t\tcomment.line = nil\n\t\t\t\tif comment.start_mark.line == parser.mark.line-1 {\n\t\t\t\t\tcomment.token_mark = parser.mark\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Eat a comment until a line break.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tif !yaml_parser_scan_comments(parser, scan_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// If it is a line break, eat it.\n\t\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tskip_line(parser)\n\n\t\t\t// In the block context, a new line may start a simple key.\n\t\t\tif parser.flow_level == 0 {\n\t\t\t\tparser.simple_key_allowed = true\n\t\t\t}\n\t\t} else {\n\t\t\tbreak // We have found a token.\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token.\n//\n// Scope:\n//      %YAML    1.1    # a comment \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Eat '%'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the directive name.\n\tvar name []byte\n\tif !yaml_parser_scan_directive_name(parser, start_mark, &name) {\n\t\treturn false\n\t}\n\n\t// Is it a YAML directive?\n\tif bytes.Equal(name, []byte(\"YAML\")) {\n\t\t// Scan the VERSION directive value.\n\t\tvar major, minor int8\n\t\tif !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a VERSION-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_VERSION_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tmajor:      major,\n\t\t\tminor:      minor,\n\t\t}\n\n\t\t// Is it a TAG directive?\n\t} else if bytes.Equal(name, []byte(\"TAG\")) {\n\t\t// Scan the TAG directive value.\n\t\tvar handle, prefix []byte\n\t\tif !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a TAG-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_TAG_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tvalue:      handle,\n\t\t\tprefix:     prefix,\n\t\t}\n\n\t\t// Unknown directive.\n\t} else {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unknown directive name\")\n\t\treturn false\n\t}\n\n\t// Eat the rest of the line including any comments.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t// [Go] Discard this inline comment for the time being.\n\t\t//if !yaml_parser_scan_line_comment(parser, start_mark) {\n\t\t//\treturn false\n\t\t//}\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\treturn true\n}\n\n// Scan the directive name.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//       ^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//       ^^^\n//\nfunc yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool {\n\t// Consume the directive name.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tvar s []byte\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the name is empty.\n\tif len(s) == 0 {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"could not find expected directive name\")\n\t\treturn false\n\t}\n\n\t// Check for an blank character after the name.\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unexpected non-alphabetical character\")\n\t\treturn false\n\t}\n\t*name = s\n\treturn true\n}\n\n// Scan the value of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//           ^^^^^^\nfunc yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool {\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Consume the major version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, major) {\n\t\treturn false\n\t}\n\n\t// Eat '.'.\n\tif parser.buffer[parser.buffer_pos] != '.' {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected digit or '.' character\")\n\t}\n\n\tskip(parser)\n\n\t// Consume the minor version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, minor) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nconst max_number_length = 2\n\n// Scan the version number of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//              ^\n//      %YAML   1.1     # a comment \\n\n//                ^\nfunc yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool {\n\n\t// Repeat while the next character is digit.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar value, length int8\n\tfor is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Check if the number is too long.\n\t\tlength++\n\t\tif length > max_number_length {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\t\tstart_mark, \"found extremely long version number\")\n\t\t}\n\t\tvalue = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos))\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the number was present.\n\tif length == 0 {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected version number\")\n\t}\n\t*number = value\n\treturn true\n}\n\n// Scan the value of a TAG-DIRECTIVE token.\n//\n// Scope:\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool {\n\tvar handle_value, prefix_value []byte\n\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a handle.\n\tif !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace\")\n\t\treturn false\n\t}\n\n\t// Eat whitespaces.\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a prefix.\n\tif !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace or line break.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\t*handle = handle_value\n\t*prefix = prefix_value\n\treturn true\n}\n\nfunc yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool {\n\tvar s []byte\n\n\t// Eat the indicator character.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the value.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tend_mark := parser.mark\n\n\t/*\n\t * Check if length of the anchor is greater than 0 and it is followed by\n\t * a whitespace character or one of the indicators:\n\t *\n\t *      '?', ':', ',', ']', '}', '%', '@', '`'.\n\t */\n\n\tif len(s) == 0 ||\n\t\t!(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '`') {\n\t\tcontext := \"while scanning an alias\"\n\t\tif typ == yaml_ANCHOR_TOKEN {\n\t\t\tcontext = \"while scanning an anchor\"\n\t\t}\n\t\tyaml_parser_set_scanner_error(parser, context, start_mark,\n\t\t\t\"did not find expected alphabetic or numeric character\")\n\t\treturn false\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t}\n\n\treturn true\n}\n\n/*\n * Scan a TAG token.\n */\n\nfunc yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool {\n\tvar handle, suffix []byte\n\n\tstart_mark := parser.mark\n\n\t// Check if the tag is in the canonical form.\n\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\treturn false\n\t}\n\n\tif parser.buffer[parser.buffer_pos+1] == '<' {\n\t\t// Keep the handle as ''\n\n\t\t// Eat '!<'\n\t\tskip(parser)\n\t\tskip(parser)\n\n\t\t// Consume the tag value.\n\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for '>' and eat it.\n\t\tif parser.buffer[parser.buffer_pos] != '>' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\t\tstart_mark, \"did not find the expected '>'\")\n\t\t\treturn false\n\t\t}\n\n\t\tskip(parser)\n\t} else {\n\t\t// The tag has either the '!suffix' or the '!handle!suffix' form.\n\n\t\t// First, try to scan a handle.\n\t\tif !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if it is, indeed, handle.\n\t\tif handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' {\n\t\t\t// Scan the suffix now.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\t// It wasn't a handle after all.  Scan the rest of the tag.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Set the handle to '!'.\n\t\t\thandle = []byte{'!'}\n\n\t\t\t// A special case: the '!' tag.  Set the handle to '' and the\n\t\t\t// suffix to '!'.\n\t\t\tif len(suffix) == 0 {\n\t\t\t\thandle, suffix = suffix, handle\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check the character which ends the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_TAG_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      handle,\n\t\tsuffix:     suffix,\n\t}\n\treturn true\n}\n\n// Scan a tag handle.\nfunc yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool {\n\t// Check the initial '!' character.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif parser.buffer[parser.buffer_pos] != '!' {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected '!'\")\n\t\treturn false\n\t}\n\n\tvar s []byte\n\n\t// Copy the '!' character.\n\ts = read(parser, s)\n\n\t// Copy all subsequent alphabetical and numerical characters.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the trailing character is '!' and copy it.\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\ts = read(parser, s)\n\t} else {\n\t\t// It's either the '!' tag or not really a tag handle.  If it's a %TAG\n\t\t// directive, it's an error.  If it's a tag token, it must be a part of URI.\n\t\tif directive && string(s) != \"!\" {\n\t\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find expected '!'\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\t*handle = s\n\treturn true\n}\n\n// Scan a tag.\nfunc yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool {\n\t//size_t length = head ? strlen((char *)head) : 0\n\tvar s []byte\n\thasTag := len(head) > 0\n\n\t// Copy the head if needed.\n\t//\n\t// Note that we don't copy the leading '!' character.\n\tif len(head) > 1 {\n\t\ts = append(s, head[1:]...)\n\t}\n\n\t// Scan the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// The set of characters that may appear in URI is as follows:\n\t//\n\t//      '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&',\n\t//      '=', '+', '$', ',', '.', '!', '~', '*', '\\'', '(', ')', '[', ']',\n\t//      '%'.\n\t// [Go] TODO Convert this into more reasonable logic.\n\tfor is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' ||\n\t\tparser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' ||\n\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' ||\n\t\tparser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' ||\n\t\tparser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' ||\n\t\tparser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' ||\n\t\tparser.buffer[parser.buffer_pos] == '%' {\n\t\t// Check if it is a URI-escape sequence.\n\t\tif parser.buffer[parser.buffer_pos] == '%' {\n\t\t\tif !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\ts = read(parser, s)\n\t\t}\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\thasTag = true\n\t}\n\n\tif !hasTag {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected tag URI\")\n\t\treturn false\n\t}\n\t*uri = s\n\treturn true\n}\n\n// Decode an URI-escape sequence corresponding to a single UTF-8 character.\nfunc yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool {\n\n\t// Decode the required number of characters.\n\tw := 1024\n\tfor w > 0 {\n\t\t// Check for a URI-escaped octet.\n\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\treturn false\n\t\t}\n\n\t\tif !(parser.buffer[parser.buffer_pos] == '%' &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+1) &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+2)) {\n\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find URI escaped octet\")\n\t\t}\n\n\t\t// Get the octet.\n\t\toctet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2))\n\n\t\t// If it is the leading octet, determine the length of the UTF-8 sequence.\n\t\tif w == 1024 {\n\t\t\tw = width(octet)\n\t\t\tif w == 0 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect leading UTF-8 octet\")\n\t\t\t}\n\t\t} else {\n\t\t\t// Check if the trailing octet is correct.\n\t\t\tif octet&0xC0 != 0x80 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect trailing UTF-8 octet\")\n\t\t\t}\n\t\t}\n\n\t\t// Copy the octet and move the pointers.\n\t\t*s = append(*s, octet)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tw--\n\t}\n\treturn true\n}\n\n// Scan a block scalar.\nfunc yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool {\n\t// Eat the indicator '|' or '>'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the additional block scalar indicators.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check for a chomping indicator.\n\tvar chomping, increment int\n\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t// Set the chomping method and eat the indicator.\n\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\tchomping = +1\n\t\t} else {\n\t\t\tchomping = -1\n\t\t}\n\t\tskip(parser)\n\n\t\t// Check for an indentation indicator.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif is_digit(parser.buffer, parser.buffer_pos) {\n\t\t\t// Check that the indentation is greater than 0.\n\t\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Get the indentation level and eat the indicator.\n\t\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\t\tskip(parser)\n\t\t}\n\n\t} else if is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Do the same as above, but in the opposite order.\n\n\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\treturn false\n\t\t}\n\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\tskip(parser)\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\t\tchomping = +1\n\t\t\t} else {\n\t\t\t\tchomping = -1\n\t\t\t}\n\t\t\tskip(parser)\n\t\t}\n\t}\n\n\t// Eat whitespaces and comments to the end of the line.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tif !yaml_parser_scan_line_comment(parser, start_mark) {\n\t\t\treturn false\n\t\t}\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\tend_mark := parser.mark\n\n\t// Set the indentation level if it was specified.\n\tvar indent int\n\tif increment > 0 {\n\t\tif parser.indent >= 0 {\n\t\t\tindent = parser.indent + increment\n\t\t} else {\n\t\t\tindent = increment\n\t\t}\n\t}\n\n\t// Scan the leading line breaks and determine the indentation level if needed.\n\tvar s, leading_break, trailing_breaks []byte\n\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\treturn false\n\t}\n\n\t// Scan the block scalar content.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar leading_blank, trailing_blank bool\n\tfor parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) {\n\t\t// We are at the beginning of a non-empty line.\n\n\t\t// Is it a trailing whitespace?\n\t\ttrailing_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Check if we need to fold the leading line break.\n\t\tif !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t// Do we need to join the lines by space?\n\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\ts = append(s, ' ')\n\t\t\t}\n\t\t} else {\n\t\t\ts = append(s, leading_break...)\n\t\t}\n\t\tleading_break = leading_break[:0]\n\n\t\t// Append the remaining line breaks.\n\t\ts = append(s, trailing_breaks...)\n\t\ttrailing_breaks = trailing_breaks[:0]\n\n\t\t// Is it a leading whitespace?\n\t\tleading_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Consume the current line.\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\ts = read(parser, s)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\n\t\tleading_break = read_line(parser, leading_break)\n\n\t\t// Eat the following indentation spaces and line breaks.\n\t\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Chomp the tail.\n\tif chomping != -1 {\n\t\ts = append(s, leading_break...)\n\t}\n\tif chomping == 1 {\n\t\ts = append(s, trailing_breaks...)\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_LITERAL_SCALAR_STYLE,\n\t}\n\tif !literal {\n\t\ttoken.style = yaml_FOLDED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan indentation spaces and line breaks for a block scalar.  Determine the\n// indentation level if needed.\nfunc yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool {\n\t*end_mark = parser.mark\n\n\t// Eat the indentation spaces and line breaks.\n\tmax_indent := 0\n\tfor {\n\t\t// Eat the indentation spaces.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tfor (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif parser.mark.column > max_indent {\n\t\t\tmax_indent = parser.mark.column\n\t\t}\n\n\t\t// Check for a tab character messing the indentation.\n\t\tif (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found a tab character where an indentation space is expected\")\n\t\t}\n\n\t\t// Have we found a non-empty line?\n\t\tif !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\t// [Go] Should really be returning breaks instead.\n\t\t*breaks = read_line(parser, *breaks)\n\t\t*end_mark = parser.mark\n\t}\n\n\t// Determine the indentation level if needed.\n\tif *indent == 0 {\n\t\t*indent = max_indent\n\t\tif *indent < parser.indent+1 {\n\t\t\t*indent = parser.indent + 1\n\t\t}\n\t\tif *indent < 1 {\n\t\t\t*indent = 1\n\t\t}\n\t}\n\treturn true\n}\n\n// Scan a quoted scalar.\nfunc yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool {\n\t// Eat the left quote.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the content of the quoted scalar.\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tfor {\n\t\t// Check that there are no document indicators at the beginning of the line.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected document indicator\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for EOF.\n\t\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected end of stream\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tleading_blanks := false\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\t\tif single && parser.buffer[parser.buffer_pos] == '\\'' && parser.buffer[parser.buffer_pos+1] == '\\'' {\n\t\t\t\t// Is is an escaped single quote.\n\t\t\t\ts = append(s, '\\'')\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t} else if single && parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\t// It is a right single quote.\n\t\t\t\tbreak\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\t// It is a right double quote.\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' && is_break(parser.buffer, parser.buffer_pos+1) {\n\t\t\t\t// It is an escaped line break.\n\t\t\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip(parser)\n\t\t\t\tskip_line(parser)\n\t\t\t\tleading_blanks = true\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' {\n\t\t\t\t// It is an escape sequence.\n\t\t\t\tcode_length := 0\n\n\t\t\t\t// Check the escape character.\n\t\t\t\tswitch parser.buffer[parser.buffer_pos+1] {\n\t\t\t\tcase '0':\n\t\t\t\t\ts = append(s, 0)\n\t\t\t\tcase 'a':\n\t\t\t\t\ts = append(s, '\\x07')\n\t\t\t\tcase 'b':\n\t\t\t\t\ts = append(s, '\\x08')\n\t\t\t\tcase 't', '\\t':\n\t\t\t\t\ts = append(s, '\\x09')\n\t\t\t\tcase 'n':\n\t\t\t\t\ts = append(s, '\\x0A')\n\t\t\t\tcase 'v':\n\t\t\t\t\ts = append(s, '\\x0B')\n\t\t\t\tcase 'f':\n\t\t\t\t\ts = append(s, '\\x0C')\n\t\t\t\tcase 'r':\n\t\t\t\t\ts = append(s, '\\x0D')\n\t\t\t\tcase 'e':\n\t\t\t\t\ts = append(s, '\\x1B')\n\t\t\t\tcase ' ':\n\t\t\t\t\ts = append(s, '\\x20')\n\t\t\t\tcase '\"':\n\t\t\t\t\ts = append(s, '\"')\n\t\t\t\tcase '\\'':\n\t\t\t\t\ts = append(s, '\\'')\n\t\t\t\tcase '\\\\':\n\t\t\t\t\ts = append(s, '\\\\')\n\t\t\t\tcase 'N': // NEL (#x85)\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\x85')\n\t\t\t\tcase '_': // #xA0\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\xA0')\n\t\t\t\tcase 'L': // LS (#x2028)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA8')\n\t\t\t\tcase 'P': // PS (#x2029)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA9')\n\t\t\t\tcase 'x':\n\t\t\t\t\tcode_length = 2\n\t\t\t\tcase 'u':\n\t\t\t\t\tcode_length = 4\n\t\t\t\tcase 'U':\n\t\t\t\t\tcode_length = 8\n\t\t\t\tdefault:\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\tstart_mark, \"found unknown escape character\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t\t// Consume an arbitrary escape code.\n\t\t\t\tif code_length > 0 {\n\t\t\t\t\tvar value int\n\n\t\t\t\t\t// Scan the character value.\n\t\t\t\t\tif parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tif !is_hex(parser.buffer, parser.buffer_pos+k) {\n\t\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\t\tstart_mark, \"did not find expected hexdecimal number\")\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check the value and write the character.\n\t\t\t\t\tif (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF {\n\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\tstart_mark, \"found invalid Unicode character escape code\")\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tif value <= 0x7F {\n\t\t\t\t\t\ts = append(s, byte(value))\n\t\t\t\t\t} else if value <= 0x7FF {\n\t\t\t\t\t\ts = append(s, byte(0xC0+(value>>6)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t\t\ts = append(s, byte(0xE0+(value>>12)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, byte(0xF0+(value>>18)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>12)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Advance the pointer.\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tskip(parser)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// It is a non-escaped non-blank character.\n\t\t\t\ts = read(parser, s)\n\t\t\t}\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if we are at the end of the scalar.\n\t\tif single {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Join the whitespaces or fold line breaks.\n\t\tif leading_blanks {\n\t\t\t// Do we need to fold line breaks?\n\t\t\tif len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts = append(s, leading_break...)\n\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t}\n\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\tleading_break = leading_break[:0]\n\t\t} else {\n\t\t\ts = append(s, whitespaces...)\n\t\t\twhitespaces = whitespaces[:0]\n\t\t}\n\t}\n\n\t// Eat the right quote.\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_SINGLE_QUOTED_SCALAR_STYLE,\n\t}\n\tif !single {\n\t\ttoken.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan a plain scalar.\nfunc yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool {\n\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tvar leading_blanks bool\n\tvar indent = parser.indent + 1\n\n\tstart_mark := parser.mark\n\tend_mark := parser.mark\n\n\t// Consume the content of the plain scalar.\n\tfor {\n\t\t// Check for a document indicator.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Check for a comment.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\n\t\t\t// Check for indicators that may end a plain scalar.\n\t\t\tif (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) ||\n\t\t\t\t(parser.flow_level > 0 &&\n\t\t\t\t\t(parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '}')) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we need to join whitespaces and breaks.\n\t\t\tif leading_blanks || len(whitespaces) > 0 {\n\t\t\t\tif leading_blanks {\n\t\t\t\t\t// Do we need to fold line breaks?\n\t\t\t\t\tif leading_break[0] == '\\n' {\n\t\t\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, leading_break...)\n\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t}\n\t\t\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\t\t\tleading_break = leading_break[:0]\n\t\t\t\t\tleading_blanks = false\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, whitespaces...)\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Copy the character.\n\t\t\ts = read(parser, s)\n\n\t\t\tend_mark = parser.mark\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Is it the end?\n\t\tif !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\n\t\t\t\t// Check for tab characters that abuse indentation.\n\t\t\t\tif leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a plain scalar\",\n\t\t\t\t\t\tstart_mark, \"found a tab character that violates indentation\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check indentation level.\n\t\tif parser.flow_level == 0 && parser.mark.column < indent {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_PLAIN_SCALAR_STYLE,\n\t}\n\n\t// Note that we change the 'simple_key_allowed' flag.\n\tif leading_blanks {\n\t\tparser.simple_key_allowed = true\n\t}\n\treturn true\n}\n\nfunc yaml_parser_scan_line_comment(parser *yaml_parser_t, token_mark yaml_mark_t) bool {\n\tif parser.newlines > 0 {\n\t\treturn true\n\t}\n\n\tvar start_mark yaml_mark_t\n\tvar text []byte\n\n\tfor peek := 0; peek < 512; peek++ {\n\t\tif parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) {\n\t\t\tbreak\n\t\t}\n\t\tif is_blank(parser.buffer, parser.buffer_pos+peek) {\n\t\t\tcontinue\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos+peek] == '#' {\n\t\t\tseen := parser.mark.index+peek\n\t\t\tfor {\n\t\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tif parser.mark.index >= seen {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tskip_line(parser)\n\t\t\t\t} else if parser.mark.index >= seen {\n\t\t\t\t\tif len(text) == 0 {\n\t\t\t\t\t\tstart_mark = parser.mark\n\t\t\t\t\t}\n\t\t\t\t\ttext = read(parser, text)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbreak\n\t}\n\tif len(text) > 0 {\n\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\ttoken_mark: token_mark,\n\t\t\tstart_mark: start_mark,\n\t\t\tline: text,\n\t\t})\n\t}\n\treturn true\n}\n\nfunc yaml_parser_scan_comments(parser *yaml_parser_t, scan_mark yaml_mark_t) bool {\n\ttoken := parser.tokens[len(parser.tokens)-1]\n\n\tif token.typ == yaml_FLOW_ENTRY_TOKEN && len(parser.tokens) > 1 {\n\t\ttoken = parser.tokens[len(parser.tokens)-2]\n\t}\n\n\tvar token_mark = token.start_mark\n\tvar start_mark yaml_mark_t\n\tvar next_indent = parser.indent\n\tif next_indent < 0 {\n\t\tnext_indent = 0\n\t}\n\n\tvar recent_empty = false\n\tvar first_empty = parser.newlines <= 1\n\n\tvar line = parser.mark.line\n\tvar column = parser.mark.column\n\n\tvar text []byte\n\n\t// The foot line is the place where a comment must start to\n\t// still be considered as a foot of the prior content.\n\t// If there's some content in the currently parsed line, then\n\t// the foot is the line below it.\n\tvar foot_line = -1\n\tif scan_mark.line > 0 {\n\t\tfoot_line = parser.mark.line-parser.newlines+1\n\t\tif parser.newlines == 0 && parser.mark.column > 1 {\n\t\t\tfoot_line++\n\t\t}\n\t}\n\n\tvar peek = 0\n\tfor ; peek < 512; peek++ {\n\t\tif parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) {\n\t\t\tbreak\n\t\t}\n\t\tcolumn++\n\t\tif is_blank(parser.buffer, parser.buffer_pos+peek) {\n\t\t\tcontinue\n\t\t}\n\t\tc := parser.buffer[parser.buffer_pos+peek]\n\t\tvar close_flow = parser.flow_level > 0 && (c == ']' || c == '}')\n\t\tif close_flow || is_breakz(parser.buffer, parser.buffer_pos+peek) {\n\t\t\t// Got line break or terminator.\n\t\t\tif close_flow || !recent_empty {\n\t\t\t\tif close_flow || first_empty && (start_mark.line == foot_line && token.typ != yaml_VALUE_TOKEN || start_mark.column-1 < next_indent) {\n\t\t\t\t\t// This is the first empty line and there were no empty lines before,\n\t\t\t\t\t// so this initial part of the comment is a foot of the prior token\n\t\t\t\t\t// instead of being a head for the following one. Split it up.\n\t\t\t\t\t// Alternatively, this might also be the last comment inside a flow\n\t\t\t\t\t// scope, so it must be a footer.\n\t\t\t\t\tif len(text) > 0 {\n\t\t\t\t\t\tif start_mark.column-1 < next_indent {\n\t\t\t\t\t\t\t// If dedented it's unrelated to the prior token.\n\t\t\t\t\t\t\ttoken_mark = start_mark\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\t\t\t\t\tscan_mark:  scan_mark,\n\t\t\t\t\t\t\ttoken_mark: token_mark,\n\t\t\t\t\t\t\tstart_mark: start_mark,\n\t\t\t\t\t\t\tend_mark:   yaml_mark_t{parser.mark.index + peek, line, column},\n\t\t\t\t\t\t\tfoot:       text,\n\t\t\t\t\t\t})\n\t\t\t\t\t\tscan_mark = yaml_mark_t{parser.mark.index + peek, line, column}\n\t\t\t\t\t\ttoken_mark = scan_mark\n\t\t\t\t\t\ttext = nil\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif len(text) > 0 && parser.buffer[parser.buffer_pos+peek] != 0 {\n\t\t\t\t\t\ttext = append(text, '\\n')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !is_break(parser.buffer, parser.buffer_pos+peek) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tfirst_empty = false\n\t\t\trecent_empty = true\n\t\t\tcolumn = 0\n\t\t\tline++\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(text) > 0 && (close_flow || column-1 < next_indent && column != start_mark.column) {\n\t\t\t// The comment at the different indentation is a foot of the\n\t\t\t// preceding data rather than a head of the upcoming one.\n\t\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\t\tscan_mark:  scan_mark,\n\t\t\t\ttoken_mark: token_mark,\n\t\t\t\tstart_mark: start_mark,\n\t\t\t\tend_mark:   yaml_mark_t{parser.mark.index + peek, line, column},\n\t\t\t\tfoot:       text,\n\t\t\t})\n\t\t\tscan_mark = yaml_mark_t{parser.mark.index + peek, line, column}\n\t\t\ttoken_mark = scan_mark\n\t\t\ttext = nil\n\t\t}\n\n\t\tif parser.buffer[parser.buffer_pos+peek] != '#' {\n\t\t\tbreak\n\t\t}\n\n\t\tif len(text) == 0 {\n\t\t\tstart_mark = yaml_mark_t{parser.mark.index + peek, line, column}\n\t\t} else {\n\t\t\ttext = append(text, '\\n')\n\t\t}\n\n\t\trecent_empty = false\n\n\t\t// Consume until after the consumed comment line.\n\t\tseen := parser.mark.index+peek\n\t\tfor {\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\tif parser.mark.index >= seen {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip_line(parser)\n\t\t\t} else if parser.mark.index >= seen {\n\t\t\t\ttext = read(parser, text)\n\t\t\t} else {\n\t\t\t\tskip(parser)\n\t\t\t}\n\t\t}\n\n\t\tpeek = 0\n\t\tcolumn = 0\n\t\tline = parser.mark.line\n\t\tnext_indent = parser.indent\n\t\tif next_indent < 0 {\n\t\t\tnext_indent = 0\n\t\t}\n\t}\n\n\tif len(text) > 0 {\n\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\tscan_mark:  scan_mark,\n\t\t\ttoken_mark: start_mark,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   yaml_mark_t{parser.mark.index + peek - 1, line, column},\n\t\t\thead:       text,\n\t\t})\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/sorter.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"reflect\"\n\t\"unicode\"\n)\n\ntype keyList []reflect.Value\n\nfunc (l keyList) Len() int      { return len(l) }\nfunc (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] }\nfunc (l keyList) Less(i, j int) bool {\n\ta := l[i]\n\tb := l[j]\n\tak := a.Kind()\n\tbk := b.Kind()\n\tfor (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() {\n\t\ta = a.Elem()\n\t\tak = a.Kind()\n\t}\n\tfor (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() {\n\t\tb = b.Elem()\n\t\tbk = b.Kind()\n\t}\n\taf, aok := keyFloat(a)\n\tbf, bok := keyFloat(b)\n\tif aok && bok {\n\t\tif af != bf {\n\t\t\treturn af < bf\n\t\t}\n\t\tif ak != bk {\n\t\t\treturn ak < bk\n\t\t}\n\t\treturn numLess(a, b)\n\t}\n\tif ak != reflect.String || bk != reflect.String {\n\t\treturn ak < bk\n\t}\n\tar, br := []rune(a.String()), []rune(b.String())\n\tdigits := false\n\tfor i := 0; i < len(ar) && i < len(br); i++ {\n\t\tif ar[i] == br[i] {\n\t\t\tdigits = unicode.IsDigit(ar[i])\n\t\t\tcontinue\n\t\t}\n\t\tal := unicode.IsLetter(ar[i])\n\t\tbl := unicode.IsLetter(br[i])\n\t\tif al && bl {\n\t\t\treturn ar[i] < br[i]\n\t\t}\n\t\tif al || bl {\n\t\t\tif digits {\n\t\t\t\treturn al\n\t\t\t} else {\n\t\t\t\treturn bl\n\t\t\t}\n\t\t}\n\t\tvar ai, bi int\n\t\tvar an, bn int64\n\t\tif ar[i] == '0' || br[i] == '0' {\n\t\t\tfor j := i - 1; j >= 0 && unicode.IsDigit(ar[j]); j-- {\n\t\t\t\tif ar[j] != '0' {\n\t\t\t\t\tan = 1\n\t\t\t\t\tbn = 1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ {\n\t\t\tan = an*10 + int64(ar[ai]-'0')\n\t\t}\n\t\tfor bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ {\n\t\t\tbn = bn*10 + int64(br[bi]-'0')\n\t\t}\n\t\tif an != bn {\n\t\t\treturn an < bn\n\t\t}\n\t\tif ai != bi {\n\t\t\treturn ai < bi\n\t\t}\n\t\treturn ar[i] < br[i]\n\t}\n\treturn len(ar) < len(br)\n}\n\n// keyFloat returns a float value for v if it is a number/bool\n// and whether it is a number/bool or not.\nfunc keyFloat(v reflect.Value) (f float64, ok bool) {\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn float64(v.Int()), true\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float(), true\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn float64(v.Uint()), true\n\tcase reflect.Bool:\n\t\tif v.Bool() {\n\t\t\treturn 1, true\n\t\t}\n\t\treturn 0, true\n\t}\n\treturn 0, false\n}\n\n// numLess returns whether a < b.\n// a and b must necessarily have the same kind.\nfunc numLess(a, b reflect.Value) bool {\n\tswitch a.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn a.Int() < b.Int()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn a.Float() < b.Float()\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Bool:\n\t\treturn !a.Bool() && b.Bool()\n\t}\n\tpanic(\"not a number\")\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/writerc.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\n// Set the writer error and return false.\nfunc yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_WRITER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Flush the output buffer.\nfunc yaml_emitter_flush(emitter *yaml_emitter_t) bool {\n\tif emitter.write_handler == nil {\n\t\tpanic(\"write handler not set\")\n\t}\n\n\t// Check if the buffer is empty.\n\tif emitter.buffer_pos == 0 {\n\t\treturn true\n\t}\n\n\tif err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {\n\t\treturn yaml_emitter_set_writer_error(emitter, \"write error: \"+err.Error())\n\t}\n\temitter.buffer_pos = 0\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/yaml.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package yaml implements YAML support for the Go language.\n//\n// Source code and other details for the project are available at GitHub:\n//\n//   https://github.com/go-yaml/yaml\n//\npackage yaml\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"unicode/utf8\"\n)\n\n// The Unmarshaler interface may be implemented by types to customize their\n// behavior when being unmarshaled from a YAML document.\ntype Unmarshaler interface {\n\tUnmarshalYAML(value *Node) error\n}\n\ntype obsoleteUnmarshaler interface {\n\tUnmarshalYAML(unmarshal func(interface{}) error) error\n}\n\n// The Marshaler interface may be implemented by types to customize their\n// behavior when being marshaled into a YAML document. The returned value\n// is marshaled in place of the original value implementing Marshaler.\n//\n// If an error is returned by MarshalYAML, the marshaling procedure stops\n// and returns with the provided error.\ntype Marshaler interface {\n\tMarshalYAML() (interface{}, error)\n}\n\n// Unmarshal decodes the first document found within the in byte slice\n// and assigns decoded values into the out value.\n//\n// Maps and pointers (to a struct, string, int, etc) are accepted as out\n// values. If an internal pointer within a struct is not initialized,\n// the yaml package will initialize it if necessary for unmarshalling\n// the provided data. The out parameter must not be nil.\n//\n// The type of the decoded values should be compatible with the respective\n// values in out. If one or more values cannot be decoded due to a type\n// mismatches, decoding continues partially until the end of the YAML\n// content, and a *yaml.TypeError is returned with details for all\n// missed values.\n//\n// Struct fields are only unmarshalled if they are exported (have an\n// upper case first letter), and are unmarshalled using the field name\n// lowercased as the default key. Custom keys may be defined via the\n// \"yaml\" name in the field tag: the content preceding the first comma\n// is used as the key, and the following comma-separated options are\n// used to tweak the marshalling process (see Marshal).\n// Conflicting names result in a runtime error.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     var t T\n//     yaml.Unmarshal([]byte(\"a: 1\\nb: 2\"), &t)\n//\n// See the documentation of Marshal for the format of tags and a list of\n// supported tag options.\n//\nfunc Unmarshal(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, false)\n}\n\n// A Decoder reads and decodes YAML values from an input stream.\ntype Decoder struct {\n\tparser      *parser\n\tknownFields bool\n}\n\n// NewDecoder returns a new decoder that reads from r.\n//\n// The decoder introduces its own buffering and may read\n// data from r beyond the YAML values requested.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn &Decoder{\n\t\tparser: newParserFromReader(r),\n\t}\n}\n\n// KnownFields ensures that the keys in decoded mappings to\n// exist as fields in the struct being decoded into.\nfunc (dec *Decoder) KnownFields(enable bool) {\n\tdec.knownFields = enable\n}\n\n// Decode reads the next YAML-encoded value from its input\n// and stores it in the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (dec *Decoder) Decode(v interface{}) (err error) {\n\td := newDecoder()\n\td.knownFields = dec.knownFields\n\tdefer handleErr(&err)\n\tnode := dec.parser.parse()\n\tif node == nil {\n\t\treturn io.EOF\n\t}\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(node, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Decode decodes the node and stores its data into the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (n *Node) Decode(v interface{}) (err error) {\n\td := newDecoder()\n\tdefer handleErr(&err)\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(n, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\nfunc unmarshal(in []byte, out interface{}, strict bool) (err error) {\n\tdefer handleErr(&err)\n\td := newDecoder()\n\tp := newParser(in)\n\tdefer p.destroy()\n\tnode := p.parse()\n\tif node != nil {\n\t\tv := reflect.ValueOf(out)\n\t\tif v.Kind() == reflect.Ptr && !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t\td.unmarshal(node, v)\n\t}\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Marshal serializes the value provided into a YAML document. The structure\n// of the generated document will reflect the structure of the value itself.\n// Maps and pointers (to struct, string, int, etc) are accepted as the in value.\n//\n// Struct fields are only marshalled if they are exported (have an upper case\n// first letter), and are marshalled using the field name lowercased as the\n// default key. Custom keys may be defined via the \"yaml\" name in the field\n// tag: the content preceding the first comma is used as the key, and the\n// following comma-separated options are used to tweak the marshalling process.\n// Conflicting names result in a runtime error.\n//\n// The field tag format accepted is:\n//\n//     `(...) yaml:\"[<key>][,<flag1>[,<flag2>]]\" (...)`\n//\n// The following flags are currently supported:\n//\n//     omitempty    Only include the field if it's not set to the zero\n//                  value for the type or to empty slices or maps.\n//                  Zero valued structs will be omitted if all their public\n//                  fields are zero, unless they implement an IsZero\n//                  method (see the IsZeroer interface type), in which\n//                  case the field will be excluded if IsZero returns true.\n//\n//     flow         Marshal using a flow style (useful for structs,\n//                  sequences and maps).\n//\n//     inline       Inline the field, which must be a struct or a map,\n//                  causing all of its fields or keys to be processed as if\n//                  they were part of the outer struct. For maps, keys must\n//                  not conflict with the yaml keys of other struct fields.\n//\n// In addition, if the key is \"-\", the field is ignored.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     yaml.Marshal(&T{B: 2}) // Returns \"b: 2\\n\"\n//     yaml.Marshal(&T{F: 1}} // Returns \"a: 1\\nb: 0\\n\"\n//\nfunc Marshal(in interface{}) (out []byte, err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(in))\n\te.finish()\n\tout = e.out\n\treturn\n}\n\n// An Encoder writes YAML values to an output stream.\ntype Encoder struct {\n\tencoder *encoder\n}\n\n// NewEncoder returns a new encoder that writes to w.\n// The Encoder should be closed after use to flush all data\n// to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn &Encoder{\n\t\tencoder: newEncoderWithWriter(w),\n\t}\n}\n\n// Encode writes the YAML encoding of v to the stream.\n// If multiple items are encoded to the stream, the\n// second and subsequent document will be preceded\n// with a \"---\" document separator, but the first will not.\n//\n// See the documentation for Marshal for details about the conversion of Go\n// values to YAML.\nfunc (e *Encoder) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te.encoder.marshalDoc(\"\", reflect.ValueOf(v))\n\treturn nil\n}\n\n// Encode encodes value v and stores its representation in n.\n//\n// See the documentation for Marshal for details about the\n// conversion of Go values into YAML.\nfunc (n *Node) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(v))\n\te.finish()\n\tp := newParser(e.out)\n\tp.textless = true\n\tdefer p.destroy()\n\tdoc := p.parse()\n\t*n = *doc.Content[0]\n\treturn nil\n}\n\n// SetIndent changes the used indentation used when encoding.\nfunc (e *Encoder) SetIndent(spaces int) {\n\tif spaces < 0 {\n\t\tpanic(\"yaml: cannot indent to a negative number of spaces\")\n\t}\n\te.encoder.indent = spaces\n}\n\n// Close closes the encoder by writing any remaining data.\n// It does not write a stream terminating string \"...\".\nfunc (e *Encoder) Close() (err error) {\n\tdefer handleErr(&err)\n\te.encoder.finish()\n\treturn nil\n}\n\nfunc handleErr(err *error) {\n\tif v := recover(); v != nil {\n\t\tif e, ok := v.(yamlError); ok {\n\t\t\t*err = e.err\n\t\t} else {\n\t\t\tpanic(v)\n\t\t}\n\t}\n}\n\ntype yamlError struct {\n\terr error\n}\n\nfunc fail(err error) {\n\tpanic(yamlError{err})\n}\n\nfunc failf(format string, args ...interface{}) {\n\tpanic(yamlError{fmt.Errorf(\"yaml: \"+format, args...)})\n}\n\n// A TypeError is returned by Unmarshal when one or more fields in\n// the YAML document cannot be properly decoded into the requested\n// types. When this error is returned, the value is still\n// unmarshaled partially.\ntype TypeError struct {\n\tErrors []string\n}\n\nfunc (e *TypeError) Error() string {\n\treturn fmt.Sprintf(\"yaml: unmarshal errors:\\n  %s\", strings.Join(e.Errors, \"\\n  \"))\n}\n\ntype Kind uint32\n\nconst (\n\tDocumentNode Kind = 1 << iota\n\tSequenceNode\n\tMappingNode\n\tScalarNode\n\tAliasNode\n)\n\ntype Style uint32\n\nconst (\n\tTaggedStyle Style = 1 << iota\n\tDoubleQuotedStyle\n\tSingleQuotedStyle\n\tLiteralStyle\n\tFoldedStyle\n\tFlowStyle\n)\n\n// Node represents an element in the YAML document hierarchy. While documents\n// are typically encoded and decoded into higher level types, such as structs\n// and maps, Node is an intermediate representation that allows detailed\n// control over the content being decoded or encoded.\n//\n// It's worth noting that although Node offers access into details such as\n// line numbers, colums, and comments, the content when re-encoded will not\n// have its original textual representation preserved. An effort is made to\n// render the data plesantly, and to preserve comments near the data they\n// describe, though.\n//\n// Values that make use of the Node type interact with the yaml package in the\n// same way any other type would do, by encoding and decoding yaml data\n// directly or indirectly into them.\n//\n// For example:\n//\n//     var person struct {\n//             Name    string\n//             Address yaml.Node\n//     }\n//     err := yaml.Unmarshal(data, &person)\n// \n// Or by itself:\n//\n//     var person Node\n//     err := yaml.Unmarshal(data, &person)\n//\ntype Node struct {\n\t// Kind defines whether the node is a document, a mapping, a sequence,\n\t// a scalar value, or an alias to another node. The specific data type of\n\t// scalar nodes may be obtained via the ShortTag and LongTag methods.\n\tKind  Kind\n\n\t// Style allows customizing the apperance of the node in the tree.\n\tStyle Style\n\n\t// Tag holds the YAML tag defining the data type for the value.\n\t// When decoding, this field will always be set to the resolved tag,\n\t// even when it wasn't explicitly provided in the YAML content.\n\t// When encoding, if this field is unset the value type will be\n\t// implied from the node properties, and if it is set, it will only\n\t// be serialized into the representation if TaggedStyle is used or\n\t// the implicit tag diverges from the provided one.\n\tTag string\n\n\t// Value holds the unescaped and unquoted represenation of the value.\n\tValue string\n\n\t// Anchor holds the anchor name for this node, which allows aliases to point to it.\n\tAnchor string\n\n\t// Alias holds the node that this alias points to. Only valid when Kind is AliasNode.\n\tAlias *Node\n\n\t// Content holds contained nodes for documents, mappings, and sequences.\n\tContent []*Node\n\n\t// HeadComment holds any comments in the lines preceding the node and\n\t// not separated by an empty line.\n\tHeadComment string\n\n\t// LineComment holds any comments at the end of the line where the node is in.\n\tLineComment string\n\n\t// FootComment holds any comments following the node and before empty lines.\n\tFootComment string\n\n\t// Line and Column hold the node position in the decoded YAML text.\n\t// These fields are not respected when encoding the node.\n\tLine   int\n\tColumn int\n}\n\n// IsZero returns whether the node has all of its fields unset.\nfunc (n *Node) IsZero() bool {\n\treturn n.Kind == 0 && n.Style == 0 && n.Tag == \"\" && n.Value == \"\" && n.Anchor == \"\" && n.Alias == nil && n.Content == nil &&\n\t\tn.HeadComment == \"\" && n.LineComment == \"\" && n.FootComment == \"\" && n.Line == 0 && n.Column == 0\n}\n\n\n// LongTag returns the long form of the tag that indicates the data type for\n// the node. If the Tag field isn't explicitly defined, one will be computed\n// based on the node properties.\nfunc (n *Node) LongTag() string {\n\treturn longTag(n.ShortTag())\n}\n\n// ShortTag returns the short form of the YAML tag that indicates data type for\n// the node. If the Tag field isn't explicitly defined, one will be computed\n// based on the node properties.\nfunc (n *Node) ShortTag() string {\n\tif n.indicatedString() {\n\t\treturn strTag\n\t}\n\tif n.Tag == \"\" || n.Tag == \"!\" {\n\t\tswitch n.Kind {\n\t\tcase MappingNode:\n\t\t\treturn mapTag\n\t\tcase SequenceNode:\n\t\t\treturn seqTag\n\t\tcase AliasNode:\n\t\t\tif n.Alias != nil {\n\t\t\t\treturn n.Alias.ShortTag()\n\t\t\t}\n\t\tcase ScalarNode:\n\t\t\ttag, _ := resolve(\"\", n.Value)\n\t\t\treturn tag\n\t\tcase 0:\n\t\t\t// Special case to make the zero value convenient.\n\t\t\tif n.IsZero() {\n\t\t\t\treturn nullTag\n\t\t\t}\n\t\t}\n\t\treturn \"\"\n\t}\n\treturn shortTag(n.Tag)\n}\n\nfunc (n *Node) indicatedString() bool {\n\treturn n.Kind == ScalarNode &&\n\t\t(shortTag(n.Tag) == strTag ||\n\t\t\t(n.Tag == \"\" || n.Tag == \"!\") && n.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0)\n}\n\n// SetString is a convenience function that sets the node to a string value\n// and defines its style in a pleasant way depending on its content.\nfunc (n *Node) SetString(s string) {\n\tn.Kind = ScalarNode\n\tif utf8.ValidString(s) {\n\t\tn.Value = s\n\t\tn.Tag = strTag\n\t} else {\n\t\tn.Value = encodeBase64(s)\n\t\tn.Tag = binaryTag\n\t}\n\tif strings.Contains(n.Value, \"\\n\") {\n\t\tn.Style = LiteralStyle\n\t}\n}\n\n// --------------------------------------------------------------------------\n// Maintain a mapping of keys to structure field indexes\n\n// The code in this section was copied from mgo/bson.\n\n// structInfo holds details for the serialization of fields of\n// a given struct.\ntype structInfo struct {\n\tFieldsMap  map[string]fieldInfo\n\tFieldsList []fieldInfo\n\n\t// InlineMap is the number of the field in the struct that\n\t// contains an ,inline map, or -1 if there's none.\n\tInlineMap int\n\n\t// InlineUnmarshalers holds indexes to inlined fields that\n\t// contain unmarshaler values.\n\tInlineUnmarshalers [][]int\n}\n\ntype fieldInfo struct {\n\tKey       string\n\tNum       int\n\tOmitEmpty bool\n\tFlow      bool\n\t// Id holds the unique field identifier, so we can cheaply\n\t// check for field duplicates without maintaining an extra map.\n\tId int\n\n\t// Inline holds the field index if the field is part of an inlined struct.\n\tInline []int\n}\n\nvar structMap = make(map[reflect.Type]*structInfo)\nvar fieldMapMutex sync.RWMutex\nvar unmarshalerType reflect.Type\n\nfunc init() {\n\tvar v Unmarshaler\n\tunmarshalerType = reflect.ValueOf(&v).Elem().Type()\n}\n\nfunc getStructInfo(st reflect.Type) (*structInfo, error) {\n\tfieldMapMutex.RLock()\n\tsinfo, found := structMap[st]\n\tfieldMapMutex.RUnlock()\n\tif found {\n\t\treturn sinfo, nil\n\t}\n\n\tn := st.NumField()\n\tfieldsMap := make(map[string]fieldInfo)\n\tfieldsList := make([]fieldInfo, 0, n)\n\tinlineMap := -1\n\tinlineUnmarshalers := [][]int(nil)\n\tfor i := 0; i != n; i++ {\n\t\tfield := st.Field(i)\n\t\tif field.PkgPath != \"\" && !field.Anonymous {\n\t\t\tcontinue // Private field\n\t\t}\n\n\t\tinfo := fieldInfo{Num: i}\n\n\t\ttag := field.Tag.Get(\"yaml\")\n\t\tif tag == \"\" && strings.Index(string(field.Tag), \":\") < 0 {\n\t\t\ttag = string(field.Tag)\n\t\t}\n\t\tif tag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tinline := false\n\t\tfields := strings.Split(tag, \",\")\n\t\tif len(fields) > 1 {\n\t\t\tfor _, flag := range fields[1:] {\n\t\t\t\tswitch flag {\n\t\t\t\tcase \"omitempty\":\n\t\t\t\t\tinfo.OmitEmpty = true\n\t\t\t\tcase \"flow\":\n\t\t\t\t\tinfo.Flow = true\n\t\t\t\tcase \"inline\":\n\t\t\t\t\tinline = true\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, errors.New(fmt.Sprintf(\"unsupported flag %q in tag %q of type %s\", flag, tag, st))\n\t\t\t\t}\n\t\t\t}\n\t\t\ttag = fields[0]\n\t\t}\n\n\t\tif inline {\n\t\t\tswitch field.Type.Kind() {\n\t\t\tcase reflect.Map:\n\t\t\t\tif inlineMap >= 0 {\n\t\t\t\t\treturn nil, errors.New(\"multiple ,inline maps in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tif field.Type.Key() != reflect.TypeOf(\"\") {\n\t\t\t\t\treturn nil, errors.New(\"option ,inline needs a map with string keys in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tinlineMap = info.Num\n\t\t\tcase reflect.Struct, reflect.Ptr:\n\t\t\t\tftype := field.Type\n\t\t\t\tfor ftype.Kind() == reflect.Ptr {\n\t\t\t\t\tftype = ftype.Elem()\n\t\t\t\t}\n\t\t\t\tif ftype.Kind() != reflect.Struct {\n\t\t\t\t\treturn nil, errors.New(\"option ,inline may only be used on a struct or map field\")\n\t\t\t\t}\n\t\t\t\tif reflect.PtrTo(ftype).Implements(unmarshalerType) {\n\t\t\t\t\tinlineUnmarshalers = append(inlineUnmarshalers, []int{i})\n\t\t\t\t} else {\n\t\t\t\t\tsinfo, err := getStructInfo(ftype)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t\tfor _, index := range sinfo.InlineUnmarshalers {\n\t\t\t\t\t\tinlineUnmarshalers = append(inlineUnmarshalers, append([]int{i}, index...))\n\t\t\t\t\t}\n\t\t\t\t\tfor _, finfo := range sinfo.FieldsList {\n\t\t\t\t\t\tif _, found := fieldsMap[finfo.Key]; found {\n\t\t\t\t\t\t\tmsg := \"duplicated key '\" + finfo.Key + \"' in struct \" + st.String()\n\t\t\t\t\t\t\treturn nil, errors.New(msg)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif finfo.Inline == nil {\n\t\t\t\t\t\t\tfinfo.Inline = []int{i, finfo.Num}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfinfo.Inline = append([]int{i}, finfo.Inline...)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfinfo.Id = len(fieldsList)\n\t\t\t\t\t\tfieldsMap[finfo.Key] = finfo\n\t\t\t\t\t\tfieldsList = append(fieldsList, finfo)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn nil, errors.New(\"option ,inline may only be used on a struct or map field\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif tag != \"\" {\n\t\t\tinfo.Key = tag\n\t\t} else {\n\t\t\tinfo.Key = strings.ToLower(field.Name)\n\t\t}\n\n\t\tif _, found = fieldsMap[info.Key]; found {\n\t\t\tmsg := \"duplicated key '\" + info.Key + \"' in struct \" + st.String()\n\t\t\treturn nil, errors.New(msg)\n\t\t}\n\n\t\tinfo.Id = len(fieldsList)\n\t\tfieldsList = append(fieldsList, info)\n\t\tfieldsMap[info.Key] = info\n\t}\n\n\tsinfo = &structInfo{\n\t\tFieldsMap:          fieldsMap,\n\t\tFieldsList:         fieldsList,\n\t\tInlineMap:          inlineMap,\n\t\tInlineUnmarshalers: inlineUnmarshalers,\n\t}\n\n\tfieldMapMutex.Lock()\n\tstructMap[st] = sinfo\n\tfieldMapMutex.Unlock()\n\treturn sinfo, nil\n}\n\n// IsZeroer is used to check whether an object is zero to\n// determine whether it should be omitted when marshaling\n// with the omitempty flag. One notable implementation\n// is time.Time.\ntype IsZeroer interface {\n\tIsZero() bool\n}\n\nfunc isZero(v reflect.Value) bool {\n\tkind := v.Kind()\n\tif z, ok := v.Interface().(IsZeroer); ok {\n\t\tif (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn z.IsZero()\n\t}\n\tswitch kind {\n\tcase reflect.String:\n\t\treturn len(v.String()) == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflect.Slice:\n\t\treturn v.Len() == 0\n\tcase reflect.Map:\n\t\treturn v.Len() == 0\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Struct:\n\t\tvt := v.Type()\n\t\tfor i := v.NumField() - 1; i >= 0; i-- {\n\t\t\tif vt.Field(i).PkgPath != \"\" {\n\t\t\t\tcontinue // Private field\n\t\t\t}\n\t\t\tif !isZero(v.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/yamlh.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// The version directive data.\ntype yaml_version_directive_t struct {\n\tmajor int8 // The major version number.\n\tminor int8 // The minor version number.\n}\n\n// The tag directive data.\ntype yaml_tag_directive_t struct {\n\thandle []byte // The tag handle.\n\tprefix []byte // The tag prefix.\n}\n\ntype yaml_encoding_t int\n\n// The stream encoding.\nconst (\n\t// Let the parser choose the encoding.\n\tyaml_ANY_ENCODING yaml_encoding_t = iota\n\n\tyaml_UTF8_ENCODING    // The default UTF-8 encoding.\n\tyaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM.\n\tyaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM.\n)\n\ntype yaml_break_t int\n\n// Line break types.\nconst (\n\t// Let the parser choose the break type.\n\tyaml_ANY_BREAK yaml_break_t = iota\n\n\tyaml_CR_BREAK   // Use CR for line breaks (Mac style).\n\tyaml_LN_BREAK   // Use LN for line breaks (Unix style).\n\tyaml_CRLN_BREAK // Use CR LN for line breaks (DOS style).\n)\n\ntype yaml_error_type_t int\n\n// Many bad things could happen with the parser and emitter.\nconst (\n\t// No error is produced.\n\tyaml_NO_ERROR yaml_error_type_t = iota\n\n\tyaml_MEMORY_ERROR   // Cannot allocate or reallocate a block of memory.\n\tyaml_READER_ERROR   // Cannot read or decode the input stream.\n\tyaml_SCANNER_ERROR  // Cannot scan the input stream.\n\tyaml_PARSER_ERROR   // Cannot parse the input stream.\n\tyaml_COMPOSER_ERROR // Cannot compose a YAML document.\n\tyaml_WRITER_ERROR   // Cannot write to the output stream.\n\tyaml_EMITTER_ERROR  // Cannot emit a YAML stream.\n)\n\n// The pointer position.\ntype yaml_mark_t struct {\n\tindex  int // The position index.\n\tline   int // The position line.\n\tcolumn int // The position column.\n}\n\n// Node Styles\n\ntype yaml_style_t int8\n\ntype yaml_scalar_style_t yaml_style_t\n\n// Scalar styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SCALAR_STYLE yaml_scalar_style_t = 0\n\n\tyaml_PLAIN_SCALAR_STYLE         yaml_scalar_style_t = 1 << iota // The plain scalar style.\n\tyaml_SINGLE_QUOTED_SCALAR_STYLE                                 // The single-quoted scalar style.\n\tyaml_DOUBLE_QUOTED_SCALAR_STYLE                                 // The double-quoted scalar style.\n\tyaml_LITERAL_SCALAR_STYLE                                       // The literal scalar style.\n\tyaml_FOLDED_SCALAR_STYLE                                        // The folded scalar style.\n)\n\ntype yaml_sequence_style_t yaml_style_t\n\n// Sequence styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota\n\n\tyaml_BLOCK_SEQUENCE_STYLE // The block sequence style.\n\tyaml_FLOW_SEQUENCE_STYLE  // The flow sequence style.\n)\n\ntype yaml_mapping_style_t yaml_style_t\n\n// Mapping styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota\n\n\tyaml_BLOCK_MAPPING_STYLE // The block mapping style.\n\tyaml_FLOW_MAPPING_STYLE  // The flow mapping style.\n)\n\n// Tokens\n\ntype yaml_token_type_t int\n\n// Token types.\nconst (\n\t// An empty token.\n\tyaml_NO_TOKEN yaml_token_type_t = iota\n\n\tyaml_STREAM_START_TOKEN // A STREAM-START token.\n\tyaml_STREAM_END_TOKEN   // A STREAM-END token.\n\n\tyaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token.\n\tyaml_TAG_DIRECTIVE_TOKEN     // A TAG-DIRECTIVE token.\n\tyaml_DOCUMENT_START_TOKEN    // A DOCUMENT-START token.\n\tyaml_DOCUMENT_END_TOKEN      // A DOCUMENT-END token.\n\n\tyaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token.\n\tyaml_BLOCK_MAPPING_START_TOKEN  // A BLOCK-SEQUENCE-END token.\n\tyaml_BLOCK_END_TOKEN            // A BLOCK-END token.\n\n\tyaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token.\n\tyaml_FLOW_SEQUENCE_END_TOKEN   // A FLOW-SEQUENCE-END token.\n\tyaml_FLOW_MAPPING_START_TOKEN  // A FLOW-MAPPING-START token.\n\tyaml_FLOW_MAPPING_END_TOKEN    // A FLOW-MAPPING-END token.\n\n\tyaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token.\n\tyaml_FLOW_ENTRY_TOKEN  // A FLOW-ENTRY token.\n\tyaml_KEY_TOKEN         // A KEY token.\n\tyaml_VALUE_TOKEN       // A VALUE token.\n\n\tyaml_ALIAS_TOKEN  // An ALIAS token.\n\tyaml_ANCHOR_TOKEN // An ANCHOR token.\n\tyaml_TAG_TOKEN    // A TAG token.\n\tyaml_SCALAR_TOKEN // A SCALAR token.\n)\n\nfunc (tt yaml_token_type_t) String() string {\n\tswitch tt {\n\tcase yaml_NO_TOKEN:\n\t\treturn \"yaml_NO_TOKEN\"\n\tcase yaml_STREAM_START_TOKEN:\n\t\treturn \"yaml_STREAM_START_TOKEN\"\n\tcase yaml_STREAM_END_TOKEN:\n\t\treturn \"yaml_STREAM_END_TOKEN\"\n\tcase yaml_VERSION_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_VERSION_DIRECTIVE_TOKEN\"\n\tcase yaml_TAG_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_TAG_DIRECTIVE_TOKEN\"\n\tcase yaml_DOCUMENT_START_TOKEN:\n\t\treturn \"yaml_DOCUMENT_START_TOKEN\"\n\tcase yaml_DOCUMENT_END_TOKEN:\n\t\treturn \"yaml_DOCUMENT_END_TOKEN\"\n\tcase yaml_BLOCK_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_BLOCK_SEQUENCE_START_TOKEN\"\n\tcase yaml_BLOCK_MAPPING_START_TOKEN:\n\t\treturn \"yaml_BLOCK_MAPPING_START_TOKEN\"\n\tcase yaml_BLOCK_END_TOKEN:\n\t\treturn \"yaml_BLOCK_END_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_START_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_END_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_END_TOKEN\"\n\tcase yaml_FLOW_MAPPING_START_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_START_TOKEN\"\n\tcase yaml_FLOW_MAPPING_END_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_END_TOKEN\"\n\tcase yaml_BLOCK_ENTRY_TOKEN:\n\t\treturn \"yaml_BLOCK_ENTRY_TOKEN\"\n\tcase yaml_FLOW_ENTRY_TOKEN:\n\t\treturn \"yaml_FLOW_ENTRY_TOKEN\"\n\tcase yaml_KEY_TOKEN:\n\t\treturn \"yaml_KEY_TOKEN\"\n\tcase yaml_VALUE_TOKEN:\n\t\treturn \"yaml_VALUE_TOKEN\"\n\tcase yaml_ALIAS_TOKEN:\n\t\treturn \"yaml_ALIAS_TOKEN\"\n\tcase yaml_ANCHOR_TOKEN:\n\t\treturn \"yaml_ANCHOR_TOKEN\"\n\tcase yaml_TAG_TOKEN:\n\t\treturn \"yaml_TAG_TOKEN\"\n\tcase yaml_SCALAR_TOKEN:\n\t\treturn \"yaml_SCALAR_TOKEN\"\n\t}\n\treturn \"<unknown token>\"\n}\n\n// The token structure.\ntype yaml_token_t struct {\n\t// The token type.\n\ttyp yaml_token_type_t\n\n\t// The start/end of the token.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The stream encoding (for yaml_STREAM_START_TOKEN).\n\tencoding yaml_encoding_t\n\n\t// The alias/anchor/scalar value or tag/tag directive handle\n\t// (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN).\n\tvalue []byte\n\n\t// The tag suffix (for yaml_TAG_TOKEN).\n\tsuffix []byte\n\n\t// The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN).\n\tprefix []byte\n\n\t// The scalar style (for yaml_SCALAR_TOKEN).\n\tstyle yaml_scalar_style_t\n\n\t// The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN).\n\tmajor, minor int8\n}\n\n// Events\n\ntype yaml_event_type_t int8\n\n// Event types.\nconst (\n\t// An empty event.\n\tyaml_NO_EVENT yaml_event_type_t = iota\n\n\tyaml_STREAM_START_EVENT   // A STREAM-START event.\n\tyaml_STREAM_END_EVENT     // A STREAM-END event.\n\tyaml_DOCUMENT_START_EVENT // A DOCUMENT-START event.\n\tyaml_DOCUMENT_END_EVENT   // A DOCUMENT-END event.\n\tyaml_ALIAS_EVENT          // An ALIAS event.\n\tyaml_SCALAR_EVENT         // A SCALAR event.\n\tyaml_SEQUENCE_START_EVENT // A SEQUENCE-START event.\n\tyaml_SEQUENCE_END_EVENT   // A SEQUENCE-END event.\n\tyaml_MAPPING_START_EVENT  // A MAPPING-START event.\n\tyaml_MAPPING_END_EVENT    // A MAPPING-END event.\n\tyaml_TAIL_COMMENT_EVENT\n)\n\nvar eventStrings = []string{\n\tyaml_NO_EVENT:             \"none\",\n\tyaml_STREAM_START_EVENT:   \"stream start\",\n\tyaml_STREAM_END_EVENT:     \"stream end\",\n\tyaml_DOCUMENT_START_EVENT: \"document start\",\n\tyaml_DOCUMENT_END_EVENT:   \"document end\",\n\tyaml_ALIAS_EVENT:          \"alias\",\n\tyaml_SCALAR_EVENT:         \"scalar\",\n\tyaml_SEQUENCE_START_EVENT: \"sequence start\",\n\tyaml_SEQUENCE_END_EVENT:   \"sequence end\",\n\tyaml_MAPPING_START_EVENT:  \"mapping start\",\n\tyaml_MAPPING_END_EVENT:    \"mapping end\",\n\tyaml_TAIL_COMMENT_EVENT:   \"tail comment\",\n}\n\nfunc (e yaml_event_type_t) String() string {\n\tif e < 0 || int(e) >= len(eventStrings) {\n\t\treturn fmt.Sprintf(\"unknown event %d\", e)\n\t}\n\treturn eventStrings[e]\n}\n\n// The event structure.\ntype yaml_event_t struct {\n\n\t// The event type.\n\ttyp yaml_event_type_t\n\n\t// The start and end of the event.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The document encoding (for yaml_STREAM_START_EVENT).\n\tencoding yaml_encoding_t\n\n\t// The version directive (for yaml_DOCUMENT_START_EVENT).\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives (for yaml_DOCUMENT_START_EVENT).\n\ttag_directives []yaml_tag_directive_t\n\n\t// The comments\n\thead_comment []byte\n\tline_comment []byte\n\tfoot_comment []byte\n\ttail_comment []byte\n\n\t// The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT).\n\tanchor []byte\n\n\t// The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\ttag []byte\n\n\t// The scalar value (for yaml_SCALAR_EVENT).\n\tvalue []byte\n\n\t// Is the document start/end indicator implicit, or the tag optional?\n\t// (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT).\n\timplicit bool\n\n\t// Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT).\n\tquoted_implicit bool\n\n\t// The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\tstyle yaml_style_t\n}\n\nfunc (e *yaml_event_t) scalar_style() yaml_scalar_style_t     { return yaml_scalar_style_t(e.style) }\nfunc (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) }\nfunc (e *yaml_event_t) mapping_style() yaml_mapping_style_t   { return yaml_mapping_style_t(e.style) }\n\n// Nodes\n\nconst (\n\tyaml_NULL_TAG      = \"tag:yaml.org,2002:null\"      // The tag !!null with the only possible value: null.\n\tyaml_BOOL_TAG      = \"tag:yaml.org,2002:bool\"      // The tag !!bool with the values: true and false.\n\tyaml_STR_TAG       = \"tag:yaml.org,2002:str\"       // The tag !!str for string values.\n\tyaml_INT_TAG       = \"tag:yaml.org,2002:int\"       // The tag !!int for integer values.\n\tyaml_FLOAT_TAG     = \"tag:yaml.org,2002:float\"     // The tag !!float for float values.\n\tyaml_TIMESTAMP_TAG = \"tag:yaml.org,2002:timestamp\" // The tag !!timestamp for date and time values.\n\n\tyaml_SEQ_TAG = \"tag:yaml.org,2002:seq\" // The tag !!seq is used to denote sequences.\n\tyaml_MAP_TAG = \"tag:yaml.org,2002:map\" // The tag !!map is used to denote mapping.\n\n\t// Not in original libyaml.\n\tyaml_BINARY_TAG = \"tag:yaml.org,2002:binary\"\n\tyaml_MERGE_TAG  = \"tag:yaml.org,2002:merge\"\n\n\tyaml_DEFAULT_SCALAR_TAG   = yaml_STR_TAG // The default scalar tag is !!str.\n\tyaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq.\n\tyaml_DEFAULT_MAPPING_TAG  = yaml_MAP_TAG // The default mapping tag is !!map.\n)\n\ntype yaml_node_type_t int\n\n// Node types.\nconst (\n\t// An empty node.\n\tyaml_NO_NODE yaml_node_type_t = iota\n\n\tyaml_SCALAR_NODE   // A scalar node.\n\tyaml_SEQUENCE_NODE // A sequence node.\n\tyaml_MAPPING_NODE  // A mapping node.\n)\n\n// An element of a sequence node.\ntype yaml_node_item_t int\n\n// An element of a mapping node.\ntype yaml_node_pair_t struct {\n\tkey   int // The key of the element.\n\tvalue int // The value of the element.\n}\n\n// The node structure.\ntype yaml_node_t struct {\n\ttyp yaml_node_type_t // The node type.\n\ttag []byte           // The node tag.\n\n\t// The node data.\n\n\t// The scalar parameters (for yaml_SCALAR_NODE).\n\tscalar struct {\n\t\tvalue  []byte              // The scalar value.\n\t\tlength int                 // The length of the scalar value.\n\t\tstyle  yaml_scalar_style_t // The scalar style.\n\t}\n\n\t// The sequence parameters (for YAML_SEQUENCE_NODE).\n\tsequence struct {\n\t\titems_data []yaml_node_item_t    // The stack of sequence items.\n\t\tstyle      yaml_sequence_style_t // The sequence style.\n\t}\n\n\t// The mapping parameters (for yaml_MAPPING_NODE).\n\tmapping struct {\n\t\tpairs_data  []yaml_node_pair_t   // The stack of mapping pairs (key, value).\n\t\tpairs_start *yaml_node_pair_t    // The beginning of the stack.\n\t\tpairs_end   *yaml_node_pair_t    // The end of the stack.\n\t\tpairs_top   *yaml_node_pair_t    // The top of the stack.\n\t\tstyle       yaml_mapping_style_t // The mapping style.\n\t}\n\n\tstart_mark yaml_mark_t // The beginning of the node.\n\tend_mark   yaml_mark_t // The end of the node.\n\n}\n\n// The document structure.\ntype yaml_document_t struct {\n\n\t// The document nodes.\n\tnodes []yaml_node_t\n\n\t// The version directive.\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives.\n\ttag_directives_data  []yaml_tag_directive_t\n\ttag_directives_start int // The beginning of the tag directives list.\n\ttag_directives_end   int // The end of the tag directives list.\n\n\tstart_implicit int // Is the document start indicator implicit?\n\tend_implicit   int // Is the document end indicator implicit?\n\n\t// The start/end of the document.\n\tstart_mark, end_mark yaml_mark_t\n}\n\n// The prototype of a read handler.\n//\n// The read handler is called when the parser needs to read more bytes from the\n// source. The handler should write not more than size bytes to the buffer.\n// The number of written bytes should be set to the size_read variable.\n//\n// [in,out]   data        A pointer to an application data specified by\n//                        yaml_parser_set_input().\n// [out]      buffer      The buffer to write the data from the source.\n// [in]       size        The size of the buffer.\n// [out]      size_read   The actual number of bytes read from the source.\n//\n// On success, the handler should return 1.  If the handler failed,\n// the returned value should be 0. On EOF, the handler should set the\n// size_read to 0 and return 1.\ntype yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error)\n\n// This structure holds information about a potential simple key.\ntype yaml_simple_key_t struct {\n\tpossible     bool        // Is a simple key possible?\n\trequired     bool        // Is a simple key required?\n\ttoken_number int         // The number of the token.\n\tmark         yaml_mark_t // The position mark.\n}\n\n// The states of the parser.\ntype yaml_parser_state_t int\n\nconst (\n\tyaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota\n\n\tyaml_PARSE_IMPLICIT_DOCUMENT_START_STATE           // Expect the beginning of an implicit document.\n\tyaml_PARSE_DOCUMENT_START_STATE                    // Expect DOCUMENT-START.\n\tyaml_PARSE_DOCUMENT_CONTENT_STATE                  // Expect the content of a document.\n\tyaml_PARSE_DOCUMENT_END_STATE                      // Expect DOCUMENT-END.\n\tyaml_PARSE_BLOCK_NODE_STATE                        // Expect a block node.\n\tyaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence.\n\tyaml_PARSE_FLOW_NODE_STATE                         // Expect a flow node.\n\tyaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE        // Expect the first entry of a block sequence.\n\tyaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE              // Expect an entry of a block sequence.\n\tyaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE         // Expect an entry of an indentless sequence.\n\tyaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE           // Expect the first key of a block mapping.\n\tyaml_PARSE_BLOCK_MAPPING_KEY_STATE                 // Expect a block mapping key.\n\tyaml_PARSE_BLOCK_MAPPING_VALUE_STATE               // Expect a block mapping value.\n\tyaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE         // Expect the first entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE               // Expect an entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE   // Expect a key of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE   // Expect the and of an ordered mapping entry.\n\tyaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE            // Expect the first key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_KEY_STATE                  // Expect a key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_VALUE_STATE                // Expect a value of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE          // Expect an empty value of a flow mapping.\n\tyaml_PARSE_END_STATE                               // Expect nothing.\n)\n\nfunc (ps yaml_parser_state_t) String() string {\n\tswitch ps {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn \"yaml_PARSE_STREAM_START_STATE\"\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_CONTENT_STATE\"\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_END_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE\"\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE\"\n\tcase yaml_PARSE_END_STATE:\n\t\treturn \"yaml_PARSE_END_STATE\"\n\t}\n\treturn \"<unknown parser state>\"\n}\n\n// This structure holds aliases data.\ntype yaml_alias_data_t struct {\n\tanchor []byte      // The anchor.\n\tindex  int         // The node id.\n\tmark   yaml_mark_t // The anchor mark.\n}\n\n// The parser structure.\n//\n// All members are internal. Manage the structure using the\n// yaml_parser_ family of functions.\ntype yaml_parser_t struct {\n\n\t// Error handling\n\n\terror yaml_error_type_t // Error type.\n\n\tproblem string // Error description.\n\n\t// The byte about which the problem occurred.\n\tproblem_offset int\n\tproblem_value  int\n\tproblem_mark   yaml_mark_t\n\n\t// The error context.\n\tcontext      string\n\tcontext_mark yaml_mark_t\n\n\t// Reader stuff\n\n\tread_handler yaml_read_handler_t // Read handler.\n\n\tinput_reader io.Reader // File input data.\n\tinput        []byte    // String input data.\n\tinput_pos    int\n\n\teof bool // EOF flag\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\tunread int // The number of unread characters in the buffer.\n\n\tnewlines int // The number of line breaks since last non-break/non-blank character\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The input encoding.\n\n\toffset int         // The offset of the current position (in bytes).\n\tmark   yaml_mark_t // The mark of the current position.\n\n\t// Comments\n\n\thead_comment []byte // The current head comments\n\tline_comment []byte // The current line comments\n\tfoot_comment []byte // The current foot comments\n\ttail_comment []byte // Foot comment that happens at the end of a block.\n\tstem_comment []byte // Comment in item preceding a nested structure (list inside list item, etc)\n\n\tcomments      []yaml_comment_t // The folded comments for all parsed tokens\n\tcomments_head int\n\n\t// Scanner stuff\n\n\tstream_start_produced bool // Have we started to scan the input stream?\n\tstream_end_produced   bool // Have we reached the end of the input stream?\n\n\tflow_level int // The number of unclosed '[' and '{' indicators.\n\n\ttokens          []yaml_token_t // The tokens queue.\n\ttokens_head     int            // The head of the tokens queue.\n\ttokens_parsed   int            // The number of tokens fetched from the queue.\n\ttoken_available bool           // Does the tokens queue contain a token ready for dequeueing.\n\n\tindent  int   // The current indentation level.\n\tindents []int // The indentation levels stack.\n\n\tsimple_key_allowed bool                // May a simple key occur at the current position?\n\tsimple_keys        []yaml_simple_key_t // The stack of simple keys.\n\tsimple_keys_by_tok map[int]int         // possible simple_key indexes indexed by token_number\n\n\t// Parser stuff\n\n\tstate          yaml_parser_state_t    // The current parser state.\n\tstates         []yaml_parser_state_t  // The parser states stack.\n\tmarks          []yaml_mark_t          // The stack of marks.\n\ttag_directives []yaml_tag_directive_t // The list of TAG directives.\n\n\t// Dumper stuff\n\n\taliases []yaml_alias_data_t // The alias data.\n\n\tdocument *yaml_document_t // The currently parsed document.\n}\n\ntype yaml_comment_t struct {\n\n\tscan_mark  yaml_mark_t // Position where scanning for comments started\n\ttoken_mark yaml_mark_t // Position after which tokens will be associated with this comment\n\tstart_mark yaml_mark_t // Position of '#' comment mark\n\tend_mark   yaml_mark_t // Position where comment terminated\n\n\thead []byte\n\tline []byte\n\tfoot []byte\n}\n\n// Emitter Definitions\n\n// The prototype of a write handler.\n//\n// The write handler is called when the emitter needs to flush the accumulated\n// characters to the output.  The handler should write @a size bytes of the\n// @a buffer to the output.\n//\n// @param[in,out]   data        A pointer to an application data specified by\n//                              yaml_emitter_set_output().\n// @param[in]       buffer      The buffer with bytes to be written.\n// @param[in]       size        The size of the buffer.\n//\n// @returns On success, the handler should return @c 1.  If the handler failed,\n// the returned value should be @c 0.\n//\ntype yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error\n\ntype yaml_emitter_state_t int\n\n// The emitter states.\nconst (\n\t// Expect STREAM-START.\n\tyaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota\n\n\tyaml_EMIT_FIRST_DOCUMENT_START_STATE       // Expect the first DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_START_STATE             // Expect DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_CONTENT_STATE           // Expect the content of a document.\n\tyaml_EMIT_DOCUMENT_END_STATE               // Expect DOCUMENT-END.\n\tyaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE   // Expect the first item of a flow sequence.\n\tyaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE   // Expect the next item of a flow sequence, with the comma already written out\n\tyaml_EMIT_FLOW_SEQUENCE_ITEM_STATE         // Expect an item of a flow sequence.\n\tyaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE     // Expect the first key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE     // Expect the next key of a flow mapping, with the comma already written out\n\tyaml_EMIT_FLOW_MAPPING_KEY_STATE           // Expect a key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE  // Expect a value for a simple key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_VALUE_STATE         // Expect a value of a flow mapping.\n\tyaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE  // Expect the first item of a block sequence.\n\tyaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE        // Expect an item of a block sequence.\n\tyaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE    // Expect the first key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_KEY_STATE          // Expect the key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_VALUE_STATE        // Expect a value of a block mapping.\n\tyaml_EMIT_END_STATE                        // Expect nothing.\n)\n\n// The emitter structure.\n//\n// All members are internal.  Manage the structure using the @c yaml_emitter_\n// family of functions.\ntype yaml_emitter_t struct {\n\n\t// Error handling\n\n\terror   yaml_error_type_t // Error type.\n\tproblem string            // Error description.\n\n\t// Writer stuff\n\n\twrite_handler yaml_write_handler_t // Write handler.\n\n\toutput_buffer *[]byte   // String output data.\n\toutput_writer io.Writer // File output data.\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The stream encoding.\n\n\t// Emitter stuff\n\n\tcanonical   bool         // If the output is in the canonical style?\n\tbest_indent int          // The number of indentation spaces.\n\tbest_width  int          // The preferred width of the output lines.\n\tunicode     bool         // Allow unescaped non-ASCII characters?\n\tline_break  yaml_break_t // The preferred line break.\n\n\tstate  yaml_emitter_state_t   // The current emitter state.\n\tstates []yaml_emitter_state_t // The stack of states.\n\n\tevents      []yaml_event_t // The event queue.\n\tevents_head int            // The head of the event queue.\n\n\tindents []int // The stack of indentation levels.\n\n\ttag_directives []yaml_tag_directive_t // The list of tag directives.\n\n\tindent int // The current indentation level.\n\n\tflow_level int // The current flow level.\n\n\troot_context       bool // Is it the document root context?\n\tsequence_context   bool // Is it a sequence context?\n\tmapping_context    bool // Is it a mapping context?\n\tsimple_key_context bool // Is it a simple mapping key context?\n\n\tline       int  // The current line.\n\tcolumn     int  // The current column.\n\twhitespace bool // If the last character was a whitespace?\n\tindention  bool // If the last character was an indentation character (' ', '-', '?', ':')?\n\topen_ended bool // If an explicit document end is required?\n\n\tspace_above bool // Is there's an empty line above?\n\tfoot_indent int  // The indent used to write the foot comment above, or -1 if none.\n\n\t// Anchor analysis.\n\tanchor_data struct {\n\t\tanchor []byte // The anchor value.\n\t\talias  bool   // Is it an alias?\n\t}\n\n\t// Tag analysis.\n\ttag_data struct {\n\t\thandle []byte // The tag handle.\n\t\tsuffix []byte // The tag suffix.\n\t}\n\n\t// Scalar analysis.\n\tscalar_data struct {\n\t\tvalue                 []byte              // The scalar value.\n\t\tmultiline             bool                // Does the scalar contain line breaks?\n\t\tflow_plain_allowed    bool                // Can the scalar be expessed in the flow plain style?\n\t\tblock_plain_allowed   bool                // Can the scalar be expressed in the block plain style?\n\t\tsingle_quoted_allowed bool                // Can the scalar be expressed in the single quoted style?\n\t\tblock_allowed         bool                // Can the scalar be expressed in the literal or folded styles?\n\t\tstyle                 yaml_scalar_style_t // The output style.\n\t}\n\n\t// Comments\n\thead_comment []byte\n\tline_comment []byte\n\tfoot_comment []byte\n\ttail_comment []byte\n\n\tkey_line_comment []byte\n\n\t// Dumper stuff\n\n\topened bool // If the stream was already opened?\n\tclosed bool // If the stream was already closed?\n\n\t// The information associated with the document nodes.\n\tanchors *struct {\n\t\treferences int  // The number of references.\n\t\tanchor     int  // The anchor id.\n\t\tserialized bool // If the node has been emitted?\n\t}\n\n\tlast_anchor_id int // The last assigned anchor id.\n\n\tdocument *yaml_document_t // The currently emitted document.\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/yamlprivateh.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nconst (\n\t// The size of the input raw buffer.\n\tinput_raw_buffer_size = 512\n\n\t// The size of the input buffer.\n\t// It should be possible to decode the whole raw buffer.\n\tinput_buffer_size = input_raw_buffer_size * 3\n\n\t// The size of the output buffer.\n\toutput_buffer_size = 128\n\n\t// The size of the output raw buffer.\n\t// It should be possible to encode the whole output buffer.\n\toutput_raw_buffer_size = (output_buffer_size*2 + 2)\n\n\t// The size of other stacks and queues.\n\tinitial_stack_size  = 16\n\tinitial_queue_size  = 16\n\tinitial_string_size = 16\n)\n\n// Check if the character at the specified position is an alphabetical\n// character, a digit, '_', or '-'.\nfunc is_alpha(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-'\n}\n\n// Check if the character at the specified position is a digit.\nfunc is_digit(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9'\n}\n\n// Get the value of a digit.\nfunc as_digit(b []byte, i int) int {\n\treturn int(b[i]) - '0'\n}\n\n// Check if the character at the specified position is a hex-digit.\nfunc is_hex(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f'\n}\n\n// Get the value of a hex-digit.\nfunc as_hex(b []byte, i int) int {\n\tbi := b[i]\n\tif bi >= 'A' && bi <= 'F' {\n\t\treturn int(bi) - 'A' + 10\n\t}\n\tif bi >= 'a' && bi <= 'f' {\n\t\treturn int(bi) - 'a' + 10\n\t}\n\treturn int(bi) - '0'\n}\n\n// Check if the character is ASCII.\nfunc is_ascii(b []byte, i int) bool {\n\treturn b[i] <= 0x7F\n}\n\n// Check if the character at the start of the buffer can be printed unescaped.\nfunc is_printable(b []byte, i int) bool {\n\treturn ((b[i] == 0x0A) || // . == #x0A\n\t\t(b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E\n\t\t(b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF\n\t\t(b[i] > 0xC2 && b[i] < 0xED) ||\n\t\t(b[i] == 0xED && b[i+1] < 0xA0) ||\n\t\t(b[i] == 0xEE) ||\n\t\t(b[i] == 0xEF && // #xE000 <= . <= #xFFFD\n\t\t\t!(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF\n\t\t\t!(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF))))\n}\n\n// Check if the character at the specified position is NUL.\nfunc is_z(b []byte, i int) bool {\n\treturn b[i] == 0x00\n}\n\n// Check if the beginning of the buffer is a BOM.\nfunc is_bom(b []byte, i int) bool {\n\treturn b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF\n}\n\n// Check if the character at the specified position is space.\nfunc is_space(b []byte, i int) bool {\n\treturn b[i] == ' '\n}\n\n// Check if the character at the specified position is tab.\nfunc is_tab(b []byte, i int) bool {\n\treturn b[i] == '\\t'\n}\n\n// Check if the character at the specified position is blank (space or tab).\nfunc is_blank(b []byte, i int) bool {\n\t//return is_space(b, i) || is_tab(b, i)\n\treturn b[i] == ' ' || b[i] == '\\t'\n}\n\n// Check if the character at the specified position is a line break.\nfunc is_break(b []byte, i int) bool {\n\treturn (b[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029)\n}\n\nfunc is_crlf(b []byte, i int) bool {\n\treturn b[i] == '\\r' && b[i+1] == '\\n'\n}\n\n// Check if the character is a line break or NUL.\nfunc is_breakz(b []byte, i int) bool {\n\t//return is_break(b, i) || is_z(b, i)\n\treturn (\n\t\t// is_break:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\t// is_z:\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, or NUL.\nfunc is_spacez(b []byte, i int) bool {\n\t//return is_space(b, i) || is_breakz(b, i)\n\treturn (\n\t\t// is_space:\n\t\tb[i] == ' ' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, tab, or NUL.\nfunc is_blankz(b []byte, i int) bool {\n\t//return is_blank(b, i) || is_breakz(b, i)\n\treturn (\n\t\t// is_blank:\n\t\tb[i] == ' ' || b[i] == '\\t' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Determine the width of the character.\nfunc width(b byte) int {\n\t// Don't replace these by a switch without first\n\t// confirming that it is being inlined.\n\tif b&0x80 == 0x00 {\n\t\treturn 1\n\t}\n\tif b&0xE0 == 0xC0 {\n\t\treturn 2\n\t}\n\tif b&0xF0 == 0xE0 {\n\t\treturn 3\n\t}\n\tif b&0xF8 == 0xF0 {\n\t\treturn 4\n\t}\n\treturn 0\n\n}\n"
  },
  {
    "path": "vendor/modules.txt",
    "content": "# github.com/agnivade/levenshtein v1.2.2-0.20250519083737-420867539855\n## explicit; go 1.21\ngithub.com/agnivade/levenshtein\n# github.com/bahlo/generic-list-go v0.2.0\n## explicit; go 1.18\ngithub.com/bahlo/generic-list-go\n# github.com/boyter/gocodewalker v1.5.2-0.20260227212453-19676720409f\n## explicit; go 1.23.0\ngithub.com/boyter/gocodewalker\ngithub.com/boyter/gocodewalker/go-gitignore\n# github.com/boyter/simplecache v0.0.0-20250113230110-8a4c9201822a\n## explicit; go 1.23.3\ngithub.com/boyter/simplecache\n# github.com/buger/jsonparser v1.1.1\n## explicit; go 1.13\ngithub.com/buger/jsonparser\n# github.com/clipperhouse/uax29/v2 v2.2.0\n## explicit; go 1.18\ngithub.com/clipperhouse/uax29/v2/graphemes\ngithub.com/clipperhouse/uax29/v2/internal/iterators\n# github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964\n## explicit\ngithub.com/danwakefield/fnmatch\n# github.com/google/uuid v1.6.0\n## explicit\ngithub.com/google/uuid\n# github.com/inconshreveable/mousetrap v1.1.0\n## explicit; go 1.18\ngithub.com/inconshreveable/mousetrap\n# github.com/invopop/jsonschema v0.13.0\n## explicit; go 1.18\ngithub.com/invopop/jsonschema\n# github.com/json-iterator/go v1.1.12\n## explicit; go 1.12\ngithub.com/json-iterator/go\n# github.com/mailru/easyjson v0.7.7\n## explicit; go 1.12\ngithub.com/mailru/easyjson/buffer\ngithub.com/mailru/easyjson/jwriter\n# github.com/mark3labs/mcp-go v0.45.0\n## explicit; go 1.23.0\ngithub.com/mark3labs/mcp-go/mcp\ngithub.com/mark3labs/mcp-go/server\ngithub.com/mark3labs/mcp-go/util\n# github.com/mattn/go-colorable v0.1.13\n## explicit; go 1.15\ngithub.com/mattn/go-colorable\n# github.com/mattn/go-isatty v0.0.19\n## explicit; go 1.15\ngithub.com/mattn/go-isatty\n# github.com/mattn/go-runewidth v0.0.19\n## explicit; go 1.20\ngithub.com/mattn/go-runewidth\n# github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd\n## explicit\ngithub.com/modern-go/concurrent\n# github.com/modern-go/reflect2 v1.0.2\n## explicit; go 1.12\ngithub.com/modern-go/reflect2\n# github.com/rs/zerolog v1.30.0\n## explicit; go 1.15\ngithub.com/rs/zerolog\ngithub.com/rs/zerolog/internal/cbor\ngithub.com/rs/zerolog/internal/json\ngithub.com/rs/zerolog/log\n# github.com/spf13/cast v1.7.1\n## explicit; go 1.19\ngithub.com/spf13/cast\n# github.com/spf13/cobra v1.10.1\n## explicit; go 1.15\ngithub.com/spf13/cobra\n# github.com/spf13/pflag v1.0.10\n## explicit; go 1.12\ngithub.com/spf13/pflag\n# github.com/wk8/go-ordered-map/v2 v2.1.8\n## explicit; go 1.18\ngithub.com/wk8/go-ordered-map/v2\n# github.com/yosida95/uritemplate/v3 v3.0.2\n## explicit; go 1.14\ngithub.com/yosida95/uritemplate/v3\n# go.yaml.in/yaml/v2 v2.4.3\n## explicit; go 1.15\ngo.yaml.in/yaml/v2\n# golang.org/x/crypto v0.45.0\n## explicit; go 1.24.0\ngolang.org/x/crypto/blake2b\n# golang.org/x/sync v0.18.0\n## explicit; go 1.24.0\ngolang.org/x/sync/errgroup\n# golang.org/x/sys v0.38.0\n## explicit; go 1.24.0\ngolang.org/x/sys/cpu\ngolang.org/x/sys/unix\n# golang.org/x/text v0.31.0\n## explicit; go 1.24.0\ngolang.org/x/text/feature/plural\ngolang.org/x/text/internal\ngolang.org/x/text/internal/catmsg\ngolang.org/x/text/internal/format\ngolang.org/x/text/internal/language\ngolang.org/x/text/internal/language/compact\ngolang.org/x/text/internal/number\ngolang.org/x/text/internal/stringset\ngolang.org/x/text/internal/tag\ngolang.org/x/text/language\ngolang.org/x/text/message\ngolang.org/x/text/message/catalog\n# gopkg.in/yaml.v3 v3.0.1\n## explicit\ngopkg.in/yaml.v3\n"
  }
]